+
+
+
Scenario Calculations Summary (MMBTU)
+
-
-
-
Detail
-
-
+
+
+
+
+
+
+
+

Loading..
-
-
-
-
-

Loading..
{% endblock %}
+
{% block localscripts %}
diff --git a/hydronics/static/images/alessandro_testing_1.png b/hydronics/static/images/alessandro_testing_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e6e53b95582cafb43abe29d10985d4a2fe67c13
Binary files /dev/null and b/hydronics/static/images/alessandro_testing_1.png differ
diff --git a/package.json b/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c6fc451acf66e6751d94952cae9075ed396faad1
--- /dev/null
+++ b/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "engineering-analysis-dt",
+ "version": "1.0.0",
+ "description": "##Requirements: *Downloads* 1. Pycharm IDE - https://www.jetbrains.com/pycharm/download/ 2. PGAdmin3 - https://www.pgadmin.org/download/ *If you don't already have Python 3.5* 3. Python 3.5 - https://www.python.org/downloads",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "dependencies": {
+ "bpl": "git+https://d0516feb598c9e6cbc54d20cf52b7b41de2d7a3d:x-oauth-basic@github.com/Blocp/bpl.git"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Blocp/engineering-analysis-dt.git"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/Blocp/engineering-analysis-dt/issues"
+ },
+ "homepage": "https://github.com/Blocp/engineering-analysis-dt#readme"
+}
diff --git a/static/bpl/css/bpl.css b/static/bpl/css/bpl.css
new file mode 100644
index 0000000000000000000000000000000000000000..b1c4ef553bbeb06a5c4c134be4cdac17a6277d08
--- /dev/null
+++ b/static/bpl/css/bpl.css
@@ -0,0 +1,8035 @@
+/*!
+ * Bootstrap v4.0.0-alpha.4 (https://getbootstrap.com)
+ * Copyright 2011-2016 The Bootstrap Authors
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+
+body {
+ margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+progress {
+ vertical-align: baseline;
+}
+
+template,
+[hidden] {
+ display: none;
+}
+
+a {
+ background-color: transparent;
+}
+
+a:active,
+a:hover {
+ outline-width: 0;
+}
+
+abbr[title] {
+ border-bottom: none;
+ text-decoration: underline;
+ text-decoration: underline dotted;
+}
+
+b,
+strong {
+ font-weight: inherit;
+}
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+dfn {
+ font-style: italic;
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+mark {
+ background-color: #ff0;
+ color: #000;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+img {
+ border-style: none;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+hr {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible;
+}
+
+button,
+input,
+select,
+textarea {
+ font: inherit;
+}
+
+optgroup {
+ font-weight: bold;
+}
+
+button,
+input,
+select {
+ overflow: visible;
+}
+
+button,
+input,
+select,
+textarea {
+ margin: 0;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ cursor: pointer;
+}
+
+[disabled] {
+ cursor: default;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+button:-moz-focusring,
+input:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+legend {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: inherit;
+ display: table;
+ max-width: 100%;
+ padding: 0;
+ white-space: normal;
+}
+
+textarea {
+ overflow: auto;
+}
+
+[type="checkbox"],
+[type="radio"] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+}
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type="search"] {
+ -webkit-appearance: textfield;
+}
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+@media print {
+ *,
+ *::before,
+ *::after,
+ *::first-letter,
+ *::first-line {
+ text-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ abbr[title]::after {
+ content: " (" attr(title) ")";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .tag {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+
+html {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+*,
+*::before,
+*::after {
+ -webkit-box-sizing: inherit;
+ box-sizing: inherit;
+}
+
+@-ms-viewport {
+ width: device-width;
+}
+
+html {
+ font-size: 16px;
+ -ms-overflow-style: scrollbar;
+ -webkit-tap-highlight-color: transparent;
+}
+
+body {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ font-size: 1rem;
+ line-height: 1.5;
+ color: #373a3c;
+ background-color: #fff;
+}
+
+[tabindex="-1"]:focus {
+ outline: none !important;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: .5rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #818a91;
+}
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0;
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+a {
+ color: #0275d8;
+ text-decoration: none;
+}
+
+a:focus, a:hover {
+ color: #014c8c;
+ text-decoration: underline;
+}
+
+a:focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+a:not([href]):not([tabindex]) {
+ color: inherit;
+ text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
+ color: inherit;
+ text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+ outline: none;
+}
+
+pre {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+}
+
+figure {
+ margin: 0 0 1rem;
+}
+
+img {
+ vertical-align: middle;
+}
+
+[role="button"] {
+ cursor: pointer;
+}
+
+a,
+area,
+button,
+[role="button"],
+input,
+label,
+select,
+summary,
+textarea {
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+}
+
+table {
+ border-collapse: collapse;
+ background-color: transparent;
+}
+
+caption {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #818a91;
+ text-align: left;
+ caption-side: bottom;
+}
+
+th {
+ text-align: left;
+}
+
+label {
+ display: inline-block;
+ margin-bottom: .5rem;
+}
+
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+textarea {
+ margin: 0;
+ line-height: inherit;
+ border-radius: 0;
+}
+
+input[type="radio"]:disabled,
+input[type="checkbox"]:disabled {
+ cursor: not-allowed;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ -webkit-appearance: listbox;
+}
+
+textarea {
+ resize: vertical;
+}
+
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+}
+
+input[type="search"] {
+ -webkit-appearance: none;
+}
+
+output {
+ display: inline-block;
+}
+
+[hidden] {
+ display: none !important;
+}
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: 0.5rem;
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+
+h1, .h1 {
+ font-size: 2.5rem;
+}
+
+h2, .h2 {
+ font-size: 2rem;
+}
+
+h3, .h3 {
+ font-size: 1.75rem;
+}
+
+h4, .h4 {
+ font-size: 1.5rem;
+}
+
+h5, .h5 {
+ font-size: 1.25rem;
+}
+
+h6, .h6 {
+ font-size: 1rem;
+}
+
+.lead {
+ font-size: 1.25rem;
+ font-weight: 300;
+}
+
+.display-1 {
+ font-size: 6rem;
+ font-weight: 300;
+}
+
+.display-2 {
+ font-size: 5.5rem;
+ font-weight: 300;
+}
+
+.display-3 {
+ font-size: 4.5rem;
+ font-weight: 300;
+}
+
+.display-4 {
+ font-size: 3.5rem;
+ font-weight: 300;
+}
+
+hr {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border: 0;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+small,
+.small {
+ font-size: 80%;
+ font-weight: normal;
+}
+
+mark,
+.mark {
+ padding: 0.2em;
+ background-color: #fcf8e3;
+}
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline-item {
+ display: inline-block;
+}
+
+.list-inline-item:not(:last-child) {
+ margin-right: 5px;
+}
+
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+.blockquote {
+ padding: 0.5rem 1rem;
+ margin-bottom: 1rem;
+ font-size: 1.25rem;
+ border-left: 0.25rem solid #eceeef;
+}
+
+.blockquote-footer {
+ display: block;
+ font-size: 80%;
+ color: #818a91;
+}
+
+.blockquote-footer::before {
+ content: "\2014 \00A0";
+}
+
+.blockquote-reverse {
+ padding-right: 1rem;
+ padding-left: 0;
+ text-align: right;
+ border-right: 0.25rem solid #eceeef;
+ border-left: 0;
+}
+
+.blockquote-reverse .blockquote-footer::before {
+ content: "";
+}
+
+.blockquote-reverse .blockquote-footer::after {
+ content: "\00A0 \2014";
+}
+
+dl.row > dd + dt {
+ clear: left;
+}
+
+.img-fluid, .carousel-inner > .carousel-item > img,
+.carousel-inner > .carousel-item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-rounded {
+ border-radius: 0.3rem;
+}
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 0.25rem;
+ -webkit-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-circle {
+ border-radius: 50%;
+}
+
+.figure {
+ display: inline-block;
+}
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1;
+}
+
+.figure-caption {
+ font-size: 90%;
+ color: #818a91;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+}
+
+code {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #bd4147;
+ background-color: #f7f7f9;
+ border-radius: 0.25rem;
+}
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 0.2rem;
+}
+
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+}
+
+pre {
+ display: block;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ font-size: 90%;
+ color: #373a3c;
+}
+
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ background-color: transparent;
+ border-radius: 0;
+}
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+
+.container {
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.container::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+@media (min-width: 544px) {
+ .container {
+ max-width: 576px;
+ }
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 720px;
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ max-width: 940px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1140px;
+ }
+}
+
+.container-fluid {
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.container-fluid::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+
+.row::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
+ position: relative;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px;
+}
+
+.col-xs-1 {
+ float: left;
+ width: 8.333333%;
+}
+
+.col-xs-2 {
+ float: left;
+ width: 16.666667%;
+}
+
+.col-xs-3 {
+ float: left;
+ width: 25%;
+}
+
+.col-xs-4 {
+ float: left;
+ width: 33.333333%;
+}
+
+.col-xs-5 {
+ float: left;
+ width: 41.666667%;
+}
+
+.col-xs-6 {
+ float: left;
+ width: 50%;
+}
+
+.col-xs-7 {
+ float: left;
+ width: 58.333333%;
+}
+
+.col-xs-8 {
+ float: left;
+ width: 66.666667%;
+}
+
+.col-xs-9 {
+ float: left;
+ width: 75%;
+}
+
+.col-xs-10 {
+ float: left;
+ width: 83.333333%;
+}
+
+.col-xs-11 {
+ float: left;
+ width: 91.666667%;
+}
+
+.col-xs-12 {
+ float: left;
+ width: 100%;
+}
+
+.pull-xs-0 {
+ right: auto;
+}
+
+.pull-xs-1 {
+ right: 8.333333%;
+}
+
+.pull-xs-2 {
+ right: 16.666667%;
+}
+
+.pull-xs-3 {
+ right: 25%;
+}
+
+.pull-xs-4 {
+ right: 33.333333%;
+}
+
+.pull-xs-5 {
+ right: 41.666667%;
+}
+
+.pull-xs-6 {
+ right: 50%;
+}
+
+.pull-xs-7 {
+ right: 58.333333%;
+}
+
+.pull-xs-8 {
+ right: 66.666667%;
+}
+
+.pull-xs-9 {
+ right: 75%;
+}
+
+.pull-xs-10 {
+ right: 83.333333%;
+}
+
+.pull-xs-11 {
+ right: 91.666667%;
+}
+
+.pull-xs-12 {
+ right: 100%;
+}
+
+.push-xs-0 {
+ left: auto;
+}
+
+.push-xs-1 {
+ left: 8.333333%;
+}
+
+.push-xs-2 {
+ left: 16.666667%;
+}
+
+.push-xs-3 {
+ left: 25%;
+}
+
+.push-xs-4 {
+ left: 33.333333%;
+}
+
+.push-xs-5 {
+ left: 41.666667%;
+}
+
+.push-xs-6 {
+ left: 50%;
+}
+
+.push-xs-7 {
+ left: 58.333333%;
+}
+
+.push-xs-8 {
+ left: 66.666667%;
+}
+
+.push-xs-9 {
+ left: 75%;
+}
+
+.push-xs-10 {
+ left: 83.333333%;
+}
+
+.push-xs-11 {
+ left: 91.666667%;
+}
+
+.push-xs-12 {
+ left: 100%;
+}
+
+.offset-xs-1 {
+ margin-left: 8.333333%;
+}
+
+.offset-xs-2 {
+ margin-left: 16.666667%;
+}
+
+.offset-xs-3 {
+ margin-left: 25%;
+}
+
+.offset-xs-4 {
+ margin-left: 33.333333%;
+}
+
+.offset-xs-5 {
+ margin-left: 41.666667%;
+}
+
+.offset-xs-6 {
+ margin-left: 50%;
+}
+
+.offset-xs-7 {
+ margin-left: 58.333333%;
+}
+
+.offset-xs-8 {
+ margin-left: 66.666667%;
+}
+
+.offset-xs-9 {
+ margin-left: 75%;
+}
+
+.offset-xs-10 {
+ margin-left: 83.333333%;
+}
+
+.offset-xs-11 {
+ margin-left: 91.666667%;
+}
+
+@media (min-width: 544px) {
+ .col-sm-1 {
+ float: left;
+ width: 8.333333%;
+ }
+ .col-sm-2 {
+ float: left;
+ width: 16.666667%;
+ }
+ .col-sm-3 {
+ float: left;
+ width: 25%;
+ }
+ .col-sm-4 {
+ float: left;
+ width: 33.333333%;
+ }
+ .col-sm-5 {
+ float: left;
+ width: 41.666667%;
+ }
+ .col-sm-6 {
+ float: left;
+ width: 50%;
+ }
+ .col-sm-7 {
+ float: left;
+ width: 58.333333%;
+ }
+ .col-sm-8 {
+ float: left;
+ width: 66.666667%;
+ }
+ .col-sm-9 {
+ float: left;
+ width: 75%;
+ }
+ .col-sm-10 {
+ float: left;
+ width: 83.333333%;
+ }
+ .col-sm-11 {
+ float: left;
+ width: 91.666667%;
+ }
+ .col-sm-12 {
+ float: left;
+ width: 100%;
+ }
+ .pull-sm-0 {
+ right: auto;
+ }
+ .pull-sm-1 {
+ right: 8.333333%;
+ }
+ .pull-sm-2 {
+ right: 16.666667%;
+ }
+ .pull-sm-3 {
+ right: 25%;
+ }
+ .pull-sm-4 {
+ right: 33.333333%;
+ }
+ .pull-sm-5 {
+ right: 41.666667%;
+ }
+ .pull-sm-6 {
+ right: 50%;
+ }
+ .pull-sm-7 {
+ right: 58.333333%;
+ }
+ .pull-sm-8 {
+ right: 66.666667%;
+ }
+ .pull-sm-9 {
+ right: 75%;
+ }
+ .pull-sm-10 {
+ right: 83.333333%;
+ }
+ .pull-sm-11 {
+ right: 91.666667%;
+ }
+ .pull-sm-12 {
+ right: 100%;
+ }
+ .push-sm-0 {
+ left: auto;
+ }
+ .push-sm-1 {
+ left: 8.333333%;
+ }
+ .push-sm-2 {
+ left: 16.666667%;
+ }
+ .push-sm-3 {
+ left: 25%;
+ }
+ .push-sm-4 {
+ left: 33.333333%;
+ }
+ .push-sm-5 {
+ left: 41.666667%;
+ }
+ .push-sm-6 {
+ left: 50%;
+ }
+ .push-sm-7 {
+ left: 58.333333%;
+ }
+ .push-sm-8 {
+ left: 66.666667%;
+ }
+ .push-sm-9 {
+ left: 75%;
+ }
+ .push-sm-10 {
+ left: 83.333333%;
+ }
+ .push-sm-11 {
+ left: 91.666667%;
+ }
+ .push-sm-12 {
+ left: 100%;
+ }
+ .offset-sm-0 {
+ margin-left: 0%;
+ }
+ .offset-sm-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-sm-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-sm-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-sm-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-sm-11 {
+ margin-left: 91.666667%;
+ }
+}
+
+@media (min-width: 768px) {
+ .col-md-1 {
+ float: left;
+ width: 8.333333%;
+ }
+ .col-md-2 {
+ float: left;
+ width: 16.666667%;
+ }
+ .col-md-3 {
+ float: left;
+ width: 25%;
+ }
+ .col-md-4 {
+ float: left;
+ width: 33.333333%;
+ }
+ .col-md-5 {
+ float: left;
+ width: 41.666667%;
+ }
+ .col-md-6 {
+ float: left;
+ width: 50%;
+ }
+ .col-md-7 {
+ float: left;
+ width: 58.333333%;
+ }
+ .col-md-8 {
+ float: left;
+ width: 66.666667%;
+ }
+ .col-md-9 {
+ float: left;
+ width: 75%;
+ }
+ .col-md-10 {
+ float: left;
+ width: 83.333333%;
+ }
+ .col-md-11 {
+ float: left;
+ width: 91.666667%;
+ }
+ .col-md-12 {
+ float: left;
+ width: 100%;
+ }
+ .pull-md-0 {
+ right: auto;
+ }
+ .pull-md-1 {
+ right: 8.333333%;
+ }
+ .pull-md-2 {
+ right: 16.666667%;
+ }
+ .pull-md-3 {
+ right: 25%;
+ }
+ .pull-md-4 {
+ right: 33.333333%;
+ }
+ .pull-md-5 {
+ right: 41.666667%;
+ }
+ .pull-md-6 {
+ right: 50%;
+ }
+ .pull-md-7 {
+ right: 58.333333%;
+ }
+ .pull-md-8 {
+ right: 66.666667%;
+ }
+ .pull-md-9 {
+ right: 75%;
+ }
+ .pull-md-10 {
+ right: 83.333333%;
+ }
+ .pull-md-11 {
+ right: 91.666667%;
+ }
+ .pull-md-12 {
+ right: 100%;
+ }
+ .push-md-0 {
+ left: auto;
+ }
+ .push-md-1 {
+ left: 8.333333%;
+ }
+ .push-md-2 {
+ left: 16.666667%;
+ }
+ .push-md-3 {
+ left: 25%;
+ }
+ .push-md-4 {
+ left: 33.333333%;
+ }
+ .push-md-5 {
+ left: 41.666667%;
+ }
+ .push-md-6 {
+ left: 50%;
+ }
+ .push-md-7 {
+ left: 58.333333%;
+ }
+ .push-md-8 {
+ left: 66.666667%;
+ }
+ .push-md-9 {
+ left: 75%;
+ }
+ .push-md-10 {
+ left: 83.333333%;
+ }
+ .push-md-11 {
+ left: 91.666667%;
+ }
+ .push-md-12 {
+ left: 100%;
+ }
+ .offset-md-0 {
+ margin-left: 0%;
+ }
+ .offset-md-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-md-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-md-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-md-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-md-11 {
+ margin-left: 91.666667%;
+ }
+}
+
+@media (min-width: 992px) {
+ .col-lg-1 {
+ float: left;
+ width: 8.333333%;
+ }
+ .col-lg-2 {
+ float: left;
+ width: 16.666667%;
+ }
+ .col-lg-3 {
+ float: left;
+ width: 25%;
+ }
+ .col-lg-4 {
+ float: left;
+ width: 33.333333%;
+ }
+ .col-lg-5 {
+ float: left;
+ width: 41.666667%;
+ }
+ .col-lg-6 {
+ float: left;
+ width: 50%;
+ }
+ .col-lg-7 {
+ float: left;
+ width: 58.333333%;
+ }
+ .col-lg-8 {
+ float: left;
+ width: 66.666667%;
+ }
+ .col-lg-9 {
+ float: left;
+ width: 75%;
+ }
+ .col-lg-10 {
+ float: left;
+ width: 83.333333%;
+ }
+ .col-lg-11 {
+ float: left;
+ width: 91.666667%;
+ }
+ .col-lg-12 {
+ float: left;
+ width: 100%;
+ }
+ .pull-lg-0 {
+ right: auto;
+ }
+ .pull-lg-1 {
+ right: 8.333333%;
+ }
+ .pull-lg-2 {
+ right: 16.666667%;
+ }
+ .pull-lg-3 {
+ right: 25%;
+ }
+ .pull-lg-4 {
+ right: 33.333333%;
+ }
+ .pull-lg-5 {
+ right: 41.666667%;
+ }
+ .pull-lg-6 {
+ right: 50%;
+ }
+ .pull-lg-7 {
+ right: 58.333333%;
+ }
+ .pull-lg-8 {
+ right: 66.666667%;
+ }
+ .pull-lg-9 {
+ right: 75%;
+ }
+ .pull-lg-10 {
+ right: 83.333333%;
+ }
+ .pull-lg-11 {
+ right: 91.666667%;
+ }
+ .pull-lg-12 {
+ right: 100%;
+ }
+ .push-lg-0 {
+ left: auto;
+ }
+ .push-lg-1 {
+ left: 8.333333%;
+ }
+ .push-lg-2 {
+ left: 16.666667%;
+ }
+ .push-lg-3 {
+ left: 25%;
+ }
+ .push-lg-4 {
+ left: 33.333333%;
+ }
+ .push-lg-5 {
+ left: 41.666667%;
+ }
+ .push-lg-6 {
+ left: 50%;
+ }
+ .push-lg-7 {
+ left: 58.333333%;
+ }
+ .push-lg-8 {
+ left: 66.666667%;
+ }
+ .push-lg-9 {
+ left: 75%;
+ }
+ .push-lg-10 {
+ left: 83.333333%;
+ }
+ .push-lg-11 {
+ left: 91.666667%;
+ }
+ .push-lg-12 {
+ left: 100%;
+ }
+ .offset-lg-0 {
+ margin-left: 0%;
+ }
+ .offset-lg-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-lg-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-lg-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-lg-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-lg-11 {
+ margin-left: 91.666667%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .col-xl-1 {
+ float: left;
+ width: 8.333333%;
+ }
+ .col-xl-2 {
+ float: left;
+ width: 16.666667%;
+ }
+ .col-xl-3 {
+ float: left;
+ width: 25%;
+ }
+ .col-xl-4 {
+ float: left;
+ width: 33.333333%;
+ }
+ .col-xl-5 {
+ float: left;
+ width: 41.666667%;
+ }
+ .col-xl-6 {
+ float: left;
+ width: 50%;
+ }
+ .col-xl-7 {
+ float: left;
+ width: 58.333333%;
+ }
+ .col-xl-8 {
+ float: left;
+ width: 66.666667%;
+ }
+ .col-xl-9 {
+ float: left;
+ width: 75%;
+ }
+ .col-xl-10 {
+ float: left;
+ width: 83.333333%;
+ }
+ .col-xl-11 {
+ float: left;
+ width: 91.666667%;
+ }
+ .col-xl-12 {
+ float: left;
+ width: 100%;
+ }
+ .pull-xl-0 {
+ right: auto;
+ }
+ .pull-xl-1 {
+ right: 8.333333%;
+ }
+ .pull-xl-2 {
+ right: 16.666667%;
+ }
+ .pull-xl-3 {
+ right: 25%;
+ }
+ .pull-xl-4 {
+ right: 33.333333%;
+ }
+ .pull-xl-5 {
+ right: 41.666667%;
+ }
+ .pull-xl-6 {
+ right: 50%;
+ }
+ .pull-xl-7 {
+ right: 58.333333%;
+ }
+ .pull-xl-8 {
+ right: 66.666667%;
+ }
+ .pull-xl-9 {
+ right: 75%;
+ }
+ .pull-xl-10 {
+ right: 83.333333%;
+ }
+ .pull-xl-11 {
+ right: 91.666667%;
+ }
+ .pull-xl-12 {
+ right: 100%;
+ }
+ .push-xl-0 {
+ left: auto;
+ }
+ .push-xl-1 {
+ left: 8.333333%;
+ }
+ .push-xl-2 {
+ left: 16.666667%;
+ }
+ .push-xl-3 {
+ left: 25%;
+ }
+ .push-xl-4 {
+ left: 33.333333%;
+ }
+ .push-xl-5 {
+ left: 41.666667%;
+ }
+ .push-xl-6 {
+ left: 50%;
+ }
+ .push-xl-7 {
+ left: 58.333333%;
+ }
+ .push-xl-8 {
+ left: 66.666667%;
+ }
+ .push-xl-9 {
+ left: 75%;
+ }
+ .push-xl-10 {
+ left: 83.333333%;
+ }
+ .push-xl-11 {
+ left: 91.666667%;
+ }
+ .push-xl-12 {
+ left: 100%;
+ }
+ .offset-xl-0 {
+ margin-left: 0%;
+ }
+ .offset-xl-1 {
+ margin-left: 8.333333%;
+ }
+ .offset-xl-2 {
+ margin-left: 16.666667%;
+ }
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4 {
+ margin-left: 33.333333%;
+ }
+ .offset-xl-5 {
+ margin-left: 41.666667%;
+ }
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7 {
+ margin-left: 58.333333%;
+ }
+ .offset-xl-8 {
+ margin-left: 66.666667%;
+ }
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10 {
+ margin-left: 83.333333%;
+ }
+ .offset-xl-11 {
+ margin-left: 91.666667%;
+ }
+}
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 1rem;
+}
+
+.table th,
+.table td {
+ padding: 0.75rem;
+ vertical-align: top;
+ border-top: 1px solid #eceeef;
+}
+
+.table thead th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #eceeef;
+}
+
+.table tbody + tbody {
+ border-top: 2px solid #eceeef;
+}
+
+.table .table {
+ background-color: #fff;
+}
+
+.table-sm th,
+.table-sm td {
+ padding: 0.3rem;
+}
+
+.table-bordered {
+ border: 1px solid #eceeef;
+}
+
+.table-bordered th,
+.table-bordered td {
+ border: 1px solid #eceeef;
+}
+
+.table-bordered thead th,
+.table-bordered thead td {
+ border-bottom-width: 2px;
+}
+
+.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+.table-hover tbody tr:hover {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-active,
+.table-active > th,
+.table-active > td {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover > td,
+.table-hover .table-active:hover > th {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-success,
+.table-success > th,
+.table-success > td {
+ background-color: #dff0d8;
+}
+
+.table-hover .table-success:hover {
+ background-color: #d0e9c6;
+}
+
+.table-hover .table-success:hover > td,
+.table-hover .table-success:hover > th {
+ background-color: #d0e9c6;
+}
+
+.table-info,
+.table-info > th,
+.table-info > td {
+ background-color: #d9edf7;
+}
+
+.table-hover .table-info:hover {
+ background-color: #c4e3f3;
+}
+
+.table-hover .table-info:hover > td,
+.table-hover .table-info:hover > th {
+ background-color: #c4e3f3;
+}
+
+.table-warning,
+.table-warning > th,
+.table-warning > td {
+ background-color: #fcf8e3;
+}
+
+.table-hover .table-warning:hover {
+ background-color: #faf2cc;
+}
+
+.table-hover .table-warning:hover > td,
+.table-hover .table-warning:hover > th {
+ background-color: #faf2cc;
+}
+
+.table-danger,
+.table-danger > th,
+.table-danger > td {
+ background-color: #f2dede;
+}
+
+.table-hover .table-danger:hover {
+ background-color: #ebcccc;
+}
+
+.table-hover .table-danger:hover > td,
+.table-hover .table-danger:hover > th {
+ background-color: #ebcccc;
+}
+
+.thead-inverse th {
+ color: #fff;
+ background-color: #373a3c;
+}
+
+.thead-default th {
+ color: #55595c;
+ background-color: #eceeef;
+}
+
+.table-inverse {
+ color: #eceeef;
+ background-color: #373a3c;
+}
+
+.table-inverse th,
+.table-inverse td,
+.table-inverse thead th {
+ border-color: #55595c;
+}
+
+.table-inverse.table-bordered {
+ border: 0;
+}
+
+.table-responsive {
+ display: block;
+ width: 100%;
+ min-height: .01%;
+ overflow-x: auto;
+}
+
+.table-reflow thead {
+ float: left;
+}
+
+.table-reflow tbody {
+ display: block;
+ white-space: nowrap;
+}
+
+.table-reflow th,
+.table-reflow td {
+ border-top: 1px solid #eceeef;
+ border-left: 1px solid #eceeef;
+}
+
+.table-reflow th:last-child,
+.table-reflow td:last-child {
+ border-right: 1px solid #eceeef;
+}
+
+.table-reflow thead:last-child tr:last-child th,
+.table-reflow thead:last-child tr:last-child td,
+.table-reflow tbody:last-child tr:last-child th,
+.table-reflow tbody:last-child tr:last-child td,
+.table-reflow tfoot:last-child tr:last-child th,
+.table-reflow tfoot:last-child tr:last-child td {
+ border-bottom: 1px solid #eceeef;
+}
+
+.table-reflow tr {
+ float: left;
+}
+
+.table-reflow tr th,
+.table-reflow tr td {
+ display: block !important;
+ border: 1px solid #eceeef;
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.25;
+ color: #55595c;
+ background-color: #fff;
+ background-image: none;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+
+.form-control::-ms-expand {
+ background-color: transparent;
+ border: 0;
+}
+
+.form-control:focus {
+ color: #55595c;
+ background-color: #fff;
+ border-color: #66afe9;
+ outline: none;
+}
+
+.form-control::-webkit-input-placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control:-ms-input-placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control::placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control:disabled, .form-control[readonly] {
+ background-color: #eceeef;
+ opacity: 1;
+}
+
+.form-control:disabled {
+ cursor: not-allowed;
+}
+
+select.form-control:not([size]):not([multiple]) {
+ height: 2.5rem;
+}
+
+select.form-control:focus::-ms-value {
+ color: #55595c;
+ background-color: #fff;
+}
+
+.form-control-file,
+.form-control-range {
+ display: block;
+}
+
+.col-form-label {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ margin-bottom: 0;
+}
+
+.col-form-label-lg {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ font-size: 1.25rem;
+}
+
+.col-form-label-sm {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ font-size: 0.875rem;
+}
+
+.col-form-legend {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+}
+
+.form-control-static {
+ min-height: 2.5rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ margin-bottom: 0;
+}
+
+.form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control,
+.input-group-sm > .form-control-static.input-group-addon,
+.input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control,
+.input-group-lg > .form-control-static.input-group-addon,
+.input-group-lg > .input-group-btn > .form-control-static.btn {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.form-control-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem;
+}
+
+select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
+.input-group-sm > select.input-group-addon:not([size]):not([multiple]),
+.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {
+ height: 1.8125rem;
+}
+
+.form-control-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem;
+}
+
+select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
+.input-group-lg > select.input-group-addon:not([size]):not([multiple]),
+.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {
+ height: 3.166667rem;
+}
+
+.form-group {
+ margin-bottom: 1rem;
+}
+
+.form-text {
+ display: block;
+ margin-top: 0.25rem;
+}
+
+.form-check {
+ position: relative;
+ display: block;
+ margin-bottom: 0.75rem;
+}
+
+.form-check + .form-check {
+ margin-top: -.25rem;
+}
+
+.form-check.disabled .form-check-label {
+ color: #818a91;
+ cursor: not-allowed;
+}
+
+.form-check-label {
+ padding-left: 1.25rem;
+ margin-bottom: 0;
+ cursor: pointer;
+}
+
+.form-check-input {
+ position: absolute;
+ margin-top: .25rem;
+ margin-left: -1.25rem;
+}
+
+.form-check-input:only-child {
+ position: static;
+}
+
+.form-check-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 1.25rem;
+ margin-bottom: 0;
+ vertical-align: middle;
+ cursor: pointer;
+}
+
+.form-check-inline + .form-check-inline {
+ margin-left: .75rem;
+}
+
+.form-check-inline.disabled {
+ cursor: not-allowed;
+}
+
+.form-control-feedback {
+ margin-top: 0.25rem;
+}
+
+.form-control-success,
+.form-control-warning,
+.form-control-danger {
+ padding-right: 2.25rem;
+ background-repeat: no-repeat;
+ background-position: center right 0.625rem;
+ -webkit-background-size: 1.25rem 1.25rem;
+ background-size: 1.25rem 1.25rem;
+}
+
+.has-success .form-control-feedback,
+.has-success .form-control-label,
+.has-success .form-check-label,
+.has-success .form-check-inline,
+.has-success .custom-control {
+ color: #5cb85c;
+}
+
+.has-success .form-control {
+ border-color: #5cb85c;
+}
+
+.has-success .input-group-addon {
+ color: #5cb85c;
+ border-color: #5cb85c;
+ background-color: #eaf6ea;
+}
+
+.has-success .form-control-feedback {
+ color: #5cb85c;
+}
+
+.has-success .form-control-success {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
+}
+
+.has-warning .form-control-feedback,
+.has-warning .form-control-label,
+.has-warning .form-check-label,
+.has-warning .form-check-inline,
+.has-warning .custom-control {
+ color: #f0ad4e;
+}
+
+.has-warning .form-control {
+ border-color: #f0ad4e;
+}
+
+.has-warning .input-group-addon {
+ color: #f0ad4e;
+ border-color: #f0ad4e;
+ background-color: white;
+}
+
+.has-warning .form-control-feedback {
+ color: #f0ad4e;
+}
+
+.has-warning .form-control-warning {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E");
+}
+
+.has-danger .form-control-feedback,
+.has-danger .form-control-label,
+.has-danger .form-check-label,
+.has-danger .form-check-inline,
+.has-danger .custom-control {
+ color: #d9534f;
+}
+
+.has-danger .form-control {
+ border-color: #d9534f;
+}
+
+.has-danger .input-group-addon {
+ color: #d9534f;
+ border-color: #d9534f;
+ background-color: #fdf7f7;
+}
+
+.has-danger .form-control-feedback {
+ color: #d9534f;
+}
+
+.has-danger .form-control-danger {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
+}
+
+@media (min-width: 544px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .form-control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-check {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-check-label {
+ padding-left: 0;
+ }
+ .form-inline .form-check-input {
+ position: relative;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+
+.btn {
+ display: inline-block;
+ font-weight: normal;
+ line-height: 1.25;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border: 1px solid transparent;
+ padding: 0.5rem 1rem;
+ font-size: 1rem;
+ border-radius: 0.25rem;
+}
+
+.btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.btn:focus, .btn:hover {
+ text-decoration: none;
+}
+
+.btn.focus {
+ text-decoration: none;
+}
+
+.btn:active, .btn.active {
+ background-image: none;
+ outline: 0;
+}
+
+.btn.disabled, .btn:disabled {
+ cursor: not-allowed;
+ opacity: .65;
+}
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-primary:hover {
+ color: #fff;
+ background-color: #025aa5;
+ border-color: #01549b;
+}
+
+.btn-primary:focus, .btn-primary.focus {
+ color: #fff;
+ background-color: #025aa5;
+ border-color: #01549b;
+}
+
+.btn-primary:active, .btn-primary.active,
+.open > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #025aa5;
+ border-color: #01549b;
+ background-image: none;
+}
+
+.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
+.open > .btn-primary.dropdown-toggle:hover,
+.open > .btn-primary.dropdown-toggle:focus,
+.open > .btn-primary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #014682;
+ border-color: #01315a;
+}
+
+.btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary:disabled:focus, .btn-primary:disabled.focus {
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-primary.disabled:hover, .btn-primary:disabled:hover {
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-secondary {
+ color: #373a3c;
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-secondary:hover {
+ color: #373a3c;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+
+.btn-secondary:focus, .btn-secondary.focus {
+ color: #373a3c;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+
+.btn-secondary:active, .btn-secondary.active,
+.open > .btn-secondary.dropdown-toggle {
+ color: #373a3c;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+ background-image: none;
+}
+
+.btn-secondary:active:hover, .btn-secondary:active:focus, .btn-secondary:active.focus, .btn-secondary.active:hover, .btn-secondary.active:focus, .btn-secondary.active.focus,
+.open > .btn-secondary.dropdown-toggle:hover,
+.open > .btn-secondary.dropdown-toggle:focus,
+.open > .btn-secondary.dropdown-toggle.focus {
+ color: #373a3c;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+
+.btn-secondary.disabled:focus, .btn-secondary.disabled.focus, .btn-secondary:disabled:focus, .btn-secondary:disabled.focus {
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-secondary.disabled:hover, .btn-secondary:disabled:hover {
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #2aabd2;
+}
+
+.btn-info:focus, .btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #2aabd2;
+}
+
+.btn-info:active, .btn-info.active,
+.open > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #2aabd2;
+ background-image: none;
+}
+
+.btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,
+.open > .btn-info.dropdown-toggle:hover,
+.open > .btn-info.dropdown-toggle:focus,
+.open > .btn-info.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1f7e9a;
+}
+
+.btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info:disabled:focus, .btn-info:disabled.focus {
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-info.disabled:hover, .btn-info:disabled:hover {
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #419641;
+}
+
+.btn-success:focus, .btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #419641;
+}
+
+.btn-success:active, .btn-success.active,
+.open > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #419641;
+ background-image: none;
+}
+
+.btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,
+.open > .btn-success.dropdown-toggle:hover,
+.open > .btn-success.dropdown-toggle:focus,
+.open > .btn-success.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #2d672d;
+}
+
+.btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus {
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-success.disabled:hover, .btn-success:disabled:hover {
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #eb9316;
+}
+
+.btn-warning:focus, .btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #eb9316;
+}
+
+.btn-warning:active, .btn-warning.active,
+.open > .btn-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #eb9316;
+ background-image: none;
+}
+
+.btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,
+.open > .btn-warning.dropdown-toggle:hover,
+.open > .btn-warning.dropdown-toggle:focus,
+.open > .btn-warning.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #b06d0f;
+}
+
+.btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning:disabled:focus, .btn-warning:disabled.focus {
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-warning.disabled:hover, .btn-warning:disabled:hover {
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #c12e2a;
+}
+
+.btn-danger:focus, .btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #c12e2a;
+}
+
+.btn-danger:active, .btn-danger.active,
+.open > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #c12e2a;
+ background-image: none;
+}
+
+.btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,
+.open > .btn-danger.dropdown-toggle:hover,
+.open > .btn-danger.dropdown-toggle:focus,
+.open > .btn-danger.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #8b211e;
+}
+
+.btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger:disabled:focus, .btn-danger:disabled.focus {
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-danger.disabled:hover, .btn-danger:disabled:hover {
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-outline-primary {
+ color: #0275d8;
+ background-image: none;
+ background-color: transparent;
+ border-color: #0275d8;
+}
+
+.btn-outline-primary:hover {
+ color: #fff;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-outline-primary:focus, .btn-outline-primary.focus {
+ color: #fff;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-outline-primary:active, .btn-outline-primary.active,
+.open > .btn-outline-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.btn-outline-primary:active:hover, .btn-outline-primary:active:focus, .btn-outline-primary:active.focus, .btn-outline-primary.active:hover, .btn-outline-primary.active:focus, .btn-outline-primary.active.focus,
+.open > .btn-outline-primary.dropdown-toggle:hover,
+.open > .btn-outline-primary.dropdown-toggle:focus,
+.open > .btn-outline-primary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #014682;
+ border-color: #01315a;
+}
+
+.btn-outline-primary.disabled:focus, .btn-outline-primary.disabled.focus, .btn-outline-primary:disabled:focus, .btn-outline-primary:disabled.focus {
+ border-color: #43a7fd;
+}
+
+.btn-outline-primary.disabled:hover, .btn-outline-primary:disabled:hover {
+ border-color: #43a7fd;
+}
+
+.btn-outline-secondary {
+ color: #ccc;
+ background-image: none;
+ background-color: transparent;
+ border-color: #ccc;
+}
+
+.btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #ccc;
+ border-color: #ccc;
+}
+
+.btn-outline-secondary:focus, .btn-outline-secondary.focus {
+ color: #fff;
+ background-color: #ccc;
+ border-color: #ccc;
+}
+
+.btn-outline-secondary:active, .btn-outline-secondary.active,
+.open > .btn-outline-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #ccc;
+ border-color: #ccc;
+}
+
+.btn-outline-secondary:active:hover, .btn-outline-secondary:active:focus, .btn-outline-secondary:active.focus, .btn-outline-secondary.active:hover, .btn-outline-secondary.active:focus, .btn-outline-secondary.active.focus,
+.open > .btn-outline-secondary.dropdown-toggle:hover,
+.open > .btn-outline-secondary.dropdown-toggle:focus,
+.open > .btn-outline-secondary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #a1a1a1;
+ border-color: #8c8c8c;
+}
+
+.btn-outline-secondary.disabled:focus, .btn-outline-secondary.disabled.focus, .btn-outline-secondary:disabled:focus, .btn-outline-secondary:disabled.focus {
+ border-color: white;
+}
+
+.btn-outline-secondary.disabled:hover, .btn-outline-secondary:disabled:hover {
+ border-color: white;
+}
+
+.btn-outline-info {
+ color: #5bc0de;
+ background-image: none;
+ background-color: transparent;
+ border-color: #5bc0de;
+}
+
+.btn-outline-info:hover {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-outline-info:focus, .btn-outline-info.focus {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-outline-info:active, .btn-outline-info.active,
+.open > .btn-outline-info.dropdown-toggle {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-outline-info:active:hover, .btn-outline-info:active:focus, .btn-outline-info:active.focus, .btn-outline-info.active:hover, .btn-outline-info.active:focus, .btn-outline-info.active.focus,
+.open > .btn-outline-info.dropdown-toggle:hover,
+.open > .btn-outline-info.dropdown-toggle:focus,
+.open > .btn-outline-info.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1f7e9a;
+}
+
+.btn-outline-info.disabled:focus, .btn-outline-info.disabled.focus, .btn-outline-info:disabled:focus, .btn-outline-info:disabled.focus {
+ border-color: #b0e1ef;
+}
+
+.btn-outline-info.disabled:hover, .btn-outline-info:disabled:hover {
+ border-color: #b0e1ef;
+}
+
+.btn-outline-success {
+ color: #5cb85c;
+ background-image: none;
+ background-color: transparent;
+ border-color: #5cb85c;
+}
+
+.btn-outline-success:hover {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-outline-success:focus, .btn-outline-success.focus {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-outline-success:active, .btn-outline-success.active,
+.open > .btn-outline-success.dropdown-toggle {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-outline-success:active:hover, .btn-outline-success:active:focus, .btn-outline-success:active.focus, .btn-outline-success.active:hover, .btn-outline-success.active:focus, .btn-outline-success.active.focus,
+.open > .btn-outline-success.dropdown-toggle:hover,
+.open > .btn-outline-success.dropdown-toggle:focus,
+.open > .btn-outline-success.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #2d672d;
+}
+
+.btn-outline-success.disabled:focus, .btn-outline-success.disabled.focus, .btn-outline-success:disabled:focus, .btn-outline-success:disabled.focus {
+ border-color: #a3d7a3;
+}
+
+.btn-outline-success.disabled:hover, .btn-outline-success:disabled:hover {
+ border-color: #a3d7a3;
+}
+
+.btn-outline-warning {
+ color: #f0ad4e;
+ background-image: none;
+ background-color: transparent;
+ border-color: #f0ad4e;
+}
+
+.btn-outline-warning:hover {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-outline-warning:focus, .btn-outline-warning.focus {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-outline-warning:active, .btn-outline-warning.active,
+.open > .btn-outline-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-outline-warning:active:hover, .btn-outline-warning:active:focus, .btn-outline-warning:active.focus, .btn-outline-warning.active:hover, .btn-outline-warning.active:focus, .btn-outline-warning.active.focus,
+.open > .btn-outline-warning.dropdown-toggle:hover,
+.open > .btn-outline-warning.dropdown-toggle:focus,
+.open > .btn-outline-warning.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #b06d0f;
+}
+
+.btn-outline-warning.disabled:focus, .btn-outline-warning.disabled.focus, .btn-outline-warning:disabled:focus, .btn-outline-warning:disabled.focus {
+ border-color: #f8d9ac;
+}
+
+.btn-outline-warning.disabled:hover, .btn-outline-warning:disabled:hover {
+ border-color: #f8d9ac;
+}
+
+.btn-outline-danger {
+ color: #d9534f;
+ background-image: none;
+ background-color: transparent;
+ border-color: #d9534f;
+}
+
+.btn-outline-danger:hover {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-outline-danger:focus, .btn-outline-danger.focus {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-outline-danger:active, .btn-outline-danger.active,
+.open > .btn-outline-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-outline-danger:active:hover, .btn-outline-danger:active:focus, .btn-outline-danger:active.focus, .btn-outline-danger.active:hover, .btn-outline-danger.active:focus, .btn-outline-danger.active.focus,
+.open > .btn-outline-danger.dropdown-toggle:hover,
+.open > .btn-outline-danger.dropdown-toggle:focus,
+.open > .btn-outline-danger.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #8b211e;
+}
+
+.btn-outline-danger.disabled:focus, .btn-outline-danger.disabled.focus, .btn-outline-danger:disabled:focus, .btn-outline-danger:disabled.focus {
+ border-color: #eba5a3;
+}
+
+.btn-outline-danger.disabled:hover, .btn-outline-danger:disabled:hover {
+ border-color: #eba5a3;
+}
+
+.btn-link {
+ font-weight: normal;
+ color: #0275d8;
+ border-radius: 0;
+}
+
+.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled {
+ background-color: transparent;
+}
+
+.btn-link, .btn-link:focus, .btn-link:active {
+ border-color: transparent;
+}
+
+.btn-link:hover {
+ border-color: transparent;
+}
+
+.btn-link:focus, .btn-link:hover {
+ color: #014c8c;
+ text-decoration: underline;
+ background-color: transparent;
+}
+
+.btn-link:disabled:focus, .btn-link:disabled:hover {
+ color: #818a91;
+ text-decoration: none;
+}
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem;
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+.btn-block + .btn-block {
+ margin-top: 0.5rem;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity .15s linear;
+ -o-transition: opacity .15s linear;
+ transition: opacity .15s linear;
+}
+
+.fade.in {
+ opacity: 1;
+}
+
+.collapse {
+ display: none;
+}
+
+.collapse.in {
+ display: block;
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-timing-function: ease;
+ -o-transition-timing-function: ease;
+ transition-timing-function: ease;
+ -webkit-transition-duration: .35s;
+ -o-transition-duration: .35s;
+ transition-duration: .35s;
+ -webkit-transition-property: height;
+ -o-transition-property: height;
+ transition-property: height;
+}
+
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+.dropdown-toggle::after {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 0.3em;
+ vertical-align: middle;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-left: 0.3em solid transparent;
+}
+
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+.dropup .dropdown-toggle::after {
+ border-top: 0;
+ border-bottom: 0.3em solid;
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 1rem;
+ color: #373a3c;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+
+.dropdown-divider {
+ height: 1px;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ color: #373a3c;
+ text-align: inherit;
+ white-space: nowrap;
+ background: none;
+ border: 0;
+}
+
+.dropdown-item:focus, .dropdown-item:hover {
+ color: #2b2d2f;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+
+.dropdown-item.active, .dropdown-item.active:focus, .dropdown-item.active:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0275d8;
+ outline: 0;
+}
+
+.dropdown-item.disabled, .dropdown-item.disabled:focus, .dropdown-item.disabled:hover {
+ color: #818a91;
+}
+
+.dropdown-item.disabled:focus, .dropdown-item.disabled:hover {
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+ background-image: none;
+ filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)";
+}
+
+.open > .dropdown-menu {
+ display: block;
+}
+
+.open > a {
+ outline: 0;
+}
+
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+
+.dropdown-menu-left {
+ right: auto;
+ left: 0;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 5px 20px;
+ font-size: 0.875rem;
+ color: #818a91;
+ white-space: nowrap;
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ content: "";
+ border-top: 0;
+ border-bottom: 0.3em solid;
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+
+.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover {
+ z-index: 2;
+}
+
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+
+.btn-toolbar {
+ margin-left: -0.5rem;
+}
+
+.btn-toolbar::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 0.5rem;
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group > .btn-group {
+ float: left;
+}
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+.btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+}
+
+.btn + .dropdown-toggle-split::after {
+ margin-left: 0;
+}
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 1.125rem;
+ padding-left: 1.125rem;
+}
+
+.btn .caret {
+ margin-left: 0;
+}
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
+ border-width: 0.3em 0.3em 0;
+ border-bottom-width: 0;
+}
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
+ border-width: 0 0.3em 0.3em;
+}
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+
+.btn-group-vertical > .btn-group::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+
+.input-group {
+ position: relative;
+ width: 100%;
+ display: table;
+ border-collapse: separate;
+}
+
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+
+.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {
+ z-index: 3;
+}
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+.input-group-addon {
+ padding: 0.5rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ font-weight: normal;
+ line-height: 1.25;
+ color: #55595c;
+ text-align: center;
+ background-color: #eceeef;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+
+.input-group-addon.form-control-sm,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem;
+}
+
+.input-group-addon.form-control-lg,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem;
+}
+
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+
+.input-group .form-control:not(:last-child),
+.input-group-addon:not(:last-child),
+.input-group-btn:not(:last-child) > .btn,
+.input-group-btn:not(:last-child) > .btn-group > .btn,
+.input-group-btn:not(:last-child) > .dropdown-toggle,
+.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.input-group-addon:not(:last-child) {
+ border-right: 0;
+}
+
+.input-group .form-control:not(:first-child),
+.input-group-addon:not(:first-child),
+.input-group-btn:not(:first-child) > .btn,
+.input-group-btn:not(:first-child) > .btn-group > .btn,
+.input-group-btn:not(:first-child) > .dropdown-toggle,
+.input-group-btn:not(:last-child) > .btn:not(:first-child),
+.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.form-control + .input-group-addon:not(:first-child) {
+ border-left: 0;
+}
+
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+
+.input-group-btn > .btn {
+ position: relative;
+}
+
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+
+.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {
+ z-index: 3;
+}
+
+.input-group-btn:not(:last-child) > .btn,
+.input-group-btn:not(:last-child) > .btn-group {
+ margin-right: -1px;
+}
+
+.input-group-btn:not(:first-child) > .btn,
+.input-group-btn:not(:first-child) > .btn-group {
+ z-index: 2;
+ margin-left: -1px;
+}
+
+.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,
+.input-group-btn:not(:first-child) > .btn-group:focus,
+.input-group-btn:not(:first-child) > .btn-group:active,
+.input-group-btn:not(:first-child) > .btn-group:hover {
+ z-index: 3;
+}
+
+.custom-control {
+ position: relative;
+ display: inline;
+ padding-left: 1.5rem;
+ cursor: pointer;
+}
+
+.custom-control + .custom-control {
+ margin-left: 1rem;
+}
+
+.custom-control-input {
+ position: absolute;
+ z-index: -1;
+ opacity: 0;
+}
+
+.custom-control-input:checked ~ .custom-control-indicator {
+ color: #fff;
+ background-color: #0074d9;
+}
+
+.custom-control-input:focus ~ .custom-control-indicator {
+ -webkit-box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #0074d9;
+ box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #0074d9;
+}
+
+.custom-control-input:active ~ .custom-control-indicator {
+ color: #fff;
+ background-color: #84c6ff;
+}
+
+.custom-control-input:disabled ~ .custom-control-indicator {
+ cursor: not-allowed;
+ background-color: #eee;
+}
+
+.custom-control-input:disabled ~ .custom-control-description {
+ color: #767676;
+ cursor: not-allowed;
+}
+
+.custom-control-indicator {
+ position: absolute;
+ top: .0625rem;
+ left: 0;
+ display: block;
+ width: 1rem;
+ height: 1rem;
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-color: #ddd;
+ background-repeat: no-repeat;
+ background-position: center center;
+ -webkit-background-size: 50% 50%;
+ background-size: 50% 50%;
+}
+
+.custom-checkbox .custom-control-indicator {
+ border-radius: 0.25rem;
+}
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
+}
+
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {
+ background-color: #0074d9;
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
+}
+
+.custom-radio .custom-control-indicator {
+ border-radius: 50%;
+}
+
+.custom-radio .custom-control-input:checked ~ .custom-control-indicator {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
+}
+
+.custom-controls-stacked .custom-control {
+ display: inline;
+}
+
+.custom-controls-stacked .custom-control::after {
+ display: block;
+ margin-bottom: 0.25rem;
+ content: "";
+}
+
+.custom-controls-stacked .custom-control + .custom-control {
+ margin-left: 0;
+}
+
+.custom-select {
+ display: inline-block;
+ max-width: 100%;
+ padding: 0.375rem 1.75rem 0.375rem 0.75rem;
+ padding-right: 0.75rem \9;
+ color: #55595c;
+ vertical-align: middle;
+ background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+ background-image: none \9;
+ -webkit-background-size: 8px 10px;
+ background-size: 8px 10px;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+
+.custom-select:focus {
+ border-color: #51a7e8;
+ outline: none;
+}
+
+.custom-select:focus::-ms-value {
+ color: #55595c;
+ background-color: #fff;
+}
+
+.custom-select:disabled {
+ color: #818a91;
+ cursor: not-allowed;
+ background-color: #eceeef;
+}
+
+.custom-select::-ms-expand {
+ opacity: 0;
+}
+
+.custom-select-sm {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+ font-size: 75%;
+}
+
+.custom-file {
+ position: relative;
+ display: inline-block;
+ max-width: 100%;
+ height: 2.5rem;
+ cursor: pointer;
+}
+
+.custom-file-input {
+ min-width: 14rem;
+ max-width: 100%;
+ margin: 0;
+ filter: alpha(opacity=0);
+ opacity: 0;
+}
+
+.custom-file-control {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 5;
+ height: 2.5rem;
+ padding: 0.5rem 1rem;
+ line-height: 1.5;
+ color: #555;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 0.25rem;
+}
+
+.custom-file-control:lang(en)::after {
+ content: "Choose file...";
+}
+
+.custom-file-control::before {
+ position: absolute;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ z-index: 6;
+ display: block;
+ height: 2.5rem;
+ padding: 0.5rem 1rem;
+ line-height: 1.5;
+ color: #555;
+ background-color: #eee;
+ border: 1px solid #ddd;
+ border-radius: 0 0.25rem 0.25rem 0;
+}
+
+.custom-file-control:lang(en)::before {
+ content: "Browse";
+}
+
+.nav {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: inline-block;
+}
+
+.nav-link:focus, .nav-link:hover {
+ text-decoration: none;
+}
+
+.nav-link.disabled {
+ color: #818a91;
+}
+
+.nav-link.disabled, .nav-link.disabled:focus, .nav-link.disabled:hover {
+ color: #818a91;
+ cursor: not-allowed;
+ background-color: transparent;
+}
+
+.nav-inline .nav-item {
+ display: inline-block;
+}
+
+.nav-inline .nav-item + .nav-item,
+.nav-inline .nav-link + .nav-link {
+ margin-left: 1rem;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.nav-tabs .nav-item {
+ float: left;
+ margin-bottom: -1px;
+}
+
+.nav-tabs .nav-item + .nav-item {
+ margin-left: 0.2rem;
+}
+
+.nav-tabs .nav-link {
+ display: block;
+ padding: 0.5em 1em;
+ border: 1px solid transparent;
+ border-top-right-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
+ border-color: #eceeef #eceeef #ddd;
+}
+
+.nav-tabs .nav-link.disabled, .nav-tabs .nav-link.disabled:focus, .nav-tabs .nav-link.disabled:hover {
+ color: #818a91;
+ background-color: transparent;
+ border-color: transparent;
+}
+
+.nav-tabs .nav-link.active, .nav-tabs .nav-link.active:focus, .nav-tabs .nav-link.active:hover,
+.nav-tabs .nav-item.open .nav-link,
+.nav-tabs .nav-item.open .nav-link:focus,
+.nav-tabs .nav-item.open .nav-link:hover {
+ color: #55595c;
+ background-color: #fff;
+ border-color: #ddd #ddd transparent;
+}
+
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.nav-pills::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.nav-pills .nav-item {
+ float: left;
+}
+
+.nav-pills .nav-item + .nav-item {
+ margin-left: 0.2rem;
+}
+
+.nav-pills .nav-link {
+ display: block;
+ padding: 0.5em 1em;
+ border-radius: 0.25rem;
+}
+
+.nav-pills .nav-link.active, .nav-pills .nav-link.active:focus, .nav-pills .nav-link.active:hover,
+.nav-pills .nav-item.open .nav-link,
+.nav-pills .nav-item.open .nav-link:focus,
+.nav-pills .nav-item.open .nav-link:hover {
+ color: #fff;
+ cursor: default;
+ background-color: #0275d8;
+}
+
+.nav-stacked .nav-item {
+ display: block;
+ float: none;
+}
+
+.nav-stacked .nav-item + .nav-item {
+ margin-top: 0.2rem;
+ margin-left: 0;
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+
+.tab-content > .active {
+ display: block;
+}
+
+.navbar {
+ position: relative;
+ padding: 0.5rem 1rem;
+}
+
+.navbar::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+@media (min-width: 544px) {
+ .navbar {
+ border-radius: 0.25rem;
+ }
+}
+
+.navbar-full {
+ z-index: 1000;
+}
+
+@media (min-width: 544px) {
+ .navbar-full {
+ border-radius: 0;
+ }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+@media (min-width: 544px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+
+.navbar-fixed-top {
+ top: 0;
+}
+
+.navbar-fixed-bottom {
+ bottom: 0;
+}
+
+.navbar-sticky-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1030;
+ width: 100%;
+}
+
+@media (min-width: 544px) {
+ .navbar-sticky-top {
+ border-radius: 0;
+ }
+}
+
+.navbar-brand {
+ float: left;
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ margin-right: 1rem;
+ font-size: 1.25rem;
+}
+
+.navbar-brand:focus, .navbar-brand:hover {
+ text-decoration: none;
+}
+
+.navbar-brand > img {
+ display: block;
+}
+
+.navbar-divider {
+ float: left;
+ width: 1px;
+ padding-top: .425rem;
+ padding-bottom: .425rem;
+ margin-right: 1rem;
+ margin-left: 1rem;
+ overflow: hidden;
+}
+
+.navbar-divider::before {
+ content: "\00a0";
+}
+
+.navbar-toggler {
+ padding: .5rem .75rem;
+ font-size: 1.25rem;
+ line-height: 1;
+ background: none;
+ border: 1px solid transparent;
+ border-radius: 0.25rem;
+}
+
+.navbar-toggler:focus, .navbar-toggler:hover {
+ text-decoration: none;
+}
+
+.navbar-nav .nav-item {
+ float: left;
+}
+
+.navbar-nav .nav-link {
+ display: block;
+ padding-top: .425rem;
+ padding-bottom: .425rem;
+}
+
+.navbar-nav .nav-link + .nav-link {
+ margin-left: 1rem;
+}
+
+.navbar-nav .nav-item + .nav-item {
+ margin-left: 1rem;
+}
+
+.navbar-light .navbar-brand {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.navbar-light .navbar-nav .open > .nav-link, .navbar-light .navbar-nav .open > .nav-link:focus, .navbar-light .navbar-nav .open > .nav-link:hover,
+.navbar-light .navbar-nav .active > .nav-link,
+.navbar-light .navbar-nav .active > .nav-link:focus,
+.navbar-light .navbar-nav .active > .nav-link:hover,
+.navbar-light .navbar-nav .nav-link.open,
+.navbar-light .navbar-nav .nav-link.open:focus,
+.navbar-light .navbar-nav .nav-link.open:hover,
+.navbar-light .navbar-nav .nav-link.active,
+.navbar-light .navbar-nav .nav-link.active:focus,
+.navbar-light .navbar-nav .nav-link.active:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.navbar-light .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.navbar-dark .navbar-brand {
+ color: white;
+}
+
+.navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {
+ color: white;
+}
+
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
+ color: rgba(255, 255, 255, 0.75);
+}
+
+.navbar-dark .navbar-nav .open > .nav-link, .navbar-dark .navbar-nav .open > .nav-link:focus, .navbar-dark .navbar-nav .open > .nav-link:hover,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link:focus,
+.navbar-dark .navbar-nav .active > .nav-link:hover,
+.navbar-dark .navbar-nav .nav-link.open,
+.navbar-dark .navbar-nav .nav-link.open:focus,
+.navbar-dark .navbar-nav .nav-link.open:hover,
+.navbar-dark .navbar-nav .nav-link.active,
+.navbar-dark .navbar-nav .nav-link.active:focus,
+.navbar-dark .navbar-nav .nav-link.active:hover {
+ color: white;
+}
+
+.navbar-dark .navbar-divider {
+ background-color: rgba(255, 255, 255, 0.075);
+}
+
+.navbar-toggleable-xs::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+@media (max-width: 543px) {
+ .navbar-toggleable-xs .navbar-nav .nav-item {
+ float: none;
+ margin-left: 0;
+ }
+}
+
+@media (min-width: 544px) {
+ .navbar-toggleable-xs {
+ display: block !important;
+ }
+}
+
+.navbar-toggleable-sm::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+@media (max-width: 767px) {
+ .navbar-toggleable-sm .navbar-nav .nav-item {
+ float: none;
+ margin-left: 0;
+ }
+}
+
+@media (min-width: 768px) {
+ .navbar-toggleable-sm {
+ display: block !important;
+ }
+}
+
+.navbar-toggleable-md::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+@media (max-width: 991px) {
+ .navbar-toggleable-md .navbar-nav .nav-item {
+ float: none;
+ margin-left: 0;
+ }
+}
+
+@media (min-width: 992px) {
+ .navbar-toggleable-md {
+ display: block !important;
+ }
+}
+
+.card {
+ position: relative;
+ display: block;
+ margin-bottom: 0.75rem;
+ background-color: #fff;
+ border-radius: 0.25rem;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-block {
+ padding: 1.25rem;
+}
+
+.card-block::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.card-title {
+ margin-bottom: 0.75rem;
+}
+
+.card-subtitle {
+ margin-top: -0.375rem;
+ margin-bottom: 0;
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link:hover {
+ text-decoration: none;
+}
+
+.card-link + .card-link {
+ margin-left: 1.25rem;
+}
+
+.card > .list-group:first-child .list-group-item:first-child {
+ border-top-right-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.card > .list-group:last-child .list-group-item:last-child {
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+}
+
+.card-header {
+ padding: 0.75rem 1.25rem;
+ background-color: #f5f5f5;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-header::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.card-header:first-child {
+ border-radius: 0.25rem 0.25rem 0 0;
+}
+
+.card-footer {
+ padding: 0.75rem 1.25rem;
+ background-color: #f5f5f5;
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-footer::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.card-footer:last-child {
+ border-radius: 0 0 0.25rem 0.25rem;
+}
+
+.card-header-tabs {
+ margin-right: -0.625rem;
+ margin-bottom: -0.75rem;
+ margin-left: -0.625rem;
+ border-bottom: 0;
+}
+
+.card-header-pills {
+ margin-right: -0.625rem;
+ margin-left: -0.625rem;
+}
+
+.card-primary {
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.card-primary .card-header,
+.card-primary .card-footer {
+ background-color: transparent;
+}
+
+.card-success {
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.card-success .card-header,
+.card-success .card-footer {
+ background-color: transparent;
+}
+
+.card-info {
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.card-info .card-header,
+.card-info .card-footer {
+ background-color: transparent;
+}
+
+.card-warning {
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.card-warning .card-header,
+.card-warning .card-footer {
+ background-color: transparent;
+}
+
+.card-danger {
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.card-danger .card-header,
+.card-danger .card-footer {
+ background-color: transparent;
+}
+
+.card-outline-primary {
+ background-color: transparent;
+ border-color: #0275d8;
+}
+
+.card-outline-secondary {
+ background-color: transparent;
+ border-color: #ccc;
+}
+
+.card-outline-info {
+ background-color: transparent;
+ border-color: #5bc0de;
+}
+
+.card-outline-success {
+ background-color: transparent;
+ border-color: #5cb85c;
+}
+
+.card-outline-warning {
+ background-color: transparent;
+ border-color: #f0ad4e;
+}
+
+.card-outline-danger {
+ background-color: transparent;
+ border-color: #d9534f;
+}
+
+.card-inverse .card-header,
+.card-inverse .card-footer {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.card-inverse .card-header,
+.card-inverse .card-footer,
+.card-inverse .card-title,
+.card-inverse .card-blockquote {
+ color: #fff;
+}
+
+.card-inverse .card-link,
+.card-inverse .card-text,
+.card-inverse .card-subtitle,
+.card-inverse .card-blockquote .blockquote-footer {
+ color: rgba(255, 255, 255, 0.65);
+}
+
+.card-inverse .card-link:focus, .card-inverse .card-link:hover {
+ color: #fff;
+}
+
+.card-blockquote {
+ padding: 0;
+ margin-bottom: 0;
+ border-left: 0;
+}
+
+.card-img {
+ border-radius: 0.25rem;
+}
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1.25rem;
+}
+
+.card-img-top {
+ border-top-right-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.card-img-bottom {
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+}
+
+@media (min-width: 544px) {
+ .card-deck {
+ display: table;
+ width: 100%;
+ margin-bottom: 0.75rem;
+ table-layout: fixed;
+ border-spacing: 1.25rem 0;
+ }
+ .card-deck .card {
+ display: table-cell;
+ margin-bottom: 0;
+ vertical-align: top;
+ }
+ .card-deck-wrapper {
+ margin-right: -1.25rem;
+ margin-left: -1.25rem;
+ }
+}
+
+@media (min-width: 544px) {
+ .card-group {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ }
+ .card-group .card {
+ display: table-cell;
+ vertical-align: top;
+ }
+ .card-group .card + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+ .card-group .card:first-child {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .card-group .card:first-child .card-img-top {
+ border-top-right-radius: 0;
+ }
+ .card-group .card:first-child .card-img-bottom {
+ border-bottom-right-radius: 0;
+ }
+ .card-group .card:last-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ }
+ .card-group .card:last-child .card-img-top {
+ border-top-left-radius: 0;
+ }
+ .card-group .card:last-child .card-img-bottom {
+ border-bottom-left-radius: 0;
+ }
+ .card-group .card:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ .card-group .card:not(:first-child):not(:last-child) .card-img-top,
+ .card-group .card:not(:first-child):not(:last-child) .card-img-bottom {
+ border-radius: 0;
+ }
+}
+
+@media (min-width: 544px) {
+ .card-columns {
+ -webkit-column-count: 3;
+ -moz-column-count: 3;
+ column-count: 3;
+ -webkit-column-gap: 1.25rem;
+ -moz-column-gap: 1.25rem;
+ column-gap: 1.25rem;
+ }
+ .card-columns .card {
+ width: 100%;
+ }
+}
+
+.breadcrumb {
+ padding: 0.75rem 1rem;
+ margin-bottom: 1rem;
+ list-style: none;
+ background-color: #eceeef;
+ border-radius: 0.25rem;
+}
+
+.breadcrumb::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.breadcrumb-item {
+ float: left;
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+ display: inline-block;
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ color: #818a91;
+ content: "/";
+}
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+ text-decoration: underline;
+}
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+ text-decoration: none;
+}
+
+.breadcrumb-item.active {
+ color: #818a91;
+}
+
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border-radius: 0.25rem;
+}
+
+.page-item {
+ display: inline;
+}
+
+.page-item:first-child .page-link {
+ margin-left: 0;
+ border-bottom-left-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.page-item:last-child .page-link {
+ border-bottom-right-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+
+.page-item.active .page-link, .page-item.active .page-link:focus, .page-item.active .page-link:hover {
+ z-index: 2;
+ color: #fff;
+ cursor: default;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.page-item.disabled .page-link, .page-item.disabled .page-link:focus, .page-item.disabled .page-link:hover {
+ color: #818a91;
+ pointer-events: none;
+ cursor: not-allowed;
+ background-color: #fff;
+ border-color: #ddd;
+}
+
+.page-link {
+ position: relative;
+ float: left;
+ padding: 0.5rem 0.75rem;
+ margin-left: -1px;
+ color: #0275d8;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+
+.page-link:focus, .page-link:hover {
+ color: #014c8c;
+ background-color: #eceeef;
+ border-color: #ddd;
+}
+
+.pagination-lg .page-link {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+}
+
+.pagination-lg .page-item:first-child .page-link {
+ border-bottom-left-radius: 0.3rem;
+ border-top-left-radius: 0.3rem;
+}
+
+.pagination-lg .page-item:last-child .page-link {
+ border-bottom-right-radius: 0.3rem;
+ border-top-right-radius: 0.3rem;
+}
+
+.pagination-sm .page-link {
+ padding: 0.275rem 0.75rem;
+ font-size: 0.875rem;
+}
+
+.pagination-sm .page-item:first-child .page-link {
+ border-bottom-left-radius: 0.2rem;
+ border-top-left-radius: 0.2rem;
+}
+
+.pagination-sm .page-item:last-child .page-link {
+ border-bottom-right-radius: 0.2rem;
+ border-top-right-radius: 0.2rem;
+}
+
+.tag {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25rem;
+}
+
+.tag:empty {
+ display: none;
+}
+
+.btn .tag {
+ position: relative;
+ top: -1px;
+}
+
+a.tag:focus, a.tag:hover {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.tag-pill {
+ padding-right: 0.6em;
+ padding-left: 0.6em;
+ border-radius: 10rem;
+}
+
+.tag-default {
+ background-color: #818a91;
+}
+
+.tag-default[href]:focus, .tag-default[href]:hover {
+ background-color: #687077;
+}
+
+.tag-primary {
+ background-color: #0275d8;
+}
+
+.tag-primary[href]:focus, .tag-primary[href]:hover {
+ background-color: #025aa5;
+}
+
+.tag-success {
+ background-color: #5cb85c;
+}
+
+.tag-success[href]:focus, .tag-success[href]:hover {
+ background-color: #449d44;
+}
+
+.tag-info {
+ background-color: #5bc0de;
+}
+
+.tag-info[href]:focus, .tag-info[href]:hover {
+ background-color: #31b0d5;
+}
+
+.tag-warning {
+ background-color: #f0ad4e;
+}
+
+.tag-warning[href]:focus, .tag-warning[href]:hover {
+ background-color: #ec971f;
+}
+
+.tag-danger {
+ background-color: #d9534f;
+}
+
+.tag-danger[href]:focus, .tag-danger[href]:hover {
+ background-color: #c9302c;
+}
+
+.jumbotron {
+ padding: 2rem 1rem;
+ margin-bottom: 2rem;
+ background-color: #eceeef;
+ border-radius: 0.3rem;
+}
+
+@media (min-width: 544px) {
+ .jumbotron {
+ padding: 4rem 2rem;
+ }
+}
+
+.jumbotron-hr {
+ border-top-color: #d0d5d8;
+}
+
+.jumbotron-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ border-radius: 0;
+}
+
+.alert {
+ padding: 1rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+ border-radius: 0.25rem;
+}
+
+.alert-heading {
+ color: inherit;
+}
+
+.alert-link {
+ font-weight: bold;
+}
+
+.alert-dismissible {
+ padding-right: 2rem;
+}
+
+.alert-dismissible .close {
+ position: relative;
+ top: -.125rem;
+ right: -1rem;
+ color: inherit;
+}
+
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d0e9c6;
+ color: #3c763d;
+}
+
+.alert-success hr {
+ border-top-color: #c1e2b3;
+}
+
+.alert-success .alert-link {
+ color: #2b542c;
+}
+
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bcdff1;
+ color: #31708f;
+}
+
+.alert-info hr {
+ border-top-color: #a6d5ec;
+}
+
+.alert-info .alert-link {
+ color: #245269;
+}
+
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faf2cc;
+ color: #8a6d3b;
+}
+
+.alert-warning hr {
+ border-top-color: #f7ecb5;
+}
+
+.alert-warning .alert-link {
+ color: #66512c;
+}
+
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebcccc;
+ color: #a94442;
+}
+
+.alert-danger hr {
+ border-top-color: #e4b9b9;
+}
+
+.alert-danger .alert-link {
+ color: #843534;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 1rem 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@-o-keyframes progress-bar-stripes {
+ from {
+ background-position: 1rem 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 1rem 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+.progress {
+ display: block;
+ width: 100%;
+ height: 1rem;
+ margin-bottom: 1rem;
+}
+
+.progress[value] {
+ background-color: #eee;
+ border: 0;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 0.25rem;
+}
+
+.progress[value]::-ms-fill {
+ background-color: #0074d9;
+ border: 0;
+}
+
+.progress[value]::-moz-progress-bar {
+ background-color: #0074d9;
+ border-bottom-left-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.progress[value]::-webkit-progress-value {
+ background-color: #0074d9;
+ border-bottom-left-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.progress[value="100"]::-moz-progress-bar {
+ border-bottom-right-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+
+.progress[value="100"]::-webkit-progress-value {
+ border-bottom-right-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+
+.progress[value]::-webkit-progress-bar {
+ background-color: #eee;
+ border-radius: 0.25rem;
+}
+
+base::-moz-progress-bar,
+.progress[value] {
+ background-color: #eee;
+ border-radius: 0.25rem;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress {
+ background-color: #eee;
+ border-radius: 0.25rem;
+ }
+ .progress-bar {
+ display: inline-block;
+ height: 1rem;
+ text-indent: -999rem;
+ background-color: #0074d9;
+ border-bottom-left-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+ }
+ .progress[width="100%"] {
+ border-bottom-right-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+ }
+}
+
+.progress-striped[value]::-webkit-progress-value {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ -webkit-background-size: 1rem 1rem;
+ background-size: 1rem 1rem;
+}
+
+.progress-striped[value]::-moz-progress-bar {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem;
+}
+
+.progress-striped[value]::-ms-fill {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ -webkit-background-size: 1rem 1rem;
+ background-size: 1rem 1rem;
+ }
+}
+
+.progress-animated[value]::-webkit-progress-value {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+.progress-animated[value]::-moz-progress-bar {
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-animated .progress-bar-striped {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+ }
+}
+
+.progress-success[value]::-webkit-progress-value {
+ background-color: #5cb85c;
+}
+
+.progress-success[value]::-moz-progress-bar {
+ background-color: #5cb85c;
+}
+
+.progress-success[value]::-ms-fill {
+ background-color: #5cb85c;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-success .progress-bar {
+ background-color: #5cb85c;
+ }
+}
+
+.progress-info[value]::-webkit-progress-value {
+ background-color: #5bc0de;
+}
+
+.progress-info[value]::-moz-progress-bar {
+ background-color: #5bc0de;
+}
+
+.progress-info[value]::-ms-fill {
+ background-color: #5bc0de;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-info .progress-bar {
+ background-color: #5bc0de;
+ }
+}
+
+.progress-warning[value]::-webkit-progress-value {
+ background-color: #f0ad4e;
+}
+
+.progress-warning[value]::-moz-progress-bar {
+ background-color: #f0ad4e;
+}
+
+.progress-warning[value]::-ms-fill {
+ background-color: #f0ad4e;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-warning .progress-bar {
+ background-color: #f0ad4e;
+ }
+}
+
+.progress-danger[value]::-webkit-progress-value {
+ background-color: #d9534f;
+}
+
+.progress-danger[value]::-moz-progress-bar {
+ background-color: #d9534f;
+}
+
+.progress-danger[value]::-ms-fill {
+ background-color: #d9534f;
+}
+
+@media screen and (min-width: 0\0) {
+ .progress-danger .progress-bar {
+ background-color: #d9534f;
+ }
+}
+
+.media,
+.media-body {
+ overflow: hidden;
+}
+
+.media-body {
+ width: 10000px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.media-middle {
+ vertical-align: middle;
+}
+
+.media-bottom {
+ vertical-align: bottom;
+}
+
+.media-object {
+ display: block;
+}
+
+.media-object.img-thumbnail {
+ max-width: none;
+}
+
+.media-right {
+ padding-left: 10px;
+}
+
+.media-left {
+ padding-right: 10px;
+}
+
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-group {
+ padding-left: 0;
+ margin-bottom: 0;
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.75rem 1.25rem;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+
+.list-group-item:first-child {
+ border-top-right-radius: 0.25rem;
+ border-top-left-radius: 0.25rem;
+}
+
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+}
+
+.list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover {
+ color: #818a91;
+ cursor: not-allowed;
+ background-color: #eceeef;
+}
+
+.list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading {
+ color: inherit;
+}
+
+.list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text {
+ color: #818a91;
+}
+
+.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover {
+ z-index: 2;
+ color: #fff;
+ text-decoration: none;
+ background-color: #0275d8;
+ border-color: #0275d8;
+}
+
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > .small {
+ color: inherit;
+}
+
+.list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text {
+ color: #a8d6fe;
+}
+
+.list-group-flush .list-group-item {
+ border-radius: 0;
+}
+
+.list-group-item-action {
+ width: 100%;
+ color: #555;
+ text-align: inherit;
+}
+
+.list-group-item-action .list-group-item-heading {
+ color: #333;
+}
+
+.list-group-item-action:focus, .list-group-item-action:hover {
+ color: #555;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #3c763d;
+}
+
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-success:focus, a.list-group-item-success:hover,
+button.list-group-item-success:focus,
+button.list-group-item-success:hover {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+
+a.list-group-item-success.active, a.list-group-item-success.active:focus, a.list-group-item-success.active:hover,
+button.list-group-item-success.active,
+button.list-group-item-success.active:focus,
+button.list-group-item-success.active:hover {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #31708f;
+}
+
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-info:focus, a.list-group-item-info:hover,
+button.list-group-item-info:focus,
+button.list-group-item-info:hover {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+
+a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover,
+button.list-group-item-info.active,
+button.list-group-item-info.active:focus,
+button.list-group-item-info.active:hover {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #8a6d3b;
+}
+
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-warning:focus, a.list-group-item-warning:hover,
+button.list-group-item-warning:focus,
+button.list-group-item-warning:hover {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+
+a.list-group-item-warning.active, a.list-group-item-warning.active:focus, a.list-group-item-warning.active:hover,
+button.list-group-item-warning.active,
+button.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:hover {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #a94442;
+}
+
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-danger:focus, a.list-group-item-danger:hover,
+button.list-group-item-danger:focus,
+button.list-group-item-danger:hover {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+
+a.list-group-item-danger.active, a.list-group-item-danger.active:focus, a.list-group-item-danger.active:hover,
+button.list-group-item-danger.active,
+button.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:hover {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+}
+
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
+
+.embed-responsive-21by9 {
+ padding-bottom: 42.857143%;
+}
+
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
+
+.embed-responsive-1by1 {
+ padding-bottom: 100%;
+}
+
+.close {
+ float: right;
+ font-size: 1.5rem;
+ font-weight: bold;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: .2;
+}
+
+.close:focus, .close:hover {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: .5;
+}
+
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
+
+.modal-open {
+ overflow: hidden;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ overflow: hidden;
+ outline: 0;
+ -webkit-overflow-scrolling: touch;
+}
+
+.modal.fade .modal-dialog {
+ -webkit-transition: -webkit-transform .3s ease-out;
+ transition: -webkit-transform .3s ease-out;
+ -o-transition: -o-transform .3s ease-out;
+ transition: transform .3s ease-out;
+ transition: transform .3s ease-out, -webkit-transform .3s ease-out, -o-transform .3s ease-out;
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+}
+
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0;
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+
+.modal-backdrop.fade {
+ opacity: 0;
+}
+
+.modal-backdrop.in {
+ opacity: 0.5;
+}
+
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+}
+
+.modal-header::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.modal-header .close {
+ margin-top: -2px;
+}
+
+.modal-title {
+ margin: 0;
+ line-height: 1.5;
+}
+
+.modal-body {
+ position: relative;
+ padding: 15px;
+}
+
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+
+.modal-footer::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+@media (min-width: 544px) {
+ .modal-dialog {
+ max-width: 600px;
+ margin: 30px auto;
+ }
+ .modal-sm {
+ max-width: 300px;
+ }
+}
+
+@media (min-width: 992px) {
+ .modal-lg {
+ max-width: 900px;
+ }
+}
+
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0;
+}
+
+.tooltip.in {
+ opacity: 0.9;
+}
+
+.tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom {
+ padding: 5px 0;
+ margin-top: -3px;
+}
+
+.tooltip.tooltip-top .tooltip-arrow, .tooltip.bs-tether-element-attached-bottom .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left {
+ padding: 0 5px;
+ margin-left: 3px;
+}
+
+.tooltip.tooltip-right .tooltip-arrow, .tooltip.bs-tether-element-attached-left .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+
+.tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top {
+ padding: 5px 0;
+ margin-top: 3px;
+}
+
+.tooltip.tooltip-bottom .tooltip-arrow, .tooltip.bs-tether-element-attached-top .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right {
+ padding: 0 5px;
+ margin-left: -3px;
+}
+
+.tooltip.tooltip-left .tooltip-arrow, .tooltip.bs-tether-element-attached-right .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem;
+}
+
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: block;
+ max-width: 276px;
+ padding: 1px;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+}
+
+.popover.popover-top, .popover.bs-tether-element-attached-bottom {
+ margin-top: -10px;
+}
+
+.popover.popover-top .popover-arrow, .popover.bs-tether-element-attached-bottom .popover-arrow {
+ bottom: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ border-bottom-width: 0;
+}
+
+.popover.popover-top .popover-arrow::after, .popover.bs-tether-element-attached-bottom .popover-arrow::after {
+ bottom: 1px;
+ margin-left: -10px;
+ content: "";
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+
+.popover.popover-right, .popover.bs-tether-element-attached-left {
+ margin-left: 10px;
+}
+
+.popover.popover-right .popover-arrow, .popover.bs-tether-element-attached-left .popover-arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-right-color: rgba(0, 0, 0, 0.25);
+ border-left-width: 0;
+}
+
+.popover.popover-right .popover-arrow::after, .popover.bs-tether-element-attached-left .popover-arrow::after {
+ bottom: -10px;
+ left: 1px;
+ content: "";
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+
+.popover.popover-bottom, .popover.bs-tether-element-attached-top {
+ margin-top: 10px;
+}
+
+.popover.popover-bottom .popover-arrow, .popover.bs-tether-element-attached-top .popover-arrow {
+ top: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.popover-bottom .popover-arrow::after, .popover.bs-tether-element-attached-top .popover-arrow::after {
+ top: 1px;
+ margin-left: -10px;
+ content: "";
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.popover.popover-left, .popover.bs-tether-element-attached-right {
+ margin-left: -10px;
+}
+
+.popover.popover-left .popover-arrow, .popover.bs-tether-element-attached-right .popover-arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.popover-left .popover-arrow::after, .popover.bs-tether-element-attached-right .popover-arrow::after {
+ right: 1px;
+ bottom: -10px;
+ content: "";
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+
+.popover-title {
+ padding: 8px 14px;
+ margin: 0;
+ font-size: 1rem;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 0.2375rem 0.2375rem 0 0;
+}
+
+.popover-title:empty {
+ display: none;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+.popover-arrow, .popover-arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover-arrow {
+ border-width: 11px;
+}
+
+.popover-arrow::after {
+ content: "";
+ border-width: 10px;
+}
+
+.carousel {
+ position: relative;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+
+.carousel-inner > .carousel-item {
+ position: relative;
+ display: none;
+ -webkit-transition: .6s ease-in-out left;
+ -o-transition: .6s ease-in-out left;
+ transition: .6s ease-in-out left;
+}
+
+.carousel-inner > .carousel-item > img,
+.carousel-inner > .carousel-item > a > img {
+ line-height: 1;
+}
+
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .carousel-item {
+ -webkit-transition: -webkit-transform .6s ease-in-out;
+ transition: -webkit-transform .6s ease-in-out;
+ -o-transition: -o-transform .6s ease-in-out;
+ transition: transform .6s ease-in-out;
+ transition: transform .6s ease-in-out, -webkit-transform .6s ease-in-out, -o-transform .6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
+ }
+ .carousel-inner > .carousel-item.next, .carousel-inner > .carousel-item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ .carousel-inner > .carousel-item.prev, .carousel-inner > .carousel-item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ .carousel-inner > .carousel-item.next.left, .carousel-inner > .carousel-item.prev.right, .carousel-inner > .carousel-item.active {
+ left: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+
+.carousel-inner > .active {
+ left: 0;
+}
+
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+
+.carousel-inner > .next {
+ left: 100%;
+}
+
+.carousel-inner > .prev {
+ left: -100%;
+}
+
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+
+.carousel-inner > .active.left {
+ left: -100%;
+}
+
+.carousel-inner > .active.right {
+ left: 100%;
+}
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ opacity: 0.5;
+}
+
+.carousel-control.left {
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+
+.carousel-control.right {
+ right: 0;
+ left: auto;
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+
+.carousel-control:focus, .carousel-control:hover {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ opacity: .9;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ font-family: serif;
+ line-height: 1;
+}
+
+.carousel-control .icon-prev {
+ left: 50%;
+ margin-left: -10px;
+}
+
+.carousel-control .icon-next {
+ right: 50%;
+ margin-right: -10px;
+}
+
+.carousel-control .icon-prev::before {
+ content: "\2039";
+}
+
+.carousel-control .icon-next::before {
+ content: "\203a";
+}
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ padding-left: 0;
+ margin-left: -30%;
+ text-align: center;
+ list-style: none;
+}
+
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: transparent;
+ border: 1px solid #fff;
+ border-radius: 10px;
+}
+
+.carousel-indicators .active {
+ width: 12px;
+ height: 12px;
+ margin: 0;
+ background-color: #fff;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+
+.carousel-caption .btn {
+ text-shadow: none;
+}
+
+@media (min-width: 544px) {
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+ .carousel-control .icon-prev {
+ margin-left: -15px;
+ }
+ .carousel-control .icon-next {
+ margin-right: -15px;
+ }
+ .carousel-caption {
+ right: 20%;
+ left: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+
+.bg-faded {
+ background-color: #f7f7f9;
+}
+
+.bg-primary {
+ color: #fff !important;
+ background-color: #0275d8 !important;
+}
+
+a.bg-primary:focus, a.bg-primary:hover {
+ background-color: #025aa5 !important;
+}
+
+.bg-success {
+ color: #fff !important;
+ background-color: #5cb85c !important;
+}
+
+a.bg-success:focus, a.bg-success:hover {
+ background-color: #449d44 !important;
+}
+
+.bg-info {
+ color: #fff !important;
+ background-color: #5bc0de !important;
+}
+
+a.bg-info:focus, a.bg-info:hover {
+ background-color: #31b0d5 !important;
+}
+
+.bg-warning {
+ color: #fff !important;
+ background-color: #f0ad4e !important;
+}
+
+a.bg-warning:focus, a.bg-warning:hover {
+ background-color: #ec971f !important;
+}
+
+.bg-danger {
+ color: #fff !important;
+ background-color: #d9534f !important;
+}
+
+a.bg-danger:focus, a.bg-danger:hover {
+ background-color: #c9302c !important;
+}
+
+.bg-inverse {
+ color: #fff !important;
+ background-color: #373a3c !important;
+}
+
+a.bg-inverse:focus, a.bg-inverse:hover {
+ background-color: #1f2021 !important;
+}
+
+.clearfix::after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.d-block {
+ display: block !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.pull-xs-left {
+ float: left !important;
+}
+
+.pull-xs-right {
+ float: right !important;
+}
+
+.pull-xs-none {
+ float: none !important;
+}
+
+@media (min-width: 544px) {
+ .pull-sm-left {
+ float: left !important;
+ }
+ .pull-sm-right {
+ float: right !important;
+ }
+ .pull-sm-none {
+ float: none !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .pull-md-left {
+ float: left !important;
+ }
+ .pull-md-right {
+ float: right !important;
+ }
+ .pull-md-none {
+ float: none !important;
+ }
+}
+
+@media (min-width: 992px) {
+ .pull-lg-left {
+ float: left !important;
+ }
+ .pull-lg-right {
+ float: right !important;
+ }
+ .pull-lg-none {
+ float: none !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .pull-xl-left {
+ float: left !important;
+ }
+ .pull-xl-right {
+ float: right !important;
+ }
+ .pull-xl-none {
+ float: none !important;
+ }
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.m-x-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+
+.m-a-0 {
+ margin: 0 0 !important;
+}
+
+.m-t-0 {
+ margin-top: 0 !important;
+}
+
+.m-r-0 {
+ margin-right: 0 !important;
+}
+
+.m-b-0 {
+ margin-bottom: 0 !important;
+}
+
+.m-l-0 {
+ margin-left: 0 !important;
+}
+
+.m-x-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+
+.m-y-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+
+.m-a-1 {
+ margin: 1rem 1rem !important;
+}
+
+.m-t-1 {
+ margin-top: 1rem !important;
+}
+
+.m-r-1 {
+ margin-right: 1rem !important;
+}
+
+.m-b-1 {
+ margin-bottom: 1rem !important;
+}
+
+.m-l-1 {
+ margin-left: 1rem !important;
+}
+
+.m-x-1 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+
+.m-y-1 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+
+.m-a-2 {
+ margin: 1.5rem 1.5rem !important;
+}
+
+.m-t-2 {
+ margin-top: 1.5rem !important;
+}
+
+.m-r-2 {
+ margin-right: 1.5rem !important;
+}
+
+.m-b-2 {
+ margin-bottom: 1.5rem !important;
+}
+
+.m-l-2 {
+ margin-left: 1.5rem !important;
+}
+
+.m-x-2 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+
+.m-y-2 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+
+.m-a-3 {
+ margin: 3rem 3rem !important;
+}
+
+.m-t-3 {
+ margin-top: 3rem !important;
+}
+
+.m-r-3 {
+ margin-right: 3rem !important;
+}
+
+.m-b-3 {
+ margin-bottom: 3rem !important;
+}
+
+.m-l-3 {
+ margin-left: 3rem !important;
+}
+
+.m-x-3 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+
+.m-y-3 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+
+.p-a-0 {
+ padding: 0 0 !important;
+}
+
+.p-t-0 {
+ padding-top: 0 !important;
+}
+
+.p-r-0 {
+ padding-right: 0 !important;
+}
+
+.p-b-0 {
+ padding-bottom: 0 !important;
+}
+
+.p-l-0 {
+ padding-left: 0 !important;
+}
+
+.p-x-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+
+.p-y-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.p-a-1 {
+ padding: 1rem 1rem !important;
+}
+
+.p-t-1 {
+ padding-top: 1rem !important;
+}
+
+.p-r-1 {
+ padding-right: 1rem !important;
+}
+
+.p-b-1 {
+ padding-bottom: 1rem !important;
+}
+
+.p-l-1 {
+ padding-left: 1rem !important;
+}
+
+.p-x-1 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+
+.p-y-1 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+
+.p-a-2 {
+ padding: 1.5rem 1.5rem !important;
+}
+
+.p-t-2 {
+ padding-top: 1.5rem !important;
+}
+
+.p-r-2 {
+ padding-right: 1.5rem !important;
+}
+
+.p-b-2 {
+ padding-bottom: 1.5rem !important;
+}
+
+.p-l-2 {
+ padding-left: 1.5rem !important;
+}
+
+.p-x-2 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+
+.p-y-2 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+
+.p-a-3 {
+ padding: 3rem 3rem !important;
+}
+
+.p-t-3 {
+ padding-top: 3rem !important;
+}
+
+.p-r-3 {
+ padding-right: 3rem !important;
+}
+
+.p-b-3 {
+ padding-bottom: 3rem !important;
+}
+
+.p-l-3 {
+ padding-left: 3rem !important;
+}
+
+.p-x-3 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+
+.p-y-3 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+
+.pos-f-t {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.text-justify {
+ text-align: justify !important;
+}
+
+.text-nowrap {
+ white-space: nowrap !important;
+}
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.text-xs-left {
+ text-align: left !important;
+}
+
+.text-xs-right {
+ text-align: right !important;
+}
+
+.text-xs-center {
+ text-align: center !important;
+}
+
+@media (min-width: 544px) {
+ .text-sm-left {
+ text-align: left !important;
+ }
+ .text-sm-right {
+ text-align: right !important;
+ }
+ .text-sm-center {
+ text-align: center !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .text-md-left {
+ text-align: left !important;
+ }
+ .text-md-right {
+ text-align: right !important;
+ }
+ .text-md-center {
+ text-align: center !important;
+ }
+}
+
+@media (min-width: 992px) {
+ .text-lg-left {
+ text-align: left !important;
+ }
+ .text-lg-right {
+ text-align: right !important;
+ }
+ .text-lg-center {
+ text-align: center !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .text-xl-left {
+ text-align: left !important;
+ }
+ .text-xl-right {
+ text-align: right !important;
+ }
+ .text-xl-center {
+ text-align: center !important;
+ }
+}
+
+.text-lowercase {
+ text-transform: lowercase !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
+
+.text-capitalize {
+ text-transform: capitalize !important;
+}
+
+.font-weight-normal {
+ font-weight: normal;
+}
+
+.font-weight-bold {
+ font-weight: bold;
+}
+
+.font-italic {
+ font-style: italic;
+}
+
+.text-muted {
+ color: #818a91 !important;
+}
+
+a.text-muted:focus, a.text-muted:hover {
+ color: #687077 !important;
+}
+
+.text-primary {
+ color: #0275d8 !important;
+}
+
+a.text-primary:focus, a.text-primary:hover {
+ color: #025aa5 !important;
+}
+
+.text-success {
+ color: #5cb85c !important;
+}
+
+a.text-success:focus, a.text-success:hover {
+ color: #449d44 !important;
+}
+
+.text-info {
+ color: #5bc0de !important;
+}
+
+a.text-info:focus, a.text-info:hover {
+ color: #31b0d5 !important;
+}
+
+.text-warning {
+ color: #f0ad4e !important;
+}
+
+a.text-warning:focus, a.text-warning:hover {
+ color: #ec971f !important;
+}
+
+.text-danger {
+ color: #d9534f !important;
+}
+
+a.text-danger:focus, a.text-danger:hover {
+ color: #c9302c !important;
+}
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+.hidden-xs-up {
+ display: none !important;
+}
+
+@media (max-width: 543px) {
+ .hidden-xs-down {
+ display: none !important;
+ }
+}
+
+@media (min-width: 544px) {
+ .hidden-sm-up {
+ display: none !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .hidden-sm-down {
+ display: none !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .hidden-md-up {
+ display: none !important;
+ }
+}
+
+@media (max-width: 991px) {
+ .hidden-md-down {
+ display: none !important;
+ }
+}
+
+@media (min-width: 992px) {
+ .hidden-lg-up {
+ display: none !important;
+ }
+}
+
+@media (max-width: 1199px) {
+ .hidden-lg-down {
+ display: none !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-xl-up {
+ display: none !important;
+ }
+}
+
+.hidden-xl-down {
+ display: none !important;
+}
+
+.visible-print-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+
+.visible-print-inline {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+
+.visible-print-inline-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
+
+@-webkit-keyframes swap-right {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ -o-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-o-keyframes swap-right {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ -o-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes swap-right {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ -o-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes swap-left {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ -o-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-o-keyframes swap-left {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ -o-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes swap-left {
+ 0% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+ 50% {
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ -o-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ -o-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes rotate {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 25% {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ }
+ 50% {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ }
+ 75% {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ -o-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-o-keyframes rotate {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 25% {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ }
+ 50% {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ }
+ 75% {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ -o-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes rotate {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 25% {
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ }
+ 50% {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ }
+ 75% {
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ -o-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-o-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+.loader {
+ width: 40px;
+ height: 40px;
+ position: relative;
+ -webkit-animation-name: rotate;
+ -o-animation-name: rotate;
+ animation-name: rotate;
+ -webkit-animation-duration: 2s;
+ -o-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ -o-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+.loader .circle {
+ width: 20px;
+ height: 20px;
+ border-radius: 10px;
+ position: absolute;
+ border: 1px solid white;
+ -webkit-animation-duration: 2s;
+ -o-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-duration: infinite;
+ -o-animation-duration: infinite;
+ animation-duration: infinite;
+ -webkit-transition-property: all;
+ -o-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 4s;
+ -o-transition-duration: 4s;
+ transition-duration: 4s;
+ -webkit-transition-timing-function: cubic-bezier(0.6, 0.6, 0.7, 1.5);
+ -o-transition-timing-function: cubic-bezier(0.6, 0.6, 0.7, 1.5);
+ transition-timing-function: cubic-bezier(0.6, 0.6, 0.7, 1.5);
+ -webkit-transition-delay: 0;
+ -o-transition-delay: 0;
+ transition-delay: 0;
+}
+
+.loader .circle:first-child {
+ top: 0;
+ left: 0;
+ background: #FF4906;
+ -webkit-animation-name: swap-right;
+ -o-animation-name: swap-right;
+ animation-name: swap-right;
+}
+
+.loader .circle:nth-child(2) {
+ top: 0;
+ right: 0;
+ background: #0088E4;
+ -webkit-animation-name: swap-left;
+ -o-animation-name: swap-left;
+ animation-name: swap-left;
+}
+
+.loader .circle:nth-child(3) {
+ right: 0;
+ bottom: 0;
+ background: #20D3A3;
+ -webkit-animation-name: swap-left;
+ -o-animation-name: swap-left;
+ animation-name: swap-left;
+}
+
+.loader .circle:last-child {
+ left: 0;
+ bottom: 0;
+ background: #893BC4;
+ -webkit-animation-name: swap-right;
+ -o-animation-name: swap-right;
+ animation-name: swap-right;
+}
+
+.loader.inline {
+ width: 17px;
+ height: 17px;
+ position: relative;
+ -webkit-animation-name: none;
+ -o-animation-name: none;
+ animation-name: none;
+}
+
+.loader.inline .circle {
+ width: 8px;
+ height: 8px;
+ position: absolute;
+ background: rgba(0, 0, 0, 0.6);
+ border-radius: 5px;
+ border: 0;
+ -webkit-animation-name: fade;
+ -o-animation-name: fade;
+ animation-name: fade;
+ -webkit-animation-duration: 2s;
+ -o-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ -o-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+.loader.inline .circle:first-child {
+ top: 0;
+ left: 0;
+}
+
+.loader.inline .circle:nth-child(2) {
+ top: 0;
+ right: 0;
+ -webkit-animation-delay: 0.5s;
+ -o-animation-delay: 0.5s;
+ animation-delay: 0.5s;
+}
+
+.loader.inline .circle:nth-child(3) {
+ bottom: 0;
+ right: 0;
+ -webkit-animation-delay: 1s;
+ -o-animation-delay: 1s;
+ animation-delay: 1s;
+}
+
+.loader.inline .circle:last-child {
+ bottom: 0;
+ left: 0;
+ -webkit-animation-delay: 1.5s;
+ -o-animation-delay: 1.5s;
+ animation-delay: 1.5s;
+}
+
+h6 {
+ color: #3F3F3F;
+ font-size: 0.7em;
+ font-weight: 200;
+ text-transform: uppercase;
+ letter-spacing: 0.07em;
+ opacity: 0.5;
+}
+
+.uppercase {
+ text-transform: uppercase;
+}
+
+[data-icon]:before {
+ font-family: "iconfont" !important;
+ content: attr(data-icon);
+ font-style: normal !important;
+ font-weight: normal !important;
+ font-variant: normal !important;
+ text-transform: none !important;
+ speak: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+[class^="icon-"]:before,
+[class*=" icon-"]:before {
+ font-family: "iconfont" !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ font-variant: normal !important;
+ text-transform: none !important;
+ speak: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-circle:before {
+ content: "\69";
+ margin-right: 25px;
+}
+
+.sidedrawer {
+ background: #3F3F3F;
+ position: absolute;
+ top: 70px;
+ bottom: 0px;
+ left: -84%;
+ z-index: 5000;
+ border-right: 1px solid #343434;
+ text-transform: uppercase;
+ padding: 0;
+ -webkit-transition: left 200ms cubic-bezier(0, 0, 0.58, 1);
+ -o-transition: left 200ms cubic-bezier(0, 0, 0.58, 1);
+ transition: left 200ms cubic-bezier(0, 0, 0.58, 1);
+ overflow: hidden;
+}
+
+.sidedrawer.show {
+ left: 0;
+}
+
+.sidedrawer .child {
+ overflow-y: scroll;
+ height: 100%;
+ -ms-overflow-style: none;
+}
+
+.sidedrawer .child::-webkit-scrollbar {
+ display: none;
+}
+
+.sidedrawer .border_bottom {
+ border-bottom: 1px solid #999999;
+ margin-bottom: 5%;
+ padding-bottom: 9%;
+}
+
+.sidedrawer .user {
+ line-height: 22px;
+ padding: 30px 7%;
+ background: #494949;
+ border-bottom: 1px solid #2F2F2F;
+}
+
+.sidedrawer ul {
+ margin: 5% 0;
+ padding: 0;
+ list-style: none;
+}
+
+.sidedrawer li {
+ line-height: 22px;
+ margin: 32px 7%;
+}
+
+.sidedrawer a {
+ color: #999999;
+ text-decoration: none;
+ display: block;
+}
+
+@media (min-width: 544px) {
+ .icon-circle:before {
+ margin-right: 35px;
+ }
+ .sidedrawer li {
+ margin: 45px 7%;
+ }
+ .sidedrawer {
+ left: -42%;
+ }
+}
+
+@media (min-width: 992px) {
+ .sidedrawer {
+ left: -34%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .sidedrawer {
+ left: -25%;
+ }
+}
+
+.horizontal {
+ width: 100%;
+ overflow-y: auto;
+}
+
+table {
+ width: 100%;
+ color: #585858;
+}
+
+table td.center, table th.center {
+ text-align: center;
+}
+
+table thead tr {
+ border-bottom: 1px solid #D8D8D8;
+}
+
+table thead tr th {
+ font-weight: normal;
+ font-size: 0.9em;
+ text-transform: uppercase;
+ padding: 20px 10px;
+ color: rgba(63, 63, 63, 0.7);
+}
+
+table thead tr th a.sort {
+ color: rgba(63, 63, 63, 0.7);
+ text-decoration: none;
+}
+
+table thead tr th a.sort:hover {
+ color: #3F3F3F;
+}
+
+table thead tr th a.sort span {
+ display: inline-block;
+ margin-left: 5px;
+ width: 10px;
+ height: 6px;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+table thead tr th a.sort span img {
+ margin-top: -4px;
+}
+
+table thead tr th a.sort span img.down {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+table tbody tr {
+ border-bottom: 1px solid #D8D8D8;
+}
+
+table tbody tr:nth-child(odd) {
+ background-color: rgba(63, 63, 63, 0.03);
+}
+
+table tbody tr:hover {
+ background-color: rgba(0, 136, 228, 0.1);
+ cursor: pointer;
+}
+
+table tbody tr td {
+ padding: 10px;
+}
+
+table tbody tr td a {
+ color: #585858;
+}
+
+table tbody tr td a:hover {
+ color: #585858;
+ text-decoration: underline;
+}
+
+table tbody tr td a.external {
+ color: #0088E4;
+ background: url(/dist/svg/external-link.svg) no-repeat right center;
+ display: inline-block;
+ padding-right: 20px;
+}
+
+table tbody tr td a.external:hover {
+ color: #0088E4;
+ text-decoration: underline;
+}
+
+table tbody tr td .avatar {
+ width: 30px;
+ height: 30px;
+ border-radius: 15px;
+ margin-right: 2.5px;
+}
+
+table tbody tr td .consumption {
+ color: white;
+ position: relative;
+ width: 30px;
+ line-height: 2em;
+ display: inline-block;
+ text-align: center;
+ cursor: pointer;
+}
+
+table tbody tr td .consumption:before {
+ width: 30px;
+ height: 30px;
+ background: #D8D8D8;
+ display: block;
+ position: absolute;
+ content: " ";
+ border-radius: 5px;
+ z-index: -1;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+table tbody tr td .consumption.red:before {
+ background: #FF4906;
+}
+
+table tbody tr td .consumption.green:before {
+ background: #20D3A3;
+}
+
+table tbody tr td .consumption.yellow:before {
+ background: #FBD13A;
+}
+
+table tbody tr td .pill {
+ background: #3F3F3F;
+ color: #fff;
+ border-radius: 5px;
+ padding: 5px 10px;
+ display: inline-block;
+ margin-right: 20px;
+ background-position: 100% center;
+ cursor: pointer;
+ -webkit-transition-property: padding, margin;
+ -o-transition-property: padding, margin;
+ transition-property: padding, margin;
+ -webkit-transition-duration: 0.2s;
+ -o-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease-in-out;
+ -o-transition-timing-function: ease-in-out;
+ transition-timing-function: ease-in-out;
+ -webkit-transition-delay: 0;
+ -o-transition-delay: 0;
+ transition-delay: 0;
+}
+
+table tbody tr td .pill:hover {
+ color: #fff;
+ background-image: url(/dist/svg/disclosure.svg);
+ background-repeat: no-repeat;
+ background-position: 95% center;
+ padding-right: 30px;
+ margin-right: 0;
+ text-decoration: none;
+}
+
+table tbody tr td .pill.finance {
+ background-color: #20D3A3;
+}
+
+table tbody tr td .pill.audit {
+ background-color: #0ECAEA;
+}
+
+table tbody tr td .pill.buildings {
+ background-color: #FBD13A;
+}
+
+table tbody tr td .pill.parent {
+ background-color: #FF4906;
+}
+
+table tbody tr td .pill.analytics {
+ background-color: #FB8F32;
+}
+
+table tbody tr td .pill.marketplace {
+ background-color: #893BC4;
+}
+
+table tbody tr td .pill.analyze {
+ background-color: #0088E4;
+}
+
+table tbody tr td .pill.engineering {
+ background-color: #95EAFF;
+}
+
+@font-face {
+ font-family: "Museo500";
+ src: local("Museo300-Regular"), url("../fonts/MuseoSansRounded-500.otf") format("opentype");
+ font-weight: normal;
+}
+
+@font-face {
+ font-family: "iconfont";
+ src: url("../fonts/iconfont.eot");
+ src: url("../fonts/iconfont.eot?#iefix") format("embedded-opentype"), url("../fonts/iconfont.woff") format("woff"), url("../fonts/iconfont.ttf") format("truetype"), url("../fonts/iconfont.svg#iconfont") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+body {
+ font-family: "Museo500", 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-weight: 400;
+ font-style: normal;
+ font-size: 16px;
+}
+
+body.audit .logo svg {
+ fill: #0ECAEA;
+}
+
+body.audit ::-moz-selection {
+ background: #0ECAEA;
+ color: black;
+}
+
+body.audit ::selection {
+ background: #0ECAEA;
+ color: black;
+}
+
+body.audit ::-moz-selection {
+ background: #0ECAEA;
+ color: black;
+}
+
+body.audit header .header .search .type .dropdown ul li.selected:before {
+ background-color: #0ECAEA;
+}
+
+body.audit header .filters .option .select:after {
+ background: #0ECAEA;
+}
+
+body.audit header .filters .option select {
+ color: #0ECAEA;
+ border-color: #0ECAEA;
+}
+
+body.audit header .filters .option ul li:hover:after {
+ background: #0ECAEA;
+}
+
+body.audit header .filters .option ul li.selected {
+ border-color: #0ECAEA;
+ color: #0ECAEA;
+}
+
+body.audit header .filters .option ul li.selected:after {
+ background: #0ECAEA;
+}
+
+body.buildings .logo svg {
+ fill: #FBD13A;
+}
+
+body.buildings ::-moz-selection {
+ background: #FBD13A;
+ color: black;
+}
+
+body.buildings ::selection {
+ background: #FBD13A;
+ color: black;
+}
+
+body.buildings ::-moz-selection {
+ background: #FBD13A;
+ color: black;
+}
+
+body.buildings header .header .search .type .dropdown ul li.selected:before {
+ background-color: #FBD13A;
+}
+
+body.buildings header .filters .option .select:after {
+ background: #FBD13A;
+}
+
+body.buildings header .filters .option select {
+ color: #FBD13A;
+ border-color: #FBD13A;
+}
+
+body.buildings header .filters .option ul li:hover:after {
+ background: #FBD13A;
+}
+
+body.buildings header .filters .option ul li.selected {
+ border-color: #FBD13A;
+ color: #FBD13A;
+}
+
+body.buildings header .filters .option ul li.selected:after {
+ background: #FBD13A;
+}
+
+body.engineering .logo svg {
+ fill: #95EAFF;
+}
+
+body.engineering ::-moz-selection {
+ background: #95EAFF;
+ color: black;
+}
+
+body.engineering ::selection {
+ background: #95EAFF;
+ color: black;
+}
+
+body.engineering ::-moz-selection {
+ background: #95EAFF;
+ color: black;
+}
+
+body.engineering header .header .search .type .dropdown ul li.selected:before {
+ background-color: #95EAFF;
+}
+
+body.engineering header .filters .option .select:after {
+ background: #95EAFF;
+}
+
+body.engineering header .filters .option select {
+ color: #95EAFF;
+ border-color: #95EAFF;
+}
+
+body.engineering header .filters .option ul li:hover:after {
+ background: #95EAFF;
+}
+
+body.engineering header .filters .option ul li.selected {
+ border-color: #95EAFF;
+ color: #95EAFF;
+}
+
+body.engineering header .filters .option ul li.selected:after {
+ background: #95EAFF;
+}
+
+body.finance .logo svg {
+ fill: #20D3A3;
+}
+
+body.finance ::-moz-selection {
+ background: #20D3A3;
+ color: black;
+}
+
+body.finance ::selection {
+ background: #20D3A3;
+ color: black;
+}
+
+body.finance ::-moz-selection {
+ background: #20D3A3;
+ color: black;
+}
+
+body.finance header .header .search .type .dropdown ul li.selected:before {
+ background-color: #20D3A3;
+}
+
+body.finance header .filters .option .select:after {
+ background: #20D3A3;
+}
+
+body.finance header .filters .option select {
+ color: #20D3A3;
+ border-color: #20D3A3;
+}
+
+body.finance header .filters .option ul li:hover:after {
+ background: #20D3A3;
+}
+
+body.finance header .filters .option ul li.selected {
+ border-color: #20D3A3;
+ color: #20D3A3;
+}
+
+body.finance header .filters .option ul li.selected:after {
+ background: #20D3A3;
+}
+
+body.marketplace .logo svg {
+ fill: #893BC4;
+}
+
+body.marketplace ::-moz-selection {
+ background: #893BC4;
+ color: black;
+}
+
+body.marketplace ::selection {
+ background: #893BC4;
+ color: black;
+}
+
+body.marketplace ::-moz-selection {
+ background: #893BC4;
+ color: black;
+}
+
+body.marketplace header .header .search .type .dropdown ul li.selected:before {
+ background-color: #893BC4;
+}
+
+body.marketplace header .filters .option .select:after {
+ background: #893BC4;
+}
+
+body.marketplace header .filters .option select {
+ color: #893BC4;
+ border-color: #893BC4;
+}
+
+body.marketplace header .filters .option ul li:hover:after {
+ background: #893BC4;
+}
+
+body.marketplace header .filters .option ul li.selected {
+ border-color: #893BC4;
+ color: #893BC4;
+}
+
+body.marketplace header .filters .option ul li.selected:after {
+ background: #893BC4;
+}
+
+body.parent .logo svg {
+ fill: #FF4906;
+}
+
+body.parent ::-moz-selection {
+ background: #FF4906;
+ color: black;
+}
+
+body.parent ::selection {
+ background: #FF4906;
+ color: black;
+}
+
+body.parent ::-moz-selection {
+ background: #FF4906;
+ color: black;
+}
+
+body.parent header .header .search .type .dropdown ul li.selected:before {
+ background-color: #FF4906;
+}
+
+body.parent header .filters .option .select:after {
+ background: #FF4906;
+}
+
+body.parent header .filters .option select {
+ color: #FF4906;
+ border-color: #FF4906;
+}
+
+body.parent header .filters .option ul li:hover:after {
+ background: #FF4906;
+}
+
+body.parent header .filters .option ul li.selected {
+ border-color: #FF4906;
+ color: #FF4906;
+}
+
+body.parent header .filters .option ul li.selected:after {
+ background: #FF4906;
+}
+
+body.analytics .logo svg {
+ fill: #FB8F32;
+}
+
+body.analytics ::-moz-selection {
+ background: #FB8F32;
+ color: black;
+}
+
+body.analytics ::selection {
+ background: #FB8F32;
+ color: black;
+}
+
+body.analytics ::-moz-selection {
+ background: #FB8F32;
+ color: black;
+}
+
+body.analytics header .header .search .type .dropdown ul li.selected:before {
+ background-color: #FB8F32;
+}
+
+body.analytics header .filters .option .select:after {
+ background: #FB8F32;
+}
+
+body.analytics header .filters .option select {
+ color: #FB8F32;
+ border-color: #FB8F32;
+}
+
+body.analytics header .filters .option ul li:hover:after {
+ background: #FB8F32;
+}
+
+body.analytics header .filters .option ul li.selected {
+ border-color: #FB8F32;
+ color: #FB8F32;
+}
+
+body.analytics header .filters .option ul li.selected:after {
+ background: #FB8F32;
+}
+
+body.analyze .logo svg {
+ fill: #0088E4;
+}
+
+body.analyze ::-moz-selection {
+ background: #0088E4;
+ color: black;
+}
+
+body.analyze ::selection {
+ background: #0088E4;
+ color: black;
+}
+
+body.analyze ::-moz-selection {
+ background: #0088E4;
+ color: black;
+}
+
+body.analyze header .header .search .type .dropdown ul li.selected:before {
+ background-color: #0088E4;
+}
+
+body.analyze header .filters .option .select:after {
+ background: #0088E4;
+}
+
+body.analyze header .filters .option select {
+ color: #0088E4;
+ border-color: #0088E4;
+}
+
+body.analyze header .filters .option ul li:hover:after {
+ background: #0088E4;
+}
+
+body.analyze header .filters .option ul li.selected {
+ border-color: #0088E4;
+ color: #0088E4;
+}
+
+body.analyze header .filters .option ul li.selected:after {
+ background: #0088E4;
+}
+
+header {
+ background: #3F3F3F;
+ width: 100%;
+}
+
+header .header {
+ height: 70px;
+ border-bottom: 2px solid #343434;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+}
+
+header .header .logo {
+ height: 70px;
+ width: 70px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ border-right: 2px solid #343434;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ cursor: pointer;
+ padding: 0 10px;
+}
+
+header .header .logo img {
+ width: 30px;
+ height: 30px;
+}
+
+header .header .search {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0%;
+ -ms-flex: 1 1 0%;
+ flex: 1 1 0%;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+header .header .search .type {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ border-right: 2px solid #343434;
+ min-width: 220px;
+ cursor: pointer;
+ padding: 10px 0;
+}
+
+header .header .search .type img {
+ position: relative;
+ margin-left: 20px;
+ z-index: 801;
+}
+
+header .header .search .type .dropdown {
+ visibility: hidden;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ background: #525252;
+ margin-left: -2px;
+ min-width: 222px;
+ padding-top: 68px;
+ border: 2px solid #343434;
+ border-top: 0;
+ z-index: 800;
+ -webkit-transition-property: all;
+ -o-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.4s;
+ -o-transition-duration: 0.4s;
+ transition-duration: 0.4s;
+ -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -webkit-transition-delay: 0;
+ -o-transition-delay: 0;
+ transition-delay: 0;
+}
+
+header .header .search .type .dropdown ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+header .header .search .type .dropdown ul li {
+ border-top: 2px solid #343434;
+ display: block;
+}
+
+header .header .search .type .dropdown ul li a {
+ display: block;
+ opacity: 0.7;
+ color: white;
+ padding: 20px 0 20px 20px;
+ display: inline-block;
+ -webkit-transition-property: background;
+ -o-transition-property: background;
+ transition-property: background;
+ -webkit-transition-duration: 0.4s;
+ -o-transition-duration: 0.4s;
+ transition-duration: 0.4s;
+ -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -webkit-transition-delay: 0;
+ -o-transition-delay: 0;
+ transition-delay: 0;
+}
+
+header .header .search .type .dropdown ul li:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+ cursor: pointer;
+}
+
+header .header .search .type .dropdown ul li:hover a {
+ text-decoration: none;
+}
+
+header .header .search .type .dropdown ul li:before {
+ margin-left: 20px;
+ display: inline-block;
+ width: 13px;
+ height: 10px;
+ content: " ";
+}
+
+header .header .search .type .dropdown ul li.selected:before {
+ -webkit-mask: url(/dist/svg/check.svg) no-repeat 0 center;
+ -ms-mask: url(/dist/svg/check.svg) no-repeat 0 center;
+ -o-mask: url(/dist/svg/check.svg) no-repeat 0 center;
+ -moz-mask: url(/dist/svg/check.svg) no-repeat 0 center;
+ mask: url(/dist/svg/check.svg) no-repeat 0 center;
+}
+
+header .header .search .type:hover .dropdown {
+ visibility: visible;
+ opacity: 1;
+}
+
+header .header .search .query {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0%;
+ -ms-flex: 1 1 0%;
+ flex: 1 1 0%;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 10px 20px;
+ z-index: 801;
+}
+
+header .header .search .query .toggle-filters {
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 5px;
+ padding: 10px;
+ color: black;
+ text-decoration: none;
+ font-size: 0.9em;
+ line-height: 1.2em;
+ display: block;
+ margin-left: 30px;
+}
+
+@media (max-width: 37.5em) {
+ header .header .search .query .toggle-filters {
+ display: none;
+ }
+}
+
+header .header .search .field {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ padding-left: 20px;
+ position: relative;
+ z-index: 801;
+}
+
+header .header .search .field .loader.inline {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ margin-right: -20px;
+ -webkit-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+
+header .header .search .field .loader.inline .circle {
+ background: white;
+}
+
+header .header .search .field h6 {
+ color: #fff;
+ margin-bottom: 0;
+}
+
+header .header .search .field input, header .header .search .field .label {
+ padding: 0;
+ border: 0;
+ background: none;
+ color: #fff;
+ font-size: 1.1em;
+ outline: none;
+ font-weight: normal;
+}
+
+header .header .search .field input {
+ min-width: 300px;
+}
+
+header .header .search .field input::-webkit-input-placeholder {
+ color: transparent;
+}
+
+header .header .search .field input:-moz-placeholder {
+ color: transparent;
+}
+
+header .header .search .field input::-moz-placeholder {
+ color: transparent;
+}
+
+header .header .search .field input:-ms-input-placeholder {
+ color: transparent;
+}
+
+@media (max-width: 37.5em) {
+ header .header .search .field {
+ padding-left: 10px;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0%;
+ -ms-flex: 1 1 0%;
+ flex: 1 1 0%;
+ }
+ header .header .search .field .loader.inline {
+ margin-right: 0;
+ }
+ header .header .search .type {
+ display: none;
+ }
+ header .header .search .query {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0%;
+ -ms-flex: 1 1 0%;
+ flex: 1 1 0%;
+ }
+ header .header .search .query h6 {
+ display: none;
+ }
+ header .header .search .query .field input {
+ min-width: auto;
+ margin-top: 2.5px;
+ overflow: hidden;
+ }
+ header .header .search .query .field input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.15);
+ font-size: 0.9em;
+ line-height: 1.2em;
+ }
+ header .header .search .query .field input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.15);
+ font-size: 0.9em;
+ line-height: 1.2em;
+ }
+ header .header .search .query .field input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.15);
+ font-size: 0.9em;
+ line-height: 1.2em;
+ }
+ header .header .search .query .field input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.15);
+ font-size: 0.9em;
+ line-height: 1.2em;
+ }
+}
+
+header .header .account {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding-right: 20px;
+}
+
+header .header .account img {
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ display: block;
+ -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+}
+
+@media (max-width: 37.5em) {
+ header .header .account {
+ display: none;
+ }
+}
+
+header .filters {
+ color: #fff;
+ background: rgba(255, 255, 255, 0.1);
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ overflow: hidden;
+ height: 0;
+ -webkit-transition-property: all;
+ -o-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.5s;
+ -o-transition-duration: 0.5s;
+ transition-duration: 0.5s;
+ -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -o-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
+ -webkit-transition-delay: 0;
+ -o-transition-delay: 0;
+ transition-delay: 0;
+}
+
+header .filters.show {
+ height: 100px;
+ border-bottom: 2px solid #343434;
+}
+
+@media (max-width: 37.5em) {
+ header .filters.show {
+ height: 234px;
+ display: block;
+ border-bottom: none;
+ }
+}
+
+header .filters .option {
+ padding: 20px;
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+}
+
+header .filters .option:nth-child(2) {
+ border-left: 2px solid #343434;
+ border-right: 2px solid #343434;
+}
+
+header .filters .option h6 {
+ color: black;
+ opacity: 1;
+}
+
+header .filters .option .select {
+ position: relative;
+ z-index: 1;
+}
+
+header .filters .option .select:after {
+ content: " ";
+ width: 15px;
+ height: 9px;
+ background: white;
+ position: absolute;
+ top: 50%;
+ right: 20px;
+ -webkit-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+ -webkit-mask: url(/dist/svg/dropdown.svg) no-repeat 0 center;
+ -ms-mask: url(/dist/svg/dropdown.svg) no-repeat 0 center;
+ -o-mask: url(/dist/svg/dropdown.svg) no-repeat 0 center;
+ -moz-mask: url(/dist/svg/dropdown.svg) no-repeat 0 center;
+ mask: url(/dist/svg/dropdown.svg) no-repeat 0 center;
+}
+
+header .filters .option select {
+ background: none;
+ -webkit-appearance: none;
+ -webkit-border-radius: 0px;
+ display: block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #FBD13A;
+ border: 1px solid #FBD13A;
+ border-radius: 5px;
+ font-weight: 200;
+ width: 100%;
+ font-size: 0.9em;
+ padding: 10px;
+ background-color: rgba(0, 0, 0, 0.4);
+ line-height: 1em;
+ outline: none;
+}
+
+header .filters .option ul {
+ list-style: none;
+ display: block;
+ margin: 0;
+ padding: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+}
+
+header .filters .option ul li {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ background: rgba(255, 255, 255, 0.1);
+ border: 1px solid transparent;
+ border-radius: 5px;
+ position: relative;
+ display: block;
+ text-align: center;
+ color: black;
+ padding: 10px 0;
+ font-size: 0.9em;
+ line-height: 1em;
+}
+
+header .filters .option ul li:first-child {
+ margin-right: 2px;
+}
+
+header .filters .option ul li:last-child {
+ margin-left: 2px;
+}
+
+header .filters .option ul li:hover {
+ cursor: pointer;
+ text-decoration: none;
+}
+
+header .filters .option ul li:hover:after {
+ content: " ";
+ width: 13px;
+ height: 10px;
+ display: block;
+ background: white;
+ position: absolute;
+ top: 50%;
+ left: 20px;
+ -webkit-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+ -webkit-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -ms-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -o-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -moz-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ mask: url(/dist/svg/check.svg) no-repeat 0 0;
+}
+
+header .filters .option ul li.selected {
+ border: 1px solid white;
+ background: rgba(0, 0, 0, 0.4);
+}
+
+header .filters .option ul li.selected:after {
+ content: " ";
+ width: 13px;
+ height: 10px;
+ display: block;
+ background: white;
+ position: absolute;
+ top: 50%;
+ left: 20px;
+ -webkit-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+ -webkit-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -ms-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -o-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ -moz-mask: url(/dist/svg/check.svg) no-repeat 0 0;
+ mask: url(/dist/svg/check.svg) no-repeat 0 0;
+}
+
+header .filters .option ul li.selected a {
+ color: white;
+}
+
+@media (max-width: 37.5em) {
+ header .filters {
+ border-bottom-width: 0;
+ }
+ header .filters .option {
+ display: block;
+ border: 0;
+ width: 100%;
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto;
+ border-bottom: 2px solid #343434;
+ padding: 10px;
+ }
+ header .filters .option:nth-child(2) {
+ border-left: 0;
+ border-right: 0;
+ }
+}
diff --git a/static/bpl/css/bpl.css.map b/static/bpl/css/bpl.css.map
new file mode 100644
index 0000000000000000000000000000000000000000..53d9620e0233c6d3d43ba5e627c50eb51dc9b446
--- /dev/null
+++ b/static/bpl/css/bpl.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bpl.css"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,4EAA4E;AAC5E;EACE,wBAAwB;EACxB,2BAA2B;EAC3B,+BAA+B;CAChC;;AAED;EACE,UAAU;CACX;;AAED;;;;;;;;;;;;EAYE,eAAe;CAChB;;AAED;;;;EAIE,sBAAsB;CACvB;;AAED;EACE,cAAc;EACd,UAAU;CACX;;AAED;EACE,yBAAyB;CAC1B;;AAED;;EAEE,cAAc;CACf;;AAED;EACE,8BAA8B;CAC/B;;AAED;;EAEE,iBAAiB;CAClB;;AAED;EACE,oBAAoB;EACpB,2BAA2B;EAC3B,kCAAkC;CACnC;;AAED;;EAEE,qBAAqB;CACtB;;AAED;;EAEE,oBAAoB;CACrB;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,eAAe;EACf,iBAAiB;CAClB;;AAED;EACE,uBAAuB;EACvB,YAAY;CACb;;AAED;EACE,eAAe;CAChB;;AAED;;EAEE,eAAe;EACf,eAAe;EACf,mBAAmB;EACnB,yBAAyB;CAC1B;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,YAAY;CACb;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,iBAAiB;CAClB;;AAED;;;;EAIE,kCAAkC;EAClC,eAAe;CAChB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,gCAAwB;UAAxB,wBAAwB;EACxB,UAAU;EACV,kBAAkB;CACnB;;AAED;;;;EAIE,cAAc;CACf;;AAED;EACE,kBAAkB;CACnB;;AAED;;;EAGE,kBAAkB;CACnB;;AAED;;;;EAIE,UAAU;CACX;;AAED;;EAEE,qBAAqB;CACtB;;AAED;;;;EAIE,gBAAgB;CACjB;;AAED;EACE,gBAAgB;CACjB;;AAED;;;;EAIE,2BAA2B;CAC5B;;AAED;;EAEE,UAAU;EACV,WAAW;CACZ;;AAED;;EAEE,+BAA+B;CAChC;;AAED;EACE,0BAA0B;EAC1B,cAAc;EACd,+BAA+B;CAChC;;AAED;EACE,+BAAuB;UAAvB,uBAAuB;EACvB,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,oBAAoB;CACrB;;AAED;EACE,eAAe;CAChB;;AAED;;EAEE,+BAAuB;UAAvB,uBAAuB;EACvB,WAAW;CACZ;;AAED;;EAEE,aAAa;CACd;;AAED;EACE,8BAA8B;CAC/B;;AAED;;EAEE,yBAAyB;CAC1B;;AAED;EACE;;;;;IAKE,6BAA6B;IAC7B,oCAA4B;YAA5B,4BAA4B;GAC7B;EACD;;IAEE,2BAA2B;GAC5B;EACD;IACE,8BAA8B;GAC/B;EACD;;IAEE,uBAAuB;IACvB,yBAAyB;GAC1B;EACD;IACE,4BAA4B;GAC7B;EACD;;IAEE,yBAAyB;GAC1B;EACD;;;IAGE,WAAW;IACX,UAAU;GACX;EACD;;IAEE,wBAAwB;GACzB;EACD;IACE,cAAc;GACf;EACD;;IAEE,kCAAkC;GACnC;EACD;IACE,uBAAuB;GACxB;EACD;IACE,qCAAqC;GACtC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,kCAAkC;GACnC;CACF;;AAED;EACE,+BAAuB;UAAvB,uBAAuB;CACxB;;AAED;;;EAGE,4BAAoB;UAApB,oBAAoB;CACrB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,gBAAgB;EAChB,8BAA8B;EAC9B,yCAAyC;CAC1C;;AAED;EACE,wGAAwG;EACxG,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,uBAAuB;CACxB;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE,cAAc;EACd,qBAAqB;CACtB;;AAED;EACE,cAAc;EACd,oBAAoB;CACrB;;AAED;;EAEE,aAAa;EACb,kCAAkC;CACnC;;AAED;EACE,oBAAoB;EACpB,mBAAmB;EACnB,qBAAqB;CACtB;;AAED;;;EAGE,cAAc;EACd,oBAAoB;CACrB;;AAED;;;;EAIE,iBAAiB;CAClB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,qBAAqB;EACrB,eAAe;CAChB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,eAAe;EACf,2BAA2B;CAC5B;;AAED;EACE,2CAA2C;EAC3C,qBAAqB;CACtB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,cAAc;CACf;;AAED;EACE,cAAc;EACd,oBAAoB;EACpB,eAAe;CAChB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,gBAAgB;CACjB;;AAED;;;;;;;;;EASE,+BAA2B;MAA3B,2BAA2B;CAC5B;;AAED;EACE,0BAA0B;EAC1B,8BAA8B;CAC/B;;AAED;EACE,qBAAqB;EACrB,wBAAwB;EACxB,eAAe;EACf,iBAAiB;EACjB,qBAAqB;CACtB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,sBAAsB;EACtB,qBAAqB;CACtB;;AAED;EACE,oBAAoB;EACpB,2CAA2C;CAC5C;;AAED;;;;EAIE,UAAU;EACV,qBAAqB;EACrB,iBAAiB;CAClB;;AAED;;EAEE,oBAAoB;CACrB;;AAED;;;;EAIE,4BAA4B;CAC7B;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,aAAa;EACb,WAAW;EACX,UAAU;EACV,UAAU;CACX;;AAED;EACE,eAAe;EACf,YAAY;EACZ,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,qBAAqB;CACtB;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,yBAAyB;CAC1B;;AAED;;EAEE,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;CAChB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,mBAAmB;EACnB,iBAAiB;CAClB;;AAED;EACE,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,kBAAkB;EAClB,iBAAiB;CAClB;;AAED;EACE,kBAAkB;EAClB,iBAAiB;CAClB;;AAED;EACE,kBAAkB;EAClB,iBAAiB;CAClB;;AAED;EACE,iBAAiB;EACjB,oBAAoB;EACpB,UAAU;EACV,yCAAyC;CAC1C;;AAED;;EAEE,eAAe;EACf,oBAAoB;CACrB;;AAED;;EAEE,eAAe;EACf,0BAA0B;CAC3B;;AAED;EACE,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,eAAe;EACf,0BAA0B;CAC3B;;AAED;EACE,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnB,mCAAmC;CACpC;;AAED;EACE,eAAe;EACf,eAAe;EACf,eAAe;CAChB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,oBAAoB;EACpB,gBAAgB;EAChB,kBAAkB;EAClB,oCAAoC;EACpC,eAAe;CAChB;;AAED;EACE,YAAY;CACb;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,YAAY;CACb;;AAED;;EAEE,eAAe;EACf,gBAAgB;EAChB,aAAa;CACd;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,iBAAiB;EACjB,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;EACvB,wCAAgC;EAAhC,mCAAgC;EAAhC,gCAAgC;EAChC,sBAAsB;EACtB,gBAAgB;EAChB,aAAa;CACd;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,eAAe;EACf,eAAe;CAChB;;AAED;;;;EAIE,kFAAkF;CACnF;;AAED;EACE,uBAAuB;EACvB,eAAe;EACf,eAAe;EACf,0BAA0B;EAC1B,uBAAuB;CACxB;;AAED;EACE,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,uBAAuB;EACvB,sBAAsB;CACvB;;AAED;EACE,WAAW;EACX,gBAAgB;EAChB,kBAAkB;CACnB;;AAED;EACE,eAAe;EACf,cAAc;EACd,oBAAoB;EACpB,eAAe;EACf,eAAe;CAChB;;AAED;EACE,WAAW;EACX,mBAAmB;EACnB,eAAe;EACf,8BAA8B;EAC9B,iBAAiB;CAClB;;AAED;EACE,kBAAkB;EAClB,mBAAmB;CACpB;;AAED;EACE,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;CACrB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE;IACE,iBAAiB;GAClB;CACF;;AAED;EACE;IACE,iBAAiB;GAClB;CACF;;AAED;EACE;IACE,iBAAiB;GAClB;CACF;;AAED;EACE;IACE,kBAAkB;GACnB;CACF;;AAED;EACE,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;CACrB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,mBAAmB;EACnB,oBAAoB;CACrB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;EACpB,mBAAmB;CACpB;;AAED;EACE,YAAY;EACZ,iBAAiB;CAClB;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,WAAW;CACZ;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,WAAW;CACZ;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,WAAW;CACZ;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,kBAAkB;CACnB;;AAED;EACE,YAAY;EACZ,YAAY;CACb;;AAED;EACE,YAAY;CACb;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,WAAW;CACZ;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,WAAW;CACZ;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,WAAW;CACZ;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,YAAY;CACb;;AAED;EACE,WAAW;CACZ;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,UAAU;CACX;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,UAAU;CACX;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,UAAU;CACX;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,WAAW;CACZ;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE;IACE,YAAY;IACZ,iBAAiB;GAClB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,YAAY;GACb;EACD;IACE,YAAY;GACb;EACD;IACE,iBAAiB;GAClB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,YAAY;GACb;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;CACF;;AAED;EACE;IACE,YAAY;IACZ,iBAAiB;GAClB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,YAAY;GACb;EACD;IACE,YAAY;GACb;EACD;IACE,iBAAiB;GAClB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,YAAY;GACb;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;CACF;;AAED;EACE;IACE,YAAY;IACZ,iBAAiB;GAClB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,YAAY;GACb;EACD;IACE,YAAY;GACb;EACD;IACE,iBAAiB;GAClB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,YAAY;GACb;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;CACF;;AAED;EACE;IACE,YAAY;IACZ,iBAAiB;GAClB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,WAAW;GACZ;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,kBAAkB;GACnB;EACD;IACE,YAAY;IACZ,YAAY;GACb;EACD;IACE,YAAY;GACb;EACD;IACE,iBAAiB;GAClB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,WAAW;GACZ;EACD;IACE,kBAAkB;GACnB;EACD;IACE,kBAAkB;GACnB;EACD;IACE,YAAY;GACb;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,UAAU;GACX;EACD;IACE,iBAAiB;GAClB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,WAAW;GACZ;EACD;IACE,gBAAgB;GACjB;EACD;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,iBAAiB;GAClB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,wBAAwB;GACzB;CACF;;AAED;EACE,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;CACrB;;AAED;;EAEE,iBAAiB;EACjB,oBAAoB;EACpB,8BAA8B;CAC/B;;AAED;EACE,uBAAuB;EACvB,iCAAiC;CAClC;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,uBAAuB;CACxB;;AAED;;EAEE,gBAAgB;CACjB;;AAED;EACE,0BAA0B;CAC3B;;AAED;;EAEE,0BAA0B;CAC3B;;AAED;;EAEE,yBAAyB;CAC1B;;AAED;EACE,sCAAsC;CACvC;;AAED;EACE,uCAAuC;CACxC;;AAED;;;EAGE,uCAAuC;CACxC;;AAED;EACE,uCAAuC;CACxC;;AAED;;EAEE,uCAAuC;CACxC;;AAED;;;EAGE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;;EAEE,0BAA0B;CAC3B;;AAED;;;EAGE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;;EAEE,0BAA0B;CAC3B;;AAED;;;EAGE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;;EAEE,0BAA0B;CAC3B;;AAED;;;EAGE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;;EAEE,0BAA0B;CAC3B;;AAED;EACE,YAAY;EACZ,0BAA0B;CAC3B;;AAED;EACE,eAAe;EACf,0BAA0B;CAC3B;;AAED;EACE,eAAe;EACf,0BAA0B;CAC3B;;AAED;;;EAGE,sBAAsB;CACvB;;AAED;EACE,UAAU;CACX;;AAED;EACE,eAAe;EACf,YAAY;EACZ,iBAAiB;EACjB,iBAAiB;CAClB;;AAED;EACE,YAAY;CACb;;AAED;EACE,eAAe;EACf,oBAAoB;CACrB;;AAED;;EAEE,8BAA8B;EAC9B,+BAA+B;CAChC;;AAED;;EAEE,gCAAgC;CACjC;;AAED;;;;;;EAME,iCAAiC;CAClC;;AAED;EACE,YAAY;CACb;;AAED;;EAEE,0BAA0B;EAC1B,0BAA0B;CAC3B;;AAED;EACE,eAAe;EACf,YAAY;EACZ,wBAAwB;EACxB,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;EACf,uBAAuB;EACvB,uBAAuB;EACvB,qCAA6B;UAA7B,6BAA6B;EAC7B,sCAAsC;EACtC,uBAAuB;CACxB;;AAED;EACE,8BAA8B;EAC9B,UAAU;CACX;;AAED;EACE,eAAe;EACf,uBAAuB;EACvB,sBAAsB;EACtB,cAAc;CACf;;AAED;EACE,YAAY;EACZ,WAAW;CACZ;;AAHD;EACE,YAAY;EACZ,WAAW;CACZ;;AAHD;EACE,YAAY;EACZ,WAAW;CACZ;;AAHD;EACE,YAAY;EACZ,WAAW;CACZ;;AAED;EACE,0BAA0B;EAC1B,WAAW;CACZ;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,eAAe;EACf,uBAAuB;CACxB;;AAED;;EAEE,eAAe;CAChB;;AAED;EACE,oBAAoB;EACpB,uBAAuB;EACvB,iBAAiB;CAClB;;AAED;EACE,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;CACpB;;AAED;EACE,qBAAqB;EACrB,wBAAwB;EACxB,oBAAoB;CACrB;;AAED;EACE,oBAAoB;EACpB,uBAAuB;EACvB,iBAAiB;EACjB,gBAAgB;CACjB;;AAED;EACE,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,iBAAiB;CAClB;;AAED;;;;;EAKE,iBAAiB;EACjB,gBAAgB;CACjB;;AAED;;;EAGE,wBAAwB;EACxB,oBAAoB;EACpB,sBAAsB;CACvB;;AAED;;;EAGE,kBAAkB;CACnB;;AAED;;;EAGE,wBAAwB;EACxB,mBAAmB;EACnB,sBAAsB;CACvB;;AAED;;;EAGE,oBAAoB;CACrB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,oBAAoB;CACrB;;AAED;EACE,mBAAmB;EACnB,eAAe;EACf,uBAAuB;CACxB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,iBAAiB;EACjB,gBAAgB;CACjB;;AAED;EACE,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;CACvB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,mBAAmB;EACnB,sBAAsB;EACtB,sBAAsB;EACtB,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;CACjB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,oBAAoB;CACrB;;AAED;;;EAGE,uBAAuB;EACvB,6BAA6B;EAC7B,2CAA2C;EAC3C,yCAAiC;UAAjC,iCAAiC;CAClC;;AAED;;;;;EAKE,eAAe;CAChB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,eAAe;EACf,sBAAsB;EACtB,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE,0QAA0Q;CAC3Q;;AAED;;;;;EAKE,eAAe;CAChB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,eAAe;EACf,sBAAsB;EACtB,wBAAwB;CACzB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,mV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E,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,mBAAmB;EACnB,uBAAuB;CACxB;;AAED;;;;EAIE,YAAY;EACZ,gBAAgB;EAChB,0BAA0B;CAC3B;;AAED;EACE,eAAe;EACf,YAAY;CACb;;AAED;EACE,mBAAmB;EACnB,eAAe;CAChB;;AAED;EACE,cAAc;CACf;;AAED;EACE,eAAe;CAChB;;AAED;EACE,mBAAmB;EACnB,qBAAqB;CACtB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE;IACE,uBAAuB;GACxB;CACF;;AAED;EACE,cAAc;CACf;;AAED;EACE;IACE,iBAAiB;GAClB;CACF;;AAED;;EAEE,gBAAgB;EAChB,SAAS;EACT,QAAQ;EACR,cAAc;CACf;;AAED;EACE;;IAEE,iBAAiB;GAClB;CACF;;AAED;EACE,OAAO;CACR;;AAED;EACE,UAAU;CACX;;AAED;EACE,yBAAiB;EAAjB,iBAAiB;EACjB,OAAO;EACP,cAAc;EACd,YAAY;CACb;;AAED;EACE;IACE,iBAAiB;GAClB;CACF;;AAED;EACE,YAAY;EACZ,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;CACpB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,YAAY;EACZ,WAAW;EACX,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;CAClB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,sBAAsB;EACtB,mBAAmB;EACnB,eAAe;EACf,iBAAiB;EACjB,8BAA8B;EAC9B,uBAAuB;CACxB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,YAAY;CACb;;AAED;EACE,eAAe;EACf,qBAAqB;EACrB,wBAAwB;CACzB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;;;;;;;;;;EAUE,0BAA0B;CAC3B;;AAED;EACE,uCAAuC;CACxC;;AAED;EACE,aAAa;CACd;;AAED;EACE,aAAa;CACd;;AAED;EACE,gCAAgC;CACjC;;AAED;EACE,iCAAiC;CAClC;;AAED;;;;;;;;;;EAUE,aAAa;CACd;;AAED;EACE,6CAA6C;CAC9C;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE;IACE,YAAY;IACZ,eAAe;GAChB;CACF;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE;IACE,YAAY;IACZ,eAAe;GAChB;CACF;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE;IACE,YAAY;IACZ,eAAe;GAChB;CACF;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,mBAAmB;EACnB,eAAe;EACf,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;EACvB,uCAAuC;CACxC;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,sBAAsB;EACtB,iBAAiB;CAClB;;AAED;EACE,iBAAiB;CAClB;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,qBAAqB;CACtB;;AAED;EACE,iCAAiC;EACjC,gCAAgC;CACjC;;AAED;EACE,oCAAoC;EACpC,mCAAmC;CACpC;;AAED;EACE,yBAAyB;EACzB,0BAA0B;EAC1B,8CAA8C;CAC/C;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,mCAAmC;CACpC;;AAED;EACE,yBAAyB;EACzB,0BAA0B;EAC1B,2CAA2C;CAC5C;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,mCAAmC;CACpC;;AAED;EACE,wBAAwB;EACxB,wBAAwB;EACxB,uBAAuB;EACvB,iBAAiB;CAClB;;AAED;EACE,wBAAwB;EACxB,uBAAuB;CACxB;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;EAEE,8BAA8B;CAC/B;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;EAEE,8BAA8B;CAC/B;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;EAEE,8BAA8B;CAC/B;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;EAEE,8BAA8B;CAC/B;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;EAEE,8BAA8B;CAC/B;;AAED;EACE,8BAA8B;EAC9B,sBAAsB;CACvB;;AAED;EACE,8BAA8B;EAC9B,mBAAmB;CACpB;;AAED;EACE,8BAA8B;EAC9B,sBAAsB;CACvB;;AAED;EACE,8BAA8B;EAC9B,sBAAsB;CACvB;;AAED;EACE,8BAA8B;EAC9B,sBAAsB;CACvB;;AAED;EACE,8BAA8B;EAC9B,sBAAsB;CACvB;;AAED;;EAEE,uCAAuC;CACxC;;AAED;;;;EAIE,YAAY;CACb;;AAED;;;;EAIE,iCAAiC;CAClC;;AAED;EACE,YAAY;CACb;;AAED;EACE,WAAW;EACX,iBAAiB;EACjB,eAAe;CAChB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,mBAAmB;EACnB,OAAO;EACP,SAAS;EACT,UAAU;EACV,QAAQ;EACR,iBAAiB;CAClB;;AAED;EACE,iCAAiC;EACjC,gCAAgC;CACjC;;AAED;EACE,oCAAoC;EACpC,mCAAmC;CACpC;;AAED;EACE;IACE,eAAe;IACf,YAAY;IACZ,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;GAC3B;EACD;IACE,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;GACrB;EACD;IACE,uBAAuB;IACvB,sBAAsB;GACvB;CACF;;AAED;EACE;IACE,eAAe;IACf,YAAY;IACZ,oBAAoB;GACrB;EACD;IACE,oBAAoB;IACpB,oBAAoB;GACrB;EACD;IACE,eAAe;IACf,eAAe;GAChB;EACD;IACE,8BAA8B;IAC9B,2BAA2B;GAC5B;EACD;IACE,2BAA2B;GAC5B;EACD;IACE,8BAA8B;GAC/B;EACD;IACE,6BAA6B;IAC7B,0BAA0B;GAC3B;EACD;IACE,0BAA0B;GAC3B;EACD;IACE,6BAA6B;GAC9B;EACD;IACE,iBAAiB;GAClB;EACD;;IAEE,iBAAiB;GAClB;CACF;;AAED;EACE;IACE,wBAAgB;OAAhB,qBAAgB;YAAhB,gBAAgB;IAChB,4BAAoB;OAApB,yBAAoB;YAApB,oBAAoB;GACrB;EACD;IACE,YAAY;GACb;CACF;;AAED;EACE,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;EACjB,0BAA0B;EAC1B,uBAAuB;CACxB;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,YAAY;CACb;;AAED;EACE,sBAAsB;EACtB,sBAAsB;EACtB,qBAAqB;EACrB,eAAe;EACf,aAAa;CACd;;AAED;EACE,2BAA2B;CAC5B;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,sBAAsB;EACtB,gBAAgB;EAChB,iBAAiB;EACjB,oBAAoB;EACpB,uBAAuB;CACxB;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,eAAe;EACf,mCAAmC;EACnC,gCAAgC;CACjC;;AAED;EACE,oCAAoC;EACpC,iCAAiC;CAClC;;AAED;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;EACE,eAAe;EACf,qBAAqB;EACrB,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;CACpB;;AAED;EACE,mBAAmB;EACnB,YAAY;EACZ,wBAAwB;EACxB,kBAAkB;EAClB,eAAe;EACf,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;CACxB;;AAED;EACE,eAAe;EACf,0BAA0B;EAC1B,mBAAmB;CACpB;;AAED;EACE,wBAAwB;EACxB,mBAAmB;CACpB;;AAED;EACE,kCAAkC;EAClC,+BAA+B;CAChC;;AAED;EACE,mCAAmC;EACnC,gCAAgC;CACjC;;AAED;EACE,0BAA0B;EAC1B,oBAAoB;CACrB;;AAED;EACE,kCAAkC;EAClC,+BAA+B;CAChC;;AAED;EACE,mCAAmC;EACnC,gCAAgC;CACjC;;AAED;EACE,sBAAsB;EACtB,sBAAsB;EACtB,eAAe;EACf,kBAAkB;EAClB,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,yBAAyB;EACzB,uBAAuB;CACxB;;AAED;EACE,cAAc;CACf;;AAED;EACE,mBAAmB;EACnB,UAAU;CACX;;AAED;EACE,YAAY;EACZ,sBAAsB;EACtB,gBAAgB;CACjB;;AAED;EACE,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;CACtB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,mBAAmB;EACnB,oBAAoB;EACpB,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;EACE;IACE,mBAAmB;GACpB;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,iBAAiB;EACjB,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,cAAc;EACd,oBAAoB;EACpB,8BAA8B;EAC9B,uBAAuB;CACxB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,mBAAmB;EACnB,cAAc;EACd,aAAa;EACb,eAAe;CAChB;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE,0BAA0B;EAC1B,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,yBAAyB;GAC1B;CACF;;AAPD;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,yBAAyB;GAC1B;CACF;;AAPD;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE,eAAe;EACf,YAAY;EACZ,aAAa;EACb,oBAAoB;CACrB;;AAED;EACE,uBAAuB;EACvB,UAAU;EACV,yBAAiB;KAAjB,sBAAiB;UAAjB,iBAAiB;EACjB,uBAAuB;CACxB;;AAED;EACE,0BAA0B;EAC1B,UAAU;CACX;;AAED;EACE,0BAA0B;EAC1B,mCAAmC;EACnC,gCAAgC;CACjC;;AAED;EACE,0BAA0B;EAC1B,mCAAmC;EACnC,gCAAgC;CACjC;;AAED;EACE,oCAAoC;EACpC,iCAAiC;CAClC;;AAED;EACE,oCAAoC;EACpC,iCAAiC;CAClC;;AAED;EACE,uBAAuB;EACvB,uBAAuB;CACxB;;AAED;;EAEE,uBAAuB;EACvB,uBAAuB;CACxB;;AAED;EACE;IACE,uBAAuB;IACvB,uBAAuB;GACxB;EACD;IACE,sBAAsB;IACtB,aAAa;IACb,qBAAqB;IACrB,0BAA0B;IAC1B,mCAAmC;IACnC,gCAAgC;GACjC;EACD;IACE,oCAAoC;IACpC,iCAAiC;GAClC;CACF;;AAED;EACE,8MAAsM;EAAtM,sMAAsM;EACtM,mCAA2B;UAA3B,2BAA2B;CAC5B;;AAED;EACE,sMAAsM;EACtM,2BAA2B;CAC5B;;AAED;EACE,sMAAsM;EACtM,2BAA2B;CAC5B;;AAED;EACE;IACE,8MAAsM;IAAtM,yMAAsM;IAAtM,sMAAsM;IACtM,mCAA2B;YAA3B,2BAA2B;GAC5B;CACF;;AAED;EACE,2DAAmD;UAAnD,mDAAmD;CACpD;;AAED;EACE,mDAAmD;CACpD;;AAED;EACE;IACE,2DAAmD;SAAnD,sDAAmD;YAAnD,mDAAmD;GACpD;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;;EAEE,iBAAiB;CAClB;;AAED;EACE,eAAe;CAChB;;AAED;;;EAGE,oBAAoB;EACpB,oBAAoB;CACrB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,gBAAgB;CACjB;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;EACd,mBAAmB;CACpB;;AAED;EACE,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,gBAAgB;EAChB,iBAAiB;CAClB;;AAED;EACE,mBAAmB;EACnB,eAAe;EACf,yBAAyB;EACzB,oBAAoB;EACpB,uBAAuB;EACvB,uBAAuB;CACxB;;AAED;EACE,iCAAiC;EACjC,gCAAgC;CACjC;;AAED;EACE,iBAAiB;EACjB,oCAAoC;EACpC,mCAAmC;CACpC;;AAED;EACE,eAAe;EACf,oBAAoB;EACpB,0BAA0B;CAC3B;;AAED;EACE,eAAe;CAChB;;AAED;EACE,eAAe;CAChB;;AAED;EACE,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,0BAA0B;EAC1B,sBAAsB;CACvB;;AAED;;;;;;;EAOE,eAAe;CACh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B;EAChB,8BAA8B;EAC9B,uBAAuB;EACvB,oBAAoB;CACrB;;AAED;EACE,YAAY;EACZ,aAAa;EACb,UAAU;EACV,uBAAuB;CACxB;;AAED;EACE,mBAAmB;EACnB,WAAW;EACX,aAAa;EACb,UAAU;EACV,YAAY;EACZ,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ,mBAAmB;EACnB,0CAA0C;CAC3C;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE;;IAEE,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,gBAAgB;GACjB;EACD;IACE,mBAAmB;GACpB;EACD;IACE,oBAAoB;GACrB;EACD;IACE,WAAW;IACX,UAAU;IACV,qBAAqB;GACtB;EACD;IACE,aAAa;GACd;CACF;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,uBAAuB;EACvB,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,YAAY;EACZ,eAAe;EACf,YAAY;CACb;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,iCAAiC;CAClC;;AAED;EACE,2BAA2B;CAC5B;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,uBAAuB;GACxB;CACF;;AAED;EACE;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,uBAAuB;GACxB;CACF;;AAED;EACE;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,uBAAuB;GACxB;CACF;;AAED;EACE;IACE,uBAAuB;GACxB;EACD;IACE,wBAAwB;GACzB;EACD;IACE,uBAAuB;GACxB;CACF;;AAED;EACE,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,uBAAuB;EACvB,UAAU;CACX;;AAED;EACE,iBAAiB;EACjB,YAAY;EACZ,aAAa;EACb,UAAU;EACV,kBAAkB;EAClB,WAAW;CACZ;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,8BAA8B;EAC9B,6BAA6B;CAC9B;;AAED;EACE,uBAAuB;CACxB;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE,2BAA2B;CAC5B;;AAED;EACE,4BAA4B;CAC7B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,2BAA2B;EAC3B,0BAA0B;CAC3B;;AAED;EACE,yBAAyB;EACzB,4BAA4B;CAC7B;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,4BAA4B;CAC7B;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,8BAA8B;EAC9B,6BAA6B;CAC9B;;AAED;EACE,4BAA4B;EAC5B,+BAA+B;CAChC;;AAED;EACE,iCAAiC;CAClC;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,gCAAgC;CACjC;;AAED;EACE,iCAAiC;CAClC;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,gCAAgC;EAChC,+BAA+B;CAChC;;AAED;EACE,8BAA8B;EAC9B,iCAAiC;CAClC;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,4BAA4B;CAC7B;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,8BAA8B;EAC9B,6BAA6B;CAC9B;;AAED;EACE,4BAA4B;EAC5B,+BAA+B;CAChC;;AAED;EACE,wBAAwB;CACzB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,4BAA4B;CAC7B;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,2BAA2B;CAC5B;;AAED;EACE,4BAA4B;EAC5B,2BAA2B;CAC5B;;AAED;EACE,0BAA0B;EAC1B,6BAA6B;CAC9B;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,gCAAgC;CACjC;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,+BAA+B;EAC/B,8BAA8B;CAC/B;;AAED;EACE,6BAA6B;EAC7B,gCAAgC;CACjC;;AAED;EACE,kCAAkC;CACnC;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,iCAAiC;CAClC;;AAED;EACE,kCAAkC;CACnC;;AAED;EACE,gCAAgC;CACjC;;AAED;EACE,iCAAiC;EACjC,gCAAgC;CACjC;;AAED;EACE,+BAA+B;EAC/B,kCAAkC;CACnC;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,gCAAgC;CACjC;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,+BAA+B;EAC/B,8BAA8B;CAC/B;;AAED;EACE,6BAA6B;EAC7B,gCAAgC;CACjC;;AAED;EACE,gBAAgB;EAChB,OAAO;EACP,SAAS;EACT,QAAQ;EACR,cAAc;CACf;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,+BAA+B;CAChC;;AAED;EACE,iBAAiB;EACjB,wBAAwB;EACxB,oBAAoB;CACrB;;AAED;EACE,4BAA4B;CAC7B;;AAED;EACE,6BAA6B;CAC9B;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,6BAA6B;GAC9B;EACD;IACE,8BAA8B;GAC/B;CACF;;AAED;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,6BAA6B;GAC9B;EACD;IACE,8BAA8B;GAC/B;CACF;;AAED;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,6BAA6B;GAC9B;EACD;IACE,8BAA8B;GAC/B;CACF;;AAED;EACE;IACE,4BAA4B;GAC7B;EACD;IACE,6BAA6B;GAC9B;EACD;IACE,8BAA8B;GAC/B;CACF;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,qCAAqC;CACtC;;AAED;EACE,sCAAsC;CACvC;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,kBAAkB;CACnB;;AAED;EACE,mBAAmB;CACpB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;EAClB,8BAA8B;EAC9B,UAAU;CACX;;AAED;EACE,8BAA8B;CAC/B;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE;IACE,0BAA0B;GAC3B;CACF;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE;IACE,2BAA2B;GAC5B;CACF;;AAED;EACE,yBAAyB;CAC1B;;AAED;EACE;IACE,iCAAiC;GAClC;CACF;;AAED;EACE;IACE,yBAAyB;GAC1B;CACF;;AAED;EACE;IACE,iCAAiC;IACjC,6BAA6B;IAC7B,4BAA4B;IAE5B,yBAAyB;GAC1B;EACD;IACE,o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,gCAAgC;EAChC,oBAAoB;EACpB,gBAAgB;EAChB,sBAAsB;CACvB;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,wBAAwB;EACxB,4FAA4F;EAC5F,oBAAoB;CACrB;;AAED;EACE,wBAAwB;EACxB,kCAAkC;EAClC,yNAAyN;EACzN,oBAAoB;EACpB,mBAAmB;CACpB;;AAED;EACE,wEAAwE;EACxE,iBAAiB;EACjB,mBAAmB;EACnB,gBAAgB;CACjB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,sBAAsB;EACtB,eAAe;CAChB;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,cAAc;CACf;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAHD;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,oBAAoB;EACpB,aAAa;CACd;;AAED;EACE,0BAA0B;CAC3B;;AAED;EACE,oBAAoB;CACrB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,oBAAoB;CACrB;;AAED;EAC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","file":"bpl.css"}
\ No newline at end of file
diff --git a/static/bpl/fonts/MuseoSansRounded-500.otf b/static/bpl/fonts/MuseoSansRounded-500.otf
new file mode 100644
index 0000000000000000000000000000000000000000..83dcd97840fdea1a753c43da32e8afed05a857e3
Binary files /dev/null and b/static/bpl/fonts/MuseoSansRounded-500.otf differ
diff --git a/static/bpl/fonts/iconfont.eot b/static/bpl/fonts/iconfont.eot
new file mode 100644
index 0000000000000000000000000000000000000000..b6f450a7177cfaac9a6683f995d9bff2888ea608
Binary files /dev/null and b/static/bpl/fonts/iconfont.eot differ
diff --git a/static/bpl/fonts/iconfont.svg b/static/bpl/fonts/iconfont.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f11422363f8afa85f3616c657c22ed2ddb5a5420
--- /dev/null
+++ b/static/bpl/fonts/iconfont.svg
@@ -0,0 +1,18 @@
+
+
+
diff --git a/static/bpl/fonts/iconfont.ttf b/static/bpl/fonts/iconfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..1e124d819ff481d016ccdbbf2391f022b3e5a3b5
Binary files /dev/null and b/static/bpl/fonts/iconfont.ttf differ
diff --git a/static/bpl/fonts/iconfont.woff b/static/bpl/fonts/iconfont.woff
new file mode 100644
index 0000000000000000000000000000000000000000..9f26255d054bb1195eb8307f71fdd4a0247dc052
Binary files /dev/null and b/static/bpl/fonts/iconfont.woff differ
diff --git a/static/bpl/js/bootstrap.js b/static/bpl/js/bootstrap.js
new file mode 100644
index 0000000000000000000000000000000000000000..db5744c7703da45292ca1c86a464e38cf815b5dd
--- /dev/null
+++ b/static/bpl/js/bootstrap.js
@@ -0,0 +1,3602 @@
+/*!
+ * Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)
+ * Copyright 2011-2016 [object Object]
+ * Licensed under MIT (https://github.com/twbs/node_modules/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+ var version = $.fn.jquery.split(' ')[0].split('.')
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
+ }
+}(jQuery);
+
+
++function () {
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): util.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+'use strict';
+
+var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+
+var _createClass = (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; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+var Util = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Private TransitionEnd Helpers
+ * ------------------------------------------------------------------------
+ */
+
+ var transition = false;
+
+ var MAX_UID = 1000000;
+
+ var TransitionEndEvent = {
+ WebkitTransition: 'webkitTransitionEnd',
+ MozTransition: 'transitionend',
+ OTransition: 'oTransitionEnd otransitionend',
+ transition: 'transitionend'
+ };
+
+ // shoutout AngusCroll (https://goo.gl/pxwQGp)
+ function toType(obj) {
+ return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
+ }
+
+ function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ }
+
+ function getSpecialTransitionEndEvent() {
+ return {
+ bindType: transition.end,
+ delegateType: transition.end,
+ handle: function handle(event) {
+ if ($(event.target).is(this)) {
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+ }
+ return undefined;
+ }
+ };
+ }
+
+ function transitionEndTest() {
+ if (window.QUnit) {
+ return false;
+ }
+
+ var el = document.createElement('bootstrap');
+
+ for (var _name in TransitionEndEvent) {
+ if (el.style[_name] !== undefined) {
+ return { end: TransitionEndEvent[_name] };
+ }
+ }
+
+ return false;
+ }
+
+ function transitionEndEmulator(duration) {
+ var _this = this;
+
+ var called = false;
+
+ $(this).one(Util.TRANSITION_END, function () {
+ called = true;
+ });
+
+ setTimeout(function () {
+ if (!called) {
+ Util.triggerTransitionEnd(_this);
+ }
+ }, duration);
+
+ return this;
+ }
+
+ function setTransitionEndSupport() {
+ transition = transitionEndTest();
+
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
+
+ if (Util.supportsTransitionEnd()) {
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+ }
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+ var Util = {
+
+ TRANSITION_END: 'bsTransitionEnd',
+
+ getUID: function getUID(prefix) {
+ do {
+ /* eslint-disable no-bitwise */
+ prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+ /* eslint-enable no-bitwise */
+ } while (document.getElementById(prefix));
+ return prefix;
+ },
+
+ getSelectorFromElement: function getSelectorFromElement(element) {
+ var selector = element.getAttribute('data-target');
+
+ if (!selector) {
+ selector = element.getAttribute('href') || '';
+ selector = /^#[a-z]/i.test(selector) ? selector : null;
+ }
+
+ return selector;
+ },
+
+ reflow: function reflow(element) {
+ new Function('bs', 'return bs')(element.offsetHeight);
+ },
+
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
+ $(element).trigger(transition.end);
+ },
+
+ supportsTransitionEnd: function supportsTransitionEnd() {
+ return Boolean(transition);
+ },
+
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+ for (var property in configTypes) {
+ if (configTypes.hasOwnProperty(property)) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = undefined;
+
+ if (value && isElement(value)) {
+ valueType = 'element';
+ } else {
+ valueType = toType(value);
+ }
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
+ }
+ }
+ }
+ }
+ };
+
+ setTransitionEndSupport();
+
+ return Util;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): alert.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Alert = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'alert';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+
+ var Selector = {
+ DISMISS: '[data-dismiss="alert"]'
+ };
+
+ var Event = {
+ CLOSE: 'close' + EVENT_KEY,
+ CLOSED: 'closed' + EVENT_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ ALERT: 'alert',
+ FADE: 'fade',
+ IN: 'in'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Alert = (function () {
+ function Alert(element) {
+ _classCallCheck(this, Alert);
+
+ this._element = element;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Alert, [{
+ key: 'close',
+
+ // public
+
+ value: function close(element) {
+ element = element || this._element;
+
+ var rootElement = this._getRootElement(element);
+ var customEvent = this._triggerCloseEvent(rootElement);
+
+ if (customEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._removeElement(rootElement);
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }
+
+ // private
+
+ }, {
+ key: '_getRootElement',
+ value: function _getRootElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ var parent = false;
+
+ if (selector) {
+ parent = $(selector)[0];
+ }
+
+ if (!parent) {
+ parent = $(element).closest('.' + ClassName.ALERT)[0];
+ }
+
+ return parent;
+ }
+ }, {
+ key: '_triggerCloseEvent',
+ value: function _triggerCloseEvent(element) {
+ var closeEvent = $.Event(Event.CLOSE);
+
+ $(element).trigger(closeEvent);
+ return closeEvent;
+ }
+ }, {
+ key: '_removeElement',
+ value: function _removeElement(element) {
+ $(element).removeClass(ClassName.IN);
+
+ if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
+ this._destroyElement(element);
+ return;
+ }
+
+ $(element).one(Util.TRANSITION_END, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION);
+ }
+ }, {
+ key: '_destroyElement',
+ value: function _destroyElement(element) {
+ $(element).detach().trigger(Event.CLOSED).remove();
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var $element = $(this);
+ var data = $element.data(DATA_KEY);
+
+ if (!data) {
+ data = new Alert(this);
+ $element.data(DATA_KEY, data);
+ }
+
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ }
+ }, {
+ key: '_handleDismiss',
+ value: function _handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ alertInstance.close(this);
+ };
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return Alert;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Alert._jQueryInterface;
+ $.fn[NAME].Constructor = Alert;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Alert._jQueryInterface;
+ };
+
+ return Alert;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): button.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Button = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'button';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+ var ClassName = {
+ ACTIVE: 'active',
+ BUTTON: 'btn',
+ FOCUS: 'focus'
+ };
+
+ var Selector = {
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+ DATA_TOGGLE: '[data-toggle="buttons"]',
+ INPUT: 'input',
+ ACTIVE: '.active',
+ BUTTON: '.btn'
+ };
+
+ var Event = {
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
+ FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Button = (function () {
+ function Button(element) {
+ _classCallCheck(this, Button);
+
+ this._element = element;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Button, [{
+ key: 'toggle',
+
+ // public
+
+ value: function toggle() {
+ var triggerChangeEvent = true;
+ var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
+
+ if (rootElement) {
+ var input = $(this._element).find(Selector.INPUT)[0];
+
+ if (input) {
+ if (input.type === 'radio') {
+ if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
+ triggerChangeEvent = false;
+ } else {
+ var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
+
+ if (activeElement) {
+ $(activeElement).removeClass(ClassName.ACTIVE);
+ }
+ }
+ }
+
+ if (triggerChangeEvent) {
+ input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
+ $(this._element).trigger('change');
+ }
+
+ input.focus();
+ }
+ } else {
+ this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
+ }
+
+ if (triggerChangeEvent) {
+ $(this._element).toggleClass(ClassName.ACTIVE);
+ }
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ if (!data) {
+ data = new Button(this);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return Button;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ event.preventDefault();
+
+ var button = event.target;
+
+ if (!$(button).hasClass(ClassName.BUTTON)) {
+ button = $(button).closest(Selector.BUTTON);
+ }
+
+ Button._jQueryInterface.call($(button), 'toggle');
+ }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ var button = $(event.target).closest(Selector.BUTTON)[0];
+ $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Button._jQueryInterface;
+ $.fn[NAME].Constructor = Button;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Button._jQueryInterface;
+ };
+
+ return Button;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): carousel.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Carousel = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'carousel';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 600;
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true
+ };
+
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean'
+ };
+
+ var Direction = {
+ NEXT: 'next',
+ PREVIOUS: 'prev'
+ };
+
+ var Event = {
+ SLIDE: 'slide' + EVENT_KEY,
+ SLID: 'slid' + EVENT_KEY,
+ KEYDOWN: 'keydown' + EVENT_KEY,
+ MOUSEENTER: 'mouseenter' + EVENT_KEY,
+ MOUSELEAVE: 'mouseleave' + EVENT_KEY,
+ LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ CAROUSEL: 'carousel',
+ ACTIVE: 'active',
+ SLIDE: 'slide',
+ RIGHT: 'right',
+ LEFT: 'left',
+ ITEM: 'carousel-item'
+ };
+
+ var Selector = {
+ ACTIVE: '.active',
+ ACTIVE_ITEM: '.active.carousel-item',
+ ITEM: '.carousel-item',
+ NEXT_PREV: '.next, .prev',
+ INDICATORS: '.carousel-indicators',
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
+ DATA_RIDE: '[data-ride="carousel"]'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Carousel = (function () {
+ function Carousel(element, config) {
+ _classCallCheck(this, Carousel);
+
+ this._items = null;
+ this._interval = null;
+ this._activeElement = null;
+
+ this._isPaused = false;
+ this._isSliding = false;
+
+ this._config = this._getConfig(config);
+ this._element = $(element)[0];
+ this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
+
+ this._addEventListeners();
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Carousel, [{
+ key: 'next',
+
+ // public
+
+ value: function next() {
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
+ }
+ }
+ }, {
+ key: 'nextWhenVisible',
+ value: function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ if (!document.hidden) {
+ this.next();
+ }
+ }
+ }, {
+ key: 'prev',
+ value: function prev() {
+ if (!this._isSliding) {
+ this._slide(Direction.PREVIOUS);
+ }
+ }
+ }, {
+ key: 'pause',
+ value: function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
+ Util.triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
+
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+ }, {
+ key: 'cycle',
+ value: function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
+
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config.interval && !this._isPaused) {
+ this._interval = setInterval($.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval);
+ }
+ }
+ }, {
+ key: 'to',
+ value: function to(index) {
+ var _this2 = this;
+
+ this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+ var activeIndex = this._getItemIndex(this._activeElement);
+
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ $(this._element).one(Event.SLID, function () {
+ return _this2.to(index);
+ });
+ return;
+ }
+
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
+
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;
+
+ this._slide(direction, this._items[index]);
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $(this._element).off(EVENT_KEY);
+ $.removeData(this._element, DATA_KEY);
+
+ this._items = null;
+ this._config = null;
+ this._element = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ }
+
+ // private
+
+ }, {
+ key: '_getConfig',
+ value: function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ }
+ }, {
+ key: '_addEventListeners',
+ value: function _addEventListeners() {
+ if (this._config.keyboard) {
+ $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this));
+ }
+
+ if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) {
+ $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this));
+ }
+ }
+ }, {
+ key: '_keydown',
+ value: function _keydown(event) {
+ event.preventDefault();
+
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ switch (event.which) {
+ case ARROW_LEFT_KEYCODE:
+ this.prev();
+ break;
+ case ARROW_RIGHT_KEYCODE:
+ this.next();
+ break;
+ default:
+ return;
+ }
+ }
+ }, {
+ key: '_getItemIndex',
+ value: function _getItemIndex(element) {
+ this._items = $.makeArray($(element).parent().find(Selector.ITEM));
+ return this._items.indexOf(element);
+ }
+ }, {
+ key: '_getItemByDirection',
+ value: function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === Direction.NEXT;
+ var isPrevDirection = direction === Direction.PREVIOUS;
+ var activeIndex = this._getItemIndex(activeElement);
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
+
+ var delta = direction === Direction.PREVIOUS ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ }
+ }, {
+ key: '_triggerSlideEvent',
+ value: function _triggerSlideEvent(relatedTarget, directionalClassname) {
+ var slideEvent = $.Event(Event.SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: directionalClassname
+ });
+
+ $(this._element).trigger(slideEvent);
+
+ return slideEvent;
+ }
+ }, {
+ key: '_setActiveIndicatorElement',
+ value: function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+ if (nextIndicator) {
+ $(nextIndicator).addClass(ClassName.ACTIVE);
+ }
+ }
+ }
+ }, {
+ key: '_slide',
+ value: function _slide(direction, element) {
+ var _this3 = this;
+
+ var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+ var isCycling = Boolean(this._interval);
+
+ var directionalClassName = direction === Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT;
+
+ if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
+
+ var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName);
+ if (slideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (!activeElement || !nextElement) {
+ // some weirdness is happening, so we bail
+ return;
+ }
+
+ this._isSliding = true;
+
+ if (isCycling) {
+ this.pause();
+ }
+
+ this._setActiveIndicatorElement(nextElement);
+
+ var slidEvent = $.Event(Event.SLID, {
+ relatedTarget: nextElement,
+ direction: directionalClassName
+ });
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
+
+ $(nextElement).addClass(direction);
+
+ Util.reflow(nextElement);
+
+ $(activeElement).addClass(directionalClassName);
+ $(nextElement).addClass(directionalClassName);
+
+ $(activeElement).one(Util.TRANSITION_END, function () {
+ $(nextElement).removeClass(directionalClassName).removeClass(direction);
+
+ $(nextElement).addClass(ClassName.ACTIVE);
+
+ $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName);
+
+ _this3._isSliding = false;
+
+ setTimeout(function () {
+ return $(_this3._element).trigger(slidEvent);
+ }, 0);
+ }).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ $(activeElement).removeClass(ClassName.ACTIVE);
+ $(nextElement).addClass(ClassName.ACTIVE);
+
+ this._isSliding = false;
+ $(this._element).trigger(slidEvent);
+ }
+
+ if (isCycling) {
+ this.cycle();
+ }
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+ var _config = $.extend({}, Default, $(this).data());
+
+ if (typeof config === 'object') {
+ $.extend(_config, config);
+ }
+
+ var action = typeof config === 'string' ? config : _config.slide;
+
+ if (!data) {
+ data = new Carousel(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (data[action] === undefined) {
+ throw new Error('No method named "' + action + '"');
+ }
+ data[action]();
+ } else if (_config.interval) {
+ data.pause();
+ data.cycle();
+ }
+ });
+ }
+ }, {
+ key: '_dataApiClickHandler',
+ value: function _dataApiClickHandler(event) {
+ var selector = Util.getSelectorFromElement(this);
+
+ if (!selector) {
+ return;
+ }
+
+ var target = $(selector)[0];
+
+ if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
+ return;
+ }
+
+ var config = $.extend({}, $(target).data(), $(this).data());
+ var slideIndex = this.getAttribute('data-slide-to');
+
+ if (slideIndex) {
+ config.interval = false;
+ }
+
+ Carousel._jQueryInterface.call($(target), config);
+
+ if (slideIndex) {
+ $(target).data(DATA_KEY).to(slideIndex);
+ }
+
+ event.preventDefault();
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }]);
+
+ return Carousel;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+
+ $(window).on(Event.LOAD_DATA_API, function () {
+ $(Selector.DATA_RIDE).each(function () {
+ var $carousel = $(this);
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
+ });
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Carousel._jQueryInterface;
+ $.fn[NAME].Constructor = Carousel;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Carousel._jQueryInterface;
+ };
+
+ return Carousel;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): collapse.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Collapse = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'collapse';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 600;
+
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: 'string'
+ };
+
+ var Event = {
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ IN: 'in',
+ COLLAPSE: 'collapse',
+ COLLAPSING: 'collapsing',
+ COLLAPSED: 'collapsed'
+ };
+
+ var Dimension = {
+ WIDTH: 'width',
+ HEIGHT: 'height'
+ };
+
+ var Selector = {
+ ACTIVES: '.panel > .in, .panel > .collapsing',
+ DATA_TOGGLE: '[data-toggle="collapse"]'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Collapse = (function () {
+ function Collapse(element, config) {
+ _classCallCheck(this, Collapse);
+
+ this._isTransitioning = false;
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
+
+ this._parent = this._config.parent ? this._getParent() : null;
+
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ }
+
+ if (this._config.toggle) {
+ this.toggle();
+ }
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Collapse, [{
+ key: 'toggle',
+
+ // public
+
+ value: function toggle() {
+ if ($(this._element).hasClass(ClassName.IN)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ }
+ }, {
+ key: 'show',
+ value: function show() {
+ var _this4 = this;
+
+ if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) {
+ return;
+ }
+
+ var actives = undefined;
+ var activesData = undefined;
+
+ if (this._parent) {
+ actives = $.makeArray($(Selector.ACTIVES));
+ if (!actives.length) {
+ actives = null;
+ }
+ }
+
+ if (actives) {
+ activesData = $(actives).data(DATA_KEY);
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
+ }
+
+ var startEvent = $.Event(Event.SHOW);
+ $(this._element).trigger(startEvent);
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (actives) {
+ Collapse._jQueryInterface.call($(actives), 'hide');
+ if (!activesData) {
+ $(actives).data(DATA_KEY, null);
+ }
+ }
+
+ var dimension = this._getDimension();
+
+ $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+
+ this._element.style[dimension] = 0;
+ this._element.setAttribute('aria-expanded', true);
+
+ if (this._triggerArray.length) {
+ $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN);
+
+ _this4._element.style[dimension] = '';
+
+ _this4.setTransitioning(false);
+
+ $(_this4._element).trigger(Event.SHOWN);
+ };
+
+ if (!Util.supportsTransitionEnd()) {
+ complete();
+ return;
+ }
+
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = 'scroll' + capitalizedDimension;
+
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+
+ this._element.style[dimension] = this._element[scrollSize] + 'px';
+ }
+ }, {
+ key: 'hide',
+ value: function hide() {
+ var _this5 = this;
+
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) {
+ return;
+ }
+
+ var startEvent = $.Event(Event.HIDE);
+ $(this._element).trigger(startEvent);
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ var dimension = this._getDimension();
+ var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';
+
+ this._element.style[dimension] = this._element[offsetDimension] + 'px';
+
+ Util.reflow(this._element);
+
+ $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN);
+
+ this._element.setAttribute('aria-expanded', false);
+
+ if (this._triggerArray.length) {
+ $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this5.setTransitioning(false);
+ $(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+ };
+
+ this._element.style[dimension] = 0;
+
+ if (!Util.supportsTransitionEnd()) {
+ complete();
+ return;
+ }
+
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ }
+ }, {
+ key: 'setTransitioning',
+ value: function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+
+ this._config = null;
+ this._parent = null;
+ this._element = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ }
+
+ // private
+
+ }, {
+ key: '_getConfig',
+ value: function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ config.toggle = Boolean(config.toggle); // coerce string values
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ }
+ }, {
+ key: '_getDimension',
+ value: function _getDimension() {
+ var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+ }
+ }, {
+ key: '_getParent',
+ value: function _getParent() {
+ var _this6 = this;
+
+ var parent = $(this._config.parent)[0];
+ var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
+
+ $(parent).find(selector).each(function (i, element) {
+ _this6._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+ });
+
+ return parent;
+ }
+ }, {
+ key: '_addAriaAndCollapsedClass',
+ value: function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (element) {
+ var isOpen = $(element).hasClass(ClassName.IN);
+ element.setAttribute('aria-expanded', isOpen);
+
+ if (triggerArray.length) {
+ $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+ }
+ }
+ }
+
+ // static
+
+ }], [{
+ key: '_getTargetFromElement',
+ value: function _getTargetFromElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ return selector ? $(selector)[0] : null;
+ }
+ }, {
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data(DATA_KEY);
+ var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
+
+ if (!data && _config.toggle && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+
+ if (!data) {
+ data = new Collapse(this, _config);
+ $this.data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }]);
+
+ return Collapse;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+
+ var target = Collapse._getTargetFromElement(this);
+ var data = $(target).data(DATA_KEY);
+ var config = data ? 'toggle' : $(this).data();
+
+ Collapse._jQueryInterface.call($(target), config);
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Collapse._jQueryInterface;
+ $.fn[NAME].Constructor = Collapse;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Collapse._jQueryInterface;
+ };
+
+ return Collapse;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): dropdown.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Dropdown = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'dropdown';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+ var Event = {
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ CLICK: 'click' + EVENT_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
+ KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ BACKDROP: 'dropdown-backdrop',
+ DISABLED: 'disabled',
+ OPEN: 'open'
+ };
+
+ var Selector = {
+ BACKDROP: '.dropdown-backdrop',
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
+ FORM_CHILD: '.dropdown form',
+ ROLE_MENU: '[role="menu"]',
+ ROLE_LISTBOX: '[role="listbox"]',
+ NAVBAR_NAV: '.navbar-nav',
+ VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Dropdown = (function () {
+ function Dropdown(element) {
+ _classCallCheck(this, Dropdown);
+
+ this._element = element;
+
+ this._addEventListeners();
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Dropdown, [{
+ key: 'toggle',
+
+ // public
+
+ value: function toggle() {
+ if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+ return false;
+ }
+
+ var parent = Dropdown._getParentFromElement(this);
+ var isActive = $(parent).hasClass(ClassName.OPEN);
+
+ Dropdown._clearMenus();
+
+ if (isActive) {
+ return false;
+ }
+
+ if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
+
+ // if mobile we use a backdrop because click events don't delegate
+ var dropdown = document.createElement('div');
+ dropdown.className = ClassName.BACKDROP;
+ $(dropdown).insertBefore(this);
+ $(dropdown).on('click', Dropdown._clearMenus);
+ }
+
+ var relatedTarget = { relatedTarget: this };
+ var showEvent = $.Event(Event.SHOW, relatedTarget);
+
+ $(parent).trigger(showEvent);
+
+ if (showEvent.isDefaultPrevented()) {
+ return false;
+ }
+
+ this.focus();
+ this.setAttribute('aria-expanded', 'true');
+
+ $(parent).toggleClass(ClassName.OPEN);
+ $(parent).trigger($.Event(Event.SHOWN, relatedTarget));
+
+ return false;
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ $(this._element).off(EVENT_KEY);
+ this._element = null;
+ }
+
+ // private
+
+ }, {
+ key: '_addEventListeners',
+ value: function _addEventListeners() {
+ $(this._element).on(Event.CLICK, this.toggle);
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ if (!data) {
+ $(this).data(DATA_KEY, data = new Dropdown(this));
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config].call(this);
+ }
+ });
+ }
+ }, {
+ key: '_clearMenus',
+ value: function _clearMenus(event) {
+ if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
+ return;
+ }
+
+ var backdrop = $(Selector.BACKDROP)[0];
+ if (backdrop) {
+ backdrop.parentNode.removeChild(backdrop);
+ }
+
+ var toggles = $.makeArray($(Selector.DATA_TOGGLE));
+
+ for (var i = 0; i < toggles.length; i++) {
+ var _parent = Dropdown._getParentFromElement(toggles[i]);
+ var relatedTarget = { relatedTarget: toggles[i] };
+
+ if (!$(_parent).hasClass(ClassName.OPEN)) {
+ continue;
+ }
+
+ if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) {
+ continue;
+ }
+
+ var hideEvent = $.Event(Event.HIDE, relatedTarget);
+ $(_parent).trigger(hideEvent);
+ if (hideEvent.isDefaultPrevented()) {
+ continue;
+ }
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+
+ $(_parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget));
+ }
+ }
+ }, {
+ key: '_getParentFromElement',
+ value: function _getParentFromElement(element) {
+ var parent = undefined;
+ var selector = Util.getSelectorFromElement(element);
+
+ if (selector) {
+ parent = $(selector)[0];
+ }
+
+ return parent || element.parentNode;
+ }
+ }, {
+ key: '_dataApiKeydownHandler',
+ value: function _dataApiKeydownHandler(event) {
+ if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+ return;
+ }
+
+ var parent = Dropdown._getParentFromElement(this);
+ var isActive = $(parent).hasClass(ClassName.OPEN);
+
+ if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
+
+ if (event.which === ESCAPE_KEYCODE) {
+ var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
+ $(toggle).trigger('focus');
+ }
+
+ $(this).trigger('click');
+ return;
+ }
+
+ var items = $.makeArray($(Selector.VISIBLE_ITEMS));
+
+ items = items.filter(function (item) {
+ return item.offsetWidth || item.offsetHeight;
+ });
+
+ if (!items.length) {
+ return;
+ }
+
+ var index = items.indexOf(event.target);
+
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // up
+ index--;
+ }
+
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // down
+ index++;
+ }
+
+ if (index < 0) {
+ index = 0;
+ }
+
+ items[index].focus();
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return Dropdown;
+ })();
+
+ $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+ e.stopPropagation();
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Dropdown._jQueryInterface;
+ $.fn[NAME].Constructor = Dropdown;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Dropdown._jQueryInterface;
+ };
+
+ return Dropdown;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): modal.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Modal = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'modal';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 300;
+ var BACKDROP_TRANSITION_DURATION = 150;
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true,
+ show: true
+ };
+
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean',
+ show: 'boolean'
+ };
+
+ var Event = {
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ FOCUSIN: 'focusin' + EVENT_KEY,
+ RESIZE: 'resize' + EVENT_KEY,
+ CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,
+ KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,
+ MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,
+ MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+ BACKDROP: 'modal-backdrop',
+ OPEN: 'modal-open',
+ FADE: 'fade',
+ IN: 'in'
+ };
+
+ var Selector = {
+ DIALOG: '.modal-dialog',
+ DATA_TOGGLE: '[data-toggle="modal"]',
+ DATA_DISMISS: '[data-dismiss="modal"]',
+ FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Modal = (function () {
+ function Modal(element, config) {
+ _classCallCheck(this, Modal);
+
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._dialog = $(element).find(Selector.DIALOG)[0];
+ this._backdrop = null;
+ this._isShown = false;
+ this._isBodyOverflowing = false;
+ this._ignoreBackdropClick = false;
+ this._originalBodyPadding = 0;
+ this._scrollbarWidth = 0;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Modal, [{
+ key: 'toggle',
+
+ // public
+
+ value: function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+ }, {
+ key: 'show',
+ value: function show(relatedTarget) {
+ var _this7 = this;
+
+ var showEvent = $.Event(Event.SHOW, {
+ relatedTarget: relatedTarget
+ });
+
+ $(this._element).trigger(showEvent);
+
+ if (this._isShown || showEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._isShown = true;
+
+ this._checkScrollbar();
+ this._setScrollbar();
+
+ $(document.body).addClass(ClassName.OPEN);
+
+ this._setEscapeEvent();
+ this._setResizeEvent();
+
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this));
+
+ $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+ $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) {
+ if ($(event.target).is(_this7._element)) {
+ _this7._ignoreBackdropClick = true;
+ }
+ });
+ });
+
+ this._showBackdrop($.proxy(this._showElement, this, relatedTarget));
+ }
+ }, {
+ key: 'hide',
+ value: function hide(event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ var hideEvent = $.Event(Event.HIDE);
+
+ $(this._element).trigger(hideEvent);
+
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._isShown = false;
+
+ this._setEscapeEvent();
+ this._setResizeEvent();
+
+ $(document).off(Event.FOCUSIN);
+
+ $(this._element).removeClass(ClassName.IN);
+
+ $(this._element).off(Event.CLICK_DISMISS);
+ $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
+
+ $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ this._hideModal();
+ }
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+
+ $(window).off(EVENT_KEY);
+ $(document).off(EVENT_KEY);
+ $(this._element).off(EVENT_KEY);
+ $(this._backdrop).off(EVENT_KEY);
+
+ this._config = null;
+ this._element = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._originalBodyPadding = null;
+ this._scrollbarWidth = null;
+ }
+
+ // private
+
+ }, {
+ key: '_getConfig',
+ value: function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ }
+ }, {
+ key: '_showElement',
+ value: function _showElement(relatedTarget) {
+ var _this8 = this;
+
+ var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // don't move modals dom position
+ document.body.appendChild(this._element);
+ }
+
+ this._element.style.display = 'block';
+ this._element.removeAttribute('aria-hidden');
+ this._element.scrollTop = 0;
+
+ if (transition) {
+ Util.reflow(this._element);
+ }
+
+ $(this._element).addClass(ClassName.IN);
+
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
+
+ var shownEvent = $.Event(Event.SHOWN, {
+ relatedTarget: relatedTarget
+ });
+
+ var transitionComplete = function transitionComplete() {
+ if (_this8._config.focus) {
+ _this8._element.focus();
+ }
+ $(_this8._element).trigger(shownEvent);
+ };
+
+ if (transition) {
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ transitionComplete();
+ }
+ }
+ }, {
+ key: '_enforceFocus',
+ value: function _enforceFocus() {
+ var _this9 = this;
+
+ $(document).off(Event.FOCUSIN) // guard against infinite focus loop
+ .on(Event.FOCUSIN, function (event) {
+ if (document !== event.target && _this9._element !== event.target && !$(_this9._element).has(event.target).length) {
+ _this9._element.focus();
+ }
+ });
+ }
+ }, {
+ key: '_setEscapeEvent',
+ value: function _setEscapeEvent() {
+ var _this10 = this;
+
+ if (this._isShown && this._config.keyboard) {
+ $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+ if (event.which === ESCAPE_KEYCODE) {
+ _this10.hide();
+ }
+ });
+ } else if (!this._isShown) {
+ $(this._element).off(Event.KEYDOWN_DISMISS);
+ }
+ }
+ }, {
+ key: '_setResizeEvent',
+ value: function _setResizeEvent() {
+ if (this._isShown) {
+ $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this));
+ } else {
+ $(window).off(Event.RESIZE);
+ }
+ }
+ }, {
+ key: '_hideModal',
+ value: function _hideModal() {
+ var _this11 = this;
+
+ this._element.style.display = 'none';
+ this._element.setAttribute('aria-hidden', 'true');
+ this._showBackdrop(function () {
+ $(document.body).removeClass(ClassName.OPEN);
+ _this11._resetAdjustments();
+ _this11._resetScrollbar();
+ $(_this11._element).trigger(Event.HIDDEN);
+ });
+ }
+ }, {
+ key: '_removeBackdrop',
+ value: function _removeBackdrop() {
+ if (this._backdrop) {
+ $(this._backdrop).remove();
+ this._backdrop = null;
+ }
+ }
+ }, {
+ key: '_showBackdrop',
+ value: function _showBackdrop(callback) {
+ var _this12 = this;
+
+ var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+
+ if (this._isShown && this._config.backdrop) {
+ var doAnimate = Util.supportsTransitionEnd() && animate;
+
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = ClassName.BACKDROP;
+
+ if (animate) {
+ $(this._backdrop).addClass(animate);
+ }
+
+ $(this._backdrop).appendTo(document.body);
+
+ $(this._element).on(Event.CLICK_DISMISS, function (event) {
+ if (_this12._ignoreBackdropClick) {
+ _this12._ignoreBackdropClick = false;
+ return;
+ }
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+ if (_this12._config.backdrop === 'static') {
+ _this12._element.focus();
+ } else {
+ _this12.hide();
+ }
+ });
+
+ if (doAnimate) {
+ Util.reflow(this._backdrop);
+ }
+
+ $(this._backdrop).addClass(ClassName.IN);
+
+ if (!callback) {
+ return;
+ }
+
+ if (!doAnimate) {
+ callback();
+ return;
+ }
+
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+ } else if (!this._isShown && this._backdrop) {
+ $(this._backdrop).removeClass(ClassName.IN);
+
+ var callbackRemove = function callbackRemove() {
+ _this12._removeBackdrop();
+ if (callback) {
+ callback();
+ }
+ };
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+ } else {
+ callbackRemove();
+ }
+ } else if (callback) {
+ callback();
+ }
+ }
+
+ // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // todo (fat): these should probably be refactored out of modal.js
+ // ----------------------------------------------------------------------
+
+ }, {
+ key: '_handleUpdate',
+ value: function _handleUpdate() {
+ this._adjustDialog();
+ }
+ }, {
+ key: '_adjustDialog',
+ value: function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!this._isBodyOverflowing && isModalOverflowing) {
+ this._element.style.paddingLeft = this._scrollbarWidth + 'px';
+ }
+
+ if (this._isBodyOverflowing && !isModalOverflowing) {
+ this._element.style.paddingRight = this._scrollbarWidth + 'px';
+ }
+ }
+ }, {
+ key: '_resetAdjustments',
+ value: function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ }
+ }, {
+ key: '_checkScrollbar',
+ value: function _checkScrollbar() {
+ this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ }
+ }, {
+ key: '_setScrollbar',
+ value: function _setScrollbar() {
+ var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
+
+ this._originalBodyPadding = document.body.style.paddingRight || '';
+
+ if (this._isBodyOverflowing) {
+ document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
+ }
+ }
+ }, {
+ key: '_resetScrollbar',
+ value: function _resetScrollbar() {
+ document.body.style.paddingRight = this._originalBodyPadding;
+ }
+ }, {
+ key: '_getScrollbarWidth',
+ value: function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+ var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
+
+ if (!data) {
+ data = new Modal(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config](relatedTarget);
+ } else if (_config.show) {
+ data.show(relatedTarget);
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }]);
+
+ return Modal;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ var _this13 = this;
+
+ var target = undefined;
+ var selector = Util.getSelectorFromElement(this);
+
+ if (selector) {
+ target = $(selector)[0];
+ }
+
+ var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
+
+ if (this.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ var $target = $(target).one(Event.SHOW, function (showEvent) {
+ if (showEvent.isDefaultPrevented()) {
+ // only register focus restorer if modal will actually get shown
+ return;
+ }
+
+ $target.one(Event.HIDDEN, function () {
+ if ($(_this13).is(':visible')) {
+ _this13.focus();
+ }
+ });
+ });
+
+ Modal._jQueryInterface.call($(target), config, this);
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Modal._jQueryInterface;
+ $.fn[NAME].Constructor = Modal;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Modal._jQueryInterface;
+ };
+
+ return Modal;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): scrollspy.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var ScrollSpy = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'scrollspy';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+
+ var Event = {
+ ACTIVATE: 'activate' + EVENT_KEY,
+ SCROLL: 'scroll' + EVENT_KEY,
+ LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ DROPDOWN_ITEM: 'dropdown-item',
+ DROPDOWN_MENU: 'dropdown-menu',
+ NAV_LINK: 'nav-link',
+ NAV: 'nav',
+ ACTIVE: 'active'
+ };
+
+ var Selector = {
+ DATA_SPY: '[data-spy="scroll"]',
+ ACTIVE: '.active',
+ LIST_ITEM: '.list-item',
+ LI: 'li',
+ LI_DROPDOWN: 'li.dropdown',
+ NAV_LINKS: '.nav-link',
+ DROPDOWN: '.dropdown',
+ DROPDOWN_ITEMS: '.dropdown-item',
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
+ };
+
+ var OffsetMethod = {
+ OFFSET: 'offset',
+ POSITION: 'position'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var ScrollSpy = (function () {
+ function ScrollSpy(element, config) {
+ _classCallCheck(this, ScrollSpy);
+
+ this._element = element;
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
+ this._config = this._getConfig(config);
+ this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
+ this._offsets = [];
+ this._targets = [];
+ this._activeTarget = null;
+ this._scrollHeight = 0;
+
+ $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this));
+
+ this.refresh();
+ this._process();
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(ScrollSpy, [{
+ key: 'refresh',
+
+ // public
+
+ value: function refresh() {
+ var _this14 = this;
+
+ var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
+
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+
+ this._offsets = [];
+ this._targets = [];
+
+ this._scrollHeight = this._getScrollHeight();
+
+ var targets = $.makeArray($(this._selector));
+
+ targets.map(function (element) {
+ var target = undefined;
+ var targetSelector = Util.getSelectorFromElement(element);
+
+ if (targetSelector) {
+ target = $(targetSelector)[0];
+ }
+
+ if (target && (target.offsetWidth || target.offsetHeight)) {
+ // todo (fat): remove sketch reliance on jQuery position/offset
+ return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
+ }
+ return null;
+ }).filter(function (item) {
+ return item;
+ }).sort(function (a, b) {
+ return a[0] - b[0];
+ }).forEach(function (item) {
+ _this14._offsets.push(item[0]);
+ _this14._targets.push(item[1]);
+ });
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ $(this._scrollElement).off(EVENT_KEY);
+
+ this._element = null;
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ }
+
+ // private
+
+ }, {
+ key: '_getConfig',
+ value: function _getConfig(config) {
+ config = $.extend({}, Default, config);
+
+ if (typeof config.target !== 'string') {
+ var id = $(config.target).attr('id');
+ if (!id) {
+ id = Util.getUID(NAME);
+ $(config.target).attr('id', id);
+ }
+ config.target = '#' + id;
+ }
+
+ Util.typeCheckConfig(NAME, config, DefaultType);
+
+ return config;
+ }
+ }, {
+ key: '_getScrollTop',
+ value: function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop;
+ }
+ }, {
+ key: '_getScrollHeight',
+ value: function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ }
+ }, {
+ key: '_process',
+ value: function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
+ var scrollHeight = this._getScrollHeight();
+ var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight;
+
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
+
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
+
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
+ }
+
+ if (this._activeTarget && scrollTop < this._offsets[0]) {
+ this._activeTarget = null;
+ this._clear();
+ return;
+ }
+
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);
+
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
+ }
+ }
+ }, {
+ key: '_activate',
+ value: function _activate(target) {
+ this._activeTarget = target;
+
+ this._clear();
+
+ var queries = this._selector.split(',');
+ queries = queries.map(function (selector) {
+ return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]');
+ });
+
+ var $link = $(queries.join(','));
+
+ if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+ $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ $link.addClass(ClassName.ACTIVE);
+ } else {
+ // todo (fat) this is kinda sus...
+ // recursively add actives to tested nav-links
+ $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ }
+
+ $(this._scrollElement).trigger(Event.ACTIVATE, {
+ relatedTarget: target
+ });
+ }
+ }, {
+ key: '_clear',
+ value: function _clear() {
+ $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+ var _config = typeof config === 'object' && config || null;
+
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }]);
+
+ return ScrollSpy;
+ })();
+
+ $(window).on(Event.LOAD_DATA_API, function () {
+ var scrollSpys = $.makeArray($(Selector.DATA_SPY));
+
+ for (var i = scrollSpys.length; i--;) {
+ var $spy = $(scrollSpys[i]);
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
+ }
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = ScrollSpy._jQueryInterface;
+ $.fn[NAME].Constructor = ScrollSpy;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return ScrollSpy._jQueryInterface;
+ };
+
+ return ScrollSpy;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): tab.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Tab = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tab';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+
+ var Event = {
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
+ };
+
+ var ClassName = {
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active',
+ FADE: 'fade',
+ IN: 'in'
+ };
+
+ var Selector = {
+ A: 'a',
+ LI: 'li',
+ DROPDOWN: '.dropdown',
+ UL: 'ul:not(.dropdown-menu)',
+ FADE_CHILD: '> .nav-item .fade, > .fade',
+ ACTIVE: '.active',
+ ACTIVE_CHILD: '> .nav-item > .active, > .active',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]',
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tab = (function () {
+ function Tab(element) {
+ _classCallCheck(this, Tab);
+
+ this._element = element;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Tab, [{
+ key: 'show',
+
+ // public
+
+ value: function show() {
+ var _this15 = this;
+
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE)) {
+ return;
+ }
+
+ var target = undefined;
+ var previous = undefined;
+ var ulElement = $(this._element).closest(Selector.UL)[0];
+ var selector = Util.getSelectorFromElement(this._element);
+
+ if (ulElement) {
+ previous = $.makeArray($(ulElement).find(Selector.ACTIVE));
+ previous = previous[previous.length - 1];
+ }
+
+ var hideEvent = $.Event(Event.HIDE, {
+ relatedTarget: this._element
+ });
+
+ var showEvent = $.Event(Event.SHOW, {
+ relatedTarget: previous
+ });
+
+ if (previous) {
+ $(previous).trigger(hideEvent);
+ }
+
+ $(this._element).trigger(showEvent);
+
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (selector) {
+ target = $(selector)[0];
+ }
+
+ this._activate(this._element, ulElement);
+
+ var complete = function complete() {
+ var hiddenEvent = $.Event(Event.HIDDEN, {
+ relatedTarget: _this15._element
+ });
+
+ var shownEvent = $.Event(Event.SHOWN, {
+ relatedTarget: previous
+ });
+
+ $(previous).trigger(hiddenEvent);
+ $(_this15._element).trigger(shownEvent);
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ $.removeClass(this._element, DATA_KEY);
+ this._element = null;
+ }
+
+ // private
+
+ }, {
+ key: '_activate',
+ value: function _activate(element, container, callback) {
+ var active = $(container).find(Selector.ACTIVE_CHILD)[0];
+ var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));
+
+ var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback);
+
+ if (active && isTransitioning) {
+ $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ complete();
+ }
+
+ if (active) {
+ $(active).removeClass(ClassName.IN);
+ }
+ }
+ }, {
+ key: '_transitionComplete',
+ value: function _transitionComplete(element, active, isTransitioning, callback) {
+ if (active) {
+ $(active).removeClass(ClassName.ACTIVE);
+
+ var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+
+ if (dropdownChild) {
+ $(dropdownChild).removeClass(ClassName.ACTIVE);
+ }
+
+ active.setAttribute('aria-expanded', false);
+ }
+
+ $(element).addClass(ClassName.ACTIVE);
+ element.setAttribute('aria-expanded', true);
+
+ if (isTransitioning) {
+ Util.reflow(element);
+ $(element).addClass(ClassName.IN);
+ } else {
+ $(element).removeClass(ClassName.FADE);
+ }
+
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+
+ var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
+ if (dropdownElement) {
+ $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ }
+
+ element.setAttribute('aria-expanded', true);
+ }
+
+ if (callback) {
+ callback();
+ }
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data(DATA_KEY);
+
+ if (!data) {
+ data = data = new Tab(this);
+ $this.data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return Tab;
+ })();
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ Tab._jQueryInterface.call($(this), 'show');
+ });
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Tab._jQueryInterface;
+ $.fn[NAME].Constructor = Tab;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tab._jQueryInterface;
+ };
+
+ return Tab;
+})(jQuery);
+
+/* global Tether */
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): tooltip.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Tooltip = (function ($) {
+
+ /**
+ * Check for Tether dependency
+ * Tether - http://github.hubspot.com/tether/
+ */
+ if (window.Tether === undefined) {
+ throw new Error('Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)');
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tooltip';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+ var CLASS_PREFIX = 'bs-tether';
+
+ var Default = {
+ animation: true,
+ template: '
',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: '0 0',
+ constraints: []
+ };
+
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: 'string',
+ constraints: 'array'
+ };
+
+ var AttachmentMap = {
+ TOP: 'bottom center',
+ RIGHT: 'middle left',
+ BOTTOM: 'top center',
+ LEFT: 'middle right'
+ };
+
+ var HoverState = {
+ IN: 'in',
+ OUT: 'out'
+ };
+
+ var Event = {
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ INSERTED: 'inserted' + EVENT_KEY,
+ CLICK: 'click' + EVENT_KEY,
+ FOCUSIN: 'focusin' + EVENT_KEY,
+ FOCUSOUT: 'focusout' + EVENT_KEY,
+ MOUSEENTER: 'mouseenter' + EVENT_KEY,
+ MOUSELEAVE: 'mouseleave' + EVENT_KEY
+ };
+
+ var ClassName = {
+ FADE: 'fade',
+ IN: 'in'
+ };
+
+ var Selector = {
+ TOOLTIP: '.tooltip',
+ TOOLTIP_INNER: '.tooltip-inner'
+ };
+
+ var TetherClass = {
+ element: false,
+ enabled: false
+ };
+
+ var Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tooltip = (function () {
+ function Tooltip(element, config) {
+ _classCallCheck(this, Tooltip);
+
+ // private
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._hoverState = '';
+ this._activeTrigger = {};
+ this._tether = null;
+
+ // protected
+ this.element = element;
+ this.config = this._getConfig(config);
+ this.tip = null;
+
+ this._setListeners();
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ // getters
+
+ _createClass(Tooltip, [{
+ key: 'enable',
+
+ // public
+
+ value: function enable() {
+ this._isEnabled = true;
+ }
+ }, {
+ key: 'disable',
+ value: function disable() {
+ this._isEnabled = false;
+ }
+ }, {
+ key: 'toggleEnabled',
+ value: function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ }
+ }, {
+ key: 'toggle',
+ value: function toggle(event) {
+ if (event) {
+ var dataKey = this.constructor.DATA_KEY;
+ var context = $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
+ } else {
+
+ if ($(this.getTipElement()).hasClass(ClassName.IN)) {
+ this._leave(null, this);
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ }
+ }, {
+ key: 'dispose',
+ value: function dispose() {
+ clearTimeout(this._timeout);
+
+ this.cleanupTether();
+
+ $.removeData(this.element, this.constructor.DATA_KEY);
+
+ $(this.element).off(this.constructor.EVENT_KEY);
+
+ if (this.tip) {
+ $(this.tip).remove();
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+ this._tether = null;
+
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ }
+ }, {
+ key: 'show',
+ value: function show() {
+ var _this16 = this;
+
+ var showEvent = $.Event(this.constructor.Event.SHOW);
+
+ if (this.isWithContent() && this._isEnabled) {
+ $(this.element).trigger(showEvent);
+
+ var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
+
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+ var tipId = Util.getUID(this.constructor.NAME);
+
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+
+ this.setContent();
+
+ if (this.config.animation) {
+ $(tip).addClass(ClassName.FADE);
+ }
+
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+ var attachment = this._getAttachment(placement);
+
+ $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body);
+
+ $(this.element).trigger(this.constructor.Event.INSERTED);
+
+ this._tether = new Tether({
+ attachment: attachment,
+ element: tip,
+ target: this.element,
+ classes: TetherClass,
+ classPrefix: CLASS_PREFIX,
+ offset: this.config.offset,
+ constraints: this.config.constraints,
+ addTargetClasses: false
+ });
+
+ Util.reflow(tip);
+ this._tether.position();
+
+ $(tip).addClass(ClassName.IN);
+
+ var complete = function complete() {
+ var prevHoverState = _this16._hoverState;
+ _this16._hoverState = null;
+
+ $(_this16.element).trigger(_this16.constructor.Event.SHOWN);
+
+ if (prevHoverState === HoverState.OUT) {
+ _this16._leave(null, _this16);
+ }
+ };
+
+ if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
+ return;
+ }
+
+ complete();
+ }
+ }
+ }, {
+ key: 'hide',
+ value: function hide(callback) {
+ var _this17 = this;
+
+ var tip = this.getTipElement();
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
+ var complete = function complete() {
+ if (_this17._hoverState !== HoverState.IN && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ _this17.element.removeAttribute('aria-describedby');
+ $(_this17.element).trigger(_this17.constructor.Event.HIDDEN);
+ _this17.cleanupTether();
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ $(this.element).trigger(hideEvent);
+
+ if (hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ $(tip).removeClass(ClassName.IN);
+
+ if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
+
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ complete();
+ }
+
+ this._hoverState = '';
+ }
+
+ // protected
+
+ }, {
+ key: 'isWithContent',
+ value: function isWithContent() {
+ return Boolean(this.getTitle());
+ }
+ }, {
+ key: 'getTipElement',
+ value: function getTipElement() {
+ return this.tip = this.tip || $(this.config.template)[0];
+ }
+ }, {
+ key: 'setContent',
+ value: function setContent() {
+ var $tip = $(this.getTipElement());
+
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+
+ $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN);
+
+ this.cleanupTether();
+ }
+ }, {
+ key: 'setElementContent',
+ value: function setElementContent($element, content) {
+ var html = this.config.html;
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ // content is a DOM node or a jQuery
+ if (html) {
+ if (!$(content).parent().is($element)) {
+ $element.empty().append(content);
+ }
+ } else {
+ $element.text($(content).text());
+ }
+ } else {
+ $element[html ? 'html' : 'text'](content);
+ }
+ }
+ }, {
+ key: 'getTitle',
+ value: function getTitle() {
+ var title = this.element.getAttribute('data-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
+
+ return title;
+ }
+ }, {
+ key: 'cleanupTether',
+ value: function cleanupTether() {
+ if (this._tether) {
+ this._tether.destroy();
+ }
+ }
+
+ // private
+
+ }, {
+ key: '_getAttachment',
+ value: function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ }
+ }, {
+ key: '_setListeners',
+ value: function _setListeners() {
+ var _this18 = this;
+
+ var triggers = this.config.trigger.split(' ');
+
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ $(_this18.element).on(_this18.constructor.Event.CLICK, _this18.config.selector, $.proxy(_this18.toggle, _this18));
+ } else if (trigger !== Trigger.MANUAL) {
+ var eventIn = trigger === Trigger.HOVER ? _this18.constructor.Event.MOUSEENTER : _this18.constructor.Event.FOCUSIN;
+ var eventOut = trigger === Trigger.HOVER ? _this18.constructor.Event.MOUSELEAVE : _this18.constructor.Event.FOCUSOUT;
+
+ $(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18));
+ }
+ });
+
+ if (this.config.selector) {
+ this.config = $.extend({}, this.config, {
+ trigger: 'manual',
+ selector: ''
+ });
+ } else {
+ this._fixTitle();
+ }
+ }
+ }, {
+ key: '_fixTitle',
+ value: function _fixTitle() {
+ var titleType = typeof this.element.getAttribute('data-original-title');
+ if (this.element.getAttribute('title') || titleType !== 'string') {
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+ this.element.setAttribute('title', '');
+ }
+ }
+ }, {
+ key: '_enter',
+ value: function _enter(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+
+ context = context || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
+
+ if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) {
+ context._hoverState = HoverState.IN;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+
+ context._hoverState = HoverState.IN;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.IN) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ }
+ }, {
+ key: '_leave',
+ value: function _leave(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+
+ context = context || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+
+ context._hoverState = HoverState.OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ }
+ }, {
+ key: '_isWithActiveTrigger',
+ value: function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }, {
+ key: '_getConfig',
+ value: function _getConfig(config) {
+ config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
+
+ if (config.delay && typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
+ return config;
+ }
+ }, {
+ key: '_getDelegateConfig',
+ value: function _getDelegateConfig() {
+ var config = {};
+
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: 'NAME',
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: 'DATA_KEY',
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: 'Event',
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: 'EVENT_KEY',
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: 'DefaultType',
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Tooltip;
+ })();
+
+ $.fn[NAME] = Tooltip._jQueryInterface;
+ $.fn[NAME].Constructor = Tooltip;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
+
+ return Tooltip;
+})(jQuery);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.4): popover.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Popover = (function ($) {
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'popover';
+ var VERSION = '4.0.0-alpha.4';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = '.' + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+ var Default = $.extend({}, Tooltip.Default, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '
'
+ });
+
+ var DefaultType = $.extend({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+ });
+
+ var ClassName = {
+ FADE: 'fade',
+ IN: 'in'
+ };
+
+ var Selector = {
+ TITLE: '.popover-title',
+ CONTENT: '.popover-content',
+ ARROW: '.popover-arrow'
+ };
+
+ var Event = {
+ HIDE: 'hide' + EVENT_KEY,
+ HIDDEN: 'hidden' + EVENT_KEY,
+ SHOW: 'show' + EVENT_KEY,
+ SHOWN: 'shown' + EVENT_KEY,
+ INSERTED: 'inserted' + EVENT_KEY,
+ CLICK: 'click' + EVENT_KEY,
+ FOCUSIN: 'focusin' + EVENT_KEY,
+ FOCUSOUT: 'focusout' + EVENT_KEY,
+ MOUSEENTER: 'mouseenter' + EVENT_KEY,
+ MOUSELEAVE: 'mouseleave' + EVENT_KEY
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Popover = (function (_Tooltip) {
+ _inherits(Popover, _Tooltip);
+
+ function Popover() {
+ _classCallCheck(this, Popover);
+
+ _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments);
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ _createClass(Popover, [{
+ key: 'isWithContent',
+
+ // overrides
+
+ value: function isWithContent() {
+ return this.getTitle() || this._getContent();
+ }
+ }, {
+ key: 'getTipElement',
+ value: function getTipElement() {
+ return this.tip = this.tip || $(this.config.template)[0];
+ }
+ }, {
+ key: 'setContent',
+ value: function setContent() {
+ var $tip = $(this.getTipElement());
+
+ // we use append for html objects to maintain js events
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+ this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
+
+ $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN);
+
+ this.cleanupTether();
+ }
+
+ // private
+
+ }, {
+ key: '_getContent',
+ value: function _getContent() {
+ return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
+ }
+
+ // static
+
+ }], [{
+ key: '_jQueryInterface',
+ value: function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config]();
+ }
+ });
+ }
+ }, {
+ key: 'VERSION',
+
+ // getters
+
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: 'Default',
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: 'NAME',
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: 'DATA_KEY',
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: 'Event',
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: 'EVENT_KEY',
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: 'DefaultType',
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ })(Tooltip);
+
+ $.fn[NAME] = Popover._jQueryInterface;
+ $.fn[NAME].Constructor = Popover;
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
+
+ return Popover;
+})(jQuery);
+
+$(document).ready(function () {
+ var $header = $('.header');
+
+ $header.find('.logo').on('click', function () {
+ $('.filters').removeClass('show');
+
+ $('.sidedrawer').toggleClass('show');
+ });
+
+ $header.find('.toggle-filters').on('click', function (e) {
+ e.preventDefault();
+
+ $('.sidedrawer').removeClass('show');
+
+ showFilters();
+ });
+
+ $header.find('.query input').on('focus', function (e) {
+ if ($('.toggle-filters').is(':hidden')) {
+ $('.filters').addClass('show');
+ }
+ $('.sidedrawer').removeClass('show');
+ });
+
+ function showFilters() {
+ $('.filters').toggleClass('show');
+ }
+});
+
+}();
diff --git a/static/bpl/js/bootstrap.min.js b/static/bpl/js/bootstrap.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..a54f6299df1424d58588a3f43d6cb10b890d6235
--- /dev/null
+++ b/static/bpl/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)
+ * Copyright 2011-2016 [object Object]
+ * Licensed under MIT (https://github.com/twbs/node_modules/bootstrap/blob/master/LICENSE)
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var c=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;if(void 0===i)return;return i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return;a=j,b=f,c=g,d=!0,h=j=void 0}},d=function(){function a(a,b){for(var c=0;c
this._items.length-1||b<0)){if(this._isSliding)return void a(this._element).one(q.SLID,function(){return c.to(b)});if(d===b)return this.pause(),void this.cycle();var e=b>d?p.NEXT:p.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_getConfig",value:function(b){return b=a.extend({},n,b),e.typeCheckConfig(c,b,o),b}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(q.KEYDOWN,a.proxy(this._keydown,this)),"hover"!==this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(q.MOUSEENTER,a.proxy(this.pause,this)).on(q.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case l:this.prev();break;case m:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(s.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===p.NEXT,d=a===p.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e===f;if(g&&!this._config.wrap)return b;var h=a===p.PREVIOUS?-1:1,i=(e+h)%this._items.length;return i===-1?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(q.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(s.ACTIVE).removeClass(r.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(r.ACTIVE)}}},{key:"_slide",value:function(b,c){var d=this,f=a(this._element).find(s.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=Boolean(this._interval),i=b===p.NEXT?r.LEFT:r.RIGHT;if(g&&a(g).hasClass(r.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(q.SLID,{relatedTarget:g,direction:i});e.supportsTransitionEnd()&&a(this._element).hasClass(r.SLIDE)?(a(g).addClass(b),e.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(e.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(r.ACTIVE),a(f).removeClass(r.ACTIVE).removeClass(b).removeClass(i),d._isSliding=!1,setTimeout(function(){return a(d._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(r.ACTIVE),a(g).addClass(r.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},n,a(this).data());"object"==typeof b&&a.extend(d,b);var e="string"==typeof b?b:d.slide;if(c||(c=new i(this,d),a(this).data(g,c)),"number"==typeof b)c.to(b);else if("string"==typeof e){if(void 0===c[e])throw new Error('No method named "'+e+'"');c[e]()}else d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=e.getSelectorFromElement(this);if(c){var d=a(c)[0];if(d&&a(d).hasClass(r.CAROUSEL)){var f=a.extend({},a(d).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(d),f),h&&a(d).data(g).to(h),b.preventDefault()}}}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return n}}]),i}();return a(document).on(q.CLICK_DATA_API,s.DATA_SLIDE,t._dataApiClickHandler),a(window).on(q.LOAD_DATA_API,function(){a(s.DATA_RIDE).each(function(){var b=a(this);t._jQueryInterface.call(b,b.data())})}),a.fn[c]=t._jQueryInterface,a.fn[c].Constructor=t,a.fn[c].noConflict=function(){return a.fn[c]=j,t._jQueryInterface},t}(jQuery),function(a){var c="collapse",f="4.0.0-alpha.4",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[c],k=600,l={toggle:!0,parent:""},m={toggle:"boolean",parent:"string"},n={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},o={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},q={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},r=function(){function h(c,d){b(this,h),this._isTransitioning=!1,this._element=c,this._config=this._getConfig(d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return d(h,[{key:"toggle",value:function(){a(this._element).hasClass(o.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(o.IN)){var c=void 0,d=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(d=a(c).data(g),d&&d._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),d||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(o.COLLAPSE).addClass(o.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(o.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).addClass(o.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(n.SHOWN)};if(!e.supportsTransitionEnd())return void j();var l=i[0].toUpperCase()+i.slice(1),m="scroll"+l;a(this._element).one(e.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[m]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(o.IN)){var c=a.Event(n.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var d=this._getDimension(),f=d===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[d]=this._element[f]+"px",e.reflow(this._element),a(this._element).addClass(o.COLLAPSING).removeClass(o.COLLAPSE).removeClass(o.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(o.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).trigger(n.HIDDEN)};return this._element.style[d]=0,e.supportsTransitionEnd()?void a(this._element).one(e.TRANSITION_END,g).emulateTransitionEnd(k):void g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),b.toggle=Boolean(b.toggle),e.typeCheckConfig(c,b,m),b}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(p.WIDTH);return b?p.WIDTH:p.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(h._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(o.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(o.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"_getTargetFromElement",value:function(b){var c=e.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),e=a.extend({},l,c.data(),"object"==typeof b&&b);if(!d&&e.toggle&&/show|hide/.test(b)&&(e.toggle=!1),d||(d=new h(this,e),c.data(g,d)),"string"==typeof b){if(void 0===d[b])throw new Error('No method named "'+b+'"');d[b]()}})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),h}();return a(document).on(n.CLICK_DATA_API,q.DATA_TOGGLE,function(b){b.preventDefault();var c=r._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();r._jQueryInterface.call(a(c),e)}),a.fn[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="dropdown",f="4.0.0-alpha.4",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[c],k=27,l=38,m=40,n=3,o={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},p={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},q={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},r=function(){function c(a){b(this,c),this._element=a,this._addEventListeners()}return d(c,[{key:"toggle",value:function(){if(this.disabled||a(this).hasClass(p.DISABLED))return!1;var b=c._getParentFromElement(this),d=a(b).hasClass(p.OPEN);if(c._clearMenus(),d)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(q.NAVBAR_NAV).length){var e=document.createElement("div");e.className=p.BACKDROP,a(e).insertBefore(this),a(e).on("click",c._clearMenus)}var f={relatedTarget:this},g=a.Event(o.SHOW,f);return a(b).trigger(g),!g.isDefaultPrevented()&&(this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(p.OPEN),a(b).trigger(a.Event(o.SHOWN,f)),!1)}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(o.CLICK,this.toggle)}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this).data(g);if(d||a(this).data(g,d=new c(this)),"string"==typeof b){if(void 0===d[b])throw new Error('No method named "'+b+'"');d[b].call(this)}})}},{key:"_clearMenus",value:function(b){if(!b||b.which!==n){var d=a(q.BACKDROP)[0];d&&d.parentNode.removeChild(d);for(var e=a.makeArray(a(q.DATA_TOGGLE)),f=0;f0&&h--,b.which===m&&hdocument.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){this._isBodyOverflowing=document.body.clientWidth=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a=this._offsets[e]&&(void 0===this._offsets[e+1]||a .nav-item .fade, > .fade",
+ACTIVE:".active",ACTIVE_CHILD:"> .nav-item > .active, > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},o=function(){function c(a){b(this,c),this._element=a}return d(c,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE||!a(this._element).hasClass(m.ACTIVE)){var c=void 0,d=void 0,f=a(this._element).closest(n.UL)[0],g=e.getSelectorFromElement(this._element);f&&(d=a.makeArray(a(f).find(n.ACTIVE)),d=d[d.length-1]);var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:d});if(d&&a(d).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(this._element,f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element}),e=a.Event(l.SHOWN,{relatedTarget:d});a(d).trigger(c),a(b._element).trigger(e)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,d){var f=a(c).find(n.ACTIVE_CHILD)[0],g=d&&e.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||Boolean(a(c).find(n.FADE_CHILD)[0])),h=a.proxy(this._transitionComplete,this,b,f,g,d);f&&g?a(f).one(e.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,d,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE),c.setAttribute("aria-expanded",!1)}if(a(b).addClass(m.ACTIVE),b.setAttribute("aria-expanded",!0),d?(e.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var h=a(b).closest(n.DROPDOWN)[0];h&&a(h).find(n.DROPDOWN_TOGGLE).addClass(m.ACTIVE),b.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this),e=d.data(g);if(e||(e=e=new c(this),d.data(g,e)),"string"==typeof b){if(void 0===e[b])throw new Error('No method named "'+b+'"');e[b]()}})}},{key:"VERSION",get:function(){return f}}]),c}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[c]=o._jQueryInterface,a.fn[c].Constructor=o,a.fn[c].noConflict=function(){return a.fn[c]=j,o._jQueryInterface},o}(jQuery),function(a){if(void 0===window.Tether)throw new Error("Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)");var c="tooltip",f="4.0.0-alpha.4",g="bs.tooltip",h="."+g,i=a.fn[c],j=150,k="bs-tether",l={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},m={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},n={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},o={IN:"in",OUT:"out"},p={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},q={FADE:"fade",IN:"in"},r={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},s={element:!1,enabled:!1},t={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},u=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return d(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){if(b){var c=this.constructor.DATA_KEY,d=a(b.currentTarget).data(c);d||(d=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(c,d)),d._activeTrigger.click=!d._activeTrigger.click,d._isWithActiveTrigger()?d._enter(null,d):d._leave(null,d)}else{if(a(this.getTipElement()).hasClass(q.IN))return void this._leave(null,this);this._enter(null,this)}}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var d=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!d)return;var f=this.getTipElement(),g=e.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(q.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({attachment:j,element:f,target:this.element,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints,addTargetClasses:!1}),e.reflow(f),this._tether.position(),a(f).addClass(q.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===o.OUT&&b._leave(null,b)};if(e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE))return void a(this.tip).one(e.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION);l()}}},{key:"hide",value:function(b){var c=this,d=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&d.parentNode&&d.parentNode.removeChild(d),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(d).removeClass(q.IN),e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(d).one(e.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return Boolean(this.getTitle())}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=a(this.getTipElement());this.setElementContent(b.find(r.TOOLTIP_INNER),this.getTitle()),b.removeClass(q.FADE).removeClass(q.IN),this.cleanupTether()}},{key:"setElementContent",value:function(b,c){var d=this.config.html;"object"==typeof c&&(c.nodeType||c.jquery)?d?a(c).parent().is(b)||b.empty().append(c):b.text(a(c).text()):b[d?"html":"text"](c)}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&this._tether.destroy()}},{key:"_getAttachment",value:function(a){return n[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==t.MANUAL){var d=c===t.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c===t.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"===b.type?t.FOCUS:t.HOVER]=!0),a(c.getTipElement()).hasClass(q.IN)||c._hoverState===o.IN?void(c._hoverState=o.IN):(clearTimeout(c._timeout),c._hoverState=o.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===o.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;if(c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"===b.type?t.FOCUS:t.HOVER]=!1),!c._isWithActiveTrigger())return clearTimeout(c._timeout),c._hoverState=o.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===o.OUT&&c.hide()},c.config.delay.hide)):void c.hide()}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),e.typeCheckConfig(c,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config)this.constructor.Default[b]!==this.config[b]&&(a[b]=this.config[b]);return a}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;if((c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b)){if(void 0===c[b])throw new Error('No method named "'+b+'"');c[b]()}})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return c}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return m}}]),i}();return a.fn[c]=u._jQueryInterface,a.fn[c].Constructor=u,a.fn[c].noConflict=function(){return a.fn[c]=i,u._jQueryInterface},u}(jQuery));(function(e){var g="popover",h="4.0.0-alpha.4",i="bs.popover",j="."+i,k=e.fn[g],l=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),m=e.extend({},f.DefaultType,{content:"(string|element|function)"}),n={FADE:"fade",IN:"in"},o={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},p={HIDE:"hide"+j,HIDDEN:"hidden"+j,SHOW:"show"+j,SHOWN:"shown"+j,INSERTED:"inserted"+j,CLICK:"click"+j,FOCUSIN:"focusin"+j,FOCUSOUT:"focusout"+j,MOUSEENTER:"mouseenter"+j,MOUSELEAVE:"mouseleave"+j},q=function(f){function k(){b(this,k),c(Object.getPrototypeOf(k.prototype),"constructor",this).apply(this,arguments)}return a(k,f),d(k,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||e(this.config.template)[0]}},{key:"setContent",value:function(){var a=e(this.getTipElement());this.setElementContent(a.find(o.TITLE),this.getTitle()),this.setElementContent(a.find(o.CONTENT),this._getContent()),a.removeClass(n.FADE).removeClass(n.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=e(this).data(i),c="object"==typeof a?a:null;if((b||!/destroy|hide/.test(a))&&(b||(b=new k(this,c),e(this).data(i,b)),"string"==typeof a)){if(void 0===b[a])throw new Error('No method named "'+a+'"');b[a]()}})}},{key:"VERSION",get:function(){return h}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return g}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return j}},{key:"DefaultType",get:function(){return m}}]),k}(f);return e.fn[g]=q._jQueryInterface,e.fn[g].Constructor=q,e.fn[g].noConflict=function(){return e.fn[g]=k,q._jQueryInterface},q})(jQuery);$(document).ready(function(){function a(){$(".filters").toggleClass("show")}var b=$(".header");b.find(".logo").on("click",function(){$(".filters").removeClass("show"),$(".sidedrawer").toggleClass("show")}),b.find(".toggle-filters").on("click",function(b){b.preventDefault(),$(".sidedrawer").removeClass("show"),a()}),b.find(".query input").on("focus",function(a){$(".toggle-filters").is(":hidden")&&$(".filters").addClass("show"),$(".sidedrawer").removeClass("show")})})}();
\ No newline at end of file
diff --git a/static/bpl/js/jquery.js b/static/bpl/js/jquery.js
new file mode 100644
index 0000000000000000000000000000000000000000..072e308110fcf5d9e1c32750aba69557909dc82f
--- /dev/null
+++ b/static/bpl/js/jquery.js
@@ -0,0 +1,10220 @@
+/*!
+ * jQuery JavaScript Library v3.1.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2016-09-22T22:30Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+ function DOMEval( code, doc ) {
+ doc = doc || document;
+
+ var script = doc.createElement( "script" );
+
+ script.text = code;
+ doc.head.appendChild( script ).parentNode.removeChild( script );
+ }
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+ version = "3.1.1",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android <=4.0 only
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([a-z])/g,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ toArray: function() {
+ return slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+
+ // Return all the elements in a clean array
+ if ( num == null ) {
+ return slice.call( this );
+ }
+
+ // Return just the one element from the set
+ return num < 0 ? this[ num + this.length ] : this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // Skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // Extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // As of jQuery 3.0, isNumeric is limited to
+ // strings and numbers (primitives or objects)
+ // that can be coerced to finite numbers (gh-2662)
+ var type = jQuery.type( obj );
+ return ( type === "number" || type === "string" ) &&
+
+ // parseFloat NaNs numeric-cast false positives ("")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ !isNaN( obj - parseFloat( obj ) );
+ },
+
+ isPlainObject: function( obj ) {
+ var proto, Ctor;
+
+ // Detect obvious negatives
+ // Use toString instead of jQuery.type to catch host objects
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+ return false;
+ }
+
+ proto = getProto( obj );
+
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
+ if ( !proto ) {
+ return true;
+ }
+
+ // Objects with prototype are plain iff they were constructed by a global Object function
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+ },
+
+ isEmptyObject: function( obj ) {
+
+ /* eslint-disable no-unused-vars */
+ // See https://github.com/eslint/eslint/issues/6125
+ var name;
+
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+
+ // Support: Android <=2.3 only (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ DOMEval( code );
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Support: IE <=9 - 11, Edge 12 - 13
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android <=4.0 only
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+ // Support: real iOS 8.2 only (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // https://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+
+ // CSS escapes
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ },
+
+ disabledAncestor = addCombinator(
+ function( elem ) {
+ return elem.disabled === true && ("form" in elem || "label" in elem);
+ },
+ { dir: "parentNode", next: "legend" }
+ );
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rcssescape, fcssescape );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+ var el = document.createElement("fieldset");
+
+ try {
+ return !!fn( el );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( el.parentNode ) {
+ el.parentNode.removeChild( el );
+ }
+ // release memory in IE
+ el = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ a.sourceIndex - b.sourceIndex;
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+ return function( elem ) {
+
+ // Only certain elements can match :enabled or :disabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+ if ( "form" in elem ) {
+
+ // Check for inherited disabledness on relevant non-disabled elements:
+ // * listed form-associated elements in a disabled fieldset
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+ // * option elements in a disabled optgroup
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+ // All such elements have a "form" property.
+ if ( elem.parentNode && elem.disabled === false ) {
+
+ // Option elements defer to a parent optgroup if present
+ if ( "label" in elem ) {
+ if ( "label" in elem.parentNode ) {
+ return elem.parentNode.disabled === disabled;
+ } else {
+ return elem.disabled === disabled;
+ }
+ }
+
+ // Support: IE 6 - 11
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+ return elem.isDisabled === disabled ||
+
+ // Where there is no isDisabled, check manually
+ /* jshint -W018 */
+ elem.isDisabled !== !disabled &&
+ disabledAncestor( elem ) === disabled;
+ }
+
+ return elem.disabled === disabled;
+
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+ // even exist on them, let alone have a boolean value.
+ } else if ( "label" in elem ) {
+ return elem.disabled === disabled;
+ }
+
+ // Remaining elements are neither :enabled nor :disabled
+ return false;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, subWindow,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( preferredDoc !== document &&
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+ // Support: IE 11, Edge
+ if ( subWindow.addEventListener ) {
+ subWindow.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( subWindow.attachEvent ) {
+ subWindow.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( el ) {
+ el.className = "i";
+ return !el.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( el ) {
+ el.appendChild( document.createComment("") );
+ return !el.getElementsByTagName("*").length;
+ });
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( el ) {
+ docElem.appendChild( el ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID filter and find
+ if ( support.getById ) {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var elem = context.getElementById( id );
+ return elem ? [ elem ] : [];
+ }
+ };
+ } else {
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== "undefined" &&
+ elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+
+ // Support: IE 6 - 7 only
+ // getElementById is not reliable as a find shortcut
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var node, i, elems,
+ elem = context.getElementById( id );
+
+ if ( elem ) {
+
+ // Verify the id attribute
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+
+ // Fall back on getElementsByName
+ elems = context.getElementsByName( id );
+ i = 0;
+ while ( (elem = elems[i++]) ) {
+ node = elem.getAttributeNode("id");
+ if ( node && node.value === id ) {
+ return [ elem ];
+ }
+ }
+ }
+
+ return [];
+ }
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
+
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See https://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( el ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // https://bugs.jquery.com/ticket/12359
+ docElem.appendChild( el ).innerHTML = "" +
+ "";
+
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !el.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !el.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( el ) {
+ el.innerHTML = "" +
+ "";
+
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( el.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE9-11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ docElem.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ el.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( el ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( el, "*" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( el, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.escape = function( sel ) {
+ return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": createDisabledPseudo( false ),
+ "disabled": createDisabledPseudo( true ),
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ skip = combinator.next,
+ key = skip || dir,
+ checkNonElements = base && key === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ return false;
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, uniqueCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
+ elem = elem[ dir ] || elem;
+ } else if ( (oldCache = uniqueCache[ key ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ uniqueCache[ key ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+
+ // Precompiled matchers will still verify ancestry, so step up a level
+ } else if ( compiled ) {
+ context = context.parentNode;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function if one is not provided
+ // Provide `match` to avoid retokenization if we modified the selector above
+ ( compiled || compile( selector, match ) )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+ // Should return 1, but returns 4 (following)
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+ el.innerHTML = "";
+ return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+ el.innerHTML = "";
+ el.firstChild.setAttribute( "value", "" );
+ return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+ return el.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+
+var siblings = function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+ }
+
+ // Single element
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+ }
+
+ // Arraylike of elements (jQuery, arguments, Array)
+ if ( typeof qualifier !== "string" ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+ } );
+ }
+
+ // Simple selector that can be filtered directly, removing non-Elements
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ // Complex selector, compare the two sets, removing non-Elements
+ qualifier = jQuery.filter( qualifier, elements );
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+ }
+
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i, ret,
+ len = this.length,
+ self = this;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ } ) );
+ }
+
+ ret = this.pushStack( [] );
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], false ) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow( this, selector || [], true ) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ // Shortcut simple #id case for speed
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Method init() accepts an alternate rootjQuery
+ // so migrate can support jQuery.sub (gh-2101)
+ root = root || rootjQuery;
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector[ 0 ] === "<" &&
+ selector[ selector.length - 1 ] === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // Option to run scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ if ( elem ) {
+
+ // Inject the element directly into the jQuery object
+ this[ 0 ] = elem;
+ this.length = 1;
+ }
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || root ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return root.ready !== undefined ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+ // Methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend( {
+ has: function( target ) {
+ var targets = jQuery( target, this ),
+ l = targets.length;
+
+ return this.filter( function() {
+ var i = 0;
+ for ( ; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ targets = typeof selectors !== "string" && jQuery( selectors );
+
+ // Positional selectors never match, since there's no _selection_ context
+ if ( !rneedsContext.test( selectors ) ) {
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( targets ?
+ targets.index( cur ) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+ },
+
+ // Determine the position of an element within the set
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // Index in selector
+ if ( typeof elem === "string" ) {
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
+ }
+
+ // Locate the position of the desired element
+ return indexOf.call( this,
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem
+ );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.uniqueSort(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter( selector )
+ );
+ }
+} );
+
+function sibling( cur, dir ) {
+ while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var matched = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ matched = jQuery.filter( selector, matched );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ jQuery.uniqueSort( matched );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ matched.reverse();
+ }
+ }
+
+ return this.pushStack( matched );
+ };
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = queue = [];
+ if ( !memory && !firing ) {
+ list = memory = "";
+ }
+ return this;
+ },
+ locked: function() {
+ return !!locked;
+ },
+
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( !locked ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ queue.push( args );
+ if ( !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+function Identity( v ) {
+ return v;
+}
+function Thrower( ex ) {
+ throw ex;
+}
+
+function adoptValue( value, resolve, reject ) {
+ var method;
+
+ try {
+
+ // Check for promise aspect first to privilege synchronous behavior
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+ method.call( value ).done( resolve ).fail( reject );
+
+ // Other thenables
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+ method.call( value, resolve, reject );
+
+ // Other non-thenables
+ } else {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ resolve.call( undefined, value );
+ }
+
+ // For Promises/A+, convert exceptions into rejections
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+ // Deferred#then to conditionally suppress rejection.
+ } catch ( value ) {
+
+ // Support: Android 4.0 only
+ // Strict mode functions invoked without .call/.apply get global-object context
+ reject.call( undefined, value );
+ }
+}
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, callbacks,
+ // ... .then handlers, argument index, [final state]
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
+ jQuery.Callbacks( "memory" ), 2 ],
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ "catch": function( fn ) {
+ return promise.then( null, fn );
+ },
+
+ // Keep pipe for back-compat
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+ then: function( onFulfilled, onRejected, onProgress ) {
+ var maxDepth = 0;
+ function resolve( depth, deferred, handler, special ) {
+ return function() {
+ var that = this,
+ args = arguments,
+ mightThrow = function() {
+ var returned, then;
+
+ // Support: Promises/A+ section 2.3.3.3.3
+ // https://promisesaplus.com/#point-59
+ // Ignore double-resolution attempts
+ if ( depth < maxDepth ) {
+ return;
+ }
+
+ returned = handler.apply( that, args );
+
+ // Support: Promises/A+ section 2.3.1
+ // https://promisesaplus.com/#point-48
+ if ( returned === deferred.promise() ) {
+ throw new TypeError( "Thenable self-resolution" );
+ }
+
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
+ // https://promisesaplus.com/#point-54
+ // https://promisesaplus.com/#point-75
+ // Retrieve `then` only once
+ then = returned &&
+
+ // Support: Promises/A+ section 2.3.4
+ // https://promisesaplus.com/#point-64
+ // Only check objects and functions for thenability
+ ( typeof returned === "object" ||
+ typeof returned === "function" ) &&
+ returned.then;
+
+ // Handle a returned thenable
+ if ( jQuery.isFunction( then ) ) {
+
+ // Special processors (notify) just wait for resolution
+ if ( special ) {
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special )
+ );
+
+ // Normal processors (resolve) also hook into progress
+ } else {
+
+ // ...and disregard older resolution values
+ maxDepth++;
+
+ then.call(
+ returned,
+ resolve( maxDepth, deferred, Identity, special ),
+ resolve( maxDepth, deferred, Thrower, special ),
+ resolve( maxDepth, deferred, Identity,
+ deferred.notifyWith )
+ );
+ }
+
+ // Handle all other returned values
+ } else {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Identity ) {
+ that = undefined;
+ args = [ returned ];
+ }
+
+ // Process the value(s)
+ // Default process is resolve
+ ( special || deferred.resolveWith )( that, args );
+ }
+ },
+
+ // Only normal processors (resolve) catch and reject exceptions
+ process = special ?
+ mightThrow :
+ function() {
+ try {
+ mightThrow();
+ } catch ( e ) {
+
+ if ( jQuery.Deferred.exceptionHook ) {
+ jQuery.Deferred.exceptionHook( e,
+ process.stackTrace );
+ }
+
+ // Support: Promises/A+ section 2.3.3.3.4.1
+ // https://promisesaplus.com/#point-61
+ // Ignore post-resolution exceptions
+ if ( depth + 1 >= maxDepth ) {
+
+ // Only substitute handlers pass on context
+ // and multiple values (non-spec behavior)
+ if ( handler !== Thrower ) {
+ that = undefined;
+ args = [ e ];
+ }
+
+ deferred.rejectWith( that, args );
+ }
+ }
+ };
+
+ // Support: Promises/A+ section 2.3.3.3.1
+ // https://promisesaplus.com/#point-57
+ // Re-resolve promises immediately to dodge false rejection from
+ // subsequent errors
+ if ( depth ) {
+ process();
+ } else {
+
+ // Call an optional hook to record the stack, in case of exception
+ // since it's otherwise lost when execution goes async
+ if ( jQuery.Deferred.getStackHook ) {
+ process.stackTrace = jQuery.Deferred.getStackHook();
+ }
+ window.setTimeout( process );
+ }
+ };
+ }
+
+ return jQuery.Deferred( function( newDefer ) {
+
+ // progress_handlers.add( ... )
+ tuples[ 0 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onProgress ) ?
+ onProgress :
+ Identity,
+ newDefer.notifyWith
+ )
+ );
+
+ // fulfilled_handlers.add( ... )
+ tuples[ 1 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onFulfilled ) ?
+ onFulfilled :
+ Identity
+ )
+ );
+
+ // rejected_handlers.add( ... )
+ tuples[ 2 ][ 3 ].add(
+ resolve(
+ 0,
+ newDefer,
+ jQuery.isFunction( onRejected ) ?
+ onRejected :
+ Thrower
+ )
+ );
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 5 ];
+
+ // promise.progress = list.add
+ // promise.done = list.add
+ // promise.fail = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(
+ function() {
+
+ // state = "resolved" (i.e., fulfilled)
+ // state = "rejected"
+ state = stateString;
+ },
+
+ // rejected_callbacks.disable
+ // fulfilled_callbacks.disable
+ tuples[ 3 - i ][ 2 ].disable,
+
+ // progress_callbacks.lock
+ tuples[ 0 ][ 2 ].lock
+ );
+ }
+
+ // progress_handlers.fire
+ // fulfilled_handlers.fire
+ // rejected_handlers.fire
+ list.add( tuple[ 3 ].fire );
+
+ // deferred.notify = function() { deferred.notifyWith(...) }
+ // deferred.resolve = function() { deferred.resolveWith(...) }
+ // deferred.reject = function() { deferred.rejectWith(...) }
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+ return this;
+ };
+
+ // deferred.notifyWith = list.fireWith
+ // deferred.resolveWith = list.fireWith
+ // deferred.rejectWith = list.fireWith
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( singleValue ) {
+ var
+
+ // count of uncompleted subordinates
+ remaining = arguments.length,
+
+ // count of unprocessed arguments
+ i = remaining,
+
+ // subordinate fulfillment data
+ resolveContexts = Array( i ),
+ resolveValues = slice.call( arguments ),
+
+ // the master Deferred
+ master = jQuery.Deferred(),
+
+ // subordinate callback factory
+ updateFunc = function( i ) {
+ return function( value ) {
+ resolveContexts[ i ] = this;
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( !( --remaining ) ) {
+ master.resolveWith( resolveContexts, resolveValues );
+ }
+ };
+ };
+
+ // Single- and empty arguments are adopted like Promise.resolve
+ if ( remaining <= 1 ) {
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
+
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
+ if ( master.state() === "pending" ||
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+ return master.then();
+ }
+ }
+
+ // Multiple arguments are aggregated like Promise.all array elements
+ while ( i-- ) {
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+ }
+
+ return master.promise();
+ }
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+ // Support: IE 8 - 9 only
+ // Console exists when dev tools are open, which can happen at any time
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+ }
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+ window.setTimeout( function() {
+ throw error;
+ } );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+ readyList
+ .then( fn )
+
+ // Wrap jQuery.readyException in a function so that the lookup
+ // happens at the time of error handling instead of callback
+ // registration.
+ .catch( function( error ) {
+ jQuery.readyException( error );
+ } );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+ }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+ jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ window.setTimeout( jQuery.ready );
+
+} else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ len = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < len; i++ ) {
+ fn(
+ elems[ i ], key, raw ?
+ value :
+ value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ if ( chainable ) {
+ return elems;
+ }
+
+ // Gets
+ if ( bulk ) {
+ return fn.call( elems );
+ }
+
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+ // Accepts only:
+ // - Node
+ // - Node.ELEMENT_NODE
+ // - Node.DOCUMENT_NODE
+ // - Object
+ // - Any
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+ this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+ cache: function( owner ) {
+
+ // Check if the owner object already has a cache
+ var value = owner[ this.expando ];
+
+ // If not, create one
+ if ( !value ) {
+ value = {};
+
+ // We can accept data for non-element nodes in modern browsers,
+ // but we should not, see #8335.
+ // Always return an empty object.
+ if ( acceptData( owner ) ) {
+
+ // If it is a node unlikely to be stringify-ed or looped over
+ // use plain assignment
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = value;
+
+ // Otherwise secure it in a non-enumerable property
+ // configurable must be true to allow the property to be
+ // deleted when data is removed
+ } else {
+ Object.defineProperty( owner, this.expando, {
+ value: value,
+ configurable: true
+ } );
+ }
+ }
+ }
+
+ return value;
+ },
+ set: function( owner, data, value ) {
+ var prop,
+ cache = this.cache( owner );
+
+ // Handle: [ owner, key, value ] args
+ // Always use camelCase key (gh-2257)
+ if ( typeof data === "string" ) {
+ cache[ jQuery.camelCase( data ) ] = value;
+
+ // Handle: [ owner, { properties } ] args
+ } else {
+
+ // Copy the properties one-by-one to the cache object
+ for ( prop in data ) {
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+ }
+ }
+ return cache;
+ },
+ get: function( owner, key ) {
+ return key === undefined ?
+ this.cache( owner ) :
+
+ // Always use camelCase key (gh-2257)
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+ },
+ access: function( owner, key, value ) {
+
+ // In cases where either:
+ //
+ // 1. No key was specified
+ // 2. A string key was specified, but no value provided
+ //
+ // Take the "read" path and allow the get method to determine
+ // which value to return, respectively either:
+ //
+ // 1. The entire cache object
+ // 2. The data stored at the key
+ //
+ if ( key === undefined ||
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+ return this.get( owner, key );
+ }
+
+ // When the key is not a string, or both a key and value
+ // are specified, set or extend (existing objects) with either:
+ //
+ // 1. An object of properties
+ // 2. A key and value
+ //
+ this.set( owner, key, value );
+
+ // Since the "set" path can have two possible entry points
+ // return the expected data based on which path was taken[*]
+ return value !== undefined ? value : key;
+ },
+ remove: function( owner, key ) {
+ var i,
+ cache = owner[ this.expando ];
+
+ if ( cache === undefined ) {
+ return;
+ }
+
+ if ( key !== undefined ) {
+
+ // Support array or space separated string of keys
+ if ( jQuery.isArray( key ) ) {
+
+ // If key is an array of keys...
+ // We always set camelCase keys, so remove that.
+ key = key.map( jQuery.camelCase );
+ } else {
+ key = jQuery.camelCase( key );
+
+ // If a key with the spaces exists, use it.
+ // Otherwise, create an array by matching non-whitespace
+ key = key in cache ?
+ [ key ] :
+ ( key.match( rnothtmlwhite ) || [] );
+ }
+
+ i = key.length;
+
+ while ( i-- ) {
+ delete cache[ key[ i ] ];
+ }
+ }
+
+ // Remove the expando if there's no more data
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+ // Support: Chrome <=35 - 45
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+ if ( owner.nodeType ) {
+ owner[ this.expando ] = undefined;
+ } else {
+ delete owner[ this.expando ];
+ }
+ }
+ },
+ hasData: function( owner ) {
+ var cache = owner[ this.expando ];
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
+ }
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+// Implementation Summary
+//
+// 1. Enforce API surface and semantic compatibility with 1.9.x branch
+// 2. Improve the module's maintainability by reducing the storage
+// paths to a single mechanism.
+// 3. Use the same single mechanism to support "private" and "user" data.
+// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+// 5. Avoid exposing implementation details on user objects (eg. expando properties)
+// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+ if ( data === "true" ) {
+ return true;
+ }
+
+ if ( data === "false" ) {
+ return false;
+ }
+
+ if ( data === "null" ) {
+ return null;
+ }
+
+ // Only convert to a number if it doesn't change the string
+ if ( data === +data + "" ) {
+ return +data;
+ }
+
+ if ( rbrace.test( data ) ) {
+ return JSON.parse( data );
+ }
+
+ return data;
+}
+
+function dataAttr( elem, key, data ) {
+ var name;
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = getData( data );
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ dataUser.set( elem, key, data );
+ } else {
+ data = undefined;
+ }
+ }
+ return data;
+}
+
+jQuery.extend( {
+ hasData: function( elem ) {
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return dataUser.access( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ dataUser.remove( elem, name );
+ },
+
+ // TODO: Now that all calls to _data and _removeData have been replaced
+ // with direct calls to dataPriv methods, these can be deprecated.
+ _data: function( elem, name, data ) {
+ return dataPriv.access( elem, name, data );
+ },
+
+ _removeData: function( elem, name ) {
+ dataPriv.remove( elem, name );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = dataUser.get( elem );
+
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE 11 only
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ dataPriv.set( elem, "hasDataAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ dataUser.set( this, key );
+ } );
+ }
+
+ return access( this, function( value ) {
+ var data;
+
+ // The calling jQuery object (element matches) is not empty
+ // (and therefore has an element appears at this[ 0 ]) and the
+ // `value` parameter was not undefined. An empty jQuery object
+ // will result in `undefined` for elem = this[ 0 ] which will
+ // throw an exception if an attempt to read a data cache is made.
+ if ( elem && value === undefined ) {
+
+ // Attempt to get data from the cache
+ // The key will always be camelCased in Data
+ data = dataUser.get( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to "discover" the data in
+ // HTML5 custom data-* attrs
+ data = dataAttr( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // We tried really hard, but the data doesn't exist.
+ return;
+ }
+
+ // Set the data...
+ this.each( function() {
+
+ // We always store the camelCased key
+ dataUser.set( this, key, value );
+ } );
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ dataUser.remove( this, key );
+ } );
+ }
+} );
+
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = dataPriv.get( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // Clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // Not public - generate a queueHooks object, or return the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ dataPriv.remove( elem, [ type + "queue", key ] );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // Ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+ // isHiddenWithinTree might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+
+ // Inline style trumps all
+ return elem.style.display === "none" ||
+ elem.style.display === "" &&
+
+ // Otherwise, check computed style
+ // Support: Firefox <=43 - 45
+ // Disconnected elements can have computed display: none, so first confirm that elem is
+ // in the document.
+ jQuery.contains( elem.ownerDocument, elem ) &&
+
+ jQuery.css( elem, "display" ) === "none";
+ };
+
+var swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() {
+ return tween.cur();
+ } :
+ function() {
+ return jQuery.css( elem, prop, "" );
+ },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+ var temp,
+ doc = elem.ownerDocument,
+ nodeName = elem.nodeName,
+ display = defaultDisplayMap[ nodeName ];
+
+ if ( display ) {
+ return display;
+ }
+
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
+ display = jQuery.css( temp, "display" );
+
+ temp.parentNode.removeChild( temp );
+
+ if ( display === "none" ) {
+ display = "block";
+ }
+ defaultDisplayMap[ nodeName ] = display;
+
+ return display;
+}
+
+function showHide( elements, show ) {
+ var display, elem,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ // Determine new display value for elements that need to change
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ display = elem.style.display;
+ if ( show ) {
+
+ // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+ // check is required in this first loop unless we have a nonempty display value (either
+ // inline or about-to-be-restored)
+ if ( display === "none" ) {
+ values[ index ] = dataPriv.get( elem, "display" ) || null;
+ if ( !values[ index ] ) {
+ elem.style.display = "";
+ }
+ }
+ if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+ values[ index ] = getDefaultDisplay( elem );
+ }
+ } else {
+ if ( display !== "none" ) {
+ values[ index ] = "none";
+
+ // Remember what we're overwriting
+ dataPriv.set( elem, "display", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop to avoid constant reflow
+ for ( index = 0; index < length; index++ ) {
+ if ( values[ index ] != null ) {
+ elements[ index ].style.display = values[ index ];
+ }
+ }
+
+ return elements;
+}
+
+jQuery.fn.extend( {
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHiddenWithinTree( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+ // Support: IE <=9 only
+ option: [ 1, "" ],
+
+ // XHTML parsers do not magically insert elements in the
+ // same way that tag soup parsers do. So we cannot shorten
+ // this by omitting or other required elements.
+ thead: [ 1, "" ],
+ col: [ 2, "" ],
+ tr: [ 2, "" ],
+ td: [ 3, "" ],
+
+ _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+ // Support: IE <=9 - 11 only
+ // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+ var ret;
+
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ ret = context.getElementsByTagName( tag || "*" );
+
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
+ ret = context.querySelectorAll( tag || "*" );
+
+ } else {
+ ret = [];
+ }
+
+ if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {
+ return jQuery.merge( [ context ], ret );
+ }
+
+ return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ dataPriv.set(
+ elems[ i ],
+ "globalEval",
+ !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+
+var rhtml = /<|?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var elem, tmp, tag, wrap, contains, j,
+ fragment = context.createDocumentFragment(),
+ nodes = [],
+ i = 0,
+ l = elems.length;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Support: Android <=4.0 only, PhantomJS 1 only
+ // push.apply(_, arraylike) throws on ancient WebKit
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Remember the top-level container
+ tmp = fragment.firstChild;
+
+ // Ensure the created nodes are orphaned (#12392)
+ tmp.textContent = "";
+ }
+ }
+ }
+
+ // Remove wrapper from fragment
+ fragment.textContent = "";
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( fragment.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ return fragment;
+}
+
+
+( function() {
+ var fragment = document.createDocumentFragment(),
+ div = fragment.appendChild( document.createElement( "div" ) ),
+ input = document.createElement( "input" );
+
+ // Support: Android 4.0 - 4.3 only
+ // Check state lost if the name is set (#11217)
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Android <=4.1 only
+ // Older WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE <=11 only
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ div.innerHTML = "";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var handleObjIn, eventHandle, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.get( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Ensure that invalid selectors throw exceptions at attach time
+ // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+ if ( selector ) {
+ jQuery.find.matchesSelector( documentElement, selector );
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+ };
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var j, origCount, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove data and the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ dataPriv.remove( elem, "handle events" );
+ }
+ },
+
+ dispatch: function( nativeEvent ) {
+
+ // Make a writable jQuery.Event from the native event object
+ var event = jQuery.event.fix( nativeEvent );
+
+ var i, j, ret, matched, handleObj, handlerQueue,
+ args = new Array( arguments.length ),
+ handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+
+ for ( i = 1; i < arguments.length; i++ ) {
+ args[ i ] = arguments[ i ];
+ }
+
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ if ( delegateCount &&
+
+ // Support: IE <=9
+ // Black-hole SVG