From 984908102c7ab076b31f0c8d9319944444ed905d Mon Sep 17 00:00:00 2001 From: Cosimo Antonio Volpicelli Date: Wed, 16 Sep 2020 18:38:18 +0200 Subject: [PATCH] add static --- static/.DS_Store | Bin 0 -> 6148 bytes static/admin/css/autocomplete.css | 260 + static/admin/css/base.css | 987 + static/admin/css/changelists.css | 1 + static/admin/css/dashboard.css | 1 + static/admin/css/fonts.css | 20 + static/admin/css/forms.css | 1 + static/admin/css/login.css | 1 + static/admin/css/responsive.css | 996 + static/admin/css/responsive_rtl.css | 84 + static/admin/css/rtl.css | 269 + .../css/vendor/select2/LICENSE-SELECT2.md | 21 + static/admin/css/vendor/select2/select2.css | 484 + .../admin/css/vendor/select2/select2.min.css | 1 + static/admin/css/widgets.css | 564 + static/admin/fonts/LICENSE.txt | 202 + static/admin/fonts/README.txt | 3 + static/admin/fonts/Roboto-Bold-webfont.woff | Bin 0 -> 86184 bytes static/admin/fonts/Roboto-Light-webfont.woff | Bin 0 -> 85692 bytes .../admin/fonts/Roboto-Regular-webfont.woff | Bin 0 -> 85876 bytes static/admin/img/LICENSE | 20 + static/admin/img/README.txt | 7 + static/admin/img/calendar-icons.svg | 14 + static/admin/img/gis/move_vertex_off.svg | 1 + static/admin/img/gis/move_vertex_on.svg | 1 + static/admin/img/icon-addlink.svg | 3 + static/admin/img/icon-alert.svg | 3 + static/admin/img/icon-calendar.svg | 9 + static/admin/img/icon-changelink.svg | 3 + static/admin/img/icon-clock.svg | 9 + static/admin/img/icon-deletelink.svg | 3 + static/admin/img/icon-no.svg | 3 + static/admin/img/icon-unknown-alt.svg | 3 + static/admin/img/icon-unknown.svg | 3 + static/admin/img/icon-viewlink.svg | 3 + static/admin/img/icon-yes.svg | 3 + static/admin/img/inline-delete.svg | 3 + static/admin/img/search.svg | 3 + static/admin/img/selector-icons.svg | 34 + static/admin/img/sorting-icons.svg | 19 + static/admin/img/tooltag-add.svg | 3 + static/admin/img/tooltag-arrowright.svg | 3 + static/admin/js/SelectBox.js | 144 + static/admin/js/SelectFilter2.js | 246 + static/admin/js/actions.js | 153 + static/admin/js/actions.min.js | 7 + static/admin/js/admin/DateTimeShortcuts.js | 423 + static/admin/js/admin/RelatedObjectLookups.js | 181 + static/admin/js/autocomplete.js | 37 + static/admin/js/calendar.js | 208 + static/admin/js/cancel.js | 13 + static/admin/js/change_form.js | 20 + static/admin/js/collapse.js | 55 + static/admin/js/collapse.min.js | 3 + static/admin/js/core.js | 173 + static/admin/js/inlines.js | 298 + static/admin/js/inlines.min.js | 10 + static/admin/js/jquery.init.js | 8 + static/admin/js/popup_response.js | 16 + static/admin/js/prepopulate.js | 42 + static/admin/js/prepopulate.min.js | 1 + static/admin/js/prepopulate_init.js | 10 + static/admin/js/urlify.js | 195 + static/admin/js/vendor/jquery/LICENSE.txt | 20 + static/admin/js/vendor/jquery/jquery.js | 10872 +++ static/admin/js/vendor/jquery/jquery.min.js | 2 + static/admin/js/vendor/select2/LICENSE.md | 21 + static/admin/js/vendor/select2/i18n/af.js | 3 + static/admin/js/vendor/select2/i18n/ar.js | 3 + static/admin/js/vendor/select2/i18n/az.js | 3 + static/admin/js/vendor/select2/i18n/bg.js | 3 + static/admin/js/vendor/select2/i18n/bn.js | 3 + static/admin/js/vendor/select2/i18n/bs.js | 3 + static/admin/js/vendor/select2/i18n/ca.js | 3 + static/admin/js/vendor/select2/i18n/cs.js | 3 + static/admin/js/vendor/select2/i18n/da.js | 3 + static/admin/js/vendor/select2/i18n/de.js | 3 + static/admin/js/vendor/select2/i18n/dsb.js | 3 + static/admin/js/vendor/select2/i18n/el.js | 3 + static/admin/js/vendor/select2/i18n/en.js | 3 + static/admin/js/vendor/select2/i18n/es.js | 3 + static/admin/js/vendor/select2/i18n/et.js | 3 + static/admin/js/vendor/select2/i18n/eu.js | 3 + static/admin/js/vendor/select2/i18n/fa.js | 3 + static/admin/js/vendor/select2/i18n/fi.js | 3 + static/admin/js/vendor/select2/i18n/fr.js | 3 + static/admin/js/vendor/select2/i18n/gl.js | 3 + static/admin/js/vendor/select2/i18n/he.js | 3 + static/admin/js/vendor/select2/i18n/hi.js | 3 + static/admin/js/vendor/select2/i18n/hr.js | 3 + static/admin/js/vendor/select2/i18n/hsb.js | 3 + static/admin/js/vendor/select2/i18n/hu.js | 3 + static/admin/js/vendor/select2/i18n/hy.js | 3 + static/admin/js/vendor/select2/i18n/id.js | 3 + static/admin/js/vendor/select2/i18n/is.js | 3 + static/admin/js/vendor/select2/i18n/it.js | 3 + static/admin/js/vendor/select2/i18n/ja.js | 3 + static/admin/js/vendor/select2/i18n/ka.js | 3 + static/admin/js/vendor/select2/i18n/km.js | 3 + static/admin/js/vendor/select2/i18n/ko.js | 3 + static/admin/js/vendor/select2/i18n/lt.js | 3 + static/admin/js/vendor/select2/i18n/lv.js | 3 + static/admin/js/vendor/select2/i18n/mk.js | 3 + static/admin/js/vendor/select2/i18n/ms.js | 3 + static/admin/js/vendor/select2/i18n/nb.js | 3 + static/admin/js/vendor/select2/i18n/ne.js | 3 + static/admin/js/vendor/select2/i18n/nl.js | 3 + static/admin/js/vendor/select2/i18n/pl.js | 3 + static/admin/js/vendor/select2/i18n/ps.js | 3 + static/admin/js/vendor/select2/i18n/pt-BR.js | 3 + static/admin/js/vendor/select2/i18n/pt.js | 3 + static/admin/js/vendor/select2/i18n/ro.js | 3 + static/admin/js/vendor/select2/i18n/ru.js | 3 + static/admin/js/vendor/select2/i18n/sk.js | 3 + static/admin/js/vendor/select2/i18n/sl.js | 3 + static/admin/js/vendor/select2/i18n/sq.js | 3 + .../admin/js/vendor/select2/i18n/sr-Cyrl.js | 3 + static/admin/js/vendor/select2/i18n/sr.js | 3 + static/admin/js/vendor/select2/i18n/sv.js | 3 + static/admin/js/vendor/select2/i18n/th.js | 3 + static/admin/js/vendor/select2/i18n/tk.js | 3 + static/admin/js/vendor/select2/i18n/tr.js | 3 + static/admin/js/vendor/select2/i18n/uk.js | 3 + static/admin/js/vendor/select2/i18n/vi.js | 3 + static/admin/js/vendor/select2/i18n/zh-CN.js | 3 + static/admin/js/vendor/select2/i18n/zh-TW.js | 3 + .../admin/js/vendor/select2/select2.full.js | 6597 ++ .../js/vendor/select2/select2.full.min.js | 1 + static/admin/js/vendor/xregexp/LICENSE.txt | 21 + static/admin/js/vendor/xregexp/xregexp.js | 2308 + static/admin/js/vendor/xregexp/xregexp.min.js | 18 + .../favico/favico-0.3.10-patched.js | 913 + .../favico/favico-0.3.10-patched.min.js | 1 + .../magnific-popup/jquery.magnific-popup.js | 1867 + .../magnific-popup/magnific-popup.css | 351 + .../related-modal/related-modal.js | 151 + static/build/.DS_Store | Bin 0 -> 6148 bytes static/build/css/custom.css | 4972 ++ static/build/css/custom.min.css | 9 + static/build/images/back_disabled.png | Bin 0 -> 1361 bytes static/build/images/back_enabled.png | Bin 0 -> 1379 bytes static/build/images/back_enabled_hover.png | Bin 0 -> 1375 bytes static/build/images/forward_disabled.png | Bin 0 -> 1363 bytes static/build/images/forward_enabled.png | Bin 0 -> 1380 bytes static/build/images/forward_enabled_hover.png | Bin 0 -> 1379 bytes static/build/images/loading.gif | Bin 0 -> 30269 bytes static/build/images/logoprisma.png | Bin 0 -> 14749 bytes static/build/js/custom.js | 5039 ++ static/build/js/custom.min.js | 1 + static/ckeditor/ckeditor/skins/light/LICENSE | 21 + .../ckeditor/ckeditor/skins/light/README.md | 2 + .../ckeditor/ckeditor/skins/light/bower.json | 13 + .../ckeditor/ckeditor/skins/light/dialog.css | 5 + .../ckeditor/ckeditor/skins/light/editor.css | 1348 + .../ckeditor/skins/light/editor_gecko.css | 6 + .../ckeditor/skins/light/editor_ie.css | 5 + .../ckeditor/skins/light/editor_ie7.css | 5 + .../ckeditor/skins/light/editor_ie8.css | 5 + .../ckeditor/ckeditor/skins/light/icons.png | Bin 0 -> 22758 bytes .../ckeditor/skins/light/icons_hidpi.png | Bin 0 -> 33069 bytes .../ckeditor/skins/light/images/arrow.png | Bin 0 -> 261 bytes .../ckeditor/skins/light/images/close.png | Bin 0 -> 824 bytes .../skins/light/images/hidpi/close.png | Bin 0 -> 1792 bytes .../skins/light/images/hidpi/lock-open.png | Bin 0 -> 1503 bytes .../skins/light/images/hidpi/lock.png | Bin 0 -> 1616 bytes .../skins/light/images/hidpi/refresh.png | Bin 0 -> 2320 bytes .../ckeditor/skins/light/images/lock-open.png | Bin 0 -> 736 bytes .../ckeditor/skins/light/images/lock.png | Bin 0 -> 728 bytes .../ckeditor/skins/light/images/refresh.png | Bin 0 -> 953 bytes static/ckeditor/ckeditor/skins/light/skin.js | 322 + static/colorfield/colorfield.js | 12 + static/colorfield/jscolor/jscolor.js | 1988 + static/colorfield/jscolor/jscolor.min.js | 1 + static/ordered_model/arrow-bottom.gif | Bin 0 -> 80 bytes static/ordered_model/arrow-down.gif | Bin 0 -> 80 bytes static/ordered_model/arrow-top.gif | Bin 0 -> 841 bytes static/ordered_model/arrow-up.gif | Bin 0 -> 838 bytes static/suit/css/font-awesome.min.css | 4 + static/suit/css/suit.css | 2967 + static/suit/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes static/suit/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes static/suit/fonts/fontawesome-webfont.svg | 2671 + static/suit/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes static/suit/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes static/suit/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes static/suit/js/autosize.min.js | 6 + static/suit/js/suit.js | 250 + static/suit/js/suit.sortables.js | 183 + static/vendors/Chart.js/.bower.json | 23 + static/vendors/Chart.js/.codeclimate.yml | 18 + static/vendors/Chart.js/.editorconfig | 10 + static/vendors/Chart.js/.eslintignore | 1 + static/vendors/Chart.js/.eslintrc | 213 + .../Chart.js/.github/ISSUE_TEMPLATE.md | 2 + .../Chart.js/.github/PULL_REQUEST_TEMPLATE.md | 2 + static/vendors/Chart.js/.gitignore | 13 + static/vendors/Chart.js/.travis.yml | 30 + static/vendors/Chart.js/CONTRIBUTING.md | 64 + static/vendors/Chart.js/LICENSE.md | 8 + static/vendors/Chart.js/README.md | 38 + static/vendors/Chart.js/bower.json | 14 + static/vendors/Chart.js/composer.json | 26 + static/vendors/Chart.js/config.jshintrc | 4 + static/vendors/Chart.js/dist/Chart.bundle.js | 13946 +++ .../vendors/Chart.js/dist/Chart.bundle.min.js | 16 + static/vendors/Chart.js/dist/Chart.js | 9907 +++ static/vendors/Chart.js/dist/Chart.min.js | 14 + .../Chart.js/docs/00-Getting-Started.md | 120 + .../Chart.js/docs/01-Chart-Configuration.md | 408 + static/vendors/Chart.js/docs/02-Scales.md | 357 + static/vendors/Chart.js/docs/03-Line-Chart.md | 179 + static/vendors/Chart.js/docs/04-Bar-Chart.md | 160 + .../vendors/Chart.js/docs/05-Radar-Chart.md | 124 + .../Chart.js/docs/06-Polar-Area-Chart.md | 108 + .../Chart.js/docs/07-Pie-Doughnut-Chart.md | 113 + .../vendors/Chart.js/docs/08-Bubble-Chart.md | 100 + static/vendors/Chart.js/docs/09-Advanced.md | 425 + static/vendors/Chart.js/docs/10-Notes.md | 35 + static/vendors/Chart.js/gulpfile.js | 226 + static/vendors/Chart.js/karma.conf.ci.js | 25 + static/vendors/Chart.js/karma.conf.js | 14 + .../vendors/Chart.js/karma.coverage.conf.js | 43 + static/vendors/Chart.js/package.json | 53 + .../AnimationCallbacks/progress-bar.html | 170 + .../Chart.js/samples/bar-horizontal.html | 143 + .../Chart.js/samples/bar-multi-axis.html | 102 + .../vendors/Chart.js/samples/bar-stacked.html | 84 + static/vendors/Chart.js/samples/bar.html | 144 + static/vendors/Chart.js/samples/bubble.html | 192 + .../Chart.js/samples/combo-bar-line.html | 80 + .../samples/data_label_combo-bar-line.html | 95 + .../samples/different-point-sizes.html | 154 + static/vendors/Chart.js/samples/doughnut.html | 180 + .../Chart.js/samples/line-customTooltips.html | 141 + .../vendors/Chart.js/samples/line-legend.html | 172 + .../Chart.js/samples/line-logarithmic.html | 152 + .../Chart.js/samples/line-multi-axis.html | 101 + .../Chart.js/samples/line-skip-points.html | 164 + .../Chart.js/samples/line-stacked-area.html | 163 + .../Chart.js/samples/line-x-axis-filter.html | 151 + static/vendors/Chart.js/samples/line.html | 218 + .../Chart.js/samples/pie-customTooltips.html | 174 + static/vendors/Chart.js/samples/pie.html | 122 + .../vendors/Chart.js/samples/polar-area.html | 124 + .../Chart.js/samples/radar-skip-points.html | 145 + static/vendors/Chart.js/samples/radar.html | 139 + .../Chart.js/samples/scatter-logX.html | 185 + .../Chart.js/samples/scatter-multi-axis.html | 186 + static/vendors/Chart.js/samples/scatter.html | 177 + .../samples/timeScale/combo-time-scale.html | 165 + .../timeScale/line-time-point-data.html | 163 + .../samples/timeScale/line-time-scale.html | 198 + .../Chart.js/samples/tooltip-hooks.html | 183 + static/vendors/Chart.js/src/chart.js | 44 + .../vendors/Chart.js/src/charts/Chart.Bar.js | 11 + .../Chart.js/src/charts/Chart.Bubble.js | 10 + .../Chart.js/src/charts/Chart.Doughnut.js | 11 + .../vendors/Chart.js/src/charts/Chart.Line.js | 11 + .../Chart.js/src/charts/Chart.PolarArea.js | 11 + .../Chart.js/src/charts/Chart.Radar.js | 12 + .../Chart.js/src/charts/Chart.Scatter.js | 47 + .../src/controllers/controller.bar.js | 569 + .../src/controllers/controller.bubble.js | 122 + .../src/controllers/controller.doughnut.js | 271 + .../src/controllers/controller.line.js | 306 + .../src/controllers/controller.polarArea.js | 229 + .../src/controllers/controller.radar.js | 186 + .../Chart.js/src/core/core.animation.js | 129 + .../Chart.js/src/core/core.controller.js | 603 + .../src/core/core.datasetController.js | 163 + .../vendors/Chart.js/src/core/core.element.js | 95 + .../vendors/Chart.js/src/core/core.helpers.js | 978 + static/vendors/Chart.js/src/core/core.js | 104 + .../Chart.js/src/core/core.layoutService.js | 323 + .../vendors/Chart.js/src/core/core.legend.js | 350 + .../vendors/Chart.js/src/core/core.plugin.js | 61 + .../vendors/Chart.js/src/core/core.scale.js | 739 + .../Chart.js/src/core/core.scaleService.js | 40 + .../vendors/Chart.js/src/core/core.title.js | 180 + .../vendors/Chart.js/src/core/core.tooltip.js | 619 + .../Chart.js/src/elements/element.arc.js | 93 + .../Chart.js/src/elements/element.line.js | 163 + .../Chart.js/src/elements/element.point.js | 147 + .../src/elements/element.rectangle.js | 94 + .../Chart.js/src/scales/scale.category.js | 97 + .../Chart.js/src/scales/scale.linear.js | 295 + .../Chart.js/src/scales/scale.logarithmic.js | 236 + .../Chart.js/src/scales/scale.radialLinear.js | 457 + .../vendors/Chart.js/src/scales/scale.time.js | 381 + .../Chart.js/test/controller.bar.tests.js | 440 + .../Chart.js/test/controller.bubble.tests.js | 440 + .../test/controller.doughnut.tests.js | 348 + .../Chart.js/test/controller.line.tests.js | 493 + .../test/controller.polarArea.tests.js | 318 + .../Chart.js/test/controller.radar.tests.js | 465 + .../Chart.js/test/core.element.tests.js | 45 + .../Chart.js/test/core.helpers.tests.js | 718 + .../Chart.js/test/core.layoutService.tests.js | 244 + .../Chart.js/test/core.legend.tests.js | 308 + .../Chart.js/test/core.plugin.tests.js | 43 + .../Chart.js/test/core.scaleService.tests.js | 29 + .../vendors/Chart.js/test/core.title.tests.js | 210 + .../Chart.js/test/defaultConfig.tests.js | 293 + .../Chart.js/test/element.arc.tests.js | 176 + .../Chart.js/test/element.line.tests.js | 1048 + .../Chart.js/test/element.point.tests.js | 465 + .../Chart.js/test/element.rectangle.tests.js | 303 + static/vendors/Chart.js/test/mockContext.js | 238 + .../Chart.js/test/scale.category.tests.js | 360 + .../Chart.js/test/scale.linear.tests.js | 731 + .../Chart.js/test/scale.logarithmic.tests.js | 573 + .../Chart.js/test/scale.radialLinear.tests.js | 423 + .../vendors/Chart.js/test/scale.time.tests.js | 438 + static/vendors/DateJS/.bower.json | 35 + static/vendors/DateJS/GruntFile.js | 184 + static/vendors/DateJS/LICENSE | 21 + static/vendors/DateJS/README.md | 48 + static/vendors/DateJS/bower.json | 25 + static/vendors/DateJS/build/date-af-ZA.js | 4526 + static/vendors/DateJS/build/date-ar-AE.js | 4526 + static/vendors/DateJS/build/date-ar-BH.js | 4526 + static/vendors/DateJS/build/date-ar-DZ.js | 4526 + static/vendors/DateJS/build/date-ar-EG.js | 4526 + static/vendors/DateJS/build/date-ar-IQ.js | 4526 + static/vendors/DateJS/build/date-ar-JO.js | 4526 + static/vendors/DateJS/build/date-ar-KW.js | 4526 + static/vendors/DateJS/build/date-ar-LB.js | 4526 + static/vendors/DateJS/build/date-ar-LY.js | 4526 + static/vendors/DateJS/build/date-ar-MA.js | 4526 + static/vendors/DateJS/build/date-ar-OM.js | 4526 + static/vendors/DateJS/build/date-ar-QA.js | 4526 + static/vendors/DateJS/build/date-ar-SA.js | 4526 + static/vendors/DateJS/build/date-ar-SY.js | 4526 + static/vendors/DateJS/build/date-ar-TN.js | 4526 + static/vendors/DateJS/build/date-ar-YE.js | 4526 + .../vendors/DateJS/build/date-az-Cyrl-AZ.js | 4526 + .../vendors/DateJS/build/date-az-Latn-AZ.js | 4526 + static/vendors/DateJS/build/date-be-BY.js | 4526 + static/vendors/DateJS/build/date-bg-BG.js | 4526 + .../vendors/DateJS/build/date-bs-Latn-BA.js | 4526 + static/vendors/DateJS/build/date-ca-ES.js | 4526 + static/vendors/DateJS/build/date-cs-CZ.js | 4526 + static/vendors/DateJS/build/date-cy-GB.js | 4526 + static/vendors/DateJS/build/date-da-DK.js | 4526 + static/vendors/DateJS/build/date-de-AT.js | 4526 + static/vendors/DateJS/build/date-de-CH.js | 4526 + static/vendors/DateJS/build/date-de-DE.js | 4526 + static/vendors/DateJS/build/date-de-LI.js | 4526 + static/vendors/DateJS/build/date-de-LU.js | 4526 + static/vendors/DateJS/build/date-dv-MV.js | 4526 + static/vendors/DateJS/build/date-el-GR.js | 4526 + static/vendors/DateJS/build/date-en-029.js | 4526 + static/vendors/DateJS/build/date-en-AU.js | 4526 + static/vendors/DateJS/build/date-en-BZ.js | 4526 + static/vendors/DateJS/build/date-en-CA.js | 4526 + static/vendors/DateJS/build/date-en-GB.js | 4526 + static/vendors/DateJS/build/date-en-IE.js | 4526 + static/vendors/DateJS/build/date-en-JM.js | 4526 + static/vendors/DateJS/build/date-en-NZ.js | 4526 + static/vendors/DateJS/build/date-en-PH.js | 4526 + static/vendors/DateJS/build/date-en-TT.js | 4526 + static/vendors/DateJS/build/date-en-US.js | 4096 + static/vendors/DateJS/build/date-en-ZA.js | 4526 + static/vendors/DateJS/build/date-en-ZW.js | 4526 + static/vendors/DateJS/build/date-es-AR.js | 4526 + static/vendors/DateJS/build/date-es-BO.js | 4526 + static/vendors/DateJS/build/date-es-CL.js | 4526 + static/vendors/DateJS/build/date-es-CO.js | 4526 + static/vendors/DateJS/build/date-es-CR.js | 4526 + static/vendors/DateJS/build/date-es-DO.js | 4526 + static/vendors/DateJS/build/date-es-EC.js | 4526 + static/vendors/DateJS/build/date-es-ES.js | 4526 + static/vendors/DateJS/build/date-es-GT.js | 4526 + static/vendors/DateJS/build/date-es-HN.js | 4526 + static/vendors/DateJS/build/date-es-MX.js | 4526 + static/vendors/DateJS/build/date-es-NI.js | 4526 + static/vendors/DateJS/build/date-es-PA.js | 4526 + static/vendors/DateJS/build/date-es-PE.js | 4526 + static/vendors/DateJS/build/date-es-PR.js | 4526 + static/vendors/DateJS/build/date-es-PY.js | 4526 + static/vendors/DateJS/build/date-es-SV.js | 4526 + static/vendors/DateJS/build/date-es-UY.js | 4526 + static/vendors/DateJS/build/date-es-VE.js | 4526 + static/vendors/DateJS/build/date-et-EE.js | 4526 + static/vendors/DateJS/build/date-eu-ES.js | 4526 + static/vendors/DateJS/build/date-fa-IR.js | 4526 + static/vendors/DateJS/build/date-fi-FI.js | 4526 + static/vendors/DateJS/build/date-fo-FO.js | 4526 + static/vendors/DateJS/build/date-fr-BE.js | 4526 + static/vendors/DateJS/build/date-fr-CA.js | 4526 + static/vendors/DateJS/build/date-fr-CH.js | 4526 + static/vendors/DateJS/build/date-fr-FR.js | 4526 + static/vendors/DateJS/build/date-fr-LU.js | 4526 + static/vendors/DateJS/build/date-fr-MC.js | 4526 + static/vendors/DateJS/build/date-gl-ES.js | 4526 + static/vendors/DateJS/build/date-gu-IN.js | 4526 + static/vendors/DateJS/build/date-he-IL.js | 4526 + static/vendors/DateJS/build/date-hi-IN.js | 4526 + static/vendors/DateJS/build/date-hr-BA.js | 4526 + static/vendors/DateJS/build/date-hr-HR.js | 4526 + static/vendors/DateJS/build/date-hu-HU.js | 4526 + static/vendors/DateJS/build/date-hy-AM.js | 4526 + static/vendors/DateJS/build/date-id-ID.js | 4526 + static/vendors/DateJS/build/date-is-IS.js | 4526 + static/vendors/DateJS/build/date-it-CH.js | 4526 + static/vendors/DateJS/build/date-it-IT.js | 4526 + static/vendors/DateJS/build/date-ja-JP.js | 4526 + static/vendors/DateJS/build/date-ka-GE.js | 4526 + static/vendors/DateJS/build/date-kk-KZ.js | 4526 + static/vendors/DateJS/build/date-kn-IN.js | 4526 + static/vendors/DateJS/build/date-ko-KR.js | 4526 + static/vendors/DateJS/build/date-kok-IN.js | 4526 + static/vendors/DateJS/build/date-ky-KG.js | 4526 + static/vendors/DateJS/build/date-lt-LT.js | 4526 + static/vendors/DateJS/build/date-lv-LV.js | 4526 + static/vendors/DateJS/build/date-mi-NZ.js | 4526 + static/vendors/DateJS/build/date-mk-MK.js | 4526 + static/vendors/DateJS/build/date-mn-MN.js | 4526 + static/vendors/DateJS/build/date-mr-IN.js | 4526 + static/vendors/DateJS/build/date-ms-BN.js | 4526 + static/vendors/DateJS/build/date-ms-MY.js | 4526 + static/vendors/DateJS/build/date-mt-MT.js | 4526 + static/vendors/DateJS/build/date-nb-NO.js | 4526 + static/vendors/DateJS/build/date-nl-BE.js | 4526 + static/vendors/DateJS/build/date-nl-NL.js | 4526 + static/vendors/DateJS/build/date-nn-NO.js | 4526 + static/vendors/DateJS/build/date-ns-ZA.js | 4526 + static/vendors/DateJS/build/date-pa-IN.js | 4526 + static/vendors/DateJS/build/date-pl-PL.js | 4526 + static/vendors/DateJS/build/date-pt-BR.js | 4526 + static/vendors/DateJS/build/date-pt-PT.js | 4526 + static/vendors/DateJS/build/date-quz-BO.js | 4526 + static/vendors/DateJS/build/date-quz-EC.js | 4526 + static/vendors/DateJS/build/date-quz-PE.js | 4526 + static/vendors/DateJS/build/date-ro-RO.js | 4526 + static/vendors/DateJS/build/date-ru-RU.js | 4526 + static/vendors/DateJS/build/date-sa-IN.js | 4526 + static/vendors/DateJS/build/date-se-FI.js | 4526 + static/vendors/DateJS/build/date-se-NO.js | 4526 + static/vendors/DateJS/build/date-se-SE.js | 4526 + static/vendors/DateJS/build/date-sk-SK.js | 4526 + static/vendors/DateJS/build/date-sl-SI.js | 4526 + static/vendors/DateJS/build/date-sma-NO.js | 4526 + static/vendors/DateJS/build/date-sma-SE.js | 4526 + static/vendors/DateJS/build/date-smj-NO.js | 4526 + static/vendors/DateJS/build/date-smj-SE.js | 4526 + static/vendors/DateJS/build/date-smn-FI.js | 4526 + static/vendors/DateJS/build/date-sms-FI.js | 4526 + static/vendors/DateJS/build/date-sq-AL.js | 4526 + .../vendors/DateJS/build/date-sr-Cyrl-BA.js | 4526 + .../vendors/DateJS/build/date-sr-Cyrl-CS.js | 4526 + .../vendors/DateJS/build/date-sr-Latn-BA.js | 4526 + .../vendors/DateJS/build/date-sr-Latn-CS.js | 4526 + static/vendors/DateJS/build/date-sv-FI.js | 4526 + static/vendors/DateJS/build/date-sv-SE.js | 4526 + static/vendors/DateJS/build/date-sw-KE.js | 4526 + static/vendors/DateJS/build/date-syr-SY.js | 4526 + static/vendors/DateJS/build/date-ta-IN.js | 4526 + static/vendors/DateJS/build/date-te-IN.js | 4526 + static/vendors/DateJS/build/date-th-TH.js | 4526 + static/vendors/DateJS/build/date-tn-ZA.js | 4526 + static/vendors/DateJS/build/date-tr-TR.js | 4526 + static/vendors/DateJS/build/date-tt-RU.js | 4526 + static/vendors/DateJS/build/date-uk-UA.js | 4526 + static/vendors/DateJS/build/date-ur-PK.js | 4526 + .../vendors/DateJS/build/date-uz-Cyrl-UZ.js | 4526 + .../vendors/DateJS/build/date-uz-Latn-UZ.js | 4526 + static/vendors/DateJS/build/date-vi-VN.js | 4526 + static/vendors/DateJS/build/date-xh-ZA.js | 4526 + static/vendors/DateJS/build/date-zh-CN.js | 4526 + static/vendors/DateJS/build/date-zh-HK.js | 4526 + static/vendors/DateJS/build/date-zh-MO.js | 4526 + static/vendors/DateJS/build/date-zh-SG.js | 4526 + static/vendors/DateJS/build/date-zh-TW.js | 4526 + static/vendors/DateJS/build/date-zu-ZA.js | 4526 + static/vendors/DateJS/build/date.js | 4339 + static/vendors/DateJS/build/i18n/af-ZA.js | 178 + static/vendors/DateJS/build/i18n/ar-AE.js | 178 + static/vendors/DateJS/build/i18n/ar-BH.js | 178 + static/vendors/DateJS/build/i18n/ar-DZ.js | 178 + static/vendors/DateJS/build/i18n/ar-EG.js | 178 + static/vendors/DateJS/build/i18n/ar-IQ.js | 178 + static/vendors/DateJS/build/i18n/ar-JO.js | 178 + static/vendors/DateJS/build/i18n/ar-KW.js | 178 + static/vendors/DateJS/build/i18n/ar-LB.js | 178 + static/vendors/DateJS/build/i18n/ar-LY.js | 178 + static/vendors/DateJS/build/i18n/ar-MA.js | 178 + static/vendors/DateJS/build/i18n/ar-OM.js | 178 + static/vendors/DateJS/build/i18n/ar-QA.js | 178 + static/vendors/DateJS/build/i18n/ar-SA.js | 178 + static/vendors/DateJS/build/i18n/ar-SY.js | 178 + static/vendors/DateJS/build/i18n/ar-TN.js | 178 + static/vendors/DateJS/build/i18n/ar-YE.js | 178 + .../vendors/DateJS/build/i18n/az-Cyrl-AZ.js | 178 + .../vendors/DateJS/build/i18n/az-Latn-AZ.js | 178 + static/vendors/DateJS/build/i18n/be-BY.js | 178 + static/vendors/DateJS/build/i18n/bg-BG.js | 178 + .../vendors/DateJS/build/i18n/bs-Latn-BA.js | 178 + static/vendors/DateJS/build/i18n/ca-ES.js | 178 + static/vendors/DateJS/build/i18n/cs-CZ.js | 178 + static/vendors/DateJS/build/i18n/cy-GB.js | 178 + static/vendors/DateJS/build/i18n/da-DK.js | 178 + static/vendors/DateJS/build/i18n/de-AT.js | 178 + static/vendors/DateJS/build/i18n/de-CH.js | 178 + static/vendors/DateJS/build/i18n/de-DE.js | 178 + static/vendors/DateJS/build/i18n/de-LI.js | 178 + static/vendors/DateJS/build/i18n/de-LU.js | 178 + static/vendors/DateJS/build/i18n/dv-MV.js | 178 + static/vendors/DateJS/build/i18n/el-GR.js | 178 + static/vendors/DateJS/build/i18n/en-029.js | 178 + static/vendors/DateJS/build/i18n/en-AU.js | 178 + static/vendors/DateJS/build/i18n/en-BZ.js | 178 + static/vendors/DateJS/build/i18n/en-CA.js | 178 + static/vendors/DateJS/build/i18n/en-GB.js | 178 + static/vendors/DateJS/build/i18n/en-IE.js | 178 + static/vendors/DateJS/build/i18n/en-JM.js | 178 + static/vendors/DateJS/build/i18n/en-NZ.js | 178 + static/vendors/DateJS/build/i18n/en-PH.js | 178 + static/vendors/DateJS/build/i18n/en-TT.js | 178 + static/vendors/DateJS/build/i18n/en-ZA.js | 178 + static/vendors/DateJS/build/i18n/en-ZW.js | 178 + static/vendors/DateJS/build/i18n/es-AR.js | 178 + static/vendors/DateJS/build/i18n/es-BO.js | 178 + static/vendors/DateJS/build/i18n/es-CL.js | 178 + static/vendors/DateJS/build/i18n/es-CO.js | 178 + static/vendors/DateJS/build/i18n/es-CR.js | 178 + static/vendors/DateJS/build/i18n/es-DO.js | 178 + static/vendors/DateJS/build/i18n/es-EC.js | 178 + static/vendors/DateJS/build/i18n/es-ES.js | 178 + static/vendors/DateJS/build/i18n/es-GT.js | 178 + static/vendors/DateJS/build/i18n/es-HN.js | 178 + static/vendors/DateJS/build/i18n/es-MX.js | 178 + static/vendors/DateJS/build/i18n/es-NI.js | 178 + static/vendors/DateJS/build/i18n/es-PA.js | 178 + static/vendors/DateJS/build/i18n/es-PE.js | 178 + static/vendors/DateJS/build/i18n/es-PR.js | 178 + static/vendors/DateJS/build/i18n/es-PY.js | 178 + static/vendors/DateJS/build/i18n/es-SV.js | 178 + static/vendors/DateJS/build/i18n/es-UY.js | 178 + static/vendors/DateJS/build/i18n/es-VE.js | 178 + static/vendors/DateJS/build/i18n/et-EE.js | 178 + static/vendors/DateJS/build/i18n/eu-ES.js | 178 + static/vendors/DateJS/build/i18n/fa-IR.js | 178 + static/vendors/DateJS/build/i18n/fi-FI.js | 178 + static/vendors/DateJS/build/i18n/fo-FO.js | 178 + static/vendors/DateJS/build/i18n/fr-BE.js | 178 + static/vendors/DateJS/build/i18n/fr-CA.js | 178 + static/vendors/DateJS/build/i18n/fr-CH.js | 178 + static/vendors/DateJS/build/i18n/fr-FR.js | 178 + static/vendors/DateJS/build/i18n/fr-LU.js | 178 + static/vendors/DateJS/build/i18n/fr-MC.js | 178 + static/vendors/DateJS/build/i18n/gl-ES.js | 178 + static/vendors/DateJS/build/i18n/gu-IN.js | 178 + static/vendors/DateJS/build/i18n/he-IL.js | 178 + static/vendors/DateJS/build/i18n/hi-IN.js | 178 + static/vendors/DateJS/build/i18n/hr-BA.js | 178 + static/vendors/DateJS/build/i18n/hr-HR.js | 178 + static/vendors/DateJS/build/i18n/hu-HU.js | 178 + static/vendors/DateJS/build/i18n/hy-AM.js | 178 + static/vendors/DateJS/build/i18n/id-ID.js | 178 + static/vendors/DateJS/build/i18n/is-IS.js | 178 + static/vendors/DateJS/build/i18n/it-CH.js | 178 + static/vendors/DateJS/build/i18n/it-IT.js | 178 + static/vendors/DateJS/build/i18n/ja-JP.js | 178 + static/vendors/DateJS/build/i18n/ka-GE.js | 178 + static/vendors/DateJS/build/i18n/kk-KZ.js | 178 + static/vendors/DateJS/build/i18n/kn-IN.js | 178 + static/vendors/DateJS/build/i18n/ko-KR.js | 178 + static/vendors/DateJS/build/i18n/kok-IN.js | 178 + static/vendors/DateJS/build/i18n/ky-KG.js | 178 + static/vendors/DateJS/build/i18n/lt-LT.js | 178 + static/vendors/DateJS/build/i18n/lv-LV.js | 178 + static/vendors/DateJS/build/i18n/mi-NZ.js | 178 + static/vendors/DateJS/build/i18n/mk-MK.js | 178 + static/vendors/DateJS/build/i18n/mn-MN.js | 178 + static/vendors/DateJS/build/i18n/mr-IN.js | 178 + static/vendors/DateJS/build/i18n/ms-BN.js | 178 + static/vendors/DateJS/build/i18n/ms-MY.js | 178 + static/vendors/DateJS/build/i18n/mt-MT.js | 178 + static/vendors/DateJS/build/i18n/nb-NO.js | 178 + static/vendors/DateJS/build/i18n/nl-BE.js | 178 + static/vendors/DateJS/build/i18n/nl-NL.js | 178 + static/vendors/DateJS/build/i18n/nn-NO.js | 178 + static/vendors/DateJS/build/i18n/ns-ZA.js | 178 + static/vendors/DateJS/build/i18n/pa-IN.js | 178 + static/vendors/DateJS/build/i18n/pl-PL.js | 178 + static/vendors/DateJS/build/i18n/pt-BR.js | 178 + static/vendors/DateJS/build/i18n/pt-PT.js | 178 + static/vendors/DateJS/build/i18n/quz-BO.js | 178 + static/vendors/DateJS/build/i18n/quz-EC.js | 178 + static/vendors/DateJS/build/i18n/quz-PE.js | 178 + static/vendors/DateJS/build/i18n/ro-RO.js | 178 + static/vendors/DateJS/build/i18n/ru-RU.js | 178 + static/vendors/DateJS/build/i18n/sa-IN.js | 178 + static/vendors/DateJS/build/i18n/se-FI.js | 178 + static/vendors/DateJS/build/i18n/se-NO.js | 178 + static/vendors/DateJS/build/i18n/se-SE.js | 178 + static/vendors/DateJS/build/i18n/sk-SK.js | 178 + static/vendors/DateJS/build/i18n/sl-SI.js | 178 + static/vendors/DateJS/build/i18n/sma-NO.js | 178 + static/vendors/DateJS/build/i18n/sma-SE.js | 178 + static/vendors/DateJS/build/i18n/smj-NO.js | 178 + static/vendors/DateJS/build/i18n/smj-SE.js | 178 + static/vendors/DateJS/build/i18n/smn-FI.js | 178 + static/vendors/DateJS/build/i18n/sms-FI.js | 178 + static/vendors/DateJS/build/i18n/sq-AL.js | 178 + .../vendors/DateJS/build/i18n/sr-Cyrl-BA.js | 178 + .../vendors/DateJS/build/i18n/sr-Cyrl-CS.js | 178 + .../vendors/DateJS/build/i18n/sr-Latn-BA.js | 178 + .../vendors/DateJS/build/i18n/sr-Latn-CS.js | 178 + static/vendors/DateJS/build/i18n/sv-FI.js | 178 + static/vendors/DateJS/build/i18n/sv-SE.js | 178 + static/vendors/DateJS/build/i18n/sw-KE.js | 178 + static/vendors/DateJS/build/i18n/syr-SY.js | 178 + static/vendors/DateJS/build/i18n/ta-IN.js | 178 + static/vendors/DateJS/build/i18n/te-IN.js | 178 + static/vendors/DateJS/build/i18n/th-TH.js | 178 + static/vendors/DateJS/build/i18n/tn-ZA.js | 178 + static/vendors/DateJS/build/i18n/tr-TR.js | 178 + static/vendors/DateJS/build/i18n/tt-RU.js | 178 + static/vendors/DateJS/build/i18n/uk-UA.js | 178 + static/vendors/DateJS/build/i18n/ur-PK.js | 178 + .../vendors/DateJS/build/i18n/uz-Cyrl-UZ.js | 178 + .../vendors/DateJS/build/i18n/uz-Latn-UZ.js | 178 + static/vendors/DateJS/build/i18n/vi-VN.js | 178 + static/vendors/DateJS/build/i18n/xh-ZA.js | 178 + static/vendors/DateJS/build/i18n/zh-CN.js | 178 + static/vendors/DateJS/build/i18n/zh-HK.js | 178 + static/vendors/DateJS/build/i18n/zh-MO.js | 178 + static/vendors/DateJS/build/i18n/zh-SG.js | 178 + static/vendors/DateJS/build/i18n/zh-TW.js | 178 + static/vendors/DateJS/build/i18n/zu-ZA.js | 178 + .../DateJS/build/production/date-af-ZA.min.js | 134 + .../DateJS/build/production/date-ar-AE.min.js | 137 + .../DateJS/build/production/date-ar-BH.min.js | 137 + .../DateJS/build/production/date-ar-DZ.min.js | 137 + .../DateJS/build/production/date-ar-EG.min.js | 137 + .../DateJS/build/production/date-ar-IQ.min.js | 138 + .../DateJS/build/production/date-ar-JO.min.js | 138 + .../DateJS/build/production/date-ar-KW.min.js | 137 + .../DateJS/build/production/date-ar-LB.min.js | 138 + .../DateJS/build/production/date-ar-LY.min.js | 137 + .../DateJS/build/production/date-ar-MA.min.js | 137 + .../DateJS/build/production/date-ar-OM.min.js | 137 + .../DateJS/build/production/date-ar-QA.min.js | 137 + .../DateJS/build/production/date-ar-SA.min.js | 138 + .../DateJS/build/production/date-ar-SY.min.js | 138 + .../DateJS/build/production/date-ar-TN.min.js | 137 + .../DateJS/build/production/date-ar-YE.min.js | 137 + .../build/production/date-az-Cyrl-AZ.min.js | 137 + .../build/production/date-az-Latn-AZ.min.js | 135 + .../DateJS/build/production/date-be-BY.min.js | 137 + .../DateJS/build/production/date-bg-BG.min.js | 138 + .../build/production/date-bs-Latn-BA.min.js | 134 + .../DateJS/build/production/date-ca-ES.min.js | 134 + .../DateJS/build/production/date-cs-CZ.min.js | 134 + .../DateJS/build/production/date-cy-GB.min.js | 134 + .../DateJS/build/production/date-da-DK.min.js | 134 + .../DateJS/build/production/date-de-AT.min.js | 134 + .../DateJS/build/production/date-de-CH.min.js | 134 + .../DateJS/build/production/date-de-DE.min.js | 134 + .../DateJS/build/production/date-de-LI.min.js | 134 + .../DateJS/build/production/date-de-LU.min.js | 134 + .../DateJS/build/production/date-dv-MV.min.js | 138 + .../DateJS/build/production/date-el-GR.min.js | 138 + .../build/production/date-en-029.min.js | 134 + .../DateJS/build/production/date-en-AU.min.js | 134 + .../DateJS/build/production/date-en-BZ.min.js | 134 + .../DateJS/build/production/date-en-CA.min.js | 134 + .../DateJS/build/production/date-en-GB.min.js | 134 + .../DateJS/build/production/date-en-IE.min.js | 134 + .../DateJS/build/production/date-en-JM.min.js | 134 + .../DateJS/build/production/date-en-NZ.min.js | 134 + .../DateJS/build/production/date-en-PH.min.js | 134 + .../DateJS/build/production/date-en-TT.min.js | 134 + .../DateJS/build/production/date-en-US.min.js | 125 + .../DateJS/build/production/date-en-ZA.min.js | 134 + .../DateJS/build/production/date-en-ZW.min.js | 134 + .../DateJS/build/production/date-es-AR.min.js | 134 + .../DateJS/build/production/date-es-BO.min.js | 134 + .../DateJS/build/production/date-es-CL.min.js | 134 + .../DateJS/build/production/date-es-CO.min.js | 134 + .../DateJS/build/production/date-es-CR.min.js | 134 + .../DateJS/build/production/date-es-DO.min.js | 134 + .../DateJS/build/production/date-es-EC.min.js | 134 + .../DateJS/build/production/date-es-ES.min.js | 134 + .../DateJS/build/production/date-es-GT.min.js | 134 + .../DateJS/build/production/date-es-HN.min.js | 134 + .../DateJS/build/production/date-es-MX.min.js | 134 + .../DateJS/build/production/date-es-NI.min.js | 134 + .../DateJS/build/production/date-es-PA.min.js | 134 + .../DateJS/build/production/date-es-PE.min.js | 134 + .../DateJS/build/production/date-es-PR.min.js | 134 + .../DateJS/build/production/date-es-PY.min.js | 134 + .../DateJS/build/production/date-es-SV.min.js | 134 + .../DateJS/build/production/date-es-UY.min.js | 134 + .../DateJS/build/production/date-es-VE.min.js | 134 + .../DateJS/build/production/date-et-EE.min.js | 134 + .../DateJS/build/production/date-eu-ES.min.js | 134 + .../DateJS/build/production/date-fa-IR.min.js | 134 + .../DateJS/build/production/date-fi-FI.min.js | 134 + .../DateJS/build/production/date-fo-FO.min.js | 134 + .../DateJS/build/production/date-fr-BE.min.js | 134 + .../DateJS/build/production/date-fr-CA.min.js | 134 + .../DateJS/build/production/date-fr-CH.min.js | 134 + .../DateJS/build/production/date-fr-FR.min.js | 134 + .../DateJS/build/production/date-fr-LU.min.js | 134 + .../DateJS/build/production/date-fr-MC.min.js | 134 + .../DateJS/build/production/date-gl-ES.min.js | 134 + .../DateJS/build/production/date-gu-IN.min.js | 138 + .../DateJS/build/production/date-he-IL.min.js | 137 + .../DateJS/build/production/date-hi-IN.min.js | 137 + .../DateJS/build/production/date-hr-BA.min.js | 134 + .../DateJS/build/production/date-hr-HR.min.js | 134 + .../DateJS/build/production/date-hu-HU.min.js | 135 + .../DateJS/build/production/date-hy-AM.min.js | 137 + .../DateJS/build/production/date-id-ID.min.js | 134 + .../DateJS/build/production/date-is-IS.min.js | 135 + .../DateJS/build/production/date-it-CH.min.js | 134 + .../DateJS/build/production/date-it-IT.min.js | 134 + .../DateJS/build/production/date-ja-JP.min.js | 135 + .../DateJS/build/production/date-ka-GE.min.js | 137 + .../DateJS/build/production/date-kk-KZ.min.js | 137 + .../DateJS/build/production/date-kn-IN.min.js | 138 + .../DateJS/build/production/date-ko-KR.min.js | 135 + .../build/production/date-kok-IN.min.js | 137 + .../DateJS/build/production/date-ky-KG.min.js | 137 + .../DateJS/build/production/date-lt-LT.min.js | 135 + .../DateJS/build/production/date-lv-LV.min.js | 134 + .../DateJS/build/production/date-mi-NZ.min.js | 135 + .../DateJS/build/production/date-mk-MK.min.js | 138 + .../DateJS/build/production/date-mn-MN.min.js | 138 + .../DateJS/build/production/date-mr-IN.min.js | 138 + .../DateJS/build/production/date-ms-BN.min.js | 134 + .../DateJS/build/production/date-ms-MY.min.js | 134 + .../DateJS/build/production/date-mt-MT.min.js | 134 + .../DateJS/build/production/date-nb-NO.min.js | 134 + .../DateJS/build/production/date-nl-BE.min.js | 134 + .../DateJS/build/production/date-nl-NL.min.js | 134 + .../DateJS/build/production/date-nn-NO.min.js | 134 + .../DateJS/build/production/date-ns-ZA.min.js | 134 + .../DateJS/build/production/date-pa-IN.min.js | 137 + .../DateJS/build/production/date-pl-PL.min.js | 134 + .../DateJS/build/production/date-pt-BR.min.js | 134 + .../DateJS/build/production/date-pt-PT.min.js | 134 + .../build/production/date-quz-BO.min.js | 134 + .../build/production/date-quz-EC.min.js | 134 + .../build/production/date-quz-PE.min.js | 134 + .../DateJS/build/production/date-ro-RO.min.js | 134 + .../DateJS/build/production/date-ru-RU.min.js | 138 + .../DateJS/build/production/date-sa-IN.min.js | 137 + .../DateJS/build/production/date-se-FI.min.js | 135 + .../DateJS/build/production/date-se-NO.min.js | 135 + .../DateJS/build/production/date-se-SE.min.js | 135 + .../DateJS/build/production/date-sk-SK.min.js | 134 + .../DateJS/build/production/date-sl-SI.min.js | 134 + .../build/production/date-sma-NO.min.js | 135 + .../build/production/date-sma-SE.min.js | 135 + .../build/production/date-smj-NO.min.js | 135 + .../build/production/date-smj-SE.min.js | 135 + .../build/production/date-smn-FI.min.js | 135 + .../build/production/date-sms-FI.min.js | 136 + .../DateJS/build/production/date-sq-AL.min.js | 134 + .../build/production/date-sr-Cyrl-BA.min.js | 137 + .../build/production/date-sr-Cyrl-CS.min.js | 137 + .../build/production/date-sr-Latn-BA.min.js | 134 + .../build/production/date-sr-Latn-CS.min.js | 134 + .../DateJS/build/production/date-sv-FI.min.js | 134 + .../DateJS/build/production/date-sv-SE.min.js | 134 + .../DateJS/build/production/date-sw-KE.min.js | 134 + .../build/production/date-syr-SY.min.js | 137 + .../DateJS/build/production/date-ta-IN.min.js | 137 + .../DateJS/build/production/date-te-IN.min.js | 138 + .../DateJS/build/production/date-th-TH.min.js | 137 + .../DateJS/build/production/date-tn-ZA.min.js | 134 + .../DateJS/build/production/date-tr-TR.min.js | 134 + .../DateJS/build/production/date-tt-RU.min.js | 137 + .../DateJS/build/production/date-uk-UA.min.js | 137 + .../DateJS/build/production/date-ur-PK.min.js | 136 + .../build/production/date-uz-Cyrl-UZ.min.js | 137 + .../build/production/date-uz-Latn-UZ.min.js | 134 + .../DateJS/build/production/date-vi-VN.min.js | 135 + .../DateJS/build/production/date-xh-ZA.min.js | 134 + .../DateJS/build/production/date-zh-CN.min.js | 135 + .../DateJS/build/production/date-zh-HK.min.js | 134 + .../DateJS/build/production/date-zh-MO.min.js | 135 + .../DateJS/build/production/date-zh-SG.min.js | 135 + .../DateJS/build/production/date-zh-TW.min.js | 135 + .../DateJS/build/production/date-zu-ZA.min.js | 134 + .../DateJS/build/production/date.min.js | 123 + .../DateJS/build/production/i18n/af-ZA.js | 178 + .../DateJS/build/production/i18n/ar-AE.js | 178 + .../DateJS/build/production/i18n/ar-BH.js | 178 + .../DateJS/build/production/i18n/ar-DZ.js | 178 + .../DateJS/build/production/i18n/ar-EG.js | 178 + .../DateJS/build/production/i18n/ar-IQ.js | 178 + .../DateJS/build/production/i18n/ar-JO.js | 178 + .../DateJS/build/production/i18n/ar-KW.js | 178 + .../DateJS/build/production/i18n/ar-LB.js | 178 + .../DateJS/build/production/i18n/ar-LY.js | 178 + .../DateJS/build/production/i18n/ar-MA.js | 178 + .../DateJS/build/production/i18n/ar-OM.js | 178 + .../DateJS/build/production/i18n/ar-QA.js | 178 + .../DateJS/build/production/i18n/ar-SA.js | 178 + .../DateJS/build/production/i18n/ar-SY.js | 178 + .../DateJS/build/production/i18n/ar-TN.js | 178 + .../DateJS/build/production/i18n/ar-YE.js | 178 + .../build/production/i18n/az-Cyrl-AZ.js | 178 + .../build/production/i18n/az-Latn-AZ.js | 178 + .../DateJS/build/production/i18n/be-BY.js | 178 + .../DateJS/build/production/i18n/bg-BG.js | 178 + .../build/production/i18n/bs-Latn-BA.js | 178 + .../DateJS/build/production/i18n/ca-ES.js | 178 + .../DateJS/build/production/i18n/cs-CZ.js | 178 + .../DateJS/build/production/i18n/cy-GB.js | 178 + .../DateJS/build/production/i18n/da-DK.js | 178 + .../DateJS/build/production/i18n/de-AT.js | 178 + .../DateJS/build/production/i18n/de-CH.js | 178 + .../DateJS/build/production/i18n/de-DE.js | 178 + .../DateJS/build/production/i18n/de-LI.js | 178 + .../DateJS/build/production/i18n/de-LU.js | 178 + .../DateJS/build/production/i18n/dv-MV.js | 178 + .../DateJS/build/production/i18n/el-GR.js | 178 + .../DateJS/build/production/i18n/en-029.js | 178 + .../DateJS/build/production/i18n/en-AU.js | 178 + .../DateJS/build/production/i18n/en-BZ.js | 178 + .../DateJS/build/production/i18n/en-CA.js | 178 + .../DateJS/build/production/i18n/en-GB.js | 178 + .../DateJS/build/production/i18n/en-IE.js | 178 + .../DateJS/build/production/i18n/en-JM.js | 178 + .../DateJS/build/production/i18n/en-NZ.js | 178 + .../DateJS/build/production/i18n/en-PH.js | 178 + .../DateJS/build/production/i18n/en-TT.js | 178 + .../DateJS/build/production/i18n/en-ZA.js | 178 + .../DateJS/build/production/i18n/en-ZW.js | 178 + .../DateJS/build/production/i18n/es-AR.js | 178 + .../DateJS/build/production/i18n/es-BO.js | 178 + .../DateJS/build/production/i18n/es-CL.js | 178 + .../DateJS/build/production/i18n/es-CO.js | 178 + .../DateJS/build/production/i18n/es-CR.js | 178 + .../DateJS/build/production/i18n/es-DO.js | 178 + .../DateJS/build/production/i18n/es-EC.js | 178 + .../DateJS/build/production/i18n/es-ES.js | 178 + .../DateJS/build/production/i18n/es-GT.js | 178 + .../DateJS/build/production/i18n/es-HN.js | 178 + .../DateJS/build/production/i18n/es-MX.js | 178 + .../DateJS/build/production/i18n/es-NI.js | 178 + .../DateJS/build/production/i18n/es-PA.js | 178 + .../DateJS/build/production/i18n/es-PE.js | 178 + .../DateJS/build/production/i18n/es-PR.js | 178 + .../DateJS/build/production/i18n/es-PY.js | 178 + .../DateJS/build/production/i18n/es-SV.js | 178 + .../DateJS/build/production/i18n/es-UY.js | 178 + .../DateJS/build/production/i18n/es-VE.js | 178 + .../DateJS/build/production/i18n/et-EE.js | 178 + .../DateJS/build/production/i18n/eu-ES.js | 178 + .../DateJS/build/production/i18n/fa-IR.js | 178 + .../DateJS/build/production/i18n/fi-FI.js | 178 + .../DateJS/build/production/i18n/fo-FO.js | 178 + .../DateJS/build/production/i18n/fr-BE.js | 178 + .../DateJS/build/production/i18n/fr-CA.js | 178 + .../DateJS/build/production/i18n/fr-CH.js | 178 + .../DateJS/build/production/i18n/fr-FR.js | 178 + .../DateJS/build/production/i18n/fr-LU.js | 178 + .../DateJS/build/production/i18n/fr-MC.js | 178 + .../DateJS/build/production/i18n/gl-ES.js | 178 + .../DateJS/build/production/i18n/gu-IN.js | 178 + .../DateJS/build/production/i18n/he-IL.js | 178 + .../DateJS/build/production/i18n/hi-IN.js | 178 + .../DateJS/build/production/i18n/hr-BA.js | 178 + .../DateJS/build/production/i18n/hr-HR.js | 178 + .../DateJS/build/production/i18n/hu-HU.js | 178 + .../DateJS/build/production/i18n/hy-AM.js | 178 + .../DateJS/build/production/i18n/id-ID.js | 178 + .../DateJS/build/production/i18n/is-IS.js | 178 + .../DateJS/build/production/i18n/it-CH.js | 178 + .../DateJS/build/production/i18n/it-IT.js | 178 + .../DateJS/build/production/i18n/ja-JP.js | 178 + .../DateJS/build/production/i18n/ka-GE.js | 178 + .../DateJS/build/production/i18n/kk-KZ.js | 178 + .../DateJS/build/production/i18n/kn-IN.js | 178 + .../DateJS/build/production/i18n/ko-KR.js | 178 + .../DateJS/build/production/i18n/kok-IN.js | 178 + .../DateJS/build/production/i18n/ky-KG.js | 178 + .../DateJS/build/production/i18n/lt-LT.js | 178 + .../DateJS/build/production/i18n/lv-LV.js | 178 + .../DateJS/build/production/i18n/mi-NZ.js | 178 + .../DateJS/build/production/i18n/mk-MK.js | 178 + .../DateJS/build/production/i18n/mn-MN.js | 178 + .../DateJS/build/production/i18n/mr-IN.js | 178 + .../DateJS/build/production/i18n/ms-BN.js | 178 + .../DateJS/build/production/i18n/ms-MY.js | 178 + .../DateJS/build/production/i18n/mt-MT.js | 178 + .../DateJS/build/production/i18n/nb-NO.js | 178 + .../DateJS/build/production/i18n/nl-BE.js | 178 + .../DateJS/build/production/i18n/nl-NL.js | 178 + .../DateJS/build/production/i18n/nn-NO.js | 178 + .../DateJS/build/production/i18n/ns-ZA.js | 178 + .../DateJS/build/production/i18n/pa-IN.js | 178 + .../DateJS/build/production/i18n/pl-PL.js | 178 + .../DateJS/build/production/i18n/pt-BR.js | 178 + .../DateJS/build/production/i18n/pt-PT.js | 178 + .../DateJS/build/production/i18n/quz-BO.js | 178 + .../DateJS/build/production/i18n/quz-EC.js | 178 + .../DateJS/build/production/i18n/quz-PE.js | 178 + .../DateJS/build/production/i18n/ro-RO.js | 178 + .../DateJS/build/production/i18n/ru-RU.js | 178 + .../DateJS/build/production/i18n/sa-IN.js | 178 + .../DateJS/build/production/i18n/se-FI.js | 178 + .../DateJS/build/production/i18n/se-NO.js | 178 + .../DateJS/build/production/i18n/se-SE.js | 178 + .../DateJS/build/production/i18n/sk-SK.js | 178 + .../DateJS/build/production/i18n/sl-SI.js | 178 + .../DateJS/build/production/i18n/sma-NO.js | 178 + .../DateJS/build/production/i18n/sma-SE.js | 178 + .../DateJS/build/production/i18n/smj-NO.js | 178 + .../DateJS/build/production/i18n/smj-SE.js | 178 + .../DateJS/build/production/i18n/smn-FI.js | 178 + .../DateJS/build/production/i18n/sms-FI.js | 178 + .../DateJS/build/production/i18n/sq-AL.js | 178 + .../build/production/i18n/sr-Cyrl-BA.js | 178 + .../build/production/i18n/sr-Cyrl-CS.js | 178 + .../build/production/i18n/sr-Latn-BA.js | 178 + .../build/production/i18n/sr-Latn-CS.js | 178 + .../DateJS/build/production/i18n/sv-FI.js | 178 + .../DateJS/build/production/i18n/sv-SE.js | 178 + .../DateJS/build/production/i18n/sw-KE.js | 178 + .../DateJS/build/production/i18n/syr-SY.js | 178 + .../DateJS/build/production/i18n/ta-IN.js | 178 + .../DateJS/build/production/i18n/te-IN.js | 178 + .../DateJS/build/production/i18n/th-TH.js | 178 + .../DateJS/build/production/i18n/tn-ZA.js | 178 + .../DateJS/build/production/i18n/tr-TR.js | 178 + .../DateJS/build/production/i18n/tt-RU.js | 178 + .../DateJS/build/production/i18n/uk-UA.js | 178 + .../DateJS/build/production/i18n/ur-PK.js | 178 + .../build/production/i18n/uz-Cyrl-UZ.js | 178 + .../build/production/i18n/uz-Latn-UZ.js | 178 + .../DateJS/build/production/i18n/vi-VN.js | 178 + .../DateJS/build/production/i18n/xh-ZA.js | 178 + .../DateJS/build/production/i18n/zh-CN.js | 178 + .../DateJS/build/production/i18n/zh-HK.js | 178 + .../DateJS/build/production/i18n/zh-MO.js | 178 + .../DateJS/build/production/i18n/zh-SG.js | 178 + .../DateJS/build/production/i18n/zh-TW.js | 178 + .../DateJS/build/production/i18n/zu-ZA.js | 178 + static/vendors/DateJS/index.js | 19 + static/vendors/DateJS/package.json | 52 + static/vendors/DateJS/reports/coverage.json | 1 + .../lcov-report/core/core-prototypes.js.html | 2626 + .../reports/lcov-report/core/core.js.html | 1351 + .../reports/lcov-report/core/extras.js.html | 1261 + .../lcov-report/core/format_parser.js.html | 1462 + .../reports/lcov-report/core/i18n.js.html | 1567 + .../reports/lcov-report/core/index.html | 493 + .../reports/lcov-report/core/parser.js.html | 940 + .../lcov-report/core/parsing_grammar.js.html | 1249 + .../core/parsing_operators.js.html | 1693 + .../core/parsing_translator.js.html | 1405 + .../reports/lcov-report/core/sugarpak.js.html | 1801 + .../lcov-report/core/time_period.js.html | 622 + .../lcov-report/core/time_span.js.html | 847 + .../DateJS/reports/lcov-report/index.html | 350 + .../DateJS/reports/lcov-report/prettify.css | 1 + .../DateJS/reports/lcov-report/prettify.js | 1 + static/vendors/DateJS/reports/lcov.info | 3590 + .../DateJS/src/core/core-prototypes.js | 769 + static/vendors/DateJS/src/core/core.js | 343 + static/vendors/DateJS/src/core/extras.js | 314 + .../vendors/DateJS/src/core/format_parser.js | 381 + static/vendors/DateJS/src/core/i18n.js | 416 + static/vendors/DateJS/src/core/parser.js | 206 + .../DateJS/src/core/parsing_grammar.js | 310 + .../DateJS/src/core/parsing_operators.js | 458 + .../DateJS/src/core/parsing_translator.js | 362 + static/vendors/DateJS/src/core/sugarpak.js | 493 + static/vendors/DateJS/src/core/time_period.js | 101 + static/vendors/DateJS/src/core/time_span.js | 176 + static/vendors/DateJS/src/i18n-template.js | 178 + static/vendors/DateJS/src/i18n/af-ZA.js | 178 + static/vendors/DateJS/src/i18n/ar-AE.js | 178 + static/vendors/DateJS/src/i18n/ar-BH.js | 178 + static/vendors/DateJS/src/i18n/ar-DZ.js | 178 + static/vendors/DateJS/src/i18n/ar-EG.js | 178 + static/vendors/DateJS/src/i18n/ar-IQ.js | 178 + static/vendors/DateJS/src/i18n/ar-JO.js | 178 + static/vendors/DateJS/src/i18n/ar-KW.js | 178 + static/vendors/DateJS/src/i18n/ar-LB.js | 178 + static/vendors/DateJS/src/i18n/ar-LY.js | 178 + static/vendors/DateJS/src/i18n/ar-MA.js | 178 + static/vendors/DateJS/src/i18n/ar-OM.js | 178 + static/vendors/DateJS/src/i18n/ar-QA.js | 178 + static/vendors/DateJS/src/i18n/ar-SA.js | 178 + static/vendors/DateJS/src/i18n/ar-SY.js | 178 + static/vendors/DateJS/src/i18n/ar-TN.js | 178 + static/vendors/DateJS/src/i18n/ar-YE.js | 178 + static/vendors/DateJS/src/i18n/az-Cyrl-AZ.js | 178 + static/vendors/DateJS/src/i18n/az-Latn-AZ.js | 178 + static/vendors/DateJS/src/i18n/be-BY.js | 178 + static/vendors/DateJS/src/i18n/bg-BG.js | 178 + static/vendors/DateJS/src/i18n/bs-Latn-BA.js | 178 + static/vendors/DateJS/src/i18n/ca-ES.js | 178 + static/vendors/DateJS/src/i18n/cs-CZ.js | 178 + static/vendors/DateJS/src/i18n/cy-GB.js | 178 + static/vendors/DateJS/src/i18n/da-DK.js | 178 + static/vendors/DateJS/src/i18n/de-AT.js | 178 + static/vendors/DateJS/src/i18n/de-CH.js | 178 + static/vendors/DateJS/src/i18n/de-DE.js | 178 + static/vendors/DateJS/src/i18n/de-LI.js | 178 + static/vendors/DateJS/src/i18n/de-LU.js | 178 + static/vendors/DateJS/src/i18n/dv-MV.js | 178 + static/vendors/DateJS/src/i18n/el-GR.js | 178 + static/vendors/DateJS/src/i18n/en-029.js | 178 + static/vendors/DateJS/src/i18n/en-AU.js | 178 + static/vendors/DateJS/src/i18n/en-BZ.js | 178 + static/vendors/DateJS/src/i18n/en-CA.js | 178 + static/vendors/DateJS/src/i18n/en-GB.js | 178 + static/vendors/DateJS/src/i18n/en-IE.js | 178 + static/vendors/DateJS/src/i18n/en-JM.js | 178 + static/vendors/DateJS/src/i18n/en-NZ.js | 178 + static/vendors/DateJS/src/i18n/en-PH.js | 178 + static/vendors/DateJS/src/i18n/en-TT.js | 178 + static/vendors/DateJS/src/i18n/en-ZA.js | 178 + static/vendors/DateJS/src/i18n/en-ZW.js | 178 + static/vendors/DateJS/src/i18n/es-AR.js | 178 + static/vendors/DateJS/src/i18n/es-BO.js | 178 + static/vendors/DateJS/src/i18n/es-CL.js | 178 + static/vendors/DateJS/src/i18n/es-CO.js | 178 + static/vendors/DateJS/src/i18n/es-CR.js | 178 + static/vendors/DateJS/src/i18n/es-DO.js | 178 + static/vendors/DateJS/src/i18n/es-EC.js | 178 + static/vendors/DateJS/src/i18n/es-ES.js | 178 + static/vendors/DateJS/src/i18n/es-GT.js | 178 + static/vendors/DateJS/src/i18n/es-HN.js | 178 + static/vendors/DateJS/src/i18n/es-MX.js | 178 + static/vendors/DateJS/src/i18n/es-NI.js | 178 + static/vendors/DateJS/src/i18n/es-PA.js | 178 + static/vendors/DateJS/src/i18n/es-PE.js | 178 + static/vendors/DateJS/src/i18n/es-PR.js | 178 + static/vendors/DateJS/src/i18n/es-PY.js | 178 + static/vendors/DateJS/src/i18n/es-SV.js | 178 + static/vendors/DateJS/src/i18n/es-UY.js | 178 + static/vendors/DateJS/src/i18n/es-VE.js | 178 + static/vendors/DateJS/src/i18n/et-EE.js | 178 + static/vendors/DateJS/src/i18n/eu-ES.js | 178 + static/vendors/DateJS/src/i18n/fa-IR.js | 178 + static/vendors/DateJS/src/i18n/fi-FI.js | 178 + static/vendors/DateJS/src/i18n/fo-FO.js | 178 + static/vendors/DateJS/src/i18n/fr-BE.js | 178 + static/vendors/DateJS/src/i18n/fr-CA.js | 178 + static/vendors/DateJS/src/i18n/fr-CH.js | 178 + static/vendors/DateJS/src/i18n/fr-FR.js | 178 + static/vendors/DateJS/src/i18n/fr-LU.js | 178 + static/vendors/DateJS/src/i18n/fr-MC.js | 178 + static/vendors/DateJS/src/i18n/gl-ES.js | 178 + static/vendors/DateJS/src/i18n/gu-IN.js | 178 + static/vendors/DateJS/src/i18n/he-IL.js | 178 + static/vendors/DateJS/src/i18n/hi-IN.js | 178 + static/vendors/DateJS/src/i18n/hr-BA.js | 178 + static/vendors/DateJS/src/i18n/hr-HR.js | 178 + static/vendors/DateJS/src/i18n/hu-HU.js | 178 + static/vendors/DateJS/src/i18n/hy-AM.js | 178 + static/vendors/DateJS/src/i18n/id-ID.js | 178 + static/vendors/DateJS/src/i18n/is-IS.js | 178 + static/vendors/DateJS/src/i18n/it-CH.js | 178 + static/vendors/DateJS/src/i18n/it-IT.js | 178 + static/vendors/DateJS/src/i18n/ja-JP.js | 178 + static/vendors/DateJS/src/i18n/ka-GE.js | 178 + static/vendors/DateJS/src/i18n/kk-KZ.js | 178 + static/vendors/DateJS/src/i18n/kn-IN.js | 178 + static/vendors/DateJS/src/i18n/ko-KR.js | 178 + static/vendors/DateJS/src/i18n/kok-IN.js | 178 + static/vendors/DateJS/src/i18n/ky-KG.js | 178 + static/vendors/DateJS/src/i18n/lt-LT.js | 178 + static/vendors/DateJS/src/i18n/lv-LV.js | 178 + static/vendors/DateJS/src/i18n/mi-NZ.js | 178 + static/vendors/DateJS/src/i18n/mk-MK.js | 178 + static/vendors/DateJS/src/i18n/mn-MN.js | 178 + static/vendors/DateJS/src/i18n/mr-IN.js | 178 + static/vendors/DateJS/src/i18n/ms-BN.js | 178 + static/vendors/DateJS/src/i18n/ms-MY.js | 178 + static/vendors/DateJS/src/i18n/mt-MT.js | 178 + static/vendors/DateJS/src/i18n/nb-NO.js | 178 + static/vendors/DateJS/src/i18n/nl-BE.js | 178 + static/vendors/DateJS/src/i18n/nl-NL.js | 178 + static/vendors/DateJS/src/i18n/nn-NO.js | 178 + static/vendors/DateJS/src/i18n/ns-ZA.js | 178 + static/vendors/DateJS/src/i18n/pa-IN.js | 178 + static/vendors/DateJS/src/i18n/pl-PL.js | 178 + static/vendors/DateJS/src/i18n/pt-BR.js | 178 + static/vendors/DateJS/src/i18n/pt-PT.js | 178 + static/vendors/DateJS/src/i18n/quz-BO.js | 178 + static/vendors/DateJS/src/i18n/quz-EC.js | 178 + static/vendors/DateJS/src/i18n/quz-PE.js | 178 + static/vendors/DateJS/src/i18n/ro-RO.js | 178 + static/vendors/DateJS/src/i18n/ru-RU.js | 178 + static/vendors/DateJS/src/i18n/sa-IN.js | 178 + static/vendors/DateJS/src/i18n/se-FI.js | 178 + static/vendors/DateJS/src/i18n/se-NO.js | 178 + static/vendors/DateJS/src/i18n/se-SE.js | 178 + static/vendors/DateJS/src/i18n/sk-SK.js | 178 + static/vendors/DateJS/src/i18n/sl-SI.js | 178 + static/vendors/DateJS/src/i18n/sma-NO.js | 178 + static/vendors/DateJS/src/i18n/sma-SE.js | 178 + static/vendors/DateJS/src/i18n/smj-NO.js | 178 + static/vendors/DateJS/src/i18n/smj-SE.js | 178 + static/vendors/DateJS/src/i18n/smn-FI.js | 178 + static/vendors/DateJS/src/i18n/sms-FI.js | 178 + static/vendors/DateJS/src/i18n/sq-AL.js | 178 + static/vendors/DateJS/src/i18n/sr-Cyrl-BA.js | 178 + static/vendors/DateJS/src/i18n/sr-Cyrl-CS.js | 178 + static/vendors/DateJS/src/i18n/sr-Latn-BA.js | 178 + static/vendors/DateJS/src/i18n/sr-Latn-CS.js | 178 + static/vendors/DateJS/src/i18n/sv-FI.js | 178 + static/vendors/DateJS/src/i18n/sv-SE.js | 178 + static/vendors/DateJS/src/i18n/sw-KE.js | 178 + static/vendors/DateJS/src/i18n/syr-SY.js | 178 + static/vendors/DateJS/src/i18n/ta-IN.js | 178 + static/vendors/DateJS/src/i18n/te-IN.js | 178 + static/vendors/DateJS/src/i18n/th-TH.js | 178 + static/vendors/DateJS/src/i18n/tn-ZA.js | 178 + static/vendors/DateJS/src/i18n/tr-TR.js | 178 + static/vendors/DateJS/src/i18n/tt-RU.js | 178 + static/vendors/DateJS/src/i18n/uk-UA.js | 178 + static/vendors/DateJS/src/i18n/ur-PK.js | 178 + static/vendors/DateJS/src/i18n/uz-Cyrl-UZ.js | 178 + static/vendors/DateJS/src/i18n/uz-Latn-UZ.js | 178 + static/vendors/DateJS/src/i18n/vi-VN.js | 178 + static/vendors/DateJS/src/i18n/xh-ZA.js | 178 + static/vendors/DateJS/src/i18n/zh-CN.js | 178 + static/vendors/DateJS/src/i18n/zh-HK.js | 178 + static/vendors/DateJS/src/i18n/zh-MO.js | 178 + static/vendors/DateJS/src/i18n/zh-SG.js | 178 + static/vendors/DateJS/src/i18n/zh-TW.js | 178 + static/vendors/DateJS/src/i18n/zu-ZA.js | 178 + static/vendors/Flot/.bower.json | 18 + static/vendors/Flot/.circleci/config.yml | 100 + static/vendors/Flot/.dont-break.json | 7 + static/vendors/Flot/.gitignore | 3 + static/vendors/Flot/.npmignore | 7 + static/vendors/Flot/.travis.yml | 3 + static/vendors/Flot/API.md | 1498 + static/vendors/Flot/CHANGELOG.md | 1609 + static/vendors/Flot/CONTRIBUTING.md | 98 + static/vendors/Flot/FAQ.md | 75 + static/vendors/Flot/LICENSE.txt | 22 + static/vendors/Flot/Makefile | 12 + static/vendors/Flot/NEWS.md | 1026 + static/vendors/Flot/PLUGINS.md | 143 + static/vendors/Flot/README.md | 110 + static/vendors/Flot/build.js | 57 + static/vendors/Flot/component.json | 8 + static/vendors/Flot/docs/API.md | 1710 + static/vendors/Flot/docs/PLUGINS.md | 143 + static/vendors/Flot/docs/absRelTime.md | 42 + static/vendors/Flot/docs/browser.md | 24 + static/vendors/Flot/docs/canvaswrapper.md | 116 + static/vendors/Flot/docs/composeImages.md | 32 + static/vendors/Flot/docs/drawSeries.md | 35 + static/vendors/Flot/docs/hover.md | 21 + static/vendors/Flot/docs/interactions.md | 57 + static/vendors/Flot/docs/logaxis.md | 27 + static/vendors/Flot/docs/navigate.md | 110 + .../examples/ajax/data-eu-gdp-growth-1.json | 4 + .../examples/ajax/data-eu-gdp-growth-2.json | 4 + .../examples/ajax/data-eu-gdp-growth-3.json | 4 + .../examples/ajax/data-eu-gdp-growth-4.json | 4 + .../examples/ajax/data-eu-gdp-growth-5.json | 4 + .../examples/ajax/data-eu-gdp-growth.json | 4 + .../examples/ajax/data-japan-gdp-growth.json | 4 + .../examples/ajax/data-usa-gdp-growth.json | 4 + static/vendors/Flot/examples/ajax/index.html | 173 + .../Flot/examples/annotating/index.html | 87 + .../Flot/examples/axes-autoscaling/index.html | 132 + .../Flot/examples/axes-interacting/index.html | 97 + .../Flot/examples/axes-labels/index.html | 128 + .../Flot/examples/axes-multiple/index.html | 77 + .../Flot/examples/axes-tickLabels/index.html | 211 + .../Flot/examples/axes-time-zones/date.js | 893 + .../Flot/examples/axes-time-zones/index.html | 114 + .../Flot/examples/axes-time-zones/tz/africa | 1181 + .../examples/axes-time-zones/tz/antarctica | 413 + .../Flot/examples/axes-time-zones/tz/asia | 2717 + .../examples/axes-time-zones/tz/australasia | 1719 + .../Flot/examples/axes-time-zones/tz/backward | 117 + .../Flot/examples/axes-time-zones/tz/etcetera | 81 + .../Flot/examples/axes-time-zones/tz/europe | 2856 + .../Flot/examples/axes-time-zones/tz/factory | 10 + .../examples/axes-time-zones/tz/iso3166.tab | 276 + .../examples/axes-time-zones/tz/leapseconds | 100 + .../examples/axes-time-zones/tz/northamerica | 3235 + .../examples/axes-time-zones/tz/pacificnew | 28 + .../Flot/examples/axes-time-zones/tz/solar87 | 390 + .../Flot/examples/axes-time-zones/tz/solar88 | 390 + .../Flot/examples/axes-time-zones/tz/solar89 | 395 + .../examples/axes-time-zones/tz/southamerica | 1711 + .../Flot/examples/axes-time-zones/tz/systemv | 38 + .../examples/axes-time-zones/tz/yearistype.sh | 38 + .../Flot/examples/axes-time-zones/tz/zone.tab | 441 + .../Flot/examples/axes-time/index.html | 137 + static/vendors/Flot/examples/background.png | Bin 0 -> 231 bytes .../Flot/examples/basic-options/index.html | 91 + .../Flot/examples/basic-usage/index.html | 57 + .../vendors/Flot/examples/canvas/index.html | 75 + .../Flot/examples/categories/index.html | 64 + static/vendors/Flot/examples/examples.css | 97 + .../Flot/examples/fill-types/index.html | 104 + .../examples/image/hs-2004-27-a-large-web.jpg | Bin 0 -> 34489 bytes static/vendors/Flot/examples/image/index.html | 69 + static/vendors/Flot/examples/index.html | 80 + .../Flot/examples/interacting/index.html | 118 + .../Flot/examples/log-scale/index.html | 113 + .../Flot/examples/navigate/arrow-down.gif | Bin 0 -> 916 bytes .../Flot/examples/navigate/arrow-left.gif | Bin 0 -> 891 bytes .../Flot/examples/navigate/arrow-right.gif | Bin 0 -> 897 bytes .../Flot/examples/navigate/arrow-up.gif | Bin 0 -> 916 bytes .../vendors/Flot/examples/navigate/index.html | 153 + .../Flot/examples/navigateTouch/index.html | 206 + .../Flot/examples/percentiles/index.html | 79 + .../Flot/examples/plot-legend/index.html | 223 + .../vendors/Flot/examples/realtime/index.html | 122 + .../vendors/Flot/examples/resize/index.html | 76 + .../Flot/examples/selection/index.html | 152 + .../Flot/examples/series-errorbars/index.html | 150 + .../Flot/examples/series-pie/index.html | 818 + .../Flot/examples/series-toggle/index.html | 121 + .../Flot/examples/series-types/index.html | 90 + .../shared/jquery-ui/jquery-ui.min.css | 6 + .../vendors/Flot/examples/stacking/index.html | 107 + .../vendors/Flot/examples/symbols/index.html | 76 + .../Flot/examples/threshold/index.html | 76 + .../vendors/Flot/examples/tracking/index.html | 135 + .../vendors/Flot/examples/visitors/index.html | 147 + .../vendors/Flot/examples/zooming/index.html | 144 + static/vendors/Flot/excanvas.js | 1428 + static/vendors/Flot/excanvas.min.js | 1 + static/vendors/Flot/flot-2.1.3.tgz | Bin 0 -> 229180 bytes static/vendors/Flot/flot.jquery.json | 27 + static/vendors/Flot/gulpfile.js | 54 + static/vendors/Flot/jquery.colorhelpers.js | 180 + .../Flot/jquery.event.drag.LICENSE.txt | 7 + static/vendors/Flot/jquery.flot.canvas.js | 345 + static/vendors/Flot/jquery.flot.categories.js | 190 + static/vendors/Flot/jquery.flot.crosshair.js | 176 + static/vendors/Flot/jquery.flot.errorbars.js | 353 + .../vendors/Flot/jquery.flot.fillbetween.js | 226 + static/vendors/Flot/jquery.flot.image.js | 241 + static/vendors/Flot/jquery.flot.js | 3168 + static/vendors/Flot/jquery.flot.navigate.js | 346 + static/vendors/Flot/jquery.flot.pie.js | 820 + static/vendors/Flot/jquery.flot.resize.js | 59 + static/vendors/Flot/jquery.flot.selection.js | 360 + static/vendors/Flot/jquery.flot.stack.js | 188 + static/vendors/Flot/jquery.flot.symbol.js | 71 + static/vendors/Flot/jquery.flot.threshold.js | 142 + static/vendors/Flot/jquery.flot.time.js | 432 + static/vendors/Flot/jquery.js | 9472 ++ .../Flot/jquery.mousewheel.LICENSE.txt | 37 + static/vendors/Flot/karma.conf.js | 142 + static/vendors/Flot/legend.css | 13 + .../Flot/lib/globalize.culture.en-US.js | 33 + static/vendors/Flot/lib/globalize.js | 1601 + static/vendors/Flot/lib/jquery.event.drag.js | 145 + static/vendors/Flot/lib/jquery.mousewheel.js | 86 + static/vendors/Flot/package-lock.json | 14006 +++ static/vendors/Flot/package.json | 11 + .../Flot/source/jquery.canvaswrapper.js | 538 + .../Flot/source/jquery.colorhelpers.js | 199 + .../Flot/source/jquery.flot.axislabels.js | 212 + .../Flot/source/jquery.flot.browser.js | 98 + .../Flot/source/jquery.flot.categories.js | 202 + .../Flot/source/jquery.flot.composeImages.js | 325 + .../Flot/source/jquery.flot.crosshair.js | 202 + .../Flot/source/jquery.flot.drawSeries.js | 656 + .../Flot/source/jquery.flot.errorbars.js | 375 + .../Flot/source/jquery.flot.fillbetween.js | 254 + .../Flot/source/jquery.flot.flatdata.js | 47 + .../vendors/Flot/source/jquery.flot.hover.js | 346 + .../vendors/Flot/source/jquery.flot.image.js | 249 + static/vendors/Flot/source/jquery.flot.js | 2766 + .../vendors/Flot/source/jquery.flot.legend.js | 395 + .../Flot/source/jquery.flot.logaxis.js | 298 + .../Flot/source/jquery.flot.navigate.js | 798 + static/vendors/Flot/source/jquery.flot.pie.js | 786 + .../vendors/Flot/source/jquery.flot.resize.js | 60 + .../Flot/source/jquery.flot.saturated.js | 43 + .../Flot/source/jquery.flot.selection.js | 504 + .../vendors/Flot/source/jquery.flot.stack.js | 220 + .../vendors/Flot/source/jquery.flot.symbol.js | 98 + .../Flot/source/jquery.flot.threshold.js | 143 + .../vendors/Flot/source/jquery.flot.time.js | 584 + .../vendors/Flot/source/jquery.flot.touch.js | 320 + .../Flot/source/jquery.flot.touchNavigate.js | 360 + .../Flot/source/jquery.flot.uiConstants.js | 10 + static/vendors/Flot/source/jquery.js | 9473 ++ .../Flot/tests/jquery.flot-drawSeries.Test.js | 487 + .../Flot/tests/jquery.flot-precision.Test.js | 151 + static/vendors/Flot/tests/jquery.flot.Test.js | 1182 + .../Flot/tests/jquery.flot.axislabels.Test.js | 143 + .../tests/jquery.flot.canvaswrapper.Test.js | 332 + .../tests/jquery.flot.colorhelpers.Test.js | 107 + .../tests/jquery.flot.composeImages.Test.js | 768 + .../Flot/tests/jquery.flot.errorbars.Test.js | 282 + .../tests/jquery.flot.fillbetween.Test.js | 24 + .../Flot/tests/jquery.flot.flatdata.Test.js | 46 + .../Flot/tests/jquery.flot.hover.Test.js | 232 + .../tests/jquery.flot.invertedaxis.Test.js | 159 + .../tests/jquery.flot.largeNumbers.Test.js | 96 + .../Flot/tests/jquery.flot.legend.Test.js | 107 + .../Flot/tests/jquery.flot.logaxis.Test.js | 376 + .../jquery.flot.navigate-interaction.Test.js | 494 + .../Flot/tests/jquery.flot.navigate.Test.js | 820 + .../Flot/tests/jquery.flot.stack.Test.js | 46 + .../Flot/tests/jquery.flot.symbol.Test.js | 48 + .../Flot/tests/jquery.flot.time.Test.js | 128 + .../Flot/tests/jquery.flot.touch.Test.js | 516 + .../tests/jquery.flot.touchNavigate.Test.js | 1252 + static/vendors/Flot/tests/svgstyle.css | 5 + static/vendors/Flot/update_docs.js | 34 + static/vendors/animate.css/.bower.json | 23 + .../vendors/animate.css/animate-config.json | 120 + static/vendors/animate.css/animate.css | 3340 + static/vendors/animate.css/animate.min.css | 11 + static/vendors/animate.css/bower.json | 12 + static/vendors/animate.css/gulpfile.js | 99 + static/vendors/animate.css/package.json | 35 + static/vendors/autosize/.bower.json | 39 + static/vendors/autosize/.gitignore | 2 + static/vendors/autosize/LICENSE.md | 21 + static/vendors/autosize/bower.json | 29 + static/vendors/autosize/build.js | 87 + static/vendors/autosize/changelog.md | 72 + static/vendors/autosize/dist/autosize.js | 254 + static/vendors/autosize/dist/autosize.min.js | 6 + static/vendors/autosize/example/index.html | 29 + static/vendors/autosize/package.json | 49 + static/vendors/autosize/readme.md | 35 + static/vendors/autosize/src/autosize.js | 218 + static/vendors/bootstrap-4.5.0/.DS_Store | Bin 0 -> 6148 bytes .../bootstrap-4.5.0/css/bootstrap-grid.css | 3904 + .../css/bootstrap-grid.css.map | 1 + .../css/bootstrap-grid.min.css | 7 + .../css/bootstrap-grid.min.css.map | 1 + .../bootstrap-4.5.0/css/bootstrap-reboot.css | 325 + .../css/bootstrap-reboot.css.map | 1 + .../css/bootstrap-reboot.min.css | 8 + .../css/bootstrap-reboot.min.css.map | 1 + .../vendors/bootstrap-4.5.0/css/bootstrap.css | 10278 +++ .../bootstrap-4.5.0/css/bootstrap.css.map | 1 + .../bootstrap-4.5.0/css/bootstrap.min.css | 7 + .../bootstrap-4.5.0/css/bootstrap.min.css.map | 1 + .../bootstrap-4.5.0/js/bootstrap.bundle.js | 7033 ++ .../js/bootstrap.bundle.js.map | 1 + .../js/bootstrap.bundle.min.js | 7 + .../js/bootstrap.bundle.min.js.map | 1 + .../vendors/bootstrap-4.5.0/js/bootstrap.js | 4420 + .../bootstrap-4.5.0/js/bootstrap.js.map | 1 + .../bootstrap-4.5.0/js/bootstrap.min.js | 7 + .../bootstrap-4.5.0/js/bootstrap.min.js.map | 1 + .../bootstrap-daterangepicker/.bower.json | 30 + .../bootstrap-daterangepicker/README.md | 38 + .../bootstrap-daterangepicker/bower.json | 20 + .../daterangepicker.css | 388 + .../daterangepicker.js | 1526 + .../bootstrap-daterangepicker/demo.html | 374 + .../vendors/bootstrap-daterangepicker/drp.png | Bin 0 -> 160446 bytes .../example/amd/index.html | 210 + .../example/amd/main.js | 141 + .../example/amd/require.js | 36 + .../example/browserify/README.md | 11 + .../example/browserify/bundle.js | 0 .../example/browserify/index.html | 209 + .../example/browserify/main.js | 135 + .../bootstrap-daterangepicker/package.js | 17 + .../bootstrap-daterangepicker/package.json | 32 + .../website/index.html | 744 + .../website/website.css | 152 + .../website/website.js | 179 + .../bootstrap-datetimepicker/CONTRIBUTING.md | 38 + .../bootstrap-datetimepicker/Gruntfile.js | 195 + .../vendors/bootstrap-datetimepicker/LICENSE | 21 + .../bootstrap-datetimepicker/README.md | 20 + .../bootstrap-datetimepicker/bower.json | 34 + .../bootstrap-datetimepicker-standalone.css | 98 + .../build/css/bootstrap-datetimepicker.css | 374 + .../css/bootstrap-datetimepicker.min.css | 5 + .../build/js/bootstrap-datetimepicker.min.js | 2 + .../bootstrap-datetimepicker/component.json | 9 + .../bootstrap-datetimepicker/composer.json | 28 + .../docs/ChangeLog.md | 237 + .../docs/ContributorsGuide.md | 126 + .../bootstrap-datetimepicker/docs/Events.md | 97 + .../bootstrap-datetimepicker/docs/Extras.md | 95 + .../bootstrap-datetimepicker/docs/FAQ.md | 22 + .../docs/Functions.md | 82 + .../docs/Installing.md | 161 + .../bootstrap-datetimepicker/docs/Options.md | 909 + .../docs/Version 4 Changelog.md | 6 + .../docs/Version 4 Contributors guide.md | 6 + .../bootstrap-datetimepicker/docs/index.md | 644 + .../docs/theme/android-chrome-144x144.png | Bin 0 -> 40227 bytes .../docs/theme/android-chrome-192x192.png | Bin 0 -> 68963 bytes .../docs/theme/android-chrome-36x36.png | Bin 0 -> 3800 bytes .../docs/theme/android-chrome-48x48.png | Bin 0 -> 5971 bytes .../docs/theme/android-chrome-72x72.png | Bin 0 -> 11838 bytes .../docs/theme/android-chrome-96x96.png | Bin 0 -> 19482 bytes .../docs/theme/apple-touch-icon-114x114.png | Bin 0 -> 26475 bytes .../docs/theme/apple-touch-icon-120x120.png | Bin 0 -> 29019 bytes .../docs/theme/apple-touch-icon-144x144.png | Bin 0 -> 40227 bytes .../docs/theme/apple-touch-icon-152x152.png | Bin 0 -> 44355 bytes .../docs/theme/apple-touch-icon-180x180.png | Bin 0 -> 60935 bytes .../docs/theme/apple-touch-icon-57x57.png | Bin 0 -> 7933 bytes .../docs/theme/apple-touch-icon-60x60.png | Bin 0 -> 8684 bytes .../docs/theme/apple-touch-icon-72x72.png | Bin 0 -> 11838 bytes .../docs/theme/apple-touch-icon-76x76.png | Bin 0 -> 13014 bytes .../theme/apple-touch-icon-precomposed.png | Bin 0 -> 65745 bytes .../docs/theme/apple-touch-icon.png | Bin 0 -> 60935 bytes .../docs/theme/base.html | 74 + .../docs/theme/browserconfig.xml | 12 + .../docs/theme/content.html | 9 + .../docs/theme/css/base.css | 107 + .../docs/theme/css/prettify-1.0.css | 28 + .../docs/theme/favicon-16x16.png | Bin 0 -> 1433 bytes .../docs/theme/favicon-32x32.png | Bin 0 -> 3187 bytes .../docs/theme/favicon-96x96.png | Bin 0 -> 19482 bytes .../docs/theme/favicon.ico | Bin 0 -> 12014 bytes .../docs/theme/js/base.js | 52 + .../docs/theme/js/prettify-1.0.min.js | 28 + .../docs/theme/manifest.json | 41 + .../docs/theme/mstile-144x144.png | Bin 0 -> 42796 bytes .../docs/theme/mstile-150x150.png | Bin 0 -> 36570 bytes .../docs/theme/mstile-310x150.png | Bin 0 -> 38916 bytes .../docs/theme/mstile-310x310.png | Bin 0 -> 144673 bytes .../docs/theme/mstile-70x70.png | Bin 0 -> 21052 bytes .../docs/theme/nav.html | 76 + .../docs/theme/toc.html | 10 + .../bootstrap-datetimepicker/mkdocs.yml | 202 + .../bootstrap-datetimepicker/package.json | 51 + .../src/js/bootstrap-datetimepicker.js | 2636 + .../src/less/_bootstrap-datetimepicker.less | 353 + .../less/bootstrap-datetimepicker-build.less | 17 + .../Bootstrap.v3.Datetimepicker.CSS.nuspec | 34 + .../nuget/Bootstrap.v3.Datetimepicker.nuspec | 34 + .../src/nuget/NuGet.exe | Bin 0 -> 1662976 bytes .../src/nuget/install.ps1 | 2 + .../src/sass/_bootstrap-datetimepicker.scss | 344 + .../sass/bootstrap-datetimepicker-build.scss | 16 + .../tasks/bump_version.js | 88 + .../test/publicApiSpec.js | 1194 + .../test/screen-capture/base.html | 65 + .../test/screen-capture/compile.js | 17 + .../test/screen-capture/index.js | 24 + .../test/screen-capture/t1.html | 11 + .../test/screen-capture/t2.html | 7 + .../test/screen-capture/t3.html | 6 + .../test/screen-capture/t4.html | 6 + .../test/screen-capture/t5.html | 1 + .../test/timezoneDataHelper.js | 11 + .../vendors/bootstrap-progressbar/.bower.json | 38 + .../bootstrap-progressbar/CHANGELOG.md | 93 + .../bootstrap-progressbar/CONTRIBUTORS.md | 12 + static/vendors/bootstrap-progressbar/LICENSE | 20 + .../vendors/bootstrap-progressbar/README.md | 273 + .../bootstrap-progressbar.js | 168 + .../bootstrap-progressbar.min.js | 2 + .../vendors/bootstrap-progressbar/bower.json | 29 + .../css/bootstrap-progressbar-2.0.0.css | 310 + .../css/bootstrap-progressbar-2.0.0.min.css | 2 + .../css/bootstrap-progressbar-2.0.1.css | 321 + .../css/bootstrap-progressbar-2.0.1.min.css | 2 + .../css/bootstrap-progressbar-2.0.2.css | 366 + .../css/bootstrap-progressbar-2.0.2.min.css | 2 + .../css/bootstrap-progressbar-2.0.3.css | 376 + .../css/bootstrap-progressbar-2.0.3.min.css | 2 + .../css/bootstrap-progressbar-2.0.4.css | 376 + .../css/bootstrap-progressbar-2.0.4.min.css | 2 + .../css/bootstrap-progressbar-2.1.0.css | 367 + .../css/bootstrap-progressbar-2.1.0.min.css | 2 + .../css/bootstrap-progressbar-2.1.1.css | 367 + .../css/bootstrap-progressbar-2.1.1.min.css | 2 + .../css/bootstrap-progressbar-2.2.0.css | 367 + .../css/bootstrap-progressbar-2.2.0.min.css | 2 + .../css/bootstrap-progressbar-2.2.1.css | 367 + .../css/bootstrap-progressbar-2.2.1.min.css | 2 + .../css/bootstrap-progressbar-2.2.2.css | 367 + .../css/bootstrap-progressbar-2.2.2.min.css | 2 + .../css/bootstrap-progressbar-2.3.0.css | 367 + .../css/bootstrap-progressbar-2.3.0.min.css | 2 + .../css/bootstrap-progressbar-2.3.1.css | 367 + .../css/bootstrap-progressbar-2.3.1.min.css | 2 + .../css/bootstrap-progressbar-2.3.2.css | 367 + .../css/bootstrap-progressbar-2.3.2.min.css | 2 + .../css/bootstrap-progressbar-3.0.0-rc1.css | 171 + .../bootstrap-progressbar-3.0.0-rc1.min.css | 2 + .../css/bootstrap-progressbar-3.0.0-rc2.css | 158 + .../bootstrap-progressbar-3.0.0-rc2.min.css | 2 + .../css/bootstrap-progressbar-3.0.0.css | 158 + .../css/bootstrap-progressbar-3.0.0.min.css | 2 + .../css/bootstrap-progressbar-3.0.1.css | 156 + .../css/bootstrap-progressbar-3.0.1.min.css | 2 + .../css/bootstrap-progressbar-3.0.2.css | 156 + .../css/bootstrap-progressbar-3.0.2.min.css | 2 + .../css/bootstrap-progressbar-3.0.3.css | 130 + .../css/bootstrap-progressbar-3.0.3.min.css | 2 + .../css/bootstrap-progressbar-3.1.0.css | 130 + .../css/bootstrap-progressbar-3.1.0.min.css | 2 + .../css/bootstrap-progressbar-3.1.1.css | 130 + .../css/bootstrap-progressbar-3.1.1.min.css | 2 + .../css/bootstrap-progressbar-3.2.0.css | 194 + .../css/bootstrap-progressbar-3.2.0.min.css | 2 + .../css/bootstrap-progressbar-3.3.0.css | 140 + .../css/bootstrap-progressbar-3.3.0.min.css | 2 + .../css/bootstrap-progressbar-3.3.1.css | 140 + .../css/bootstrap-progressbar-3.3.1.min.css | 2 + .../css/bootstrap-progressbar-3.3.2.css | 140 + .../css/bootstrap-progressbar-3.3.2.min.css | 2 + .../css/bootstrap-progressbar-3.3.4.css | 140 + .../css/bootstrap-progressbar-3.3.4.min.css | 2 + .../less/bootstrap-progressbar-2.x.x.less | 121 + .../bootstrap-progressbar-3.0.0-3.1.x.less | 74 + .../less/bootstrap-progressbar-3.2.0.less | 107 + .../bootstrap-progressbar-3.3.0-3.x.x.less | 74 + .../bootstrap-progressbar/package.json | 29 + .../scss/bootstrap-progressbar-2.x.x.scss | 121 + .../bootstrap-progressbar-3.0.0-3.1.x.scss | 74 + .../scss/bootstrap-progressbar-3.2.0.scss | 107 + .../bootstrap-progressbar-3.3.0-3.x.x.scss | 74 + static/vendors/bootstrap-wysiwyg/.bower.json | 42 + static/vendors/bootstrap-wysiwyg/README.md | 197 + static/vendors/bootstrap-wysiwyg/bower.json | 33 + .../vendors/bootstrap-wysiwyg/css/style.css | 88 + .../bootstrap-wysiwyg/examples/basic.html | 31 + .../examples/clear-formatting.html | 85 + .../bootstrap-wysiwyg/examples/events.html | 88 + .../bootstrap-wysiwyg/examples/form-post.html | 94 + .../examples/formatblock-example.html | 97 + .../examples/html-editor.html | 84 + .../examples/multiple-editors.html | 156 + .../bootstrap-wysiwyg/examples/php/upload.php | 16 + .../examples/simple-toolbar.html | 82 + static/vendors/bootstrap-wysiwyg/gruntfile.js | 74 + static/vendors/bootstrap-wysiwyg/gulpfile.js | 67 + .../js/bootstrap-wysiwyg.min.js | 1 + static/vendors/bootstrap-wysiwyg/package.json | 53 + .../src/bootstrap-wysiwyg.js | 306 + static/vendors/bootstrap/.babelrc.js | 20 + static/vendors/bootstrap/.bower.json | 15 + static/vendors/bootstrap/.browserslistrc | 13 + static/vendors/bootstrap/.editorconfig | 14 + static/vendors/bootstrap/.eslintignore | 6 + static/vendors/bootstrap/.eslintrc.json | 233 + static/vendors/bootstrap/.gitattributes | 18 + static/vendors/bootstrap/.github/CODEOWNERS | 3 + .../vendors/bootstrap/.github/CONTRIBUTING.md | 243 + .../bootstrap/.github/ISSUE_TEMPLATE/bug.md | 11 + .../.github/ISSUE_TEMPLATE/bug_report.md | 17 + .../.github/ISSUE_TEMPLATE/feature.md | 9 + .../.github/ISSUE_TEMPLATE/feature_request.md | 15 + static/vendors/bootstrap/.github/SUPPORT.md | 11 + static/vendors/bootstrap/.gitignore | 43 + static/vendors/bootstrap/.stylelintignore | 4 + static/vendors/bootstrap/.stylelintrc | 15 + static/vendors/bootstrap/.travis.yml | 25 + static/vendors/bootstrap/CNAME | 1 + static/vendors/bootstrap/CODE_OF_CONDUCT.md | 46 + static/vendors/bootstrap/Gemfile | 9 + static/vendors/bootstrap/Gemfile.lock | 82 + static/vendors/bootstrap/LICENSE | 22 + static/vendors/bootstrap/README.md | 214 + static/vendors/bootstrap/_config.yml | 68 + static/vendors/bootstrap/build/.eslintrc.json | 20 + static/vendors/bootstrap/build/banner.js | 14 + .../vendors/bootstrap/build/build-plugins.js | 85 + .../vendors/bootstrap/build/change-version.js | 104 + .../vendors/bootstrap/build/generate-sri.js | 66 + .../vendors/bootstrap/build/postcss.config.js | 14 + .../vendors/bootstrap/build/rollup.config.js | 48 + static/vendors/bootstrap/build/ship.sh | 52 + static/vendors/bootstrap/build/svgo.yml | 57 + static/vendors/bootstrap/build/vnu-jar.js | 65 + static/vendors/bootstrap/composer.json | 37 + .../bootstrap/dist/css/bootstrap-grid.css | 3719 + .../bootstrap/dist/css/bootstrap-grid.css.map | Bin 0 -> 151749 bytes .../bootstrap/dist/css/bootstrap-grid.min.css | 7 + .../dist/css/bootstrap-grid.min.css.map | Bin 0 -> 108539 bytes .../bootstrap/dist/css/bootstrap-reboot.css | 331 + .../dist/css/bootstrap-reboot.css.map | Bin 0 -> 76483 bytes .../dist/css/bootstrap-reboot.min.css | 8 + .../dist/css/bootstrap-reboot.min.css.map | Bin 0 -> 32461 bytes .../vendors/bootstrap/dist/css/bootstrap.css | 10038 +++ .../bootstrap/dist/css/bootstrap.css.map | Bin 0 -> 492048 bytes .../bootstrap/dist/css/bootstrap.min.css | 7 + .../bootstrap/dist/css/bootstrap.min.css.map | Bin 0 -> 625953 bytes .../bootstrap/dist/js/bootstrap.bundle.js | 7013 ++ .../bootstrap/dist/js/bootstrap.bundle.js.map | Bin 0 -> 402249 bytes .../bootstrap/dist/js/bootstrap.bundle.min.js | 7 + .../dist/js/bootstrap.bundle.min.js.map | Bin 0 -> 311949 bytes static/vendors/bootstrap/dist/js/bootstrap.js | 4435 + .../bootstrap/dist/js/bootstrap.js.map | Bin 0 -> 250568 bytes .../bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | Bin 0 -> 190253 bytes static/vendors/bootstrap/js/dist/alert.js | 199 + static/vendors/bootstrap/js/dist/alert.js.map | Bin 0 -> 8141 bytes static/vendors/bootstrap/js/dist/button.js | 187 + .../vendors/bootstrap/js/dist/button.js.map | Bin 0 -> 9099 bytes static/vendors/bootstrap/js/dist/carousel.js | 668 + .../vendors/bootstrap/js/dist/carousel.js.map | Bin 0 -> 36040 bytes static/vendors/bootstrap/js/dist/collapse.js | 428 + .../vendors/bootstrap/js/dist/collapse.js.map | Bin 0 -> 22833 bytes static/vendors/bootstrap/js/dist/dropdown.js | 595 + .../vendors/bootstrap/js/dist/dropdown.js.map | Bin 0 -> 31704 bytes static/vendors/bootstrap/js/dist/index.js | 23 + static/vendors/bootstrap/js/dist/index.js.map | Bin 0 -> 2214 bytes static/vendors/bootstrap/js/dist/modal.js | 650 + static/vendors/bootstrap/js/dist/modal.js.map | Bin 0 -> 35369 bytes static/vendors/bootstrap/js/dist/popover.js | 261 + .../vendors/bootstrap/js/dist/popover.js.map | Bin 0 -> 8950 bytes static/vendors/bootstrap/js/dist/scrollspy.js | 375 + .../bootstrap/js/dist/scrollspy.js.map | Bin 0 -> 19305 bytes static/vendors/bootstrap/js/dist/tab.js | 269 + static/vendors/bootstrap/js/dist/tab.js.map | Bin 0 -> 14583 bytes static/vendors/bootstrap/js/dist/toast.js | 283 + static/vendors/bootstrap/js/dist/toast.js.map | Bin 0 -> 10927 bytes static/vendors/bootstrap/js/dist/tooltip.js | 907 + .../vendors/bootstrap/js/dist/tooltip.js.map | Bin 0 -> 49591 bytes static/vendors/bootstrap/js/dist/util.js | 172 + static/vendors/bootstrap/js/dist/util.js.map | Bin 0 -> 10060 bytes static/vendors/bootstrap/js/src/alert.js | 179 + static/vendors/bootstrap/js/src/button.js | 171 + static/vendors/bootstrap/js/src/carousel.js | 606 + static/vendors/bootstrap/js/src/collapse.js | 402 + static/vendors/bootstrap/js/src/dropdown.js | 545 + static/vendors/bootstrap/js/src/index.js | 52 + static/vendors/bootstrap/js/src/modal.js | 594 + static/vendors/bootstrap/js/src/popover.js | 184 + static/vendors/bootstrap/js/src/scrollspy.js | 326 + static/vendors/bootstrap/js/src/tab.js | 260 + static/vendors/bootstrap/js/src/toast.js | 227 + .../bootstrap/js/src/tools/sanitizer.js | 127 + static/vendors/bootstrap/js/src/tooltip.js | 785 + static/vendors/bootstrap/js/src/util.js | 177 + static/vendors/bootstrap/js/tests/README.md | 69 + static/vendors/bootstrap/js/tests/browsers.js | 82 + static/vendors/bootstrap/js/tests/index.html | 133 + .../bootstrap/js/tests/integration/bundle.js | 8 + .../bootstrap/js/tests/integration/index.html | 66 + .../js/tests/integration/rollup.bundle.js | 20 + .../vendors/bootstrap/js/tests/karma.conf.js | 143 + .../bootstrap/js/tests/unit/.eslintrc.json | 40 + .../vendors/bootstrap/js/tests/unit/alert.js | 123 + .../vendors/bootstrap/js/tests/unit/button.js | 222 + .../bootstrap/js/tests/unit/carousel.js | 1333 + .../bootstrap/js/tests/unit/collapse.js | 892 + .../bootstrap/js/tests/unit/dropdown.js | 1419 + .../vendors/bootstrap/js/tests/unit/modal.js | 815 + .../bootstrap/js/tests/unit/popover.js | 471 + .../bootstrap/js/tests/unit/scrollspy.js | 728 + static/vendors/bootstrap/js/tests/unit/tab.js | 518 + .../vendors/bootstrap/js/tests/unit/toast.js | 259 + .../bootstrap/js/tests/unit/tooltip.js | 1269 + .../vendors/bootstrap/js/tests/unit/util.js | 163 + .../bootstrap/js/tests/visual/alert.html | 58 + .../bootstrap/js/tests/visual/button.html | 51 + .../bootstrap/js/tests/visual/carousel.html | 66 + .../bootstrap/js/tests/visual/collapse.html | 78 + .../bootstrap/js/tests/visual/dropdown.html | 212 + .../bootstrap/js/tests/visual/modal.html | 268 + .../bootstrap/js/tests/visual/popover.html | 46 + .../bootstrap/js/tests/visual/scrollspy.html | 95 + .../bootstrap/js/tests/visual/tab.html | 234 + .../bootstrap/js/tests/visual/toast.html | 72 + .../bootstrap/js/tests/visual/tooltip.html | 106 + static/vendors/bootstrap/nuget/MyGet.ps1 | 19 + .../vendors/bootstrap/nuget/bootstrap.nuspec | 35 + .../bootstrap/nuget/bootstrap.sass.nuspec | 35 + static/vendors/bootstrap/package-lock.json | 10943 +++ static/vendors/bootstrap/package.js | 17 + static/vendors/bootstrap/package.json | 221 + static/vendors/bootstrap/scss/_alert.scss | 51 + static/vendors/bootstrap/scss/_badge.scss | 54 + .../vendors/bootstrap/scss/_breadcrumb.scss | 41 + .../vendors/bootstrap/scss/_button-group.scss | 163 + static/vendors/bootstrap/scss/_buttons.scss | 137 + static/vendors/bootstrap/scss/_card.scss | 289 + static/vendors/bootstrap/scss/_carousel.scss | 197 + static/vendors/bootstrap/scss/_close.scss | 41 + static/vendors/bootstrap/scss/_code.scss | 48 + .../vendors/bootstrap/scss/_custom-forms.scss | 507 + static/vendors/bootstrap/scss/_dropdown.scss | 191 + static/vendors/bootstrap/scss/_forms.scss | 330 + static/vendors/bootstrap/scss/_functions.scss | 86 + static/vendors/bootstrap/scss/_grid.scss | 52 + static/vendors/bootstrap/scss/_images.scss | 42 + .../vendors/bootstrap/scss/_input-group.scss | 193 + static/vendors/bootstrap/scss/_jumbotron.scss | 17 + .../vendors/bootstrap/scss/_list-group.scss | 149 + static/vendors/bootstrap/scss/_media.scss | 8 + static/vendors/bootstrap/scss/_mixins.scss | 47 + static/vendors/bootstrap/scss/_modal.scss | 229 + static/vendors/bootstrap/scss/_nav.scss | 120 + static/vendors/bootstrap/scss/_navbar.scss | 294 + .../vendors/bootstrap/scss/_pagination.scss | 73 + static/vendors/bootstrap/scss/_popover.scss | 171 + static/vendors/bootstrap/scss/_print.scss | 141 + static/vendors/bootstrap/scss/_progress.scss | 43 + static/vendors/bootstrap/scss/_reboot.scss | 483 + static/vendors/bootstrap/scss/_root.scss | 19 + static/vendors/bootstrap/scss/_spinners.scss | 55 + static/vendors/bootstrap/scss/_tables.scss | 185 + static/vendors/bootstrap/scss/_toasts.scss | 44 + static/vendors/bootstrap/scss/_tooltip.scss | 115 + .../vendors/bootstrap/scss/_transitions.scss | 20 + static/vendors/bootstrap/scss/_type.scss | 125 + static/vendors/bootstrap/scss/_utilities.scss | 17 + static/vendors/bootstrap/scss/_variables.scss | 1123 + .../bootstrap/scss/bootstrap-grid.scss | 29 + .../bootstrap/scss/bootstrap-reboot.scss | 12 + static/vendors/bootstrap/scss/bootstrap.scss | 44 + .../vendors/bootstrap/scss/mixins/_alert.scss | 13 + .../scss/mixins/_background-variant.scss | 21 + .../vendors/bootstrap/scss/mixins/_badge.scss | 17 + .../bootstrap/scss/mixins/_border-radius.scss | 63 + .../bootstrap/scss/mixins/_box-shadow.scss | 20 + .../bootstrap/scss/mixins/_breakpoints.scss | 123 + .../bootstrap/scss/mixins/_buttons.scss | 107 + .../vendors/bootstrap/scss/mixins/_caret.scss | 62 + .../bootstrap/scss/mixins/_clearfix.scss | 7 + .../bootstrap/scss/mixins/_deprecate.scss | 10 + .../vendors/bootstrap/scss/mixins/_float.scss | 14 + .../vendors/bootstrap/scss/mixins/_forms.scss | 192 + .../bootstrap/scss/mixins/_gradients.scss | 45 + .../scss/mixins/_grid-framework.scss | 66 + .../vendors/bootstrap/scss/mixins/_grid.scss | 51 + .../vendors/bootstrap/scss/mixins/_hover.scss | 37 + .../vendors/bootstrap/scss/mixins/_image.scss | 36 + .../bootstrap/scss/mixins/_list-group.scss | 21 + .../vendors/bootstrap/scss/mixins/_lists.scss | 7 + .../bootstrap/scss/mixins/_nav-divider.scss | 10 + .../bootstrap/scss/mixins/_pagination.scss | 22 + .../bootstrap/scss/mixins/_reset-text.scss | 17 + .../bootstrap/scss/mixins/_resize.scss | 6 + .../bootstrap/scss/mixins/_screen-reader.scss | 33 + .../vendors/bootstrap/scss/mixins/_size.scss | 7 + .../bootstrap/scss/mixins/_table-row.scss | 39 + .../bootstrap/scss/mixins/_text-emphasis.scss | 16 + .../bootstrap/scss/mixins/_text-hide.scss | 11 + .../bootstrap/scss/mixins/_text-truncate.scss | 8 + .../bootstrap/scss/mixins/_transition.scss | 16 + .../bootstrap/scss/mixins/_visibility.scss | 8 + .../bootstrap/scss/utilities/_align.scss | 8 + .../bootstrap/scss/utilities/_background.scss | 19 + .../bootstrap/scss/utilities/_borders.scss | 75 + .../bootstrap/scss/utilities/_clearfix.scss | 3 + .../bootstrap/scss/utilities/_display.scss | 26 + .../bootstrap/scss/utilities/_embed.scss | 39 + .../bootstrap/scss/utilities/_flex.scss | 51 + .../bootstrap/scss/utilities/_float.scss | 11 + .../bootstrap/scss/utilities/_overflow.scss | 5 + .../bootstrap/scss/utilities/_position.scss | 32 + .../scss/utilities/_screenreaders.scss | 11 + .../bootstrap/scss/utilities/_shadows.scss | 6 + .../bootstrap/scss/utilities/_sizing.scss | 20 + .../bootstrap/scss/utilities/_spacing.scss | 73 + .../scss/utilities/_stretched-link.scss | 19 + .../bootstrap/scss/utilities/_text.scss | 72 + .../bootstrap/scss/utilities/_visibility.scss | 13 + .../vendors/bootstrap/scss/vendor/_rfs.scss | 204 + static/vendors/bootstrap/site/.eslintrc.json | 26 + .../bootstrap/site/_data/breakpoints.yml | 29 + .../bootstrap/site/_data/browser-bugs.yml | 411 + .../bootstrap/site/_data/browser-features.yml | 139 + .../vendors/bootstrap/site/_data/colors.yml | 26 + .../bootstrap/site/_data/core-team.yml | 26 + .../bootstrap/site/_data/docs-versions.yml | 44 + .../vendors/bootstrap/site/_data/examples.yml | 55 + static/vendors/bootstrap/site/_data/grays.yml | 18 + static/vendors/bootstrap/site/_data/nav.yml | 91 + .../bootstrap/site/_data/theme-colors.yml | 16 + .../bootstrap/site/_data/translations.yml | 19 + .../vendors/bootstrap/site/_includes/ads.html | 1 + .../bootstrap/site/_includes/analytics.html | 6 + .../bootstrap/site/_includes/bugify.html | 42 + .../_includes/callout-danger-async-methods.md | 8 + .../callout-info-mediaqueries-breakpoints.md | 4 + .../callout-info-prefersreducedmotion.md | 4 + ...ut-warning-color-assistive-technologies.md | 6 + .../bootstrap/site/_includes/callout.html | 9 + .../bootstrap/site/_includes/docs-navbar.html | 71 + .../site/_includes/docs-sidebar.html | 43 + .../bootstrap/site/_includes/example.html | 51 + .../bootstrap/site/_includes/favicons.html | 9 + .../bootstrap/site/_includes/footer.html | 12 + .../bootstrap/site/_includes/header.html | 23 + .../site/_includes/icons/bootstrap-stack.svg | 1 + .../site/_includes/icons/bootstrap.svg | 1 + .../site/_includes/icons/download.svg | 1 + .../bootstrap/site/_includes/icons/github.svg | 1 + .../bootstrap/site/_includes/icons/import.svg | 1 + .../site/_includes/icons/lightning.svg | 1 + .../bootstrap/site/_includes/icons/menu.svg | 1 + .../site/_includes/icons/opencollective.svg | 1 + .../site/_includes/icons/placeholder.svg | 35 + .../bootstrap/site/_includes/icons/slack.svg | 1 + .../site/_includes/icons/twitter.svg | 1 + .../bootstrap/site/_includes/scripts.html | 23 + .../bootstrap/site/_includes/skippy.html | 3 + .../bootstrap/site/_includes/social.html | 18 + .../bootstrap/site/_includes/stylesheet.html | 16 + .../bootstrap/site/_layouts/default.html | 22 + .../vendors/bootstrap/site/_layouts/docs.html | 34 + .../bootstrap/site/_layouts/examples.html | 55 + .../vendors/bootstrap/site/_layouts/home.html | 16 + .../bootstrap/site/_layouts/simple.html | 18 + .../bootstrap/site/docs/4.3/about/brand.md | 78 + .../bootstrap/site/docs/4.3/about/license.md | 34 + .../bootstrap/site/docs/4.3/about/overview.md | 27 + .../bootstrap/site/docs/4.3/about/team.md | 21 + .../site/docs/4.3/about/translations.md | 18 + .../4.3/assets/brand/bootstrap-outline.svg | 5 + .../4.3/assets/brand/bootstrap-punchout.svg | 5 + .../assets/brand/bootstrap-social-logo.png | Bin 0 -> 23959 bytes .../4.3/assets/brand/bootstrap-social.png | Bin 0 -> 231733 bytes .../docs/4.3/assets/brand/bootstrap-solid.svg | 5 + .../site/docs/4.3/assets/css/docs.min.css | 8 + .../site/docs/4.3/assets/css/docs.min.css.map | Bin 0 -> 83813 bytes .../docs/4.3/assets/img/bootstrap-themes.png | Bin 0 -> 28187 bytes .../4.3/assets/img/bootstrap-themes@2x.png | Bin 0 -> 80588 bytes .../docs/4.3/assets/img/examples/album.png | Bin 0 -> 21740 bytes .../docs/4.3/assets/img/examples/album@2x.png | Bin 0 -> 26370 bytes .../docs/4.3/assets/img/examples/blog.png | Bin 0 -> 32843 bytes .../docs/4.3/assets/img/examples/blog@2x.png | Bin 0 -> 36944 bytes .../docs/4.3/assets/img/examples/carousel.png | Bin 0 -> 21450 bytes .../4.3/assets/img/examples/carousel@2x.png | Bin 0 -> 31465 bytes .../docs/4.3/assets/img/examples/checkout.png | Bin 0 -> 25151 bytes .../4.3/assets/img/examples/checkout@2x.png | Bin 0 -> 28180 bytes .../docs/4.3/assets/img/examples/cover.png | Bin 0 -> 7240 bytes .../docs/4.3/assets/img/examples/cover@2x.png | Bin 0 -> 17953 bytes .../4.3/assets/img/examples/dashboard.png | Bin 0 -> 24376 bytes .../4.3/assets/img/examples/dashboard@2x.png | Bin 0 -> 26556 bytes .../assets/img/examples/floating-labels.png | Bin 0 -> 10516 bytes .../img/examples/floating-labels@2x.png | Bin 0 -> 11053 bytes .../docs/4.3/assets/img/examples/grid.png | Bin 0 -> 37960 bytes .../docs/4.3/assets/img/examples/grid@2x.png | Bin 0 -> 34834 bytes .../4.3/assets/img/examples/jumbotron.png | Bin 0 -> 31403 bytes .../4.3/assets/img/examples/jumbotron@2x.png | Bin 0 -> 38408 bytes .../4.3/assets/img/examples/navbar-bottom.png | Bin 0 -> 9774 bytes .../assets/img/examples/navbar-bottom@2x.png | Bin 0 -> 11316 bytes .../4.3/assets/img/examples/navbar-fixed.png | Bin 0 -> 11569 bytes .../assets/img/examples/navbar-fixed@2x.png | Bin 0 -> 13616 bytes .../4.3/assets/img/examples/navbar-static.png | Bin 0 -> 12523 bytes .../assets/img/examples/navbar-static@2x.png | Bin 0 -> 14893 bytes .../docs/4.3/assets/img/examples/navbars.png | Bin 0 -> 24748 bytes .../4.3/assets/img/examples/navbars@2x.png | Bin 0 -> 27187 bytes .../4.3/assets/img/examples/offcanvas.png | Bin 0 -> 20148 bytes .../4.3/assets/img/examples/offcanvas@2x.png | Bin 0 -> 23975 bytes .../docs/4.3/assets/img/examples/pricing.png | Bin 0 -> 25033 bytes .../4.3/assets/img/examples/pricing@2x.png | Bin 0 -> 29128 bytes .../docs/4.3/assets/img/examples/product.png | Bin 0 -> 24977 bytes .../4.3/assets/img/examples/product@2x.png | Bin 0 -> 27953 bytes .../docs/4.3/assets/img/examples/sign-in.png | Bin 0 -> 5704 bytes .../4.3/assets/img/examples/sign-in@2x.png | Bin 0 -> 5680 bytes .../assets/img/examples/starter-template.png | Bin 0 -> 9761 bytes .../img/examples/starter-template@2x.png | Bin 0 -> 11334 bytes .../img/examples/sticky-footer-navbar.png | Bin 0 -> 14167 bytes .../img/examples/sticky-footer-navbar@2x.png | Bin 0 -> 15836 bytes .../4.3/assets/img/examples/sticky-footer.png | Bin 0 -> 8170 bytes .../assets/img/examples/sticky-footer@2x.png | Bin 0 -> 9665 bytes .../img/favicons/android-chrome-192x192.png | Bin 0 -> 1935 bytes .../img/favicons/android-chrome-512x512.png | Bin 0 -> 4269 bytes .../assets/img/favicons/apple-touch-icon.png | Bin 0 -> 1738 bytes .../4.3/assets/img/favicons/browserconfig.xml | 11 + .../4.3/assets/img/favicons/favicon-16x16.png | Bin 0 -> 310 bytes .../4.3/assets/img/favicons/favicon-32x32.png | Bin 0 -> 491 bytes .../4.3/assets/img/favicons/manifest.json | 22 + .../assets/img/favicons/mstile-144x144.png | Bin 0 -> 1479 bytes .../assets/img/favicons/mstile-150x150.png | Bin 0 -> 1428 bytes .../assets/img/favicons/mstile-310x150.png | Bin 0 -> 1746 bytes .../assets/img/favicons/mstile-310x310.png | Bin 0 -> 3085 bytes .../4.3/assets/img/favicons/mstile-70x70.png | Bin 0 -> 1104 bytes .../assets/img/favicons/safari-pinned-tab.svg | 4 + .../site/docs/4.3/assets/js/docs.min.js | 22 + .../docs/4.3/assets/js/src/application.js | 112 + .../js/src/ie-emulation-modes-warning.js | 47 + .../site/docs/4.3/assets/js/src/search.js | 55 + .../docs/4.3/assets/js/vendor/anchor.min.js | 6 + .../js/vendor/bs-custom-file-input.min.js | 7 + .../4.3/assets/js/vendor/clipboard.min.js | 7 + .../4.3/assets/js/vendor/jquery-slim.min.js | 2 + .../site/docs/4.3/assets/scss/_ads.scss | 38 + .../site/docs/4.3/assets/scss/_algolia.scss | 155 + .../site/docs/4.3/assets/scss/_anchor.scss | 10 + .../site/docs/4.3/assets/scss/_brand.scss | 88 + .../docs/4.3/assets/scss/_browser-bugs.scss | 12 + .../site/docs/4.3/assets/scss/_buttons.scss | 37 + .../site/docs/4.3/assets/scss/_callouts.scss | 40 + .../docs/4.3/assets/scss/_clipboard-js.scss | 36 + .../site/docs/4.3/assets/scss/_colors.scss | 24 + .../4.3/assets/scss/_component-examples.scss | 412 + .../site/docs/4.3/assets/scss/_content.scss | 124 + .../site/docs/4.3/assets/scss/_footer.scss | 40 + .../site/docs/4.3/assets/scss/_masthead.scss | 52 + .../site/docs/4.3/assets/scss/_nav.scss | 75 + .../4.3/assets/scss/_placeholder-img.scss | 15 + .../site/docs/4.3/assets/scss/_sidebar.scss | 162 + .../site/docs/4.3/assets/scss/_skippy.scss | 17 + .../site/docs/4.3/assets/scss/_syntax.scss | 78 + .../site/docs/4.3/assets/scss/_variables.scss | 15 + .../site/docs/4.3/assets/scss/docs.scss | 52 + .../bootstrap/site/docs/4.3/browser-bugs.md | 65 + .../site/docs/4.3/components/alerts.md | 118 + .../site/docs/4.3/components/badge.md | 74 + .../site/docs/4.3/components/breadcrumb.md | 58 + .../site/docs/4.3/components/button-group.md | 207 + .../site/docs/4.3/components/buttons.md | 163 + .../site/docs/4.3/components/card.md | 709 + .../site/docs/4.3/components/carousel.md | 364 + .../site/docs/4.3/components/collapse.md | 251 + .../site/docs/4.3/components/dropdowns.md | 909 + .../site/docs/4.3/components/forms.md | 1376 + .../site/docs/4.3/components/input-group.md | 375 + .../site/docs/4.3/components/jumbotron.md | 31 + .../site/docs/4.3/components/list-group.md | 393 + .../site/docs/4.3/components/media-object.md | 144 + .../site/docs/4.3/components/modal.md | 846 + .../site/docs/4.3/components/navbar.md | 581 + .../site/docs/4.3/components/navs.md | 666 + .../site/docs/4.3/components/pagination.md | 174 + .../site/docs/4.3/components/popovers.md | 379 + .../site/docs/4.3/components/progress.md | 146 + .../site/docs/4.3/components/scrollspy.md | 345 + .../site/docs/4.3/components/spinners.md | 185 + .../site/docs/4.3/components/toasts.md | 330 + .../site/docs/4.3/components/tooltips.md | 384 + .../bootstrap/site/docs/4.3/content/code.md | 55 + .../site/docs/4.3/content/figures.md | 28 + .../bootstrap/site/docs/4.3/content/images.md | 84 + .../bootstrap/site/docs/4.3/content/reboot.md | 367 + .../bootstrap/site/docs/4.3/content/tables.md | 831 + .../site/docs/4.3/content/typography.md | 301 + .../site/docs/4.3/examples/.stylelintrc | 15 + .../site/docs/4.3/examples/album/album.css | 33 + .../site/docs/4.3/examples/album/index.html | 207 + .../site/docs/4.3/examples/blog/blog.css | 125 + .../site/docs/4.3/examples/blog/index.html | 201 + .../docs/4.3/examples/carousel/carousel.css | 90 + .../docs/4.3/examples/carousel/index.html | 163 + .../4.3/examples/checkout/form-validation.css | 5 + .../4.3/examples/checkout/form-validation.js | 20 + .../docs/4.3/examples/checkout/index.html | 223 + .../site/docs/4.3/examples/cover/cover.css | 106 + .../site/docs/4.3/examples/cover/index.html | 34 + .../docs/4.3/examples/dashboard/dashboard.css | 106 + .../docs/4.3/examples/dashboard/dashboard.js | 53 + .../docs/4.3/examples/dashboard/index.html | 246 + .../floating-labels/floating-labels.css | 102 + .../4.3/examples/floating-labels/index.html | 32 + .../site/docs/4.3/examples/grid/grid.css | 6 + .../site/docs/4.3/examples/grid/index.html | 126 + .../site/docs/4.3/examples/index.html | 24 + .../docs/4.3/examples/jumbotron/index.html | 79 + .../docs/4.3/examples/jumbotron/jumbotron.css | 4 + .../4.3/examples/navbar-bottom/index.html | 39 + .../docs/4.3/examples/navbar-fixed/index.html | 37 + .../navbar-fixed/navbar-top-fixed.css | 5 + .../4.3/examples/navbar-static/index.html | 37 + .../4.3/examples/navbar-static/navbar-top.css | 4 + .../site/docs/4.3/examples/navbars/index.html | 323 + .../site/docs/4.3/examples/navbars/navbar.css | 7 + .../docs/4.3/examples/offcanvas/index.html | 135 + .../docs/4.3/examples/offcanvas/offcanvas.css | 76 + .../docs/4.3/examples/offcanvas/offcanvas.js | 7 + .../site/docs/4.3/examples/pricing/index.html | 110 + .../docs/4.3/examples/pricing/pricing.css | 20 + .../site/docs/4.3/examples/product/index.html | 145 + .../docs/4.3/examples/product/product.css | 74 + .../site/docs/4.3/examples/sign-in/index.html | 23 + .../site/docs/4.3/examples/sign-in/signin.css | 44 + .../4.3/examples/starter-template/index.html | 47 + .../starter-template/starter-template.css | 7 + .../examples/sticky-footer-navbar/index.html | 49 + .../sticky-footer-navbar.css | 20 + .../4.3/examples/sticky-footer/index.html | 23 + .../examples/sticky-footer/sticky-footer.css | 13 + .../site/docs/4.3/extend/approach.md | 77 + .../bootstrap/site/docs/4.3/extend/icons.md | 29 + .../docs/4.3/getting-started/accessibility.md | 57 + .../4.3/getting-started/best-practices.md | 21 + .../4.3/getting-started/browsers-devices.md | 192 + .../docs/4.3/getting-started/build-tools.md | 57 + .../site/docs/4.3/getting-started/contents.md | 140 + .../site/docs/4.3/getting-started/download.md | 108 + .../docs/4.3/getting-started/introduction.md | 146 + .../docs/4.3/getting-started/javascript.md | 211 + .../site/docs/4.3/getting-started/theming.md | 446 + .../site/docs/4.3/getting-started/webpack.md | 93 + .../bootstrap/site/docs/4.3/layout/grid.md | 827 + .../site/docs/4.3/layout/overview.md | 189 + .../docs/4.3/layout/utilities-for-layout.md | 25 + .../bootstrap/site/docs/4.3/migration.md | 337 + .../site/docs/4.3/utilities/borders.md | 91 + .../site/docs/4.3/utilities/clearfix.md | 38 + .../site/docs/4.3/utilities/close-icon.md | 15 + .../site/docs/4.3/utilities/colors.md | 58 + .../site/docs/4.3/utilities/display.md | 102 + .../site/docs/4.3/utilities/embed.md | 61 + .../bootstrap/site/docs/4.3/utilities/flex.md | 570 + .../site/docs/4.3/utilities/float.md | 57 + .../docs/4.3/utilities/image-replacement.md | 36 + .../site/docs/4.3/utilities/overflow.md | 24 + .../site/docs/4.3/utilities/position.md | 45 + .../site/docs/4.3/utilities/screen-readers.md | 25 + .../site/docs/4.3/utilities/shadows.md | 18 + .../site/docs/4.3/utilities/sizing.md | 56 + .../site/docs/4.3/utilities/spacing.md | 105 + .../site/docs/4.3/utilities/stretched-link.md | 80 + .../bootstrap/site/docs/4.3/utilities/text.md | 132 + .../site/docs/4.3/utilities/vertical-align.md | 40 + .../site/docs/4.3/utilities/visibility.md | 34 + .../vendors/bootstrap/site/docs/versions.html | 29 + static/vendors/bootstrap/site/favicon.ico | Bin 0 -> 5430 bytes static/vendors/bootstrap/site/index.html | 89 + static/vendors/bootstrap/site/robots.txt | 9 + static/vendors/bootstrap/site/sw.js | 27 + static/vendors/cropper/.bower.json | 65 + static/vendors/cropper/CHANGELOG.md | 455 + static/vendors/cropper/LICENSE | 21 + static/vendors/cropper/README.md | 1085 + static/vendors/cropper/bower.json | 55 + static/vendors/cropper/dist/cropper.css | 379 + static/vendors/cropper/dist/cropper.js | 3002 + static/vendors/cropper/dist/cropper.min.css | 9 + static/vendors/cropper/dist/cropper.min.js | 10 + static/vendors/cropper/package.json | 53 + static/vendors/cropper/src/img/bg.png | Bin 0 -> 168 bytes static/vendors/cropper/src/js/bind.js | 87 + static/vendors/cropper/src/js/build.js | 118 + static/vendors/cropper/src/js/change.js | 402 + static/vendors/cropper/src/js/cropper.js | 18 + static/vendors/cropper/src/js/defaults.js | 101 + static/vendors/cropper/src/js/handlers.js | 205 + static/vendors/cropper/src/js/init.js | 217 + static/vendors/cropper/src/js/intro.js | 24 + static/vendors/cropper/src/js/methods.js | 790 + static/vendors/cropper/src/js/outro.js | 1 + static/vendors/cropper/src/js/plugin.js | 39 + static/vendors/cropper/src/js/preview.js | 100 + static/vendors/cropper/src/js/render.js | 466 + static/vendors/cropper/src/js/template.js | 27 + static/vendors/cropper/src/js/utilities.js | 310 + static/vendors/cropper/src/js/variables.js | 82 + static/vendors/cropper/src/scss/_main.scss | 253 + static/vendors/cropper/src/scss/_mixins.scss | 23 + .../vendors/cropper/src/scss/_utilities.scss | 49 + .../vendors/cropper/src/scss/_variables.scss | 19 + static/vendors/cropper/src/scss/cropper.scss | 14 + static/vendors/datatables.net-bs/.bower.json | 48 + static/vendors/datatables.net-bs/License.txt | 20 + static/vendors/datatables.net-bs/Readme.md | 50 + static/vendors/datatables.net-bs/bower.json | 38 + .../css/dataTables.bootstrap.css | 185 + .../css/dataTables.bootstrap.min.css | 1 + .../js/dataTables.bootstrap.js | 182 + .../js/dataTables.bootstrap.min.js | 8 + .../datatables.net-buttons-bs/.bower.json | 53 + .../datatables.net-buttons-bs/License.txt | 20 + .../datatables.net-buttons-bs/Readme.md | 50 + .../datatables.net-buttons-bs/bower.json | 43 + .../css/buttons.bootstrap.css | 102 + .../css/buttons.bootstrap.min.css | 1 + .../js/buttons.bootstrap.js | 68 + .../js/buttons.bootstrap.min.js | 6 + .../datatables.net-buttons/.bower.json | 56 + .../datatables.net-buttons/License.txt | 20 + .../vendors/datatables.net-buttons/Readme.md | 50 + .../vendors/datatables.net-buttons/bower.json | 45 + .../js/buttons.colVis.js | 198 + .../js/buttons.colVis.min.js | 5 + .../js/buttons.flash.js | 1339 + .../js/buttons.flash.min.js | 29 + .../js/buttons.html5.js | 1345 + .../js/buttons.html5.min.js | 26 + .../js/buttons.print.js | 176 + .../js/buttons.print.min.js | 4 + .../js/dataTables.buttons.js | 1665 + .../js/dataTables.buttons.min.js | 35 + .../datatables.net-fixedheader-bs/.bower.json | 48 + .../datatables.net-fixedheader-bs/License.txt | 20 + .../datatables.net-fixedheader-bs/Readme.md | 50 + .../datatables.net-fixedheader-bs/bower.json | 38 + .../css/fixedHeader.bootstrap.css | 20 + .../css/fixedHeader.bootstrap.min.css | 1 + .../datatables.net-fixedheader/.bower.json | 47 + .../datatables.net-fixedheader/License.txt | 20 + .../datatables.net-fixedheader/Readme.md | 50 + .../datatables.net-fixedheader/bower.json | 37 + .../js/dataTables.fixedHeader.js | 672 + .../js/dataTables.fixedHeader.min.js | 17 + .../datatables.net-keytable/.bower.json | 48 + .../datatables.net-keytable/License.txt | 20 + .../vendors/datatables.net-keytable/Readme.md | 50 + .../datatables.net-keytable/bower.json | 38 + .../js/dataTables.keyTable.js | 883 + .../js/dataTables.keyTable.min.js | 18 + .../datatables.net-responsive-bs/.bower.json | 48 + .../datatables.net-responsive-bs/License.txt | 20 + .../datatables.net-responsive-bs/Readme.md | 50 + .../datatables.net-responsive-bs/bower.json | 38 + .../css/responsive.bootstrap.css | 181 + .../css/responsive.bootstrap.min.css | 1 + .../js/responsive.bootstrap.js | 81 + .../datatables.net-responsive/.bower.json | 46 + .../datatables.net-responsive/License.txt | 20 + .../datatables.net-responsive/Readme.md | 50 + .../datatables.net-responsive/bower.json | 36 + .../js/dataTables.responsive.js | 1232 + .../js/dataTables.responsive.min.js | 26 + .../datatables.net-scroller-bs/.bower.json | 47 + .../datatables.net-scroller-bs/License.txt | 20 + .../datatables.net-scroller-bs/Readme.md | 50 + .../datatables.net-scroller-bs/bower.json | 37 + .../css/scroller.bootstrap.css | 24 + .../css/scroller.bootstrap.min.css | 1 + .../datatables.net-scroller/.bower.json | 46 + .../datatables.net-scroller/License.txt | 20 + .../vendors/datatables.net-scroller/Readme.md | 50 + .../datatables.net-scroller/bower.json | 36 + .../js/dataTables.scroller.js | 1349 + .../js/dataTables.scroller.min.js | 27 + static/vendors/datatables.net/.bower.json | 46 + static/vendors/datatables.net/License.txt | 20 + static/vendors/datatables.net/Readme.md | 50 + static/vendors/datatables.net/bower.json | 36 + .../datatables.net/js/jquery.dataTables.js | 15277 ++++ .../js/jquery.dataTables.min.js | 166 + .../devbridge-autocomplete/.bower.json | 35 + .../vendors/devbridge-autocomplete/bower.json | 26 + .../devbridge-autocomplete.jquery.json | 28 + .../dist/jquery.autocomplete.js | 979 + .../dist/jquery.autocomplete.min.js | 8 + .../devbridge-autocomplete/dist/license.txt | 21 + .../devbridge-autocomplete/gruntfile.js | 70 + .../vendors/devbridge-autocomplete/index.htm | 48 + .../devbridge-autocomplete/license.txt | 21 + .../devbridge-autocomplete/package.json | 24 + .../vendors/devbridge-autocomplete/readme.md | 251 + .../src/jquery.autocomplete.d.ts | 40 + .../src/jquery.autocomplete.js | 979 + static/vendors/dropzone/.bower.json | 25 + static/vendors/dropzone/bower.json | 16 + static/vendors/dropzone/dist/basic.css | 39 + .../dropzone/dist/dropzone-amd-module.js | 1782 + static/vendors/dropzone/dist/dropzone.css | 388 + static/vendors/dropzone/dist/dropzone.js | 1767 + .../vendors/dropzone/dist/min/basic.min.css | 1 + .../dist/min/dropzone-amd-module.min.js | 2 + .../dropzone/dist/min/dropzone.min.css | 1 + .../vendors/dropzone/dist/min/dropzone.min.js | 2 + static/vendors/dropzone/dist/readme.md | 10 + static/vendors/echarts/.bower.json | 14 + static/vendors/echarts/.editorconfig | 38 + .../vendors/echarts/.github/CONTRIBUTING.md | 27 + .../vendors/echarts/.github/ISSUE_TEMPLATE.md | 41 + static/vendors/echarts/.gitignore | 171 + static/vendors/echarts/.jshintrc | 71 + static/vendors/echarts/.npmignore | 9 + static/vendors/echarts/LICENSE | 26 + static/vendors/echarts/README.md | 48 + static/vendors/echarts/asset/logo.png | Bin 0 -> 7323 bytes static/vendors/echarts/build/amd2common.js | 160 + static/vendors/echarts/build/build.sh | 15 + static/vendors/echarts/build/mangleString.js | 165 + static/vendors/echarts/build/optimize.js | 40 + static/vendors/echarts/dist/echarts.common.js | 37230 ++++++++ .../echarts/dist/echarts.common.min.js | 27 + static/vendors/echarts/dist/echarts.js | 56282 ++++++++++++ static/vendors/echarts/dist/echarts.min.js | 33 + static/vendors/echarts/dist/echarts.simple.js | 26780 ++++++ .../echarts/dist/echarts.simple.min.js | 24 + static/vendors/echarts/dist/extension/bmap.js | 364 + .../echarts/dist/extension/bmap.min.js | 1 + .../echarts/dist/extension/dataTool.js | 405 + .../echarts/dist/extension/dataTool.min.js | 1 + .../echarts/extension/bmap/BMapCoordSys.js | 135 + .../echarts/extension/bmap/BMapModel.js | 35 + .../echarts/extension/bmap/BMapView.js | 84 + static/vendors/echarts/extension/bmap/bmap.js | 28 + .../echarts/extension/dataTool/gexf.js | 204 + .../echarts/extension/dataTool/index.js | 9 + .../extension/dataTool/prepareBoxplotData.js | 63 + .../echarts/extension/dataTool/quantile.js | 44 + static/vendors/echarts/extension/echarts.js | 1 + .../echarts/extension/webpack.config.js | 17 + static/vendors/echarts/index.common.js | 21 + static/vendors/echarts/index.js | 44 + static/vendors/echarts/index.simple.js | 9 + .../vendors/echarts/map/js/china-contour.js | 27 + static/vendors/echarts/map/js/china.js | 27 + .../vendors/echarts/map/js/province/anhui.js | 27 + .../vendors/echarts/map/js/province/aomen.js | 27 + .../echarts/map/js/province/beijing.js | 27 + .../echarts/map/js/province/chongqing.js | 27 + .../vendors/echarts/map/js/province/fujian.js | 27 + .../vendors/echarts/map/js/province/gansu.js | 27 + .../echarts/map/js/province/guangdong.js | 27 + .../echarts/map/js/province/guangxi.js | 27 + .../echarts/map/js/province/guizhou.js | 27 + .../vendors/echarts/map/js/province/hainan.js | 27 + .../vendors/echarts/map/js/province/hebei.js | 27 + .../echarts/map/js/province/heilongjiang.js | 27 + .../vendors/echarts/map/js/province/henan.js | 27 + .../vendors/echarts/map/js/province/hubei.js | 27 + .../vendors/echarts/map/js/province/hunan.js | 27 + .../echarts/map/js/province/jiangsu.js | 27 + .../echarts/map/js/province/jiangxi.js | 27 + .../vendors/echarts/map/js/province/jilin.js | 27 + .../echarts/map/js/province/liaoning.js | 27 + .../echarts/map/js/province/neimenggu.js | 27 + .../echarts/map/js/province/ningxia.js | 27 + .../echarts/map/js/province/qinghai.js | 27 + .../echarts/map/js/province/shandong.js | 27 + .../echarts/map/js/province/shanghai.js | 27 + .../vendors/echarts/map/js/province/shanxi.js | 27 + .../echarts/map/js/province/shanxi1.js | 27 + .../echarts/map/js/province/sichuan.js | 27 + .../echarts/map/js/province/tianjin.js | 27 + .../echarts/map/js/province/xianggang.js | 27 + .../echarts/map/js/province/xinjiang.js | 27 + .../vendors/echarts/map/js/province/xizang.js | 27 + .../vendors/echarts/map/js/province/yunnan.js | 27 + .../echarts/map/js/province/zhejiang.js | 27 + static/vendors/echarts/map/js/world.js | 27 + .../echarts/map/json/china-contour.json | 1 + static/vendors/echarts/map/json/china.json | 1 + .../echarts/map/json/province/anhui.json | 1 + .../echarts/map/json/province/aomen.json | 1 + .../echarts/map/json/province/beijing.json | 1 + .../echarts/map/json/province/chongqing.json | 1 + .../echarts/map/json/province/fujian.json | 1 + .../echarts/map/json/province/gansu.json | 1 + .../echarts/map/json/province/guangdong.json | 1 + .../echarts/map/json/province/guangxi.json | 1 + .../echarts/map/json/province/guizhou.json | 1 + .../echarts/map/json/province/hainan.json | 1 + .../echarts/map/json/province/hebei.json | 1 + .../map/json/province/heilongjiang.json | 1 + .../echarts/map/json/province/henan.json | 1 + .../echarts/map/json/province/hubei.json | 1 + .../echarts/map/json/province/hunan.json | 1 + .../echarts/map/json/province/jiangsu.json | 1 + .../echarts/map/json/province/jiangxi.json | 1 + .../echarts/map/json/province/jilin.json | 1 + .../echarts/map/json/province/liaoning.json | 1 + .../echarts/map/json/province/neimenggu.json | 1 + .../echarts/map/json/province/ningxia.json | 1 + .../echarts/map/json/province/qinghai.json | 1 + .../echarts/map/json/province/shandong.json | 1 + .../echarts/map/json/province/shanghai.json | 1 + .../echarts/map/json/province/shanxi.json | 1 + .../echarts/map/json/province/shanxi1.json | 1 + .../echarts/map/json/province/sichuan.json | 1 + .../echarts/map/json/province/tianjin.json | 1 + .../echarts/map/json/province/xianggang.json | 1 + .../echarts/map/json/province/xinjiang.json | 1 + .../echarts/map/json/province/xizang.json | 1 + .../echarts/map/json/province/yunnan.json | 1 + .../echarts/map/json/province/zhejiang.json | 1 + static/vendors/echarts/map/json/world.json | 1 + static/vendors/echarts/package.json | 49 + .../vendors/echarts/src/CoordinateSystem.js | 45 + static/vendors/echarts/src/ExtensionAPI.js | 19 + .../src/action/createDataSelectAction.js | 35 + static/vendors/echarts/src/action/geoRoam.js | 53 + .../vendors/echarts/src/action/roamHelper.js | 60 + static/vendors/echarts/src/chart/bar.js | 24 + .../echarts/src/chart/bar/BarSeries.js | 76 + .../vendors/echarts/src/chart/bar/BarView.js | 215 + .../echarts/src/chart/bar/barItemStyle.js | 19 + static/vendors/echarts/src/chart/boxplot.js | 11 + .../src/chart/boxplot/BoxplotSeries.js | 72 + .../echarts/src/chart/boxplot/BoxplotView.js | 49 + .../src/chart/boxplot/boxplotLayout.js | 181 + .../src/chart/boxplot/boxplotVisual.js | 34 + .../vendors/echarts/src/chart/candlestick.js | 15 + .../chart/candlestick/CandlestickSeries.js | 92 + .../src/chart/candlestick/CandlestickView.js | 54 + .../chart/candlestick/candlestickLayout.js | 103 + .../chart/candlestick/candlestickVisual.js | 40 + .../src/chart/candlestick/preprocessor.js | 18 + static/vendors/echarts/src/chart/chord.js | 17 + .../echarts/src/chart/chord/ChordSeries.js | 64 + .../echarts/src/chart/chord/ChordView.js | 75 + .../vendors/echarts/src/chart/chord/Ribbon.js | 67 + .../src/chart/chord/chordCircularLayout.js | 123 + .../echarts/src/chart/effectScatter.js | 15 + .../effectScatter/EffectScatterSeries.js | 64 + .../chart/effectScatter/EffectScatterView.js | 29 + static/vendors/echarts/src/chart/funnel.js | 17 + .../echarts/src/chart/funnel/FunnelSeries.js | 101 + .../echarts/src/chart/funnel/FunnelView.js | 213 + .../echarts/src/chart/funnel/funnelLayout.js | 170 + static/vendors/echarts/src/chart/gauge.js | 4 + .../echarts/src/chart/gauge/GaugeSeries.js | 122 + .../echarts/src/chart/gauge/GaugeView.js | 410 + .../echarts/src/chart/gauge/PointerPath.js | 47 + static/vendors/echarts/src/chart/graph.js | 27 + .../echarts/src/chart/graph/GraphSeries.js | 249 + .../echarts/src/chart/graph/GraphView.js | 204 + .../echarts/src/chart/graph/adjustEdge.js | 145 + .../echarts/src/chart/graph/backwardCompat.js | 3 + .../echarts/src/chart/graph/categoryFilter.js | 35 + .../echarts/src/chart/graph/categoryVisual.js | 41 + .../echarts/src/chart/graph/circularLayout.js | 10 + .../src/chart/graph/circularLayoutHelper.js | 53 + .../echarts/src/chart/graph/createView.js | 76 + .../echarts/src/chart/graph/edgeVisual.js | 33 + .../echarts/src/chart/graph/forceHelper.js | 137 + .../echarts/src/chart/graph/forceLayout.js | 111 + .../echarts/src/chart/graph/roamAction.js | 35 + .../echarts/src/chart/graph/simpleLayout.js | 28 + .../src/chart/graph/simpleLayoutEdge.js | 18 + .../src/chart/graph/simpleLayoutHelper.js | 19 + static/vendors/echarts/src/chart/heatmap.js | 5 + .../echarts/src/chart/heatmap/HeatmapLayer.js | 148 + .../src/chart/heatmap/HeatmapSeries.js | 38 + .../echarts/src/chart/heatmap/HeatmapView.js | 213 + .../echarts/src/chart/helper/EffectLine.js | 116 + .../echarts/src/chart/helper/EffectSymbol.js | 184 + .../src/chart/helper/LargeSymbolDraw.js | 109 + .../vendors/echarts/src/chart/helper/Line.js | 313 + .../echarts/src/chart/helper/LineDraw.js | 85 + .../echarts/src/chart/helper/LinePath.js | 52 + .../echarts/src/chart/helper/Symbol.js | 265 + .../echarts/src/chart/helper/SymbolDraw.js | 111 + .../src/chart/helper/WhiskerBoxDraw.js | 215 + .../chart/helper/createGraphFromNodeEdge.js | 68 + .../chart/helper/createGraphFromNodeMatrix.js | 92 + .../src/chart/helper/createListFromArray.js | 229 + .../src/chart/helper/whiskerBoxCommon.js | 140 + static/vendors/echarts/src/chart/line.js | 23 + .../echarts/src/chart/line/LineSeries.js | 74 + .../echarts/src/chart/line/LineView.js | 550 + .../src/chart/line/lineAnimationDiff.js | 209 + static/vendors/echarts/src/chart/line/poly.js | 250 + static/vendors/echarts/src/chart/lines.js | 15 + .../echarts/src/chart/lines/LinesSeries.js | 117 + .../echarts/src/chart/lines/LinesView.js | 66 + .../echarts/src/chart/lines/linesLayout.js | 32 + static/vendors/echarts/src/chart/map.js | 34 + .../echarts/src/chart/map/MapSeries.js | 190 + .../vendors/echarts/src/chart/map/MapView.js | 132 + .../echarts/src/chart/map/backwardCompat.js | 86 + .../echarts/src/chart/map/mapDataStatistic.js | 80 + .../echarts/src/chart/map/mapSymbolLayout.js | 59 + .../echarts/src/chart/map/mapVisual.js | 17 + static/vendors/echarts/src/chart/parallel.js | 12 + .../src/chart/parallel/ParallelSeries.js | 119 + .../src/chart/parallel/ParallelView.js | 200 + .../src/chart/parallel/parallelVisual.js | 37 + static/vendors/echarts/src/chart/pie.js | 34 + .../echarts/src/chart/pie/PieSeries.js | 146 + .../vendors/echarts/src/chart/pie/PieView.js | 362 + .../echarts/src/chart/pie/labelLayout.js | 227 + .../echarts/src/chart/pie/pieLayout.js | 123 + static/vendors/echarts/src/chart/radar.js | 25 + .../echarts/src/chart/radar/RadarSeries.js | 75 + .../echarts/src/chart/radar/RadarView.js | 219 + .../echarts/src/chart/radar/backwardCompat.js | 36 + .../echarts/src/chart/radar/radarLayout.js | 28 + static/vendors/echarts/src/chart/sankey.js | 9 + .../echarts/src/chart/sankey/SankeySeries.js | 119 + .../echarts/src/chart/sankey/SankeyView.js | 182 + .../echarts/src/chart/sankey/sankeyLayout.js | 357 + .../echarts/src/chart/sankey/sankeyVisual.js | 37 + static/vendors/echarts/src/chart/scatter.js | 18 + .../src/chart/scatter/ScatterSeries.js | 62 + .../echarts/src/chart/scatter/ScatterView.js | 42 + .../vendors/echarts/src/chart/themeRiver.js | 18 + .../src/chart/themeRiver/ThemeRiverSeries.js | 316 + .../src/chart/themeRiver/ThemeRiverView.js | 174 + .../src/chart/themeRiver/themeRiverLayout.js | 140 + .../src/chart/themeRiver/themeRiverVisual.js | 21 + static/vendors/echarts/src/chart/treemap.js | 12 + .../echarts/src/chart/treemap/Breadcrumb.js | 159 + .../src/chart/treemap/TreemapSeries.js | 349 + .../echarts/src/chart/treemap/TreemapView.js | 872 + .../echarts/src/chart/treemap/helper.js | 44 + .../src/chart/treemap/treemapAction.js | 45 + .../src/chart/treemap/treemapLayout.js | 550 + .../src/chart/treemap/treemapVisual.js | 220 + .../echarts/src/component/angleAxis.js | 7 + static/vendors/echarts/src/component/axis.js | 8 + .../src/component/axis/AngleAxisView.js | 224 + .../echarts/src/component/axis/AxisBuilder.js | 463 + .../echarts/src/component/axis/AxisView.js | 274 + .../src/component/axis/ParallelAxisView.js | 137 + .../src/component/axis/RadiusAxisView.js | 144 + .../src/component/axis/SingleAxisView.js | 161 + .../src/component/axis/parallelAxisAction.js | 25 + .../vendors/echarts/src/component/dataZoom.js | 20 + .../src/component/dataZoom/AxisProxy.js | 357 + .../src/component/dataZoom/DataZoomModel.js | 432 + .../src/component/dataZoom/DataZoomView.js | 84 + .../src/component/dataZoom/InsideZoomModel.js | 17 + .../src/component/dataZoom/InsideZoomView.js | 194 + .../src/component/dataZoom/SelectZoomModel.js | 14 + .../src/component/dataZoom/SelectZoomView.js | 9 + .../src/component/dataZoom/SliderZoomModel.js | 57 + .../src/component/dataZoom/SliderZoomView.js | 700 + .../src/component/dataZoom/dataZoomAction.js | 43 + .../component/dataZoom/dataZoomProcessor.js | 57 + .../echarts/src/component/dataZoom/history.js | 109 + .../echarts/src/component/dataZoom/roams.js | 192 + .../src/component/dataZoom/typeDefaulter.js | 8 + .../echarts/src/component/dataZoomInside.js | 17 + .../echarts/src/component/dataZoomSelect.js | 17 + static/vendors/echarts/src/component/geo.js | 49 + .../echarts/src/component/geo/GeoView.js | 35 + static/vendors/echarts/src/component/grid.js | 29 + .../echarts/src/component/helper/MapDraw.js | 295 + .../src/component/helper/RoamController.js | 221 + .../src/component/helper/SelectController.js | 373 + .../src/component/helper/interactionMutex.js | 25 + .../src/component/helper/listComponent.js | 65 + .../src/component/helper/selectableMixin.js | 65 + .../src/component/helper/sliderMove.js | 54 + .../vendors/echarts/src/component/legend.js | 13 + .../src/component/legend/LegendModel.js | 180 + .../src/component/legend/LegendView.js | 230 + .../src/component/legend/legendAction.js | 82 + .../src/component/legend/legendFilter.js | 19 + .../vendors/echarts/src/component/markLine.js | 10 + .../echarts/src/component/markPoint.js | 11 + .../src/component/marker/MarkLineModel.js | 103 + .../src/component/marker/MarkLineView.js | 407 + .../src/component/marker/MarkPointModel.js | 87 + .../src/component/marker/MarkPointView.js | 200 + .../src/component/marker/markerHelper.js | 174 + .../vendors/echarts/src/component/parallel.js | 18 + .../echarts/src/component/parallelAxis.js | 7 + static/vendors/echarts/src/component/polar.js | 12 + static/vendors/echarts/src/component/radar.js | 7 + .../echarts/src/component/radar/RadarView.js | 167 + .../echarts/src/component/radiusAxis.js | 6 + .../vendors/echarts/src/component/single.js | 12 + .../echarts/src/component/singleAxis.js | 7 + .../vendors/echarts/src/component/timeline.js | 15 + .../component/timeline/SliderTimelineModel.js | 111 + .../component/timeline/SliderTimelineView.js | 688 + .../src/component/timeline/TimelineAxis.js | 96 + .../src/component/timeline/TimelineModel.js | 197 + .../src/component/timeline/TimelineView.js | 15 + .../src/component/timeline/preprocessor.js | 86 + .../src/component/timeline/timelineAction.js | 39 + .../src/component/timeline/typeDefaulter.js | 8 + static/vendors/echarts/src/component/title.js | 188 + .../vendors/echarts/src/component/toolbox.js | 11 + .../src/component/toolbox/ToolboxModel.js | 71 + .../src/component/toolbox/ToolboxView.js | 233 + .../src/component/toolbox/feature/DataView.js | 478 + .../src/component/toolbox/feature/DataZoom.js | 343 + .../component/toolbox/feature/MagicType.js | 169 + .../src/component/toolbox/feature/Restore.js | 39 + .../component/toolbox/feature/SaveAsImage.js | 67 + .../src/component/toolbox/featureManager.js | 15 + .../vendors/echarts/src/component/tooltip.js | 36 + .../src/component/tooltip/TooltipContent.js | 265 + .../src/component/tooltip/TooltipModel.js | 104 + .../src/component/tooltip/TooltipView.js | 1144 + .../echarts/src/component/visualMap.js | 9 + .../component/visualMap/ContinuousModel.js | 171 + .../src/component/visualMap/ContinuousView.js | 718 + .../src/component/visualMap/PiecewiseModel.js | 323 + .../src/component/visualMap/PiecewiseView.js | 239 + .../src/component/visualMap/VisualMapModel.js | 539 + .../src/component/visualMap/VisualMapView.js | 161 + .../echarts/src/component/visualMap/helper.js | 86 + .../src/component/visualMap/preprocessor.js | 47 + .../src/component/visualMap/typeDefaulter.js | 19 + .../src/component/visualMap/visualCoding.js | 51 + .../component/visualMap/visualMapAction.js | 23 + .../src/component/visualMapContinuous.js | 16 + .../src/component/visualMapPiecewise.js | 16 + static/vendors/echarts/src/coord/Axis.js | 232 + static/vendors/echarts/src/coord/View.js | 272 + .../vendors/echarts/src/coord/axisDefault.js | 130 + .../vendors/echarts/src/coord/axisHelper.js | 222 + .../echarts/src/coord/axisModelCommonMixin.js | 39 + .../echarts/src/coord/axisModelCreator.js | 58 + .../echarts/src/coord/cartesian/Axis2D.js | 117 + .../echarts/src/coord/cartesian/AxisModel.js | 105 + .../echarts/src/coord/cartesian/Cartesian.js | 114 + .../src/coord/cartesian/Cartesian2D.js | 112 + .../echarts/src/coord/cartesian/Grid.js | 419 + .../echarts/src/coord/cartesian/GridModel.js | 40 + .../src/coord/cartesian/axisLabelInterval.js | 26 + static/vendors/echarts/src/coord/geo/Geo.js | 230 + .../vendors/echarts/src/coord/geo/GeoModel.js | 148 + .../vendors/echarts/src/coord/geo/Region.js | 127 + .../echarts/src/coord/geo/fix/geoCoord.js | 20 + .../echarts/src/coord/geo/fix/nanhai.js | 40 + .../echarts/src/coord/geo/fix/textCoord.js | 25 + .../echarts/src/coord/geo/geoCreator.js | 217 + .../echarts/src/coord/geo/parseGeoJson.js | 114 + .../echarts/src/coord/parallel/AxisModel.js | 120 + .../echarts/src/coord/parallel/Parallel.js | 300 + .../src/coord/parallel/ParallelAxis.js | 50 + .../src/coord/parallel/ParallelModel.js | 100 + .../src/coord/parallel/parallelCreator.js | 36 + .../coord/parallel/parallelPreprocessor.js | 54 + .../echarts/src/coord/polar/AngleAxis.js | 36 + .../echarts/src/coord/polar/AxisModel.js | 48 + .../vendors/echarts/src/coord/polar/Polar.js | 229 + .../echarts/src/coord/polar/PolarModel.js | 46 + .../echarts/src/coord/polar/RadiusAxis.js | 34 + .../echarts/src/coord/polar/polarCreator.js | 131 + .../echarts/src/coord/radar/IndicatorAxis.js | 35 + .../vendors/echarts/src/coord/radar/Radar.js | 234 + .../echarts/src/coord/radar/RadarModel.js | 124 + .../echarts/src/coord/single/AxisModel.js | 78 + .../echarts/src/coord/single/Single.js | 266 + .../echarts/src/coord/single/SingleAxis.js | 121 + .../echarts/src/coord/single/singleCreator.js | 41 + static/vendors/echarts/src/data/DataDiffer.js | 120 + static/vendors/echarts/src/data/Graph.js | 515 + static/vendors/echarts/src/data/List.js | 1058 + static/vendors/echarts/src/data/Tree.js | 472 + .../src/data/helper/completeDimensions.js | 65 + .../echarts/src/data/helper/linkList.js | 133 + static/vendors/echarts/src/echarts.js | 1289 + static/vendors/echarts/src/layout/barGrid.js | 217 + static/vendors/echarts/src/layout/points.js | 25 + static/vendors/echarts/src/loading/default.js | 98 + static/vendors/echarts/src/model/Component.js | 180 + static/vendors/echarts/src/model/Global.js | 752 + static/vendors/echarts/src/model/Model.js | 157 + .../echarts/src/model/OptionManager.js | 435 + static/vendors/echarts/src/model/Series.js | 215 + .../echarts/src/model/globalDefault.js | 44 + .../echarts/src/model/mixin/areaStyle.js | 14 + .../echarts/src/model/mixin/boxLayout.js | 15 + .../echarts/src/model/mixin/itemStyle.js | 16 + .../echarts/src/model/mixin/lineStyle.js | 27 + .../src/model/mixin/makeStyleMapper.js | 28 + .../echarts/src/model/mixin/textStyle.js | 52 + .../src/preprocessor/backwardCompat.js | 105 + .../src/preprocessor/helper/compatStyle.js | 76 + .../echarts/src/processor/dataFilter.js | 23 + .../echarts/src/processor/dataSample.js | 78 + static/vendors/echarts/src/scale/Interval.js | 201 + static/vendors/echarts/src/scale/Log.js | 130 + static/vendors/echarts/src/scale/Ordinal.js | 95 + static/vendors/echarts/src/scale/Scale.js | 123 + static/vendors/echarts/src/scale/Time.js | 161 + static/vendors/echarts/src/util/KDTree.js | 247 + static/vendors/echarts/src/util/animation.js | 101 + static/vendors/echarts/src/util/array/nest.js | 106 + static/vendors/echarts/src/util/clazz.js | 203 + static/vendors/echarts/src/util/component.js | 176 + static/vendors/echarts/src/util/format.js | 162 + static/vendors/echarts/src/util/graphic.js | 481 + static/vendors/echarts/src/util/layout.js | 400 + static/vendors/echarts/src/util/model.js | 394 + static/vendors/echarts/src/util/number.js | 232 + .../vendors/echarts/src/util/quickSelect.js | 82 + static/vendors/echarts/src/util/symbol.js | 354 + static/vendors/echarts/src/util/throttle.js | 194 + static/vendors/echarts/src/view/Chart.js | 134 + static/vendors/echarts/src/view/Component.js | 46 + .../echarts/src/visual/VisualMapping.js | 567 + .../vendors/echarts/src/visual/dataColor.js | 34 + .../vendors/echarts/src/visual/seriesColor.js | 36 + static/vendors/echarts/src/visual/symbol.js | 44 + .../echarts/src/visual/visualDefault.js | 70 + static/vendors/echarts/test/README.md | 55 + static/vendors/echarts/test/area.html | 146 + static/vendors/echarts/test/area2.html | 193 + static/vendors/echarts/test/axes.html | 616 + static/vendors/echarts/test/axis.html | 146 + static/vendors/echarts/test/bar-large.html | 121 + static/vendors/echarts/test/bar.html | 167 + static/vendors/echarts/test/bar2.html | 147 + static/vendors/echarts/test/bmap.html | 645 + .../vendors/echarts/test/boxplot-multi.html | 171 + static/vendors/echarts/test/boxplot.html | 252 + static/vendors/echarts/test/candlestick.html | 252 + .../echarts/test/candlestickConnect.html | 450 + static/vendors/echarts/test/chord.html | 58 + .../vendors/echarts/test/color-mix-aqi.html | 219 + static/vendors/echarts/test/config.js | 22 + static/vendors/echarts/test/connect.html | 163 + static/vendors/echarts/test/connect2.html | 231 + .../test/data/Michelson-Morley.json.js | 10 + .../vendors/echarts/test/data/aqi/BJdata.js | 33 + .../vendors/echarts/test/data/aqi/GZdata.js | 34 + .../vendors/echarts/test/data/aqi/SHdata.js | 34 + .../echarts/test/data/aqi/processAQI.js | 27 + static/vendors/echarts/test/data/disk.tree.js | 21040 +++++ static/vendors/echarts/test/data/energy.json | 120 + .../echarts/test/data/les-miserables.gexf | 1394 + .../test/data/masterPainterColorChoice.json | 1 + .../data/obama_budget_proposal_2012.tree.js | 4546 + .../echarts/test/data/option-view.json | 10625 +++ .../echarts/test/data/option-view2.json | 11714 +++ static/vendors/echarts/test/data/product.json | 134 + .../echarts/test/data/rainfall.json.js | 67 + .../test/data/security-sh-2013.json.js | 91 + .../vendors/echarts/test/data/timelineGDP.js | 124 + static/vendors/echarts/test/dataView.html | 130 + .../vendors/echarts/test/dataZoom-axes.html | 337 + .../echarts/test/dataZoom-axis-type.html | 334 + .../echarts/test/dataZoom-cartesian-h.html | 125 + .../echarts/test/dataZoom-cartesian-v.html | 82 + .../echarts/test/dataZoom-dataShadow.html | 107 + .../echarts/test/dataZoom-dataShadow0.html | 107 + .../echarts/test/dataZoom-dataShadow1.html | 92 + .../echarts/test/dataZoom-dataShadow2.html | 107 + .../echarts/test/dataZoom-dynamic.html | 141 + .../test/dataZoom-rainfall-connect.html | 311 + .../test/dataZoom-rainfall-inside.html | 179 + .../echarts/test/dataZoom-rainfall.html | 159 + .../test/dataZoom-scatter-category.html | 192 + .../test/dataZoom-scatter-hv-polar.html | 96 + .../echarts/test/dataZoom-scatter-hv.html | 151 + .../test/dataZoom-scatter-toolbox.html | 168 + .../echarts/test/dataZoomHighPrecision.html | 351 + static/vendors/echarts/test/diff.html | 98 + static/vendors/echarts/test/dynamicData.html | 121 + .../vendors/echarts/test/effectScatter.html | 537 + static/vendors/echarts/test/esl.js | 1 + static/vendors/echarts/test/force.html | 96 + static/vendors/echarts/test/force2.html | 93 + static/vendors/echarts/test/force3.html | 82 + static/vendors/echarts/test/funnel.html | 118 + static/vendors/echarts/test/gauge.html | 265 + static/vendors/echarts/test/geoLine.html | 332 + static/vendors/echarts/test/geoScatter.html | 323 + static/vendors/echarts/test/getOption.html | 145 + static/vendors/echarts/test/graph-grid.html | 90 + static/vendors/echarts/test/graph-simple.html | 126 + static/vendors/echarts/test/graph.html | 131 + static/vendors/echarts/test/heatmap-map.html | 471 + static/vendors/echarts/test/heatmap.html | 86 + static/vendors/echarts/test/ie8.html | 977 + static/vendors/echarts/test/largeLine.html | 124 + .../vendors/echarts/test/lib/dat.gui.min.js | 94 + static/vendors/echarts/test/lib/draggable.js | 226 + static/vendors/echarts/test/lib/facePrint.js | 79 + static/vendors/echarts/test/lib/jquery.min.js | 5 + static/vendors/echarts/test/line.html | 137 + static/vendors/echarts/test/loading.html | 34 + static/vendors/echarts/test/logScale.html | 73 + static/vendors/echarts/test/map-contour.html | 98 + static/vendors/echarts/test/map.html | 193 + static/vendors/echarts/test/mapWorld.html | 269 + static/vendors/echarts/test/markLine.html | 121 + static/vendors/echarts/test/markPoint.html | 191 + .../test/masterPainterColorChoice.html | 91 + .../vendors/echarts/test/media-dataZoom.html | 196 + .../vendors/echarts/test/media-finance.html | 548 + static/vendors/echarts/test/media-pie.html | 237 + static/vendors/echarts/test/mix.html | 85 + static/vendors/echarts/test/mobileBench.html | 131 + static/vendors/echarts/test/multipleGrid.html | 173 + static/vendors/echarts/test/parallel-aqi.html | 181 + static/vendors/echarts/test/pie.html | 107 + static/vendors/echarts/test/pie2.html | 220 + static/vendors/echarts/test/pie3.html | 87 + static/vendors/echarts/test/pieDynamic.html | 79 + static/vendors/echarts/test/polarLine.html | 114 + static/vendors/echarts/test/polarLine2.html | 67 + static/vendors/echarts/test/polarScatter.html | 75 + static/vendors/echarts/test/punchCard.html | 93 + static/vendors/echarts/test/radar.html | 71 + static/vendors/echarts/test/radar2.html | 97 + static/vendors/echarts/test/radar3.html | 119 + static/vendors/echarts/test/radar4.html | 185 + static/vendors/echarts/test/reset.css | 10 + static/vendors/echarts/test/roseType.html | 68 + static/vendors/echarts/test/sankey.html | 64 + .../vendors/echarts/test/scale-integer.html | 46 + static/vendors/echarts/test/scatter.html | 145 + static/vendors/echarts/test/selectedMode.html | 129 + static/vendors/echarts/test/showTip.html | 119 + static/vendors/echarts/test/symbol.html | 97 + static/vendors/echarts/test/theme.html | 127 + static/vendors/echarts/test/themeRiver.html | 149 + static/vendors/echarts/test/timeScale.html | 180 + .../echarts/test/timeline-finance.html | 332 + .../vendors/echarts/test/timeline-layout.html | 352 + static/vendors/echarts/test/tooltip.html | 164 + static/vendors/echarts/test/treemap-disk.html | 209 + .../vendors/echarts/test/treemap-obama.html | 320 + .../vendors/echarts/test/treemap-option.html | 174 + .../vendors/echarts/test/treemap-option2.html | 120 + .../vendors/echarts/test/treemap-simple.html | 119 + static/vendors/echarts/test/ut/.jshintrc | 61 + static/vendors/echarts/test/ut/MIT.LICENSE | 20 + static/vendors/echarts/test/ut/config.js | 23 + static/vendors/echarts/test/ut/configure | 10 + .../vendors/echarts/test/ut/core/uiHelper.js | 271 + .../vendors/echarts/test/ut/core/utHelper.js | 310 + static/vendors/echarts/test/ut/lib/canteen.js | 566 + .../vendors/echarts/test/ut/lib/imagediff.js | 392 + .../echarts/test/ut/lib/jasmine-2.3.4/boot.js | 121 + .../test/ut/lib/jasmine-2.3.4/console.js | 190 + .../test/ut/lib/jasmine-2.3.4/jasmine-html.js | 446 + .../test/ut/lib/jasmine-2.3.4/jasmine.css | 58 + .../test/ut/lib/jasmine-2.3.4/jasmine.js | 3298 + .../ut/lib/jasmine-2.3.4/jasmine_favicon.png | Bin 0 -> 1486 bytes .../ut/spec/component/visualMap/setOption.js | 241 + .../vendors/echarts/test/ut/spec/data/List.js | 125 + .../echarts/test/ut/spec/model/Component.js | 136 + .../echarts/test/ut/spec/model/Global.js | 808 + .../test/ut/spec/model/timelineOptions.js | 161 + .../vendors/echarts/test/ut/spec/ui/config.js | 6 + .../vendors/echarts/test/ut/spec/ui/legend.js | 586 + .../vendors/echarts/test/ut/spec/ui/title.js | 434 + .../test/ut/spec/ui/title.subtextStyle.js | 353 + .../test/ut/spec/ui/title.textStyle.js | 351 + .../echarts/test/ut/spec/util/graphic.js | 76 + .../echarts/test/ut/spec/util/model.js | 100 + .../echarts/test/ut/spec/util/number.js | 200 + static/vendors/echarts/test/ut/ui.html | 43 + static/vendors/echarts/test/ut/ut.html | 19 + static/vendors/echarts/test/ut/ut.js | 13 + .../echarts/test/visualMap-categories.html | 201 + .../echarts/test/visualMap-continuous.html | 663 + .../echarts/test/visualMap-layout.html | 432 + .../echarts/test/visualMap-opacity.html | 738 + .../echarts/test/visualMap-pieces.html | 139 + .../visualMap-scatter-colorAndSymbol.html | 164 + .../test/visualMap-scatter-symbolSize.html | 146 + static/vendors/echarts/test/webkit-dep.html | 69 + .../echarts/test/worldPopulationBubble.html | 540 + static/vendors/echarts/theme/dark.js | 132 + static/vendors/echarts/theme/infographic.js | 204 + static/vendors/echarts/theme/macarons.js | 198 + static/vendors/echarts/theme/roma.js | 67 + static/vendors/echarts/theme/shine.js | 157 + .../vendors/echarts/theme/tool/option/area.js | 71 + .../vendors/echarts/theme/tool/option/bar.js | 98 + .../echarts/theme/tool/option/graph.js | 2963 + .../vendors/echarts/theme/tool/option/map.js | 122 + .../vendors/echarts/theme/tool/option/pie.js | 72 + .../echarts/theme/tool/option/scatter.js | 182 + static/vendors/echarts/theme/tool/thumb.js | 63 + static/vendors/echarts/theme/vintage.js | 30 + static/vendors/echarts/webpack.config.js | 15 + static/vendors/eve/.bower.json | 12 + static/vendors/eve/LICENSE | 202 + static/vendors/eve/README.md | 7 + static/vendors/eve/component.json | 13 + static/vendors/eve/e.html | 66 + static/vendors/eve/eve.js | 371 + static/vendors/eve/package.json | 18 + static/vendors/fastclick/.bower.json | 23 + static/vendors/fastclick/LICENSE | 22 + static/vendors/fastclick/README.md | 140 + static/vendors/fastclick/bower.json | 12 + static/vendors/fastclick/lib/fastclick.js | 841 + static/vendors/flot-spline/.bower.json | 33 + static/vendors/flot-spline/LICENSE | 22 + static/vendors/flot-spline/bower.json | 23 + .../flot-spline/js/jquery.flot.spline.js | 212 + .../flot-spline/js/jquery.flot.spline.min.js | 1 + static/vendors/flot-spline/package.json | 13 + static/vendors/flot.curvedlines/.bower.json | 28 + static/vendors/flot.curvedlines/bower.json | 16 + .../vendors/flot.curvedlines/curvedLines.js | 483 + static/vendors/flot.orderbars/.bower.json | 14 + static/vendors/flot.orderbars/README.md | 36 + .../flot.orderbars/examples/index.html | 22 + .../flot.orderbars/examples/js/flot/flot.js | 2635 + .../flot.orderbars/examples/js/flot/stack.js | 188 + .../flot.orderbars/examples/js/main.js | 80 + .../examples/js/vendor/jquery-1.9.1.min.js | 5 + .../js/jquery.flot.orderBars.js | 201 + static/vendors/font-awesome/.bower.json | 36 + static/vendors/font-awesome/.gitignore | 33 + static/vendors/font-awesome/.npmignore | 42 + static/vendors/font-awesome/HELP-US-OUT.txt | 7 + static/vendors/font-awesome/bower.json | 22 + .../vendors/font-awesome/css/font-awesome.css | 2199 + .../font-awesome/css/font-awesome.css.map | 7 + .../font-awesome/css/font-awesome.min.css | 4 + .../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../fonts/fontawesome-webfont.svg | 685 + .../fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes .../vendors/font-awesome/less/animated.less | 34 + .../font-awesome/less/bordered-pulled.less | 25 + static/vendors/font-awesome/less/core.less | 12 + .../font-awesome/less/fixed-width.less | 6 + .../font-awesome/less/font-awesome.less | 18 + static/vendors/font-awesome/less/icons.less | 733 + static/vendors/font-awesome/less/larger.less | 13 + static/vendors/font-awesome/less/list.less | 19 + static/vendors/font-awesome/less/mixins.less | 60 + static/vendors/font-awesome/less/path.less | 15 + .../font-awesome/less/rotated-flipped.less | 20 + .../font-awesome/less/screen-reader.less | 5 + static/vendors/font-awesome/less/stacked.less | 20 + .../vendors/font-awesome/less/variables.less | 744 + .../vendors/font-awesome/scss/_animated.scss | 34 + .../font-awesome/scss/_bordered-pulled.scss | 25 + static/vendors/font-awesome/scss/_core.scss | 12 + .../font-awesome/scss/_fixed-width.scss | 6 + static/vendors/font-awesome/scss/_icons.scss | 733 + static/vendors/font-awesome/scss/_larger.scss | 13 + static/vendors/font-awesome/scss/_list.scss | 19 + static/vendors/font-awesome/scss/_mixins.scss | 60 + static/vendors/font-awesome/scss/_path.scss | 15 + .../font-awesome/scss/_rotated-flipped.scss | 20 + .../font-awesome/scss/_screen-reader.scss | 5 + .../vendors/font-awesome/scss/_stacked.scss | 20 + .../vendors/font-awesome/scss/_variables.scss | 744 + .../font-awesome/scss/font-awesome.scss | 18 + static/vendors/fontawesome/.bower.json | 36 + static/vendors/fontawesome/.gitignore | 33 + static/vendors/fontawesome/.npmignore | 42 + static/vendors/fontawesome/HELP-US-OUT.txt | 7 + static/vendors/fontawesome/bower.json | 22 + .../vendors/fontawesome/css/font-awesome.css | 2086 + .../fontawesome/css/font-awesome.css.map | 7 + .../fontawesome/css/font-awesome.min.css | 4 + .../vendors/fontawesome/fonts/FontAwesome.otf | Bin 0 -> 109688 bytes .../fontawesome/fonts/fontawesome-webfont.eot | Bin 0 -> 70807 bytes .../fontawesome/fonts/fontawesome-webfont.svg | 655 + .../fontawesome/fonts/fontawesome-webfont.ttf | Bin 0 -> 142072 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 83588 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 66624 bytes static/vendors/fontawesome/less/animated.less | 34 + .../fontawesome/less/bordered-pulled.less | 25 + static/vendors/fontawesome/less/core.less | 12 + .../vendors/fontawesome/less/fixed-width.less | 6 + .../fontawesome/less/font-awesome.less | 17 + static/vendors/fontawesome/less/icons.less | 697 + static/vendors/fontawesome/less/larger.less | 13 + static/vendors/fontawesome/less/list.less | 19 + static/vendors/fontawesome/less/mixins.less | 26 + static/vendors/fontawesome/less/path.less | 15 + .../fontawesome/less/rotated-flipped.less | 20 + static/vendors/fontawesome/less/stacked.less | 20 + .../vendors/fontawesome/less/variables.less | 708 + .../vendors/fontawesome/scss/_animated.scss | 34 + .../fontawesome/scss/_bordered-pulled.scss | 25 + static/vendors/fontawesome/scss/_core.scss | 12 + .../fontawesome/scss/_fixed-width.scss | 6 + static/vendors/fontawesome/scss/_icons.scss | 697 + static/vendors/fontawesome/scss/_larger.scss | 13 + static/vendors/fontawesome/scss/_list.scss | 19 + static/vendors/fontawesome/scss/_mixins.scss | 26 + static/vendors/fontawesome/scss/_path.scss | 15 + .../fontawesome/scss/_rotated-flipped.scss | 20 + static/vendors/fontawesome/scss/_stacked.scss | 20 + .../vendors/fontawesome/scss/_variables.scss | 708 + .../fontawesome/scss/font-awesome.scss | 17 + static/vendors/fullcalendar/.bower.json | 60 + static/vendors/fullcalendar/CHANGELOG.md | 964 + static/vendors/fullcalendar/CONTRIBUTING.md | 128 + static/vendors/fullcalendar/LICENSE.txt | 20 + static/vendors/fullcalendar/README.md | 10 + static/vendors/fullcalendar/bower.json | 51 + .../fullcalendar/dist/fullcalendar.css | 1406 + .../vendors/fullcalendar/dist/fullcalendar.js | 14206 +++ .../fullcalendar/dist/fullcalendar.min.css | 5 + .../fullcalendar/dist/fullcalendar.min.js | 10 + .../fullcalendar/dist/fullcalendar.print.css | 208 + static/vendors/fullcalendar/dist/gcal.js | 180 + static/vendors/fullcalendar/dist/lang-all.js | 4 + .../vendors/fullcalendar/dist/lang/ar-ma.js | 1 + .../vendors/fullcalendar/dist/lang/ar-sa.js | 1 + .../vendors/fullcalendar/dist/lang/ar-tn.js | 1 + static/vendors/fullcalendar/dist/lang/ar.js | 1 + static/vendors/fullcalendar/dist/lang/bg.js | 1 + static/vendors/fullcalendar/dist/lang/ca.js | 1 + static/vendors/fullcalendar/dist/lang/cs.js | 1 + static/vendors/fullcalendar/dist/lang/da.js | 1 + .../vendors/fullcalendar/dist/lang/de-at.js | 1 + static/vendors/fullcalendar/dist/lang/de.js | 1 + static/vendors/fullcalendar/dist/lang/el.js | 1 + .../vendors/fullcalendar/dist/lang/en-au.js | 1 + .../vendors/fullcalendar/dist/lang/en-ca.js | 1 + .../vendors/fullcalendar/dist/lang/en-gb.js | 1 + .../vendors/fullcalendar/dist/lang/en-ie.js | 1 + .../vendors/fullcalendar/dist/lang/en-nz.js | 1 + static/vendors/fullcalendar/dist/lang/es.js | 1 + static/vendors/fullcalendar/dist/lang/fa.js | 1 + static/vendors/fullcalendar/dist/lang/fi.js | 1 + .../vendors/fullcalendar/dist/lang/fr-ca.js | 1 + .../vendors/fullcalendar/dist/lang/fr-ch.js | 1 + static/vendors/fullcalendar/dist/lang/fr.js | 1 + static/vendors/fullcalendar/dist/lang/he.js | 1 + static/vendors/fullcalendar/dist/lang/hi.js | 1 + static/vendors/fullcalendar/dist/lang/hr.js | 1 + static/vendors/fullcalendar/dist/lang/hu.js | 1 + static/vendors/fullcalendar/dist/lang/id.js | 1 + static/vendors/fullcalendar/dist/lang/is.js | 1 + static/vendors/fullcalendar/dist/lang/it.js | 1 + static/vendors/fullcalendar/dist/lang/ja.js | 1 + static/vendors/fullcalendar/dist/lang/ko.js | 1 + static/vendors/fullcalendar/dist/lang/lt.js | 1 + static/vendors/fullcalendar/dist/lang/lv.js | 1 + static/vendors/fullcalendar/dist/lang/nb.js | 1 + static/vendors/fullcalendar/dist/lang/nl.js | 1 + static/vendors/fullcalendar/dist/lang/pl.js | 1 + .../vendors/fullcalendar/dist/lang/pt-br.js | 1 + static/vendors/fullcalendar/dist/lang/pt.js | 1 + static/vendors/fullcalendar/dist/lang/ro.js | 1 + static/vendors/fullcalendar/dist/lang/ru.js | 1 + static/vendors/fullcalendar/dist/lang/sk.js | 1 + static/vendors/fullcalendar/dist/lang/sl.js | 1 + .../vendors/fullcalendar/dist/lang/sr-cyrl.js | 1 + static/vendors/fullcalendar/dist/lang/sr.js | 1 + static/vendors/fullcalendar/dist/lang/sv.js | 1 + static/vendors/fullcalendar/dist/lang/th.js | 1 + static/vendors/fullcalendar/dist/lang/tr.js | 1 + static/vendors/fullcalendar/dist/lang/uk.js | 1 + static/vendors/fullcalendar/dist/lang/vi.js | 1 + .../vendors/fullcalendar/dist/lang/zh-cn.js | 1 + .../vendors/fullcalendar/dist/lang/zh-tw.js | 1 + static/vendors/gauge.js/.bower.json | 24 + static/vendors/gauge.js/README.md | 35 + static/vendors/gauge.js/assets/arrow.gif | Bin 0 -> 66 bytes static/vendors/gauge.js/assets/bg.png | Bin 0 -> 17908 bytes .../vendors/gauge.js/assets/bootstrap.min.css | 9 + static/vendors/gauge.js/assets/browsers.png | Bin 0 -> 34450 bytes static/vendors/gauge.js/assets/cross.gif | Bin 0 -> 83 bytes static/vendors/gauge.js/assets/crosshair.gif | Bin 0 -> 13167 bytes .../gauge.js/assets/excanvas.compiled.js | 35 + .../assets/fd-slider/fd-slider-tooltip.css | 117 + .../gauge.js/assets/fd-slider/fd-slider.css | 143 + .../gauge.js/assets/fd-slider/fd-slider.js | 1212 + static/vendors/gauge.js/assets/github.gif | Bin 0 -> 1298 bytes static/vendors/gauge.js/assets/hs.png | Bin 0 -> 2684 bytes static/vendors/gauge.js/assets/hv.png | Bin 0 -> 2865 bytes static/vendors/gauge.js/assets/jscolor.js | 935 + static/vendors/gauge.js/assets/main.css | 258 + static/vendors/gauge.js/assets/prettify.css | 49 + static/vendors/gauge.js/assets/prettify.js | 28 + static/vendors/gauge.js/assets/preview.jpg | Bin 0 -> 26488 bytes static/vendors/gauge.js/assets/ribbon.png | Bin 0 -> 7660 bytes static/vendors/gauge.js/assets/strike.png | Bin 0 -> 8343 bytes static/vendors/gauge.js/bower.json | 17 + static/vendors/gauge.js/dist/gauge.coffee | 524 + static/vendors/gauge.js/dist/gauge.js | 773 + static/vendors/gauge.js/dist/gauge.min.js | 61 + static/vendors/gauge.js/favicon.ico | Bin 0 -> 1439 bytes static/vendors/gauge.js/index.html | 370 + .../vendors/google-code-prettify/.bower.json | 26 + .../vendors/google-code-prettify/CHANGES.html | 172 + static/vendors/google-code-prettify/COPYING | 191 + .../google-code-prettify/README-zh-Hans.html | 143 + .../vendors/google-code-prettify/README.html | 233 + static/vendors/google-code-prettify/README.md | 54 + .../google-code-prettify/bin/prettify.min.css | 1 + .../google-code-prettify/bin/prettify.min.js | 30 + .../bin/run_prettify.min.js | 34 + .../vendors/google-code-prettify/bower.json | 16 + .../google-code-prettify/examples/quine.html | 55 + .../google-code-prettify/src/lang-apollo.js | 51 + .../google-code-prettify/src/lang-basic.js | 32 + .../google-code-prettify/src/lang-clj.js | 64 + .../google-code-prettify/src/lang-css.js | 159 + .../google-code-prettify/src/lang-dart.js | 88 + .../google-code-prettify/src/lang-erlang.js | 92 + .../google-code-prettify/src/lang-go.js | 58 + .../google-code-prettify/src/lang-hs.js | 101 + .../google-code-prettify/src/lang-lisp.js | 94 + .../google-code-prettify/src/lang-llvm.js | 61 + .../google-code-prettify/src/lang-lua.js | 59 + .../google-code-prettify/src/lang-matlab.js | 180 + .../google-code-prettify/src/lang-ml.js | 56 + .../google-code-prettify/src/lang-mumps.js | 139 + .../google-code-prettify/src/lang-n.js | 65 + .../google-code-prettify/src/lang-pascal.js | 32 + .../google-code-prettify/src/lang-proto.js | 35 + .../google-code-prettify/src/lang-r.js | 57 + .../google-code-prettify/src/lang-rd.js | 47 + .../google-code-prettify/src/lang-scala.js | 54 + .../google-code-prettify/src/lang-sql.js | 58 + .../google-code-prettify/src/lang-tcl.js | 62 + .../google-code-prettify/src/lang-tex.js | 46 + .../google-code-prettify/src/lang-vb.js | 66 + .../google-code-prettify/src/lang-vhdl.js | 34 + .../google-code-prettify/src/lang-wiki.js | 53 + .../google-code-prettify/src/lang-xq.js | 67 + .../google-code-prettify/src/lang-yaml.js | 27 + .../google-code-prettify/src/prettify.css | 52 + .../google-code-prettify/src/prettify.js | 1655 + .../google-code-prettify/src/run_prettify.js | 1905 + .../google-code-prettify/styles/demo.html | 61 + .../google-code-prettify/styles/desert.css | 34 + .../google-code-prettify/styles/doxy.css | 64 + .../google-code-prettify/styles/index.html | 89 + .../styles/sons-of-obsidian.css | 118 + .../google-code-prettify/styles/sunburst.css | 51 + static/vendors/iCheck/.bower.json | 51 + static/vendors/iCheck/bower.json | 42 + static/vendors/iCheck/icheck.jquery.json | 48 + static/vendors/iCheck/icheck.js | 509 + static/vendors/iCheck/icheck.min.js | 11 + static/vendors/iCheck/skins/all.css | 61 + static/vendors/iCheck/skins/flat/_all.css | 530 + static/vendors/iCheck/skins/flat/aero.css | 53 + static/vendors/iCheck/skins/flat/aero.png | Bin 0 -> 1520 bytes static/vendors/iCheck/skins/flat/aero@2x.png | Bin 0 -> 3218 bytes static/vendors/iCheck/skins/flat/blue.css | 53 + static/vendors/iCheck/skins/flat/blue.png | Bin 0 -> 1518 bytes static/vendors/iCheck/skins/flat/blue@2x.png | Bin 0 -> 3217 bytes static/vendors/iCheck/skins/flat/flat.css | 53 + static/vendors/iCheck/skins/flat/flat.png | Bin 0 -> 1515 bytes static/vendors/iCheck/skins/flat/flat@2x.png | Bin 0 -> 3217 bytes static/vendors/iCheck/skins/flat/green.css | 53 + static/vendors/iCheck/skins/flat/green.png | Bin 0 -> 1444 bytes static/vendors/iCheck/skins/flat/green@2x.png | Bin 0 -> 3117 bytes static/vendors/iCheck/skins/flat/grey.css | 53 + static/vendors/iCheck/skins/flat/grey.png | Bin 0 -> 1516 bytes static/vendors/iCheck/skins/flat/grey@2x.png | Bin 0 -> 3217 bytes static/vendors/iCheck/skins/flat/orange.css | 53 + static/vendors/iCheck/skins/flat/orange.png | Bin 0 -> 1518 bytes .../vendors/iCheck/skins/flat/orange@2x.png | Bin 0 -> 3275 bytes static/vendors/iCheck/skins/flat/pink.css | 53 + static/vendors/iCheck/skins/flat/pink.png | Bin 0 -> 1522 bytes static/vendors/iCheck/skins/flat/pink@2x.png | Bin 0 -> 3218 bytes static/vendors/iCheck/skins/flat/purple.css | 53 + static/vendors/iCheck/skins/flat/purple.png | Bin 0 -> 1519 bytes .../vendors/iCheck/skins/flat/purple@2x.png | Bin 0 -> 3218 bytes static/vendors/iCheck/skins/flat/red.css | 53 + static/vendors/iCheck/skins/flat/red.png | Bin 0 -> 1516 bytes static/vendors/iCheck/skins/flat/red@2x.png | Bin 0 -> 3276 bytes static/vendors/iCheck/skins/flat/yellow.css | 53 + static/vendors/iCheck/skins/flat/yellow.png | Bin 0 -> 1516 bytes .../vendors/iCheck/skins/flat/yellow@2x.png | Bin 0 -> 3216 bytes .../iCheck/skins/futurico/futurico.css | 53 + .../iCheck/skins/futurico/futurico.png | Bin 0 -> 1734 bytes .../iCheck/skins/futurico/futurico@2x.png | Bin 0 -> 3446 bytes static/vendors/iCheck/skins/line/_all.css | 710 + static/vendors/iCheck/skins/line/aero.css | 71 + static/vendors/iCheck/skins/line/blue.css | 71 + static/vendors/iCheck/skins/line/green.css | 71 + static/vendors/iCheck/skins/line/grey.css | 71 + static/vendors/iCheck/skins/line/line.css | 71 + static/vendors/iCheck/skins/line/line.png | Bin 0 -> 588 bytes static/vendors/iCheck/skins/line/line@2x.png | Bin 0 -> 1073 bytes static/vendors/iCheck/skins/line/orange.css | 71 + static/vendors/iCheck/skins/line/pink.css | 71 + static/vendors/iCheck/skins/line/purple.css | 71 + static/vendors/iCheck/skins/line/red.css | 71 + static/vendors/iCheck/skins/line/yellow.css | 71 + static/vendors/iCheck/skins/minimal/_all.css | 590 + static/vendors/iCheck/skins/minimal/aero.css | 59 + static/vendors/iCheck/skins/minimal/aero.png | Bin 0 -> 1151 bytes .../vendors/iCheck/skins/minimal/aero@2x.png | Bin 0 -> 1409 bytes static/vendors/iCheck/skins/minimal/blue.css | 59 + static/vendors/iCheck/skins/minimal/blue.png | Bin 0 -> 1132 bytes .../vendors/iCheck/skins/minimal/blue@2x.png | Bin 0 -> 1410 bytes static/vendors/iCheck/skins/minimal/green.css | 59 + static/vendors/iCheck/skins/minimal/green.png | Bin 0 -> 1143 bytes .../vendors/iCheck/skins/minimal/green@2x.png | Bin 0 -> 1408 bytes static/vendors/iCheck/skins/minimal/grey.css | 59 + static/vendors/iCheck/skins/minimal/grey.png | Bin 0 -> 1142 bytes .../vendors/iCheck/skins/minimal/grey@2x.png | Bin 0 -> 1407 bytes .../vendors/iCheck/skins/minimal/minimal.css | 59 + .../vendors/iCheck/skins/minimal/minimal.png | Bin 0 -> 1114 bytes .../iCheck/skins/minimal/minimal@2x.png | Bin 0 -> 1410 bytes .../vendors/iCheck/skins/minimal/orange.css | 59 + .../vendors/iCheck/skins/minimal/orange.png | Bin 0 -> 1139 bytes .../iCheck/skins/minimal/orange@2x.png | Bin 0 -> 1407 bytes static/vendors/iCheck/skins/minimal/pink.css | 59 + static/vendors/iCheck/skins/minimal/pink.png | Bin 0 -> 1150 bytes .../vendors/iCheck/skins/minimal/pink@2x.png | Bin 0 -> 1409 bytes .../vendors/iCheck/skins/minimal/purple.css | 59 + .../vendors/iCheck/skins/minimal/purple.png | Bin 0 -> 1132 bytes .../iCheck/skins/minimal/purple@2x.png | Bin 0 -> 1409 bytes static/vendors/iCheck/skins/minimal/red.css | 59 + static/vendors/iCheck/skins/minimal/red.png | Bin 0 -> 1130 bytes .../vendors/iCheck/skins/minimal/red@2x.png | Bin 0 -> 1410 bytes .../vendors/iCheck/skins/minimal/yellow.css | 59 + .../vendors/iCheck/skins/minimal/yellow.png | Bin 0 -> 1135 bytes .../iCheck/skins/minimal/yellow@2x.png | Bin 0 -> 1406 bytes .../vendors/iCheck/skins/polaris/polaris.css | 59 + .../vendors/iCheck/skins/polaris/polaris.png | Bin 0 -> 6401 bytes .../iCheck/skins/polaris/polaris@2x.png | Bin 0 -> 16760 bytes static/vendors/iCheck/skins/square/_all.css | 590 + static/vendors/iCheck/skins/square/aero.css | 59 + static/vendors/iCheck/skins/square/aero.png | Bin 0 -> 2167 bytes .../vendors/iCheck/skins/square/aero@2x.png | Bin 0 -> 4455 bytes static/vendors/iCheck/skins/square/blue.css | 59 + static/vendors/iCheck/skins/square/blue.png | Bin 0 -> 2185 bytes .../vendors/iCheck/skins/square/blue@2x.png | Bin 0 -> 4485 bytes static/vendors/iCheck/skins/square/green.css | 59 + static/vendors/iCheck/skins/square/green.png | Bin 0 -> 2193 bytes .../vendors/iCheck/skins/square/green@2x.png | Bin 0 -> 4498 bytes static/vendors/iCheck/skins/square/grey.css | 59 + static/vendors/iCheck/skins/square/grey.png | Bin 0 -> 2186 bytes .../vendors/iCheck/skins/square/grey@2x.png | Bin 0 -> 4483 bytes static/vendors/iCheck/skins/square/orange.css | 59 + static/vendors/iCheck/skins/square/orange.png | Bin 0 -> 2181 bytes .../vendors/iCheck/skins/square/orange@2x.png | Bin 0 -> 4474 bytes static/vendors/iCheck/skins/square/pink.css | 59 + static/vendors/iCheck/skins/square/pink.png | Bin 0 -> 2189 bytes .../vendors/iCheck/skins/square/pink@2x.png | Bin 0 -> 4479 bytes static/vendors/iCheck/skins/square/purple.css | 59 + static/vendors/iCheck/skins/square/purple.png | Bin 0 -> 2188 bytes .../vendors/iCheck/skins/square/purple@2x.png | Bin 0 -> 4501 bytes static/vendors/iCheck/skins/square/red.css | 59 + static/vendors/iCheck/skins/square/red.png | Bin 0 -> 2190 bytes static/vendors/iCheck/skins/square/red@2x.png | Bin 0 -> 4490 bytes static/vendors/iCheck/skins/square/square.css | 59 + static/vendors/iCheck/skins/square/square.png | Bin 0 -> 2175 bytes .../vendors/iCheck/skins/square/square@2x.png | Bin 0 -> 4478 bytes static/vendors/iCheck/skins/square/yellow.css | 59 + static/vendors/iCheck/skins/square/yellow.png | Bin 0 -> 2131 bytes .../vendors/iCheck/skins/square/yellow@2x.png | Bin 0 -> 4385 bytes static/vendors/ion.rangeSlider/.bower.json | 50 + static/vendors/ion.rangeSlider/.gitignore | 1 + static/vendors/ion.rangeSlider/.npmignore | 5 + .../_tmp/logo-ion-range-slider.png | Bin 0 -> 2370 bytes static/vendors/ion.rangeSlider/bower.json | 41 + .../ion.rangeSlider/css/ion.rangeSlider.css | 150 + .../css/ion.rangeSlider.skinFlat.css | 106 + .../css/ion.rangeSlider.skinHTML5.css | 124 + .../css/ion.rangeSlider.skinModern.css | 116 + .../css/ion.rangeSlider.skinNice.css | 102 + .../css/ion.rangeSlider.skinSimple.css | 102 + .../vendors/ion.rangeSlider/css/normalize.css | 427 + static/vendors/ion.rangeSlider/history.md | 137 + .../ion.rangeSlider/img/sprite-skin-flat.png | Bin 0 -> 304 bytes .../img/sprite-skin-modern.png | Bin 0 -> 505 bytes .../ion.rangeSlider/img/sprite-skin-nice.png | Bin 0 -> 694 bytes .../img/sprite-skin-simple.png | Bin 0 -> 358 bytes static/vendors/ion.rangeSlider/index.md | 63 + .../ion.rangeSlider/js/ion.rangeSlider.js | 2317 + .../ion.rangeSlider/js/ion.rangeSlider.min.js | 76 + static/vendors/ion.rangeSlider/package.json | 62 + static/vendors/ion.rangeSlider/readme.md | 490 + static/vendors/ion.rangeSlider/readme.ru.md | 490 + .../vendors/jQuery-Smart-Wizard/.bower.json | 14 + static/vendors/jQuery-Smart-Wizard/README.md | 553 + .../jQuery-Smart-Wizard/images/loader.gif | Bin 0 -> 4782 bytes .../js/jquery-1.4.2.min.js | 154 + .../js/jquery.smartWizard.js | 449 + .../jQuery-Smart-Wizard/styles/demo_style.css | 73 + .../styles/smart_wizard.css | 305 + .../styles/smart_wizard_vertical.css | 306 + static/vendors/jquery-knob/.bower.json | 22 + static/vendors/jquery-knob/.gitignore | 1 + static/vendors/jquery-knob/LICENSE | 20 + static/vendors/jquery-knob/README.md | 148 + static/vendors/jquery-knob/bower.json | 13 + .../jquery-knob/dist/jquery.knob.min.js | 1 + static/vendors/jquery-knob/excanvas.js | 924 + static/vendors/jquery-knob/index.html | 303 + static/vendors/jquery-knob/js/jquery.knob.js | 805 + static/vendors/jquery-knob/knob.jquery.json | 37 + static/vendors/jquery-knob/package.json | 24 + static/vendors/jquery-knob/secretplan.jpg | Bin 0 -> 33487 bytes static/vendors/jquery-mousewheel/.bower.json | 27 + static/vendors/jquery-mousewheel/ChangeLog.md | 147 + static/vendors/jquery-mousewheel/LICENSE.txt | 37 + static/vendors/jquery-mousewheel/README.md | 76 + static/vendors/jquery-mousewheel/bower.json | 17 + .../jquery-mousewheel/jquery.mousewheel.js | 221 + .../jquery.mousewheel.min.js | 8 + static/vendors/jquery-sparkline/.bower.json | 26 + static/vendors/jquery-sparkline/Changelog.txt | 324 + static/vendors/jquery-sparkline/Makefile | 41 + static/vendors/jquery-sparkline/README.md | 19 + static/vendors/jquery-sparkline/bower.json | 17 + .../jquery-sparkline/dist/jquery.sparkline.js | 3063 + .../dist/jquery.sparkline.min.js | 6 + static/vendors/jquery-sparkline/minheader.txt | 3 + .../jquery-sparkline/sparkline.jquery.json | 34 + static/vendors/jquery-sparkline/src/base.js | 415 + .../vendors/jquery-sparkline/src/chart-bar.js | 256 + .../vendors/jquery-sparkline/src/chart-box.js | 186 + .../jquery-sparkline/src/chart-bullet.js | 131 + .../jquery-sparkline/src/chart-discrete.js | 66 + .../jquery-sparkline/src/chart-line.js | 350 + .../vendors/jquery-sparkline/src/chart-pie.js | 112 + .../jquery-sparkline/src/chart-tristate.js | 98 + .../vendors/jquery-sparkline/src/defaults.js | 156 + static/vendors/jquery-sparkline/src/footer.js | 1 + static/vendors/jquery-sparkline/src/header.js | 222 + .../vendors/jquery-sparkline/src/interact.js | 247 + .../vendors/jquery-sparkline/src/rangemap.js | 39 + .../jquery-sparkline/src/simpledraw.js | 55 + static/vendors/jquery-sparkline/src/utils.js | 224 + .../jquery-sparkline/src/vcanvas-base.js | 147 + .../jquery-sparkline/src/vcanvas-canvas.js | 193 + .../jquery-sparkline/src/vcanvas-vml.js | 165 + static/vendors/jquery-sparkline/version.txt | 1 + .../vendors/jquery.easy-pie-chart/.bower.json | 29 + .../vendors/jquery.easy-pie-chart/.gitignore | 4 + .../vendors/jquery.easy-pie-chart/.travis.yml | 7 + .../jquery.easy-pie-chart/Gruntfile.js | 188 + static/vendors/jquery.easy-pie-chart/LICENSE | 21 + .../vendors/jquery.easy-pie-chart/Readme.md | 268 + .../vendors/jquery.easy-pie-chart/bower.json | 19 + .../jquery.easy-pie-chart/changelog.md | 80 + .../dist/angular.easypiechart.js | 397 + .../dist/angular.easypiechart.min.js | 9 + .../dist/easypiechart.js | 351 + .../dist/easypiechart.min.js | 9 + .../dist/jquery.easypiechart.js | 360 + .../dist/jquery.easypiechart.min.js | 9 + .../jquery.easy-pie-chart/docs/README.tmpl.md | 32 + .../jquery.easy-pie-chart/docs/bagdes.md | 4 + .../docs/browser-support.md | 9 + .../jquery.easy-pie-chart/docs/callbacks.md | 20 + .../jquery.easy-pie-chart/docs/credits.md | 1 + .../jquery.easy-pie-chart/docs/features.md | 13 + .../jquery.easy-pie-chart/docs/get-started.md | 68 + .../jquery.easy-pie-chart/docs/options.md | 59 + .../jquery.easy-pie-chart/docs/plugin-api.md | 52 + .../jquery.easy-pie-chart/docs/test.md | 1 + .../jquery.easy-pie-chart/karma.conf.coffee | 53 + .../jquery.easy-pie-chart/package.json | 51 + .../src/angular.directive.js | 48 + .../jquery.easy-pie-chart/src/easypiechart.js | 134 + .../src/jquery.plugin.js | 10 + .../src/renderer/canvas.js | 190 + .../test/polyfills/bind.js | 22 + .../test/unit/angular.directive.js | 68 + .../jquery.easy-pie-chart/test/unit/jquery.js | 61 + static/vendors/jquery.hotkeys/.bower.json | 42 + static/vendors/jquery.hotkeys/README.md | 115 + static/vendors/jquery.hotkeys/bower.json | 21 + .../vendors/jquery.hotkeys/jquery.hotkeys.js | 204 + static/vendors/jquery.inputmask/.bower.json | 45 + static/vendors/jquery.inputmask/bower.json | 27 + .../inputmask/inputmask.date.extensions.js | 515 + .../inputmask.dependencyLib.jquery.js | 12 + .../dist/inputmask/inputmask.extensions.js | 93 + .../dist/inputmask/inputmask.js | 1465 + .../inputmask/inputmask.numeric.extensions.js | 379 + .../inputmask/inputmask.phone.extensions.js | 52 + .../inputmask/inputmask.regex.extensions.js | 115 + .../dist/inputmask/jquery.inputmask.js | 60 + .../dist/jquery.inputmask.bundle.js | 2617 + .../inputmask.date.extensions.min.js | 8 + .../inputmask.dependencyLib.jquery.min.js | 8 + .../min/inputmask/inputmask.extensions.min.js | 8 + .../dist/min/inputmask/inputmask.min.js | 9 + .../inputmask.numeric.extensions.min.js | 8 + .../inputmask.phone.extensions.min.js | 8 + .../inputmask.regex.extensions.min.js | 8 + .../min/inputmask/jquery.inputmask.min.js | 8 + .../dist/min/jquery.inputmask.bundle.min.js | 10 + .../extra/bindings/inputmask.binding.js | 32 + .../inputmask.dependencyLib.jqlite.js | 227 + .../dependencyLibs/inputmask.dependencyLib.js | 424 + .../extra/phone-codes/phone-be.js | 47 + .../extra/phone-codes/phone-codes.js | 294 + .../extra/phone-codes/phone-nl.js | 189 + .../extra/phone-codes/phone-ru.js | 2405 + .../extra/phone-codes/phone-uk.js | 617 + static/vendors/jquery.tagsinput/.bower.json | 29 + static/vendors/jquery.tagsinput/Gruntfile.js | 31 + static/vendors/jquery.tagsinput/bower.json | 15 + .../dist/jquery.tagsinput.min.css | 1 + .../grunt-tasks/assets_production.js | 7 + .../grunt-tasks/options/cssmin.js | 10 + .../grunt-tasks/options/uglify.js | 10 + .../jquery.tagsinput/src/jquery.tagsinput.css | 7 + .../jquery.tagsinput/src/jquery.tagsinput.js | 390 + static/vendors/jquery/.bower.json | 25 + static/vendors/jquery/AUTHORS.txt | 278 + static/vendors/jquery/LICENSE.txt | 36 + static/vendors/jquery/README.md | 65 + static/vendors/jquery/bower.json | 14 + static/vendors/jquery/dist/jquery.js | 4 + static/vendors/jquery/dist/jquery.min.js | 4 + static/vendors/jquery/dist/jquery.min.map | 1 + .../jquery/external/sizzle/LICENSE.txt | 36 + .../jquery/external/sizzle/dist/sizzle.js | 2143 + .../jquery/external/sizzle/dist/sizzle.min.js | 3 + .../external/sizzle/dist/sizzle.min.map | 1 + static/vendors/jquery/src/.jshintrc | 29 + static/vendors/jquery/src/ajax.js | 845 + static/vendors/jquery/src/ajax/jsonp.js | 100 + static/vendors/jquery/src/ajax/load.js | 83 + static/vendors/jquery/src/ajax/parseJSON.js | 13 + static/vendors/jquery/src/ajax/parseXML.js | 27 + static/vendors/jquery/src/ajax/script.js | 68 + .../vendors/jquery/src/ajax/var/location.js | 3 + static/vendors/jquery/src/ajax/var/nonce.js | 5 + static/vendors/jquery/src/ajax/var/rquery.js | 3 + static/vendors/jquery/src/ajax/xhr.js | 167 + static/vendors/jquery/src/attributes.js | 11 + static/vendors/jquery/src/attributes/attr.js | 142 + .../vendors/jquery/src/attributes/classes.js | 177 + static/vendors/jquery/src/attributes/prop.js | 125 + .../vendors/jquery/src/attributes/support.js | 36 + static/vendors/jquery/src/attributes/val.js | 177 + static/vendors/jquery/src/callbacks.js | 232 + static/vendors/jquery/src/core.js | 494 + static/vendors/jquery/src/core/access.js | 65 + static/vendors/jquery/src/core/init.js | 134 + static/vendors/jquery/src/core/parseHTML.js | 41 + static/vendors/jquery/src/core/ready.js | 103 + .../vendors/jquery/src/core/var/rsingleTag.js | 5 + static/vendors/jquery/src/css.js | 502 + static/vendors/jquery/src/css/addGetHookIf.js | 24 + static/vendors/jquery/src/css/adjustCSS.js | 65 + static/vendors/jquery/src/css/curCSS.js | 60 + .../vendors/jquery/src/css/defaultDisplay.js | 72 + .../jquery/src/css/hiddenVisibleSelectors.js | 18 + static/vendors/jquery/src/css/showHide.js | 48 + static/vendors/jquery/src/css/support.js | 121 + .../vendors/jquery/src/css/var/cssExpand.js | 3 + .../vendors/jquery/src/css/var/getStyles.js | 15 + static/vendors/jquery/src/css/var/isHidden.js | 16 + static/vendors/jquery/src/css/var/rmargin.js | 3 + .../vendors/jquery/src/css/var/rnumnonpx.js | 5 + static/vendors/jquery/src/css/var/swap.js | 24 + static/vendors/jquery/src/data.js | 187 + static/vendors/jquery/src/data/Data.js | 200 + .../vendors/jquery/src/data/var/acceptData.js | 18 + .../vendors/jquery/src/data/var/dataPriv.js | 5 + .../vendors/jquery/src/data/var/dataUser.js | 5 + static/vendors/jquery/src/deferred.js | 158 + static/vendors/jquery/src/deprecated.js | 32 + static/vendors/jquery/src/dimensions.js | 54 + static/vendors/jquery/src/effects.js | 629 + static/vendors/jquery/src/effects/Tween.js | 121 + .../jquery/src/effects/animatedSelector.js | 13 + static/vendors/jquery/src/event.js | 711 + static/vendors/jquery/src/event/ajax.js | 20 + static/vendors/jquery/src/event/alias.js | 27 + static/vendors/jquery/src/event/focusin.js | 53 + static/vendors/jquery/src/event/support.js | 9 + static/vendors/jquery/src/event/trigger.js | 183 + static/vendors/jquery/src/exports/amd.js | 24 + static/vendors/jquery/src/exports/global.js | 26 + static/vendors/jquery/src/intro.js | 44 + static/vendors/jquery/src/jquery.js | 37 + static/vendors/jquery/src/manipulation.js | 481 + .../jquery/src/manipulation/_evalUrl.js | 20 + .../jquery/src/manipulation/buildFragment.js | 102 + .../vendors/jquery/src/manipulation/getAll.js | 21 + .../jquery/src/manipulation/setGlobalEval.js | 20 + .../jquery/src/manipulation/support.js | 33 + .../src/manipulation/var/rcheckableType.js | 3 + .../src/manipulation/var/rscriptType.js | 3 + .../jquery/src/manipulation/var/rtagName.js | 3 + .../jquery/src/manipulation/wrapMap.js | 27 + static/vendors/jquery/src/offset.js | 218 + static/vendors/jquery/src/outro.js | 2 + static/vendors/jquery/src/queue.js | 143 + static/vendors/jquery/src/queue/delay.js | 22 + static/vendors/jquery/src/selector-native.js | 211 + static/vendors/jquery/src/selector-sizzle.js | 14 + static/vendors/jquery/src/selector.js | 1 + static/vendors/jquery/src/serialize.js | 125 + static/vendors/jquery/src/traversing.js | 175 + .../jquery/src/traversing/findFilter.js | 100 + .../vendors/jquery/src/traversing/var/dir.js | 20 + .../src/traversing/var/rneedsContext.js | 6 + .../jquery/src/traversing/var/siblings.js | 15 + static/vendors/jquery/src/var/arr.js | 3 + static/vendors/jquery/src/var/class2type.js | 5 + static/vendors/jquery/src/var/concat.js | 5 + static/vendors/jquery/src/var/document.js | 3 + .../vendors/jquery/src/var/documentElement.js | 5 + static/vendors/jquery/src/var/hasOwn.js | 5 + static/vendors/jquery/src/var/indexOf.js | 5 + static/vendors/jquery/src/var/pnum.js | 3 + static/vendors/jquery/src/var/push.js | 5 + static/vendors/jquery/src/var/rcssNum.js | 7 + static/vendors/jquery/src/var/rnotwhite.js | 3 + static/vendors/jquery/src/var/slice.js | 5 + static/vendors/jquery/src/var/support.js | 5 + static/vendors/jquery/src/var/toString.js | 5 + static/vendors/jquery/src/wrap.js | 79 + static/vendors/jqvmap/.bower.json | 41 + static/vendors/jqvmap/CHANGELOG.md | 118 + static/vendors/jqvmap/CONTRIBUTING.md | 118 + static/vendors/jqvmap/LICENSE | 43 + static/vendors/jqvmap/README.md | 495 + static/vendors/jqvmap/REGIONS.md | 405 + static/vendors/jqvmap/bower.json | 32 + static/vendors/jqvmap/create/README.md | 207 + .../jqvmap/create/config/continent.json | 64 + .../jqvmap/create/config/new-york.json | 16 + .../vendors/jqvmap/create/config/syria.json | 16 + static/vendors/jqvmap/create/jqvmap.py | 573 + static/vendors/jqvmap/dist/jquery.vmap.js | 1281 + static/vendors/jqvmap/dist/jquery.vmap.min.js | 10 + static/vendors/jqvmap/dist/jqvmap.css | 50 + static/vendors/jqvmap/dist/jqvmap.min.css | 1 + .../maps/continents/jquery.vmap.africa.js | 2 + .../dist/maps/continents/jquery.vmap.asia.js | 2 + .../maps/continents/jquery.vmap.australia.js | 2 + .../maps/continents/jquery.vmap.europe.js | 2 + .../continents/jquery.vmap.north-america.js | 2 + .../continents/jquery.vmap.south-america.js | 2 + .../jqvmap/dist/maps/jquery.vmap.algeria.js | 2 + .../jqvmap/dist/maps/jquery.vmap.argentina.js | 1 + .../jqvmap/dist/maps/jquery.vmap.brazil.js | 2 + .../jqvmap/dist/maps/jquery.vmap.canada.js | 2 + .../jqvmap/dist/maps/jquery.vmap.europe.js | 2 + .../jqvmap/dist/maps/jquery.vmap.france.js | 1 + .../jqvmap/dist/maps/jquery.vmap.germany.js | 2 + .../jqvmap/dist/maps/jquery.vmap.greece.js | 1 + .../jqvmap/dist/maps/jquery.vmap.iran.js | 6 + .../jqvmap/dist/maps/jquery.vmap.iraq.js | 1 + .../jqvmap/dist/maps/jquery.vmap.russia.js | 2 + .../jqvmap/dist/maps/jquery.vmap.tunisia.js | 2 + .../jqvmap/dist/maps/jquery.vmap.turkey.js | 11 + .../jqvmap/dist/maps/jquery.vmap.usa.js | 2 + .../jqvmap/dist/maps/jquery.vmap.world.js | 2 + static/vendors/jqvmap/examples/algeria.html | 27 + static/vendors/jqvmap/examples/argentina.html | 33 + static/vendors/jqvmap/examples/brazil.html | 33 + .../vendors/jqvmap/examples/continents.html | 172 + static/vendors/jqvmap/examples/europe.html | 27 + static/vendors/jqvmap/examples/france.html | 27 + static/vendors/jqvmap/examples/germany.html | 33 + static/vendors/jqvmap/examples/greece.html | 33 + .../jqvmap/examples/images/background.png | Bin 0 -> 212 bytes .../vendors/jqvmap/examples/images/flag.png | Bin 0 -> 1724 bytes .../vendors/jqvmap/examples/images/globe.png | Bin 0 -> 3755 bytes .../jqvmap/examples/images/marker/black.png | Bin 0 -> 17085 bytes .../jqvmap/examples/images/marker/blue.png | Bin 0 -> 17352 bytes .../jqvmap/examples/images/marker/green.png | Bin 0 -> 17358 bytes .../jqvmap/examples/images/marker/grey.png | Bin 0 -> 17285 bytes .../jqvmap/examples/images/marker/orange.png | Bin 0 -> 17358 bytes .../jqvmap/examples/images/marker/purple.png | Bin 0 -> 17363 bytes .../jqvmap/examples/images/marker/red.png | Bin 0 -> 2473 bytes .../jqvmap/examples/images/marker/white.png | Bin 0 -> 17087 bytes .../jqvmap/examples/images/marker/yellow.png | Bin 0 -> 17356 bytes .../vendors/jqvmap/examples/images/thumb.jpg | Bin 0 -> 1916 bytes static/vendors/jqvmap/examples/images/tip.png | Bin 0 -> 228 bytes .../jqvmap/examples/inactive_regions.html | 62 + static/vendors/jqvmap/examples/iran.html | 44 + static/vendors/jqvmap/examples/iraq.html | 44 + .../examples/js/jquery.vmap.sampledata.js | 1 + static/vendors/jqvmap/examples/labels.html | 146 + static/vendors/jqvmap/examples/mobile.html | 59 + static/vendors/jqvmap/examples/multi.html | 29 + static/vendors/jqvmap/examples/pins.html | 236 + .../vendors/jqvmap/examples/pins_custom.html | 127 + .../vendors/jqvmap/examples/responsive.html | 45 + static/vendors/jqvmap/examples/russia.html | 33 + .../vendors/jqvmap/examples/touch_detect.html | 46 + static/vendors/jqvmap/examples/tunisia.html | 33 + static/vendors/jqvmap/examples/turkey.html | 26 + static/vendors/jqvmap/examples/usa.html | 37 + static/vendors/jqvmap/examples/world.html | 35 + static/vendors/jqvmap/grunt/bump.js | 22 + static/vendors/jqvmap/grunt/changelog.js | 14 + static/vendors/jqvmap/grunt/clean.js | 5 + static/vendors/jqvmap/grunt/concat.js | 23 + static/vendors/jqvmap/grunt/index.js | 2 + static/vendors/jqvmap/grunt/qunit.js | 3 + static/vendors/jqvmap/grunt/shell.js | 6 + static/vendors/jqvmap/grunt/uglify.js | 19 + static/vendors/jqvmap/gruntfile.js | 21 + static/vendors/jqvmap/package.json | 45 + static/vendors/jqvmap/src/Base.js | 80 + static/vendors/jqvmap/src/ColorScale.js | 18 + .../jqvmap/src/ColorScale/arrayToRgb.js | 9 + .../vendors/jqvmap/src/ColorScale/getColor.js | 41 + .../jqvmap/src/ColorScale/rgbToArray.js | 4 + .../jqvmap/src/ColorScale/setColors.js | 6 + .../vendors/jqvmap/src/ColorScale/setMax.js | 8 + .../vendors/jqvmap/src/ColorScale/setMin.js | 9 + .../src/ColorScale/setNormalizeFunction.js | 13 + .../jqvmap/src/ColorScale/vectorAdd.js | 7 + .../jqvmap/src/ColorScale/vectorLength.js | 7 + .../jqvmap/src/ColorScale/vectorMult.js | 7 + .../jqvmap/src/ColorScale/vectorSubtract.js | 7 + .../jqvmap/src/ColorScale/vectorToNum.js | 7 + static/vendors/jqvmap/src/JQVMap.js | 243 + .../jqvmap/src/JQVMap/applyTransform.js | 31 + .../jqvmap/src/JQVMap/bindZoomButtons.js | 9 + static/vendors/jqvmap/src/JQVMap/deselect.js | 18 + .../vendors/jqvmap/src/JQVMap/getCountryId.js | 3 + static/vendors/jqvmap/src/JQVMap/getPin.js | 4 + static/vendors/jqvmap/src/JQVMap/getPinId.js | 3 + static/vendors/jqvmap/src/JQVMap/getPins.js | 11 + static/vendors/jqvmap/src/JQVMap/highlight.js | 12 + .../vendors/jqvmap/src/JQVMap/isSelected.js | 3 + .../jqvmap/src/JQVMap/makeDraggable.js | 159 + static/vendors/jqvmap/src/JQVMap/placePins.js | 46 + .../vendors/jqvmap/src/JQVMap/positionPins.js | 19 + static/vendors/jqvmap/src/JQVMap/removePin.js | 4 + .../vendors/jqvmap/src/JQVMap/removePins.js | 3 + static/vendors/jqvmap/src/JQVMap/reset.js | 9 + static/vendors/jqvmap/src/JQVMap/resize.js | 13 + static/vendors/jqvmap/src/JQVMap/select.js | 18 + .../vendors/jqvmap/src/JQVMap/selectIndex.js | 9 + .../jqvmap/src/JQVMap/setBackgroundColor.js | 3 + static/vendors/jqvmap/src/JQVMap/setColors.js | 15 + .../jqvmap/src/JQVMap/setNormalizeFunction.js | 7 + static/vendors/jqvmap/src/JQVMap/setScale.js | 4 + .../jqvmap/src/JQVMap/setScaleColors.js | 7 + static/vendors/jqvmap/src/JQVMap/setValues.js | 36 + .../vendors/jqvmap/src/JQVMap/unhighlight.js | 8 + static/vendors/jqvmap/src/JQVMap/zoomIn.js | 17 + static/vendors/jqvmap/src/JQVMap/zoomOut.js | 17 + static/vendors/jqvmap/src/VectorCanvas.js | 42 + .../src/VectorCanvas/applyTransformParams.js | 8 + .../jqvmap/src/VectorCanvas/createGroup.js | 19 + .../jqvmap/src/VectorCanvas/createPath.js | 75 + .../jqvmap/src/VectorCanvas/pathSvgToVml.js | 103 + .../jqvmap/src/VectorCanvas/setSize.js | 24 + static/vendors/jszip/.bower.json | 32 + static/vendors/jszip/CHANGES.md | 77 + static/vendors/jszip/Gruntfile.js | 162 + static/vendors/jszip/LICENSE.markdown | 651 + static/vendors/jszip/README.markdown | 35 + static/vendors/jszip/_config.yml | 24 + static/vendors/jszip/bower.json | 22 + static/vendors/jszip/component.json | 16 + static/vendors/jszip/dist/jszip.js | 9344 ++ static/vendors/jszip/dist/jszip.min.js | 14 + static/vendors/jszip/docs/APPNOTE.TXT | 3217 + static/vendors/jszip/docs/ZIP spec.txt | 66 + static/vendors/jszip/docs/references.txt | 18 + .../jszip/documentation/_layouts/default.html | 158 + .../vendors/jszip/documentation/api_jszip.md | 15 + .../documentation/api_jszip/constructor.md | 23 + .../api_jszip/constructor_load.md | 22 + .../documentation/api_jszip/file_data.md | 90 + .../documentation/api_jszip/file_name.md | 46 + .../documentation/api_jszip/file_regex.md | 49 + .../jszip/documentation/api_jszip/filter.md | 43 + .../documentation/api_jszip/folder_data.md | 34 + .../documentation/api_jszip/folder_regex.md | 40 + .../jszip/documentation/api_jszip/generate.md | 161 + .../jszip/documentation/api_jszip/load.md | 105 + .../jszip/documentation/api_jszip/remove.md | 37 + .../jszip/documentation/api_jszip/support.md | 16 + .../jszip/documentation/api_zipobject.md | 37 + .../jszip/documentation/contributing.md | 62 + .../vendors/jszip/documentation/css/main.css | 24 + .../jszip/documentation/css/pygments.css | 64 + .../vendors/jszip/documentation/examples.md | 115 + .../examples/download-zip-file.html | 59 + .../documentation/examples/downloader.html | 58 + .../documentation/examples/downloader.js | 89 + .../examples/get-binary-files-ajax.html | 43 + .../examples/read-local-file-api.html | 87 + static/vendors/jszip/documentation/faq.md | 19 + .../jszip/documentation/howto/read_zip.md | 152 + .../jszip/documentation/howto/write_zip.md | 106 + .../jszip/documentation/limitations.md | 88 + .../jszip/documentation/upgrade_guide.md | 57 + static/vendors/jszip/index.html | 169 + static/vendors/jszip/lib/arrayReader.js | 51 + static/vendors/jszip/lib/base64.js | 70 + static/vendors/jszip/lib/compressedObject.js | 28 + static/vendors/jszip/lib/compressions.js | 13 + static/vendors/jszip/lib/crc32.js | 102 + static/vendors/jszip/lib/dataReader.js | 108 + static/vendors/jszip/lib/defaults.js | 11 + .../jszip/lib/deprecatedPublicUtils.js | 105 + static/vendors/jszip/lib/flate.js | 16 + static/vendors/jszip/lib/index.js | 79 + static/vendors/jszip/lib/license_header.js | 11 + static/vendors/jszip/lib/load.js | 39 + static/vendors/jszip/lib/nodeBuffer.js | 7 + static/vendors/jszip/lib/nodeBufferReader.js | 21 + static/vendors/jszip/lib/object.js | 870 + static/vendors/jszip/lib/signature.js | 7 + static/vendors/jszip/lib/stringReader.js | 37 + static/vendors/jszip/lib/stringWriter.js | 30 + static/vendors/jszip/lib/support.js | 34 + static/vendors/jszip/lib/uint8ArrayReader.js | 26 + static/vendors/jszip/lib/uint8ArrayWriter.js | 36 + static/vendors/jszip/lib/utf8.js | 207 + static/vendors/jszip/lib/utils.js | 344 + static/vendors/jszip/lib/zipEntries.js | 280 + static/vendors/jszip/lib/zipEntry.js | 319 + static/vendors/jszip/package.json | 53 + static/vendors/jszip/vendor/FileSaver.js | 247 + .../.bower.json | 54 + .../malihu-custom-scrollbar-plugin/bower.json | 44 + .../jquery.mCustomScrollbar.concat.min.js | 6 + .../jquery.mCustomScrollbar.css | 1267 + .../jquery.mCustomScrollbar.js | 2425 + .../jquery.mCustomScrollbar.min.css | 1 + .../mCSB_buttons.png | Bin 0 -> 2998 bytes .../mjolnic-bootstrap-colorpicker/.bower.json | 32 + .../CONTRIBUTING.md | 39 + .../mjolnic-bootstrap-colorpicker/LICENSE | 13 + .../mjolnic-bootstrap-colorpicker/README.md | 24 + .../mjolnic-bootstrap-colorpicker/bower.json | 21 + .../dist/css/bootstrap-colorpicker.css | 222 + .../dist/css/bootstrap-colorpicker.css.map | 1 + .../dist/css/bootstrap-colorpicker.min.css | 10 + .../css/bootstrap-colorpicker.min.css.map | 1 + .../alpha-horizontal.png | Bin 0 -> 557 bytes .../dist/img/bootstrap-colorpicker/alpha.png | Bin 0 -> 488 bytes .../bootstrap-colorpicker/hue-horizontal.png | Bin 0 -> 478 bytes .../dist/img/bootstrap-colorpicker/hue.png | Bin 0 -> 504 bytes .../img/bootstrap-colorpicker/saturation.png | Bin 0 -> 4143 bytes .../dist/js/bootstrap-colorpicker.js | 1106 + .../dist/js/bootstrap-colorpicker.min.js | 5 + .../docs/assets/main.css | 61 + .../docs/helpers/code/index.js | 23 + .../docs/includes/api.hbs | 254 + .../docs/includes/example.hbs | 13 + .../docs/includes/examples.hbs | 23 + .../docs/includes/examples/01_basic.hbs | 6 + .../docs/includes/examples/02_component.hbs | 9 + .../examples/03_component_options.hbs | 12 + .../docs/includes/examples/04_events.hbs | 8 + .../docs/includes/examples/05_transparent.hbs | 9 + .../docs/includes/examples/06_horizontal.hbs | 9 + .../docs/includes/examples/07_inline.hbs | 15 + .../docs/includes/examples/08_palette.hbs | 15 + .../docs/includes/examples/09_size.hbs | 37 + .../docs/includes/examples/10_disabled.hbs | 23 + .../docs/includes/examples/11_modal.hbs | 20 + .../docs/includes/social.hbs | 43 + .../docs/layout.hbs | 23 + .../docs/pages/index.hbs | 24 + .../mjolnic-bootstrap-colorpicker/serve.js | 29 + .../src/js/colorpicker-color.js | 531 + .../src/js/colorpicker-component.js | 487 + .../src/js/colorpicker-defaults.js | 62 + .../src/js/colorpicker-plugin-wrapper.js | 26 + .../src/less/colorpicker.less | 261 + static/vendors/mocha/.bower.json | 30 + static/vendors/mocha/History.md | 654 + static/vendors/mocha/LICENSE | 22 + static/vendors/mocha/Readme.md | 172 + static/vendors/mocha/bower.json | 20 + static/vendors/mocha/media/logo.svg | 8 + static/vendors/mocha/mocha.css | 270 + static/vendors/mocha/mocha.js | 5812 ++ static/vendors/moment/.bower.json | 33 + static/vendors/moment/CHANGELOG.md | 535 + static/vendors/moment/LICENSE | 22 + static/vendors/moment/README.md | 58 + static/vendors/moment/bower.json | 22 + static/vendors/moment/locale/af.js | 73 + static/vendors/moment/locale/ar-ma.js | 60 + static/vendors/moment/locale/ar-sa.js | 104 + static/vendors/moment/locale/ar-tn.js | 58 + static/vendors/moment/locale/ar.js | 137 + static/vendors/moment/locale/az.js | 105 + static/vendors/moment/locale/be.js | 134 + static/vendors/moment/locale/bg.js | 90 + static/vendors/moment/locale/bn.js | 119 + static/vendors/moment/locale/bo.js | 119 + static/vendors/moment/locale/br.js | 108 + static/vendors/moment/locale/bs.js | 143 + static/vendors/moment/locale/ca.js | 81 + static/vendors/moment/locale/cs.js | 171 + static/vendors/moment/locale/cv.js | 63 + static/vendors/moment/locale/cy.js | 80 + static/vendors/moment/locale/da.js | 60 + static/vendors/moment/locale/de-at.js | 79 + static/vendors/moment/locale/de.js | 78 + static/vendors/moment/locale/dv.js | 99 + static/vendors/moment/locale/el.js | 98 + static/vendors/moment/locale/en-au.js | 66 + static/vendors/moment/locale/en-ca.js | 63 + static/vendors/moment/locale/en-gb.js | 67 + static/vendors/moment/locale/en-ie.js | 67 + static/vendors/moment/locale/en-nz.js | 66 + static/vendors/moment/locale/eo.js | 73 + static/vendors/moment/locale/es.js | 81 + static/vendors/moment/locale/et.js | 80 + static/vendors/moment/locale/eu.js | 66 + static/vendors/moment/locale/fa.js | 106 + static/vendors/moment/locale/fi.js | 107 + static/vendors/moment/locale/fo.js | 60 + static/vendors/moment/locale/fr-ca.js | 60 + static/vendors/moment/locale/fr-ch.js | 64 + static/vendors/moment/locale/fr.js | 64 + static/vendors/moment/locale/fy.js | 73 + static/vendors/moment/locale/gd.js | 76 + static/vendors/moment/locale/gl.js | 77 + static/vendors/moment/locale/he.js | 99 + static/vendors/moment/locale/hi.js | 124 + static/vendors/moment/locale/hr.js | 145 + static/vendors/moment/locale/hu.js | 109 + static/vendors/moment/locale/hy-am.js | 95 + static/vendors/moment/locale/id.js | 83 + static/vendors/moment/locale/is.js | 127 + static/vendors/moment/locale/it.js | 70 + static/vendors/moment/locale/ja.js | 76 + static/vendors/moment/locale/jv.js | 83 + static/vendors/moment/locale/ka.js | 89 + static/vendors/moment/locale/kk.js | 87 + static/vendors/moment/locale/km.js | 58 + static/vendors/moment/locale/ko.js | 68 + static/vendors/moment/locale/ky.js | 88 + static/vendors/moment/locale/lb.js | 136 + static/vendors/moment/locale/lo.js | 70 + static/vendors/moment/locale/lt.js | 116 + static/vendors/moment/locale/lv.js | 97 + static/vendors/moment/locale/me.js | 111 + static/vendors/moment/locale/mk.js | 90 + static/vendors/moment/locale/ml.js | 81 + static/vendors/moment/locale/mr.js | 159 + static/vendors/moment/locale/ms-my.js | 82 + static/vendors/moment/locale/ms.js | 82 + static/vendors/moment/locale/my.js | 93 + static/vendors/moment/locale/nb.js | 63 + static/vendors/moment/locale/ne.js | 123 + static/vendors/moment/locale/nl.js | 73 + static/vendors/moment/locale/nn.js | 60 + static/vendors/moment/locale/pa-in.js | 124 + static/vendors/moment/locale/pl.js | 105 + static/vendors/moment/locale/pt-br.js | 61 + static/vendors/moment/locale/pt.js | 65 + static/vendors/moment/locale/ro.js | 75 + static/vendors/moment/locale/ru.js | 175 + static/vendors/moment/locale/se.js | 61 + static/vendors/moment/locale/si.js | 71 + static/vendors/moment/locale/sk.js | 150 + static/vendors/moment/locale/sl.js | 162 + static/vendors/moment/locale/sq.js | 70 + static/vendors/moment/locale/sr-cyrl.js | 110 + static/vendors/moment/locale/sr.js | 110 + static/vendors/moment/locale/ss.js | 89 + static/vendors/moment/locale/sv.js | 69 + static/vendors/moment/locale/sw.js | 59 + static/vendors/moment/locale/ta.js | 129 + static/vendors/moment/locale/te.js | 89 + static/vendors/moment/locale/th.js | 67 + static/vendors/moment/locale/tl-ph.js | 62 + static/vendors/moment/locale/tlh.js | 120 + static/vendors/moment/locale/tr.js | 90 + static/vendors/moment/locale/tzl.js | 91 + static/vendors/moment/locale/tzm-latn.js | 58 + static/vendors/moment/locale/tzm.js | 58 + static/vendors/moment/locale/uk.js | 146 + static/vendors/moment/locale/uz.js | 58 + static/vendors/moment/locale/vi.js | 79 + static/vendors/moment/locale/x-pseudo.js | 68 + static/vendors/moment/locale/zh-cn.js | 127 + static/vendors/moment/locale/zh-tw.js | 101 + static/vendors/moment/min/locales.js | 8021 ++ static/vendors/moment/min/locales.min.js | 73 + .../vendors/moment/min/moment-with-locales.js | 12051 +++ .../moment/min/moment-with-locales.min.js | 76 + static/vendors/moment/min/moment.min.js | 7 + static/vendors/moment/min/tests.js | 72632 ++++++++++++++++ static/vendors/moment/moment.d.ts | 512 + static/vendors/moment/moment.js | 4040 + .../moment/src/lib/create/check-overflow.js | 34 + .../moment/src/lib/create/date-from-array.js | 21 + .../moment/src/lib/create/from-anything.js | 101 + .../moment/src/lib/create/from-array.js | 136 + .../moment/src/lib/create/from-object.js | 16 + .../src/lib/create/from-string-and-array.js | 50 + .../src/lib/create/from-string-and-format.js | 107 + .../moment/src/lib/create/from-string.js | 120 + static/vendors/moment/src/lib/create/local.js | 5 + .../moment/src/lib/create/parsing-flags.js | 24 + static/vendors/moment/src/lib/create/utc.js | 5 + static/vendors/moment/src/lib/create/valid.js | 42 + static/vendors/moment/src/lib/duration/abs.js | 18 + .../moment/src/lib/duration/add-subtract.js | 21 + static/vendors/moment/src/lib/duration/as.js | 55 + .../vendors/moment/src/lib/duration/bubble.js | 61 + .../moment/src/lib/duration/constructor.js | 41 + .../vendors/moment/src/lib/duration/create.js | 118 + .../moment/src/lib/duration/duration.js | 12 + static/vendors/moment/src/lib/duration/get.js | 25 + .../moment/src/lib/duration/humanize.js | 64 + .../moment/src/lib/duration/iso-string.js | 52 + .../moment/src/lib/duration/prototype.js | 48 + .../vendors/moment/src/lib/format/format.js | 91 + .../vendors/moment/src/lib/locale/calendar.js | 15 + .../moment/src/lib/locale/constructor.js | 5 + static/vendors/moment/src/lib/locale/en.js | 15 + .../vendors/moment/src/lib/locale/formats.js | 23 + .../vendors/moment/src/lib/locale/invalid.js | 5 + static/vendors/moment/src/lib/locale/lists.js | 92 + .../vendors/moment/src/lib/locale/locale.js | 39 + .../vendors/moment/src/lib/locale/locales.js | 164 + .../vendors/moment/src/lib/locale/ordinal.js | 7 + .../moment/src/lib/locale/pre-post-format.js | 3 + .../moment/src/lib/locale/prototype.js | 87 + .../vendors/moment/src/lib/locale/relative.js | 29 + static/vendors/moment/src/lib/locale/set.js | 38 + .../moment/src/lib/moment/add-subtract.js | 54 + .../vendors/moment/src/lib/moment/calendar.js | 21 + static/vendors/moment/src/lib/moment/clone.js | 5 + .../vendors/moment/src/lib/moment/compare.js | 59 + .../moment/src/lib/moment/constructor.js | 74 + .../moment/src/lib/moment/creation-data.js | 9 + static/vendors/moment/src/lib/moment/diff.js | 62 + .../vendors/moment/src/lib/moment/format.js | 32 + static/vendors/moment/src/lib/moment/from.js | 17 + .../vendors/moment/src/lib/moment/get-set.js | 43 + .../vendors/moment/src/lib/moment/locale.js | 34 + .../vendors/moment/src/lib/moment/min-max.js | 63 + .../vendors/moment/src/lib/moment/moment.js | 28 + static/vendors/moment/src/lib/moment/now.js | 3 + .../moment/src/lib/moment/prototype.js | 149 + .../moment/src/lib/moment/start-end-of.js | 59 + .../vendors/moment/src/lib/moment/to-type.js | 34 + static/vendors/moment/src/lib/moment/to.js | 17 + static/vendors/moment/src/lib/moment/valid.js | 15 + static/vendors/moment/src/lib/parse/regex.js | 54 + static/vendors/moment/src/lib/parse/token.js | 32 + .../vendors/moment/src/lib/units/aliases.js | 29 + .../vendors/moment/src/lib/units/constants.js | 9 + .../moment/src/lib/units/day-of-month.js | 32 + .../moment/src/lib/units/day-of-week.js | 331 + .../moment/src/lib/units/day-of-year.js | 32 + static/vendors/moment/src/lib/units/hour.js | 134 + .../moment/src/lib/units/millisecond.js | 64 + static/vendors/moment/src/lib/units/minute.js | 24 + static/vendors/moment/src/lib/units/month.js | 261 + static/vendors/moment/src/lib/units/offset.js | 219 + .../vendors/moment/src/lib/units/quarter.js | 27 + static/vendors/moment/src/lib/units/second.js | 24 + .../vendors/moment/src/lib/units/timestamp.js | 20 + .../vendors/moment/src/lib/units/timezone.js | 16 + static/vendors/moment/src/lib/units/units.js | 20 + .../src/lib/units/week-calendar-utils.js | 65 + .../vendors/moment/src/lib/units/week-year.js | 100 + static/vendors/moment/src/lib/units/week.js | 61 + static/vendors/moment/src/lib/units/year.js | 70 + .../vendors/moment/src/lib/utils/abs-ceil.js | 7 + .../vendors/moment/src/lib/utils/abs-floor.js | 7 + .../vendors/moment/src/lib/utils/abs-round.js | 7 + .../moment/src/lib/utils/compare-arrays.js | 16 + .../vendors/moment/src/lib/utils/defaults.js | 10 + .../vendors/moment/src/lib/utils/deprecate.js | 40 + static/vendors/moment/src/lib/utils/extend.js | 19 + .../moment/src/lib/utils/has-own-prop.js | 3 + static/vendors/moment/src/lib/utils/hooks.js | 13 + .../vendors/moment/src/lib/utils/index-of.js | 18 + .../vendors/moment/src/lib/utils/is-array.js | 3 + .../vendors/moment/src/lib/utils/is-date.js | 3 + .../moment/src/lib/utils/is-function.js | 3 + .../vendors/moment/src/lib/utils/is-object.js | 3 + .../moment/src/lib/utils/is-undefined.js | 3 + static/vendors/moment/src/lib/utils/keys.js | 19 + static/vendors/moment/src/lib/utils/map.js | 7 + static/vendors/moment/src/lib/utils/some.js | 19 + static/vendors/moment/src/lib/utils/to-int.js | 12 + .../vendors/moment/src/lib/utils/zero-fill.js | 7 + static/vendors/moment/src/locale/af.js | 63 + static/vendors/moment/src/locale/ar-ma.js | 51 + static/vendors/moment/src/locale/ar-sa.js | 95 + static/vendors/moment/src/locale/ar-tn.js | 49 + static/vendors/moment/src/locale/ar.js | 128 + static/vendors/moment/src/locale/az.js | 96 + static/vendors/moment/src/locale/be.js | 125 + static/vendors/moment/src/locale/bg.js | 81 + static/vendors/moment/src/locale/bn.js | 110 + static/vendors/moment/src/locale/bo.js | 110 + static/vendors/moment/src/locale/br.js | 99 + static/vendors/moment/src/locale/bs.js | 134 + static/vendors/moment/src/locale/ca.js | 72 + static/vendors/moment/src/locale/cs.js | 162 + static/vendors/moment/src/locale/cv.js | 53 + static/vendors/moment/src/locale/cy.js | 71 + static/vendors/moment/src/locale/da.js | 51 + static/vendors/moment/src/locale/de-at.js | 69 + static/vendors/moment/src/locale/de.js | 68 + static/vendors/moment/src/locale/dv.js | 89 + static/vendors/moment/src/locale/el.js | 86 + static/vendors/moment/src/locale/en-au.js | 57 + static/vendors/moment/src/locale/en-ca.js | 53 + static/vendors/moment/src/locale/en-gb.js | 58 + static/vendors/moment/src/locale/en-ie.js | 58 + static/vendors/moment/src/locale/en-nz.js | 56 + static/vendors/moment/src/locale/eo.js | 64 + static/vendors/moment/src/locale/es.js | 72 + static/vendors/moment/src/locale/et.js | 71 + static/vendors/moment/src/locale/eu.js | 57 + static/vendors/moment/src/locale/fa.js | 97 + static/vendors/moment/src/locale/fi.js | 98 + static/vendors/moment/src/locale/fo.js | 51 + static/vendors/moment/src/locale/fr-ca.js | 51 + static/vendors/moment/src/locale/fr-ch.js | 55 + static/vendors/moment/src/locale/fr.js | 55 + static/vendors/moment/src/locale/fy.js | 64 + static/vendors/moment/src/locale/gd.js | 67 + static/vendors/moment/src/locale/gl.js | 68 + static/vendors/moment/src/locale/he.js | 90 + static/vendors/moment/src/locale/hi.js | 115 + static/vendors/moment/src/locale/hr.js | 136 + static/vendors/moment/src/locale/hu.js | 100 + static/vendors/moment/src/locale/hy-am.js | 86 + static/vendors/moment/src/locale/id.js | 74 + static/vendors/moment/src/locale/is.js | 118 + static/vendors/moment/src/locale/it.js | 61 + static/vendors/moment/src/locale/ja.js | 67 + static/vendors/moment/src/locale/jv.js | 73 + static/vendors/moment/src/locale/ka.js | 80 + static/vendors/moment/src/locale/kk.js | 77 + static/vendors/moment/src/locale/km.js | 49 + static/vendors/moment/src/locale/ko.js | 59 + static/vendors/moment/src/locale/ky.js | 78 + static/vendors/moment/src/locale/lb.js | 127 + static/vendors/moment/src/locale/lo.js | 61 + static/vendors/moment/src/locale/lt.js | 107 + static/vendors/moment/src/locale/lv.js | 88 + static/vendors/moment/src/locale/me.js | 101 + static/vendors/moment/src/locale/mk.js | 81 + static/vendors/moment/src/locale/ml.js | 72 + static/vendors/moment/src/locale/mr.js | 150 + static/vendors/moment/src/locale/ms-my.js | 73 + static/vendors/moment/src/locale/ms.js | 73 + static/vendors/moment/src/locale/my.js | 84 + static/vendors/moment/src/locale/nb.js | 54 + static/vendors/moment/src/locale/ne.js | 114 + static/vendors/moment/src/locale/nl.js | 64 + static/vendors/moment/src/locale/nn.js | 51 + static/vendors/moment/src/locale/pa-in.js | 115 + static/vendors/moment/src/locale/pl.js | 95 + static/vendors/moment/src/locale/pt-br.js | 52 + static/vendors/moment/src/locale/pt.js | 56 + static/vendors/moment/src/locale/ro.js | 66 + static/vendors/moment/src/locale/ru.js | 165 + static/vendors/moment/src/locale/se.js | 51 + static/vendors/moment/src/locale/si.js | 61 + static/vendors/moment/src/locale/sk.js | 141 + static/vendors/moment/src/locale/sl.js | 152 + static/vendors/moment/src/locale/sq.js | 61 + static/vendors/moment/src/locale/sr-cyrl.js | 101 + static/vendors/moment/src/locale/sr.js | 101 + static/vendors/moment/src/locale/ss.js | 80 + static/vendors/moment/src/locale/sv.js | 60 + static/vendors/moment/src/locale/sw.js | 50 + static/vendors/moment/src/locale/ta.js | 120 + static/vendors/moment/src/locale/te.js | 79 + static/vendors/moment/src/locale/th.js | 58 + static/vendors/moment/src/locale/tl-ph.js | 53 + static/vendors/moment/src/locale/tlh.js | 110 + static/vendors/moment/src/locale/tr.js | 81 + static/vendors/moment/src/locale/tzl.js | 82 + static/vendors/moment/src/locale/tzm-latn.js | 49 + static/vendors/moment/src/locale/tzm.js | 49 + static/vendors/moment/src/locale/uk.js | 137 + static/vendors/moment/src/locale/uz.js | 49 + static/vendors/moment/src/locale/vi.js | 70 + static/vendors/moment/src/locale/x-pseudo.js | 58 + static/vendors/moment/src/locale/zh-cn.js | 118 + static/vendors/moment/src/locale/zh-tw.js | 91 + static/vendors/moment/src/moment.js | 75 + static/vendors/moment/templates/amd-named.js | 7 + static/vendors/moment/templates/amd.js | 7 + static/vendors/moment/templates/default.js | 5 + static/vendors/moment/templates/globals.js | 5 + .../vendors/moment/templates/locale-header.js | 6 + .../vendors/moment/templates/test-header.js | 6 + static/vendors/morris.js/.bower.json | 30 + static/vendors/morris.js/.gitignore | 6 + static/vendors/morris.js/.travis.yml | 19 + static/vendors/morris.js/Gruntfile.js | 90 + static/vendors/morris.js/README.md | 234 + static/vendors/morris.js/bower.json | 20 + static/vendors/morris.js/bower.travis.json | 20 + .../vendors/morris.js/examples/_template.html | 18 + .../morris.js/examples/area-as-line.html | 31 + static/vendors/morris.js/examples/area.html | 34 + .../morris.js/examples/bar-colors.html | 44 + .../morris.js/examples/bar-no-axes.html | 31 + static/vendors/morris.js/examples/bar.html | 32 + static/vendors/morris.js/examples/days.html | 37 + .../examples/decimal-custom-hover.html | 37 + .../examples/diagonal-xlabels-bar.html | 38 + .../morris.js/examples/diagonal-xlabels.html | 38 + .../morris.js/examples/donut-colors.html | 38 + .../morris.js/examples/donut-formatter.html | 27 + static/vendors/morris.js/examples/donut.html | 29 + static/vendors/morris.js/examples/dst.html | 30 + static/vendors/morris.js/examples/events.html | 57 + static/vendors/morris.js/examples/goals.html | 33 + .../morris.js/examples/lib/example.css | 13 + .../vendors/morris.js/examples/lib/example.js | 4 + .../morris.js/examples/months-no-smooth.html | 38 + .../vendors/morris.js/examples/negative.html | 36 + .../vendors/morris.js/examples/no-grid.html | 38 + .../morris.js/examples/non-continuous.html | 42 + .../vendors/morris.js/examples/non-date.html | 37 + .../vendors/morris.js/examples/quarters.html | 54 + static/vendors/morris.js/examples/resize.html | 42 + .../morris.js/examples/stacked_bars.html | 31 + .../morris.js/examples/timestamps.html | 38 + .../vendors/morris.js/examples/updating.html | 49 + static/vendors/morris.js/examples/weeks.html | 53 + static/vendors/morris.js/examples/years.html | 37 + .../vendors/morris.js/less/morris.core.less | 27 + .../vendors/morris.js/lib/morris.area.coffee | 66 + .../vendors/morris.js/lib/morris.bar.coffee | 208 + static/vendors/morris.js/lib/morris.coffee | 43 + .../vendors/morris.js/lib/morris.donut.coffee | 213 + .../vendors/morris.js/lib/morris.grid.coffee | 499 + .../vendors/morris.js/lib/morris.hover.coffee | 44 + .../vendors/morris.js/lib/morris.line.coffee | 405 + static/vendors/morris.js/morris.css | 2 + static/vendors/morris.js/morris.js | 1892 + static/vendors/morris.js/morris.min.js | 7 + static/vendors/morris.js/package.json | 36 + .../morris.js/spec/lib/area/area_spec.coffee | 60 + .../morris.js/spec/lib/bar/bar_spec.coffee | 127 + .../morris.js/spec/lib/bar/colours.coffee | 36 + .../morris.js/spec/lib/commas_spec.coffee | 38 + .../spec/lib/donut/donut_spec.coffee | 76 + .../spec/lib/grid/auto_grid_lines_spec.coffee | 25 + .../spec/lib/grid/set_data_spec.coffee | 208 + .../spec/lib/grid/y_label_format_spec.coffee | 15 + .../morris.js/spec/lib/hover_spec.coffee | 64 + .../spec/lib/label_series_spec.coffee | 186 + .../morris.js/spec/lib/line/line_spec.coffee | 211 + .../morris.js/spec/lib/pad_spec.coffee | 17 + .../morris.js/spec/lib/parse_time_spec.coffee | 35 + static/vendors/morris.js/spec/specs.html | 34 + .../morris.js/spec/support/placeholder.coffee | 6 + static/vendors/morris.js/spec/viz/examples.js | 56 + .../morris.js/spec/viz/exemplary/area0.png | Bin 0 -> 18402 bytes .../morris.js/spec/viz/exemplary/bar0.png | Bin 0 -> 6936 bytes .../morris.js/spec/viz/exemplary/line0.png | Bin 0 -> 22812 bytes .../spec/viz/exemplary/stacked_bar0.png | Bin 0 -> 5859 bytes static/vendors/morris.js/spec/viz/run.sh | 32 + static/vendors/morris.js/spec/viz/test.html | 34 + .../morris.js/spec/viz/visual_specs.js | 66 + static/vendors/normalize-css/.bower.json | 28 + static/vendors/normalize-css/.editorconfig | 12 + static/vendors/normalize-css/.gitignore | 2 + static/vendors/normalize-css/.travis.yml | 3 + static/vendors/normalize-css/LICENSE.md | 21 + static/vendors/normalize-css/bower.json | 17 + static/vendors/normalize-css/normalize.css | 419 + static/vendors/nprogress/.bower.json | 40 + static/vendors/nprogress/History.md | 110 + static/vendors/nprogress/License.md | 19 + static/vendors/nprogress/Notes.md | 25 + static/vendors/nprogress/Readme.md | 197 + static/vendors/nprogress/bower.json | 27 + static/vendors/nprogress/component.json | 19 + static/vendors/nprogress/index.html | 84 + static/vendors/nprogress/nprogress.css | 74 + static/vendors/nprogress/nprogress.js | 476 + static/vendors/nprogress/support/extras.css | 4 + static/vendors/nprogress/support/style.css | 215 + static/vendors/parsleyjs/.bower.json | 50 + static/vendors/parsleyjs/CNAME | 1 + static/vendors/parsleyjs/LICENSE | 21 + static/vendors/parsleyjs/bower.json | 39 + .../bower_components/bootstrap/DOCS-LICENSE | 319 + .../bower_components/bootstrap/LICENSE | 176 + .../bower_components/bootstrap/LICENSE-MIT | 21 + .../bower_components/bootstrap/bower.json | 30 + .../bootstrap/dist/css/bootstrap-theme.css | 397 + .../dist/css/bootstrap-theme.min.css | 7 + .../bootstrap/dist/css/bootstrap.css | 7118 ++ .../bootstrap/dist/css/bootstrap.min.css | 7 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20290 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41236 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23292 bytes .../bootstrap/dist/js/bootstrap.js | 2006 + .../bootstrap/dist/js/bootstrap.min.js | 7 + .../bower_components/bootstrap/js/affix.js | 126 + .../bower_components/bootstrap/js/alert.js | 98 + .../bower_components/bootstrap/js/button.js | 115 + .../bower_components/bootstrap/js/carousel.js | 217 + .../bower_components/bootstrap/js/collapse.js | 179 + .../bower_components/bootstrap/js/dropdown.js | 154 + .../bower_components/bootstrap/js/modal.js | 246 + .../bower_components/bootstrap/js/popover.js | 117 + .../bootstrap/js/scrollspy.js | 158 + .../bower_components/bootstrap/js/tab.js | 135 + .../bower_components/bootstrap/js/tooltip.js | 386 + .../bootstrap/js/transition.js | 56 + .../bootstrap/less/alerts.less | 67 + .../bootstrap/less/badges.less | 51 + .../bootstrap/less/bootstrap.less | 49 + .../bootstrap/less/breadcrumbs.less | 23 + .../bootstrap/less/button-groups.less | 227 + .../bootstrap/less/buttons.less | 155 + .../bootstrap/less/carousel.less | 232 + .../bootstrap/less/close.less | 33 + .../bower_components/bootstrap/less/code.less | 53 + .../bootstrap/less/component-animations.less | 29 + .../bootstrap/less/dropdowns.less | 187 + .../bootstrap/less/forms.less | 375 + .../bootstrap/less/glyphicons.less | 237 + .../bower_components/bootstrap/less/grid.less | 79 + .../bootstrap/less/input-groups.less | 136 + .../bootstrap/less/jumbotron.less | 46 + .../bootstrap/less/labels.less | 64 + .../bootstrap/less/list-group.less | 88 + .../bootstrap/less/media.less | 56 + .../bootstrap/less/mixins.less | 845 + .../bootstrap/less/modals.less | 129 + .../bootstrap/less/navbar.less | 612 + .../bower_components/bootstrap/less/navs.less | 242 + .../bootstrap/less/normalize.less | 406 + .../bootstrap/less/pager.less | 55 + .../bootstrap/less/pagination.less | 85 + .../bootstrap/less/panels.less | 182 + .../bootstrap/less/popovers.less | 133 + .../bootstrap/less/print.less | 105 + .../bootstrap/less/progress-bars.less | 80 + .../bootstrap/less/responsive-utilities.less | 209 + .../bootstrap/less/scaffolding.less | 119 + .../bootstrap/less/tables.less | 231 + .../bootstrap/less/theme.less | 247 + .../bootstrap/less/thumbnails.less | 36 + .../bootstrap/less/tooltip.less | 95 + .../bower_components/bootstrap/less/type.less | 281 + .../bootstrap/less/utilities.less | 56 + .../bootstrap/less/variables.less | 642 + .../bootstrap/less/wells.less | 29 + .../bower_components/expect.js/Makefile | 14 + .../bower_components/expect.js/index.js | 1284 + .../expect.js/support/jquery.js | 9266 ++ .../bower_components/jquery/MIT-LICENSE.txt | 21 + .../bower_components/jquery/bower.json | 28 + .../bower_components/jquery/dist/jquery.js | 9210 ++ .../jquery/dist/jquery.min.js | 5 + .../jquery/dist/jquery.min.map | 1 + .../bower_components/jquery/src/ajax.js | 786 + .../bower_components/jquery/src/ajax/jsonp.js | 89 + .../bower_components/jquery/src/ajax/load.js | 75 + .../jquery/src/ajax/parseJSON.js | 13 + .../jquery/src/ajax/parseXML.js | 28 + .../jquery/src/ajax/script.js | 64 + .../jquery/src/ajax/var/nonce.js | 5 + .../jquery/src/ajax/var/rquery.js | 3 + .../bower_components/jquery/src/ajax/xhr.js | 136 + .../bower_components/jquery/src/attributes.js | 11 + .../jquery/src/attributes/attr.js | 141 + .../jquery/src/attributes/classes.js | 158 + .../jquery/src/attributes/prop.js | 94 + .../jquery/src/attributes/support.js | 35 + .../jquery/src/attributes/val.js | 161 + .../bower_components/jquery/src/callbacks.js | 205 + .../bower_components/jquery/src/core.js | 502 + .../jquery/src/core/access.js | 60 + .../bower_components/jquery/src/core/init.js | 123 + .../jquery/src/core/parseHTML.js | 39 + .../bower_components/jquery/src/core/ready.js | 97 + .../jquery/src/core/var/rsingleTag.js | 4 + .../bower_components/jquery/src/css.js | 450 + .../jquery/src/css/addGetHookIf.js | 22 + .../bower_components/jquery/src/css/curCSS.js | 57 + .../jquery/src/css/defaultDisplay.js | 70 + .../jquery/src/css/hiddenVisibleSelectors.js | 15 + .../jquery/src/css/support.js | 96 + .../bower_components/jquery/src/css/swap.js | 28 + .../jquery/src/css/var/cssExpand.js | 3 + .../jquery/src/css/var/getStyles.js | 12 + .../jquery/src/css/var/isHidden.js | 13 + .../jquery/src/css/var/rmargin.js | 3 + .../jquery/src/css/var/rnumnonpx.js | 5 + .../bower_components/jquery/src/data.js | 178 + .../bower_components/jquery/src/data/Data.js | 181 + .../jquery/src/data/accepts.js | 20 + .../jquery/src/data/var/data_priv.js | 5 + .../jquery/src/data/var/data_user.js | 5 + .../bower_components/jquery/src/deferred.js | 149 + .../bower_components/jquery/src/deprecated.js | 13 + .../bower_components/jquery/src/dimensions.js | 50 + .../bower_components/jquery/src/effects.js | 648 + .../jquery/src/effects/Tween.js | 114 + .../jquery/src/effects/animatedSelector.js | 13 + .../bower_components/jquery/src/event.js | 868 + .../bower_components/jquery/src/event/ajax.js | 13 + .../jquery/src/event/alias.js | 39 + .../jquery/src/event/support.js | 9 + .../jquery/src/exports/amd.js | 24 + .../jquery/src/exports/global.js | 32 + .../bower_components/jquery/src/intro.js | 44 + .../bower_components/jquery/src/jquery.js | 37 + .../jquery/src/manipulation.js | 580 + .../jquery/src/manipulation/_evalUrl.js | 18 + .../jquery/src/manipulation/support.js | 32 + .../src/manipulation/var/rcheckableType.js | 3 + .../bower_components/jquery/src/offset.js | 207 + .../bower_components/jquery/src/outro.js | 1 + .../bower_components/jquery/src/queue.js | 142 + .../jquery/src/queue/delay.js | 22 + .../jquery/src/selector-native.js | 172 + .../jquery/src/selector-sizzle.js | 14 + .../bower_components/jquery/src/selector.js | 1 + .../bower_components/jquery/src/serialize.js | 111 + .../jquery/src/sizzle/dist/sizzle.js | 2067 + .../jquery/src/sizzle/dist/sizzle.min.js | 3 + .../jquery/src/sizzle/dist/sizzle.min.map | 1 + .../bower_components/jquery/src/traversing.js | 199 + .../jquery/src/traversing/findFilter.js | 100 + .../src/traversing/var/rneedsContext.js | 6 + .../bower_components/jquery/src/var/arr.js | 3 + .../jquery/src/var/class2type.js | 4 + .../bower_components/jquery/src/var/concat.js | 5 + .../bower_components/jquery/src/var/hasOwn.js | 5 + .../jquery/src/var/indexOf.js | 5 + .../bower_components/jquery/src/var/pnum.js | 3 + .../bower_components/jquery/src/var/push.js | 5 + .../jquery/src/var/rnotwhite.js | 3 + .../bower_components/jquery/src/var/slice.js | 5 + .../jquery/src/var/strundefined.js | 3 + .../jquery/src/var/support.js | 4 + .../jquery/src/var/toString.js | 5 + .../bower_components/jquery/src/wrap.js | 79 + .../parsleyjs/bower_components/mocha/LICENSE | 22 + .../bower_components/mocha/bower.json | 46 + .../bower_components/mocha/media/logo.svg | 7 + .../bower_components/mocha/mocha.css | 305 + .../parsleyjs/bower_components/mocha/mocha.js | 12417 +++ .../mocha/scripts/ensure-compatible-npm.sh | 11 + .../bower_components/sinonjs/bower.json | 10 + .../bower_components/sinonjs/sinon.js | 4290 + .../bower_components/uwidget/LICENSE | 21 + .../bower_components/uwidget/bower.json | 18 + .../bower_components/uwidget/uwidget.css | 44 + .../bower_components/uwidget/uwidget.js | 219 + .../bower_components/uwidget/uwidget.less | 54 + static/vendors/parsleyjs/dist/i18n/al.js | 29 + static/vendors/parsleyjs/dist/i18n/ar.js | 29 + static/vendors/parsleyjs/dist/i18n/bg.js | 29 + static/vendors/parsleyjs/dist/i18n/ca.js | 29 + .../vendors/parsleyjs/dist/i18n/cs.extra.js | 13 + static/vendors/parsleyjs/dist/i18n/cs.js | 29 + static/vendors/parsleyjs/dist/i18n/da.js | 29 + .../vendors/parsleyjs/dist/i18n/de.extra.js | 13 + static/vendors/parsleyjs/dist/i18n/de.js | 29 + .../vendors/parsleyjs/dist/i18n/el.extra.js | 14 + static/vendors/parsleyjs/dist/i18n/el.js | 29 + .../vendors/parsleyjs/dist/i18n/en.extra.js | 14 + static/vendors/parsleyjs/dist/i18n/en.js | 30 + static/vendors/parsleyjs/dist/i18n/es.js | 30 + static/vendors/parsleyjs/dist/i18n/fa.js | 29 + .../vendors/parsleyjs/dist/i18n/fi.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/fi.js | 29 + .../vendors/parsleyjs/dist/i18n/fr.extra.js | 7 + static/vendors/parsleyjs/dist/i18n/fr.js | 29 + .../vendors/parsleyjs/dist/i18n/he.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/he.js | 29 + .../vendors/parsleyjs/dist/i18n/hr.extra.js | 14 + static/vendors/parsleyjs/dist/i18n/hr.js | 29 + .../vendors/parsleyjs/dist/i18n/id.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/id.js | 29 + .../vendors/parsleyjs/dist/i18n/it.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/it.js | 29 + static/vendors/parsleyjs/dist/i18n/ja.js | 29 + static/vendors/parsleyjs/dist/i18n/ko.js | 29 + static/vendors/parsleyjs/dist/i18n/lt.js | 29 + .../vendors/parsleyjs/dist/i18n/lv.extra.js | 14 + static/vendors/parsleyjs/dist/i18n/lv.js | 29 + .../vendors/parsleyjs/dist/i18n/ms.extra.js | 13 + static/vendors/parsleyjs/dist/i18n/ms.js | 29 + .../vendors/parsleyjs/dist/i18n/nl.extra.js | 11 + static/vendors/parsleyjs/dist/i18n/nl.js | 26 + static/vendors/parsleyjs/dist/i18n/no.js | 29 + static/vendors/parsleyjs/dist/i18n/pl.js | 29 + static/vendors/parsleyjs/dist/i18n/pt-br.js | 29 + static/vendors/parsleyjs/dist/i18n/pt-pt.js | 29 + .../vendors/parsleyjs/dist/i18n/ro.extra.js | 14 + static/vendors/parsleyjs/dist/i18n/ro.js | 29 + .../vendors/parsleyjs/dist/i18n/ru.extra.js | 9 + static/vendors/parsleyjs/dist/i18n/ru.js | 29 + static/vendors/parsleyjs/dist/i18n/sq.js | 29 + .../vendors/parsleyjs/dist/i18n/sv.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/sv.js | 29 + static/vendors/parsleyjs/dist/i18n/th.js | 29 + static/vendors/parsleyjs/dist/i18n/tr.js | 29 + .../vendors/parsleyjs/dist/i18n/uk.extra.js | 9 + static/vendors/parsleyjs/dist/i18n/uk.js | 29 + .../parsleyjs/dist/i18n/zh_cn.extra.js | 6 + static/vendors/parsleyjs/dist/i18n/zh_cn.js | 29 + static/vendors/parsleyjs/dist/i18n/zh_tw.js | 29 + static/vendors/parsleyjs/dist/parsley.js | 2357 + static/vendors/parsleyjs/dist/parsley.js.map | 1 + static/vendors/parsleyjs/dist/parsley.min.js | 18 + .../vendors/parsleyjs/dist/parsley.min.js.map | 1 + static/vendors/parsleyjs/gulpfile.babel.js | 302 + .../parsleyjs/src/extra/plugin/bind.js | 50 + .../src/extra/validator/comparison.js | 43 + .../parsleyjs/src/extra/validator/dateiso.js | 8 + .../parsleyjs/src/extra/validator/luhn.js | 32 + .../src/extra/validator/notequalto.js | 13 + .../parsleyjs/src/extra/validator/words.js | 31 + static/vendors/parsleyjs/src/header.js | 12 + static/vendors/parsleyjs/src/i18n/al.js | 29 + static/vendors/parsleyjs/src/i18n/ar.js | 29 + static/vendors/parsleyjs/src/i18n/bg.js | 29 + static/vendors/parsleyjs/src/i18n/ca.js | 29 + static/vendors/parsleyjs/src/i18n/cs.extra.js | 13 + static/vendors/parsleyjs/src/i18n/cs.js | 29 + static/vendors/parsleyjs/src/i18n/da.js | 29 + static/vendors/parsleyjs/src/i18n/de.extra.js | 13 + static/vendors/parsleyjs/src/i18n/de.js | 29 + static/vendors/parsleyjs/src/i18n/el.extra.js | 14 + static/vendors/parsleyjs/src/i18n/el.js | 29 + static/vendors/parsleyjs/src/i18n/en.extra.js | 14 + static/vendors/parsleyjs/src/i18n/en.js | 30 + static/vendors/parsleyjs/src/i18n/es.js | 30 + static/vendors/parsleyjs/src/i18n/fa.js | 29 + static/vendors/parsleyjs/src/i18n/fi.extra.js | 6 + static/vendors/parsleyjs/src/i18n/fi.js | 29 + static/vendors/parsleyjs/src/i18n/fr.extra.js | 7 + static/vendors/parsleyjs/src/i18n/fr.js | 29 + static/vendors/parsleyjs/src/i18n/he.extra.js | 6 + static/vendors/parsleyjs/src/i18n/he.js | 29 + static/vendors/parsleyjs/src/i18n/hr.extra.js | 14 + static/vendors/parsleyjs/src/i18n/hr.js | 29 + static/vendors/parsleyjs/src/i18n/id.extra.js | 6 + static/vendors/parsleyjs/src/i18n/id.js | 29 + static/vendors/parsleyjs/src/i18n/it.extra.js | 6 + static/vendors/parsleyjs/src/i18n/it.js | 29 + static/vendors/parsleyjs/src/i18n/ja.js | 29 + static/vendors/parsleyjs/src/i18n/ko.js | 29 + static/vendors/parsleyjs/src/i18n/lt.js | 29 + static/vendors/parsleyjs/src/i18n/lv.extra.js | 14 + static/vendors/parsleyjs/src/i18n/lv.js | 29 + static/vendors/parsleyjs/src/i18n/ms.extra.js | 13 + static/vendors/parsleyjs/src/i18n/ms.js | 29 + static/vendors/parsleyjs/src/i18n/nl.extra.js | 11 + static/vendors/parsleyjs/src/i18n/nl.js | 26 + static/vendors/parsleyjs/src/i18n/no.js | 29 + static/vendors/parsleyjs/src/i18n/pl.js | 29 + static/vendors/parsleyjs/src/i18n/pt-br.js | 29 + static/vendors/parsleyjs/src/i18n/pt-pt.js | 29 + static/vendors/parsleyjs/src/i18n/ro.extra.js | 14 + static/vendors/parsleyjs/src/i18n/ro.js | 29 + static/vendors/parsleyjs/src/i18n/ru.extra.js | 9 + static/vendors/parsleyjs/src/i18n/ru.js | 29 + static/vendors/parsleyjs/src/i18n/sq.js | 29 + static/vendors/parsleyjs/src/i18n/sv.extra.js | 6 + static/vendors/parsleyjs/src/i18n/sv.js | 29 + static/vendors/parsleyjs/src/i18n/th.js | 29 + static/vendors/parsleyjs/src/i18n/tr.js | 29 + static/vendors/parsleyjs/src/i18n/uk.extra.js | 9 + static/vendors/parsleyjs/src/i18n/uk.js | 29 + .../vendors/parsleyjs/src/i18n/zh_cn.extra.js | 6 + static/vendors/parsleyjs/src/i18n/zh_cn.js | 29 + static/vendors/parsleyjs/src/i18n/zh_tw.js | 29 + static/vendors/parsleyjs/src/parsley.css | 33 + static/vendors/parsleyjs/src/parsley.js | 10 + .../vendors/parsleyjs/src/parsley/abstract.js | 145 + .../vendors/parsleyjs/src/parsley/defaults.js | 66 + .../vendors/parsleyjs/src/parsley/factory.js | 165 + .../src/parsley/factory/constraint.js | 41 + static/vendors/parsleyjs/src/parsley/field.js | 374 + static/vendors/parsleyjs/src/parsley/form.js | 199 + static/vendors/parsleyjs/src/parsley/main.js | 115 + .../vendors/parsleyjs/src/parsley/multiple.js | 84 + .../vendors/parsleyjs/src/parsley/pubsub.js | 95 + .../vendors/parsleyjs/src/parsley/remote.js | 106 + static/vendors/parsleyjs/src/parsley/ui.js | 375 + static/vendors/parsleyjs/src/parsley/utils.js | 130 + .../parsleyjs/src/parsley/validator.js | 143 + .../src/parsley/validator_registry.js | 347 + .../parsleyjs/src/vendor/inputevent.js | 67 + static/vendors/pdfmake/.bower.json | 47 + static/vendors/pdfmake/LICENSE | 20 + static/vendors/pdfmake/bower.json | 34 + static/vendors/pdfmake/build/pdfmake.js | 68149 +++++++++++++++ static/vendors/pdfmake/build/pdfmake.min.js | 17 + .../vendors/pdfmake/build/pdfmake.min.js.map | 1 + static/vendors/pdfmake/build/vfs_fonts.js | 1 + static/vendors/pnotify/.bower.json | 47 + static/vendors/pnotify/.gitignore | 4 + static/vendors/pnotify/COPYING | 202 + static/vendors/pnotify/README.md | 295 + static/vendors/pnotify/bower.json | 36 + .../vendors/pnotify/dist/pnotify.animate.js | 4 + .../pnotify/dist/pnotify.brighttheme.css | 1 + .../vendors/pnotify/dist/pnotify.buttons.css | 1 + .../vendors/pnotify/dist/pnotify.buttons.js | 8 + .../vendors/pnotify/dist/pnotify.callbacks.js | 2 + .../vendors/pnotify/dist/pnotify.confirm.js | 7 + static/vendors/pnotify/dist/pnotify.css | 1 + .../vendors/pnotify/dist/pnotify.desktop.js | 5 + .../vendors/pnotify/dist/pnotify.history.css | 1 + .../vendors/pnotify/dist/pnotify.history.js | 6 + static/vendors/pnotify/dist/pnotify.js | 31 + .../vendors/pnotify/dist/pnotify.material.css | 1 + .../vendors/pnotify/dist/pnotify.mobile.css | 1 + static/vendors/pnotify/dist/pnotify.mobile.js | 5 + .../vendors/pnotify/dist/pnotify.nonblock.css | 1 + .../vendors/pnotify/dist/pnotify.nonblock.js | 6 + .../vendors/pnotify/dist/pnotify.reference.js | 1 + .../vendors/pnotify/dist/pnotify.tooltip.js | 1 + .../pnotify/libtests/browserify/index.js | 26 + static/vendors/raphael/.bower.json | 46 + static/vendors/raphael/bower.json | 31 + static/vendors/raphael/dev/banner.txt | 8 + static/vendors/raphael/dev/raphael.amd.js | 14 + static/vendors/raphael/dev/raphael.core.js | 5413 ++ static/vendors/raphael/dev/raphael.svg.js | 1428 + static/vendors/raphael/dev/raphael.vml.js | 1010 + static/vendors/raphael/dev/test/svg/dom.js | 295 + static/vendors/raphael/dev/test/vml/dom.js | 5 + static/vendors/raphael/license.txt | 21 + static/vendors/raphael/raphael.js | 8330 ++ static/vendors/raphael/raphael.min.js | 3 + static/vendors/raphael/raphael.no-deps.js | 7959 ++ static/vendors/raphael/raphael.no-deps.min.js | 3 + static/vendors/raphael/webpack.config.js | 62 + static/vendors/requirejs/.bower.json | 27 + static/vendors/requirejs/README.md | 4 + static/vendors/requirejs/bower.json | 18 + static/vendors/requirejs/require.js | 2129 + static/vendors/select2/.bower.json | 23 + static/vendors/select2/.editorconfig | 6 + static/vendors/select2/.gitignore | 3 + static/vendors/select2/.jshintignore | 4 + static/vendors/select2/.jshintrc | 25 + static/vendors/select2/.travis.yml | 22 + static/vendors/select2/CONTRIBUTING.md | 204 + static/vendors/select2/Gruntfile.js | 370 + static/vendors/select2/ISSUE_TEMPLATE.md | 46 + static/vendors/select2/LICENSE.md | 21 + .../vendors/select2/PULL_REQUEST_TEMPLATE.md | 13 + static/vendors/select2/README.md | 121 + static/vendors/select2/bower.json | 12 + static/vendors/select2/component.json | 19 + static/vendors/select2/composer.json | 25 + static/vendors/select2/dist/css/select2.css | 484 + .../vendors/select2/dist/css/select2.min.css | 1 + static/vendors/select2/dist/js/i18n/ar.js | 3 + static/vendors/select2/dist/js/i18n/az.js | 3 + static/vendors/select2/dist/js/i18n/bg.js | 3 + static/vendors/select2/dist/js/i18n/ca.js | 3 + static/vendors/select2/dist/js/i18n/cs.js | 3 + static/vendors/select2/dist/js/i18n/da.js | 3 + static/vendors/select2/dist/js/i18n/de.js | 3 + static/vendors/select2/dist/js/i18n/el.js | 3 + static/vendors/select2/dist/js/i18n/en.js | 3 + static/vendors/select2/dist/js/i18n/es.js | 3 + static/vendors/select2/dist/js/i18n/et.js | 3 + static/vendors/select2/dist/js/i18n/eu.js | 3 + static/vendors/select2/dist/js/i18n/fa.js | 3 + static/vendors/select2/dist/js/i18n/fi.js | 3 + static/vendors/select2/dist/js/i18n/fr.js | 3 + static/vendors/select2/dist/js/i18n/gl.js | 3 + static/vendors/select2/dist/js/i18n/he.js | 3 + static/vendors/select2/dist/js/i18n/hi.js | 3 + static/vendors/select2/dist/js/i18n/hr.js | 3 + static/vendors/select2/dist/js/i18n/hu.js | 3 + static/vendors/select2/dist/js/i18n/id.js | 3 + static/vendors/select2/dist/js/i18n/is.js | 3 + static/vendors/select2/dist/js/i18n/it.js | 3 + static/vendors/select2/dist/js/i18n/ja.js | 3 + static/vendors/select2/dist/js/i18n/km.js | 3 + static/vendors/select2/dist/js/i18n/ko.js | 3 + static/vendors/select2/dist/js/i18n/lt.js | 3 + static/vendors/select2/dist/js/i18n/lv.js | 3 + static/vendors/select2/dist/js/i18n/mk.js | 3 + static/vendors/select2/dist/js/i18n/ms.js | 3 + static/vendors/select2/dist/js/i18n/nb.js | 3 + static/vendors/select2/dist/js/i18n/nl.js | 3 + static/vendors/select2/dist/js/i18n/pl.js | 3 + static/vendors/select2/dist/js/i18n/pt-BR.js | 3 + static/vendors/select2/dist/js/i18n/pt.js | 3 + static/vendors/select2/dist/js/i18n/ro.js | 3 + static/vendors/select2/dist/js/i18n/ru.js | 3 + static/vendors/select2/dist/js/i18n/sk.js | 3 + .../vendors/select2/dist/js/i18n/sr-Cyrl.js | 3 + static/vendors/select2/dist/js/i18n/sr.js | 3 + static/vendors/select2/dist/js/i18n/sv.js | 3 + static/vendors/select2/dist/js/i18n/th.js | 3 + static/vendors/select2/dist/js/i18n/tr.js | 3 + static/vendors/select2/dist/js/i18n/uk.js | 3 + static/vendors/select2/dist/js/i18n/vi.js | 3 + static/vendors/select2/dist/js/i18n/zh-CN.js | 3 + static/vendors/select2/dist/js/i18n/zh-TW.js | 3 + .../vendors/select2/dist/js/select2.full.js | 6436 ++ .../select2/dist/js/select2.full.min.js | 3 + static/vendors/select2/dist/js/select2.js | 5725 ++ static/vendors/select2/dist/js/select2.min.js | 3 + static/vendors/select2/docs/.gitignore | 2 + static/vendors/select2/docs/README.md | 38 + .../docs/_includes/examples/basics.html | 97 + .../select2/docs/_includes/examples/data.html | 123 + .../_includes/examples/disabled-mode.html | 43 + .../_includes/examples/disabled-results.html | 29 + .../docs/_includes/examples/hide-search.html | 22 + .../examples/localization-rtl-diacritics.html | 82 + .../docs/_includes/examples/matcher.html | 39 + .../docs/_includes/examples/multiple-max.html | 24 + .../docs/_includes/examples/placeholders.html | 36 + .../examples/programmatic-control.html | 155 + .../select2/docs/_includes/examples/tags.html | 29 + .../themes-templating-responsive-design.html | 104 + .../docs/_includes/examples/tokenizer.html | 32 + .../select2/docs/_includes/footer.html | 20 + static/vendors/select2/docs/_includes/ga.html | 9 + .../vendors/select2/docs/_includes/head.html | 31 + .../docs/_includes/js-source-states.html | 62 + .../docs/_includes/nav/announcements-4.0.html | 26 + .../select2/docs/_includes/nav/examples.html | 96 + .../docs/_includes/nav/options-old.html | 55 + .../select2/docs/_includes/nav/options.html | 77 + .../select2/docs/_includes/navigation.html | 53 + .../docs/_includes/notice-previous.html | 7 + .../docs/_includes/options-old/adapters.html | 209 + .../options-old/backwards-compatibility.html | 200 + .../_includes/options-old/core-options.html | 790 + .../docs/_includes/options-old/dropdown.html | 308 + .../docs/_includes/options-old/events.html | 50 + .../options-old/setting-default-options.html | 37 + .../docs/_includes/options/compatibility.html | 10 + .../compatibility/initial-selection.html | 50 + .../options/compatibility/introduction.html | 18 + .../options/compatibility/matcher.html | 50 + .../options/compatibility/query-function.html | 50 + .../options/compatibility/text-input.html | 32 + .../select2/docs/_includes/options/core.html | 9 + .../_includes/options/core/amd-support.html | 46 + .../options/core/data-attributes.html | 76 + .../docs/_includes/options/core/options.html | 80 + .../select2/docs/_includes/options/data.html | 9 + .../docs/_includes/options/data/ajax.html | 147 + .../docs/_includes/options/data/array.html | 150 + .../docs/_includes/options/data/select.html | 69 + .../docs/_includes/options/dropdown.html | 10 + .../_includes/options/dropdown/filtering.html | 55 + .../_includes/options/dropdown/placement.html | 39 + .../options/dropdown/selections.html | 29 + .../_includes/options/dropdown/tagging.html | 89 + .../docs/_includes/options/events.html | 8 + .../_includes/options/events/internal.html | 9 + .../docs/_includes/options/events/jquery.html | 101 + .../docs/_includes/options/introduction.html | 9 + .../docs/_includes/options/not-written.html | 3 + .../docs/_includes/options/selections.html | 10 + .../selections/clearing-selections.html | 34 + .../options/selections/multiple.html | 17 + .../options/selections/placeholder.html | 84 + .../options/selections/templating.html | 37 + .../docs/_includes/social-buttons.html | 10 + .../select2/docs/_layouts/default.html | 57 + .../vendors/select2/docs/_layouts/home.html | 23 + static/vendors/select2/docs/_sass/_alert.scss | 47 + .../vendors/select2/docs/_sass/_anchorjs.scss | 27 + .../vendors/select2/docs/_sass/_buttons.scss | 20 + static/vendors/select2/docs/_sass/_code.scss | 16 + .../select2/docs/_sass/_dl-panels.scss | 24 + .../vendors/select2/docs/_sass/_examples.scss | 91 + .../select2/docs/_sass/_featurette.scss | 16 + .../vendors/select2/docs/_sass/_footer.scss | 42 + .../select2/docs/_sass/_hamburger.scss | 49 + static/vendors/select2/docs/_sass/_home.scss | 31 + .../select2/docs/_sass/_jumbotron.scss | 24 + .../vendors/select2/docs/_sass/_layout.scss | 14 + static/vendors/select2/docs/_sass/_nav.scss | 59 + .../vendors/select2/docs/_sass/_prettify.scss | 50 + .../docs/_sass/_result-repository.scss | 62 + .../vendors/select2/docs/_sass/_sidenav.scss | 152 + .../vendors/select2/docs/_sass/_social.scss | 35 + .../docs/_sass/_syntax-highlighting.scss | 117 + .../select2/docs/_sass/_typography.scss | 6 + .../docs/_sass/vendor/bootstrap/_alerts.scss | 73 + .../docs/_sass/vendor/bootstrap/_badges.scss | 68 + .../_sass/vendor/bootstrap/_breadcrumbs.scss | 28 + .../vendor/bootstrap/_button-groups.scss | 244 + .../docs/_sass/vendor/bootstrap/_buttons.scss | 168 + .../_sass/vendor/bootstrap/_carousel.scss | 270 + .../docs/_sass/vendor/bootstrap/_close.scss | 36 + .../docs/_sass/vendor/bootstrap/_code.scss | 69 + .../bootstrap/_component-animations.scss | 37 + .../_sass/vendor/bootstrap/_dropdowns.scss | 216 + .../docs/_sass/vendor/bootstrap/_forms.scss | 617 + .../_sass/vendor/bootstrap/_glyphicons.scss | 307 + .../docs/_sass/vendor/bootstrap/_grid.scss | 84 + .../_sass/vendor/bootstrap/_input-groups.scss | 171 + .../_sass/vendor/bootstrap/_jumbotron.scss | 54 + .../docs/_sass/vendor/bootstrap/_labels.scss | 66 + .../_sass/vendor/bootstrap/_list-group.scss | 130 + .../docs/_sass/vendor/bootstrap/_media.scss | 66 + .../docs/_sass/vendor/bootstrap/_mixins.scss | 40 + .../docs/_sass/vendor/bootstrap/_modals.scss | 150 + .../docs/_sass/vendor/bootstrap/_navbar.scss | 662 + .../docs/_sass/vendor/bootstrap/_navs.scss | 242 + .../_sass/vendor/bootstrap/_normalize.scss | 424 + .../docs/_sass/vendor/bootstrap/_pager.scss | 54 + .../_sass/vendor/bootstrap/_pagination.scss | 89 + .../docs/_sass/vendor/bootstrap/_panels.scss | 271 + .../_sass/vendor/bootstrap/_popovers.scss | 131 + .../docs/_sass/vendor/bootstrap/_print.scss | 101 + .../vendor/bootstrap/_progress-bars.scss | 87 + .../vendor/bootstrap/_responsive-embed.scss | 35 + .../bootstrap/_responsive-utilities.scss | 179 + .../_sass/vendor/bootstrap/_scaffolding.scss | 161 + .../docs/_sass/vendor/bootstrap/_tables.scss | 234 + .../docs/_sass/vendor/bootstrap/_theme.scss | 291 + .../_sass/vendor/bootstrap/_thumbnails.scss | 38 + .../docs/_sass/vendor/bootstrap/_tooltip.scss | 101 + .../docs/_sass/vendor/bootstrap/_type.scss | 298 + .../_sass/vendor/bootstrap/_utilities.scss | 55 + .../_sass/vendor/bootstrap/_variables.scss | 874 + .../docs/_sass/vendor/bootstrap/_wells.scss | 29 + .../vendor/bootstrap/mixins/_alerts.scss | 14 + .../bootstrap/mixins/_background-variant.scss | 12 + .../bootstrap/mixins/_border-radius.scss | 18 + .../vendor/bootstrap/mixins/_buttons.scss | 65 + .../bootstrap/mixins/_center-block.scss | 7 + .../vendor/bootstrap/mixins/_clearfix.scss | 22 + .../_sass/vendor/bootstrap/mixins/_forms.scss | 88 + .../vendor/bootstrap/mixins/_gradients.scss | 58 + .../bootstrap/mixins/_grid-framework.scss | 81 + .../_sass/vendor/bootstrap/mixins/_grid.scss | 122 + .../vendor/bootstrap/mixins/_hide-text.scss | 21 + .../_sass/vendor/bootstrap/mixins/_image.scss | 33 + .../vendor/bootstrap/mixins/_labels.scss | 12 + .../vendor/bootstrap/mixins/_list-group.scss | 32 + .../vendor/bootstrap/mixins/_nav-divider.scss | 10 + .../bootstrap/mixins/_nav-vertical-align.scss | 9 + .../vendor/bootstrap/mixins/_opacity.scss | 8 + .../vendor/bootstrap/mixins/_pagination.scss | 24 + .../vendor/bootstrap/mixins/_panels.scss | 24 + .../bootstrap/mixins/_progress-bar.scss | 10 + .../bootstrap/mixins/_reset-filter.scss | 8 + .../vendor/bootstrap/mixins/_reset-text.scss | 18 + .../vendor/bootstrap/mixins/_resize.scss | 6 + .../mixins/_responsive-visibility.scss | 21 + .../_sass/vendor/bootstrap/mixins/_size.scss | 10 + .../vendor/bootstrap/mixins/_tab-focus.scss | 9 + .../vendor/bootstrap/mixins/_table-row.scss | 28 + .../bootstrap/mixins/_text-emphasis.scss | 12 + .../bootstrap/mixins/_text-overflow.scss | 8 + .../bootstrap/mixins/_vendor-prefixes.scss | 222 + .../_sass/vendor/font-awesome/_animated.scss | 34 + .../vendor/font-awesome/_bordered-pulled.scss | 25 + .../docs/_sass/vendor/font-awesome/_core.scss | 12 + .../vendor/font-awesome/_fixed-width.scss | 6 + .../_sass/vendor/font-awesome/_icons.scss | 697 + .../_sass/vendor/font-awesome/_larger.scss | 13 + .../docs/_sass/vendor/font-awesome/_list.scss | 19 + .../_sass/vendor/font-awesome/_mixins.scss | 26 + .../docs/_sass/vendor/font-awesome/_path.scss | 15 + .../vendor/font-awesome/_rotated-flipped.scss | 20 + .../_sass/vendor/font-awesome/_stacked.scss | 20 + .../_sass/vendor/font-awesome/_variables.scss | 708 + .../select2/docs/announcements-4.0.html | 752 + static/vendors/select2/docs/browserconfig.xml | 11 + static/vendors/select2/docs/community.html | 154 + .../vendors/select2/docs/css/bootstrap.scss | 51 + .../select2/docs/css/font-awesome.scss | 16 + static/vendors/select2/docs/css/s2-docs.scss | 24 + static/vendors/select2/docs/examples.html | 256 + .../docs/images/android-chrome-36x36.png | Bin 0 -> 916 bytes .../docs/images/android-chrome-48x48.png | Bin 0 -> 1109 bytes .../docs/images/android-chrome-72x72.png | Bin 0 -> 1533 bytes .../docs/images/apple-touch-icon-57x57.png | Bin 0 -> 1894 bytes .../docs/images/apple-touch-icon-60x60.png | Bin 0 -> 1952 bytes .../docs/images/apple-touch-icon-72x72.png | Bin 0 -> 1626 bytes .../images/apple-touch-icon-precomposed.png | Bin 0 -> 1586 bytes .../select2/docs/images/apple-touch-icon.png | Bin 0 -> 1626 bytes .../select2/docs/images/favicon-16x16.png | Bin 0 -> 655 bytes .../select2/docs/images/favicon-32x32.png | Bin 0 -> 1155 bytes .../vendors/select2/docs/images/favicon.ico | Bin 0 -> 15086 bytes static/vendors/select2/docs/images/logo.png | Bin 0 -> 2501 bytes .../vendors/select2/docs/images/manifest.json | 23 + .../select2/docs/images/mstile-150x150.png | Bin 0 -> 1394 bytes .../select2/docs/images/mstile-310x150.png | Bin 0 -> 1281 bytes .../select2/docs/images/mstile-70x70.png | Bin 0 -> 1546 bytes .../select2/docs/images/safari-pinned-tab.svg | 17 + static/vendors/select2/docs/index.html | 237 + static/vendors/select2/docs/options-old.html | 37 + static/vendors/select2/docs/options.html | 37 + .../select2/docs/vendor/fonts/FontAwesome.otf | Bin 0 -> 109688 bytes .../docs/vendor/fonts/fontawesome-webfont.eot | Bin 0 -> 70807 bytes .../docs/vendor/fonts/fontawesome-webfont.svg | 655 + .../docs/vendor/fonts/fontawesome-webfont.ttf | Bin 0 -> 142072 bytes .../vendor/fonts/fontawesome-webfont.woff | Bin 0 -> 83588 bytes .../vendor/fonts/fontawesome-webfont.woff2 | Bin 0 -> 66624 bytes .../select2/docs/vendor/images/flags/ak.png | Bin 0 -> 2212 bytes .../select2/docs/vendor/images/flags/al.png | Bin 0 -> 2623 bytes .../select2/docs/vendor/images/flags/ar.png | Bin 0 -> 10871 bytes .../select2/docs/vendor/images/flags/az.png | Bin 0 -> 5448 bytes .../select2/docs/vendor/images/flags/ca.png | Bin 0 -> 7159 bytes .../select2/docs/vendor/images/flags/co.png | Bin 0 -> 2593 bytes .../select2/docs/vendor/images/flags/ct.png | Bin 0 -> 9209 bytes .../select2/docs/vendor/images/flags/de.png | Bin 0 -> 7903 bytes .../select2/docs/vendor/images/flags/fl.png | Bin 0 -> 9018 bytes .../select2/docs/vendor/images/flags/ga.png | Bin 0 -> 4765 bytes .../select2/docs/vendor/images/flags/hi.png | Bin 0 -> 3170 bytes .../select2/docs/vendor/images/flags/ia.png | Bin 0 -> 7102 bytes .../select2/docs/vendor/images/flags/id.png | Bin 0 -> 7319 bytes .../select2/docs/vendor/images/flags/il.png | Bin 0 -> 10352 bytes .../select2/docs/vendor/images/flags/in.png | Bin 0 -> 6988 bytes .../select2/docs/vendor/images/flags/ks.png | Bin 0 -> 7758 bytes .../select2/docs/vendor/images/flags/ky.png | Bin 0 -> 10162 bytes .../select2/docs/vendor/images/flags/la.png | Bin 0 -> 11486 bytes .../select2/docs/vendor/images/flags/ma.png | Bin 0 -> 3985 bytes .../select2/docs/vendor/images/flags/md.png | Bin 0 -> 4103 bytes .../select2/docs/vendor/images/flags/me.png | Bin 0 -> 6238 bytes .../select2/docs/vendor/images/flags/mi.png | Bin 0 -> 10471 bytes .../select2/docs/vendor/images/flags/mn.png | Bin 0 -> 7938 bytes .../select2/docs/vendor/images/flags/mo.png | Bin 0 -> 7495 bytes .../select2/docs/vendor/images/flags/ms.png | Bin 0 -> 6088 bytes .../select2/docs/vendor/images/flags/mt.png | Bin 0 -> 7344 bytes .../select2/docs/vendor/images/flags/nc.png | Bin 0 -> 3995 bytes .../select2/docs/vendor/images/flags/nd.png | Bin 0 -> 11795 bytes .../select2/docs/vendor/images/flags/ne.png | Bin 0 -> 13899 bytes .../select2/docs/vendor/images/flags/nh.png | Bin 0 -> 12792 bytes .../select2/docs/vendor/images/flags/nj.png | Bin 0 -> 7098 bytes .../select2/docs/vendor/images/flags/nm.png | Bin 0 -> 1523 bytes .../select2/docs/vendor/images/flags/nv.png | Bin 0 -> 4268 bytes .../select2/docs/vendor/images/flags/ny.png | Bin 0 -> 9732 bytes .../select2/docs/vendor/images/flags/oh.png | Bin 0 -> 7666 bytes .../select2/docs/vendor/images/flags/ok.png | Bin 0 -> 7290 bytes .../select2/docs/vendor/images/flags/or.png | Bin 0 -> 9530 bytes .../select2/docs/vendor/images/flags/pa.png | Bin 0 -> 11193 bytes .../select2/docs/vendor/images/flags/ri.png | Bin 0 -> 6927 bytes .../select2/docs/vendor/images/flags/sc.png | Bin 0 -> 4485 bytes .../select2/docs/vendor/images/flags/sd.png | Bin 0 -> 10252 bytes .../select2/docs/vendor/images/flags/tn.png | Bin 0 -> 4005 bytes .../select2/docs/vendor/images/flags/tx.png | Bin 0 -> 1324 bytes .../select2/docs/vendor/images/flags/ut.png | Bin 0 -> 10674 bytes .../select2/docs/vendor/images/flags/va.png | Bin 0 -> 10138 bytes .../select2/docs/vendor/images/flags/vt.png | Bin 0 -> 6397 bytes .../select2/docs/vendor/images/flags/wa.png | Bin 0 -> 45254 bytes .../select2/docs/vendor/images/flags/wi.png | Bin 0 -> 8539 bytes .../select2/docs/vendor/images/flags/wv.png | Bin 0 -> 45254 bytes .../select2/docs/vendor/images/flags/wy.png | Bin 0 -> 4343 bytes .../select2/docs/vendor/js/anchor.min.js | 6 + .../select2/docs/vendor/js/bootstrap.min.js | 6 + .../select2/docs/vendor/js/jquery.min.js | 4 + .../docs/vendor/js/placeholders.jquery.min.js | 2 + .../select2/docs/vendor/js/prettify.min.js | 28 + static/vendors/select2/package.json | 66 + static/vendors/select2/select2.jquery.json | 32 + static/vendors/select2/src/js/banner.end.js | 6 + static/vendors/select2/src/js/banner.start.js | 6 + .../select2/src/js/jquery.mousewheel.shim.js | 6 + .../vendors/select2/src/js/jquery.select2.js | 57 + static/vendors/select2/src/js/jquery.shim.js | 14 + .../src/js/select2/compat/containerCss.js | 56 + .../src/js/select2/compat/dropdownCss.js | 56 + .../src/js/select2/compat/initSelection.js | 42 + .../src/js/select2/compat/inputData.js | 127 + .../select2/src/js/select2/compat/matcher.js | 42 + .../select2/src/js/select2/compat/query.js | 26 + .../select2/src/js/select2/compat/utils.js | 43 + static/vendors/select2/src/js/select2/core.js | 612 + .../select2/src/js/select2/data/ajax.js | 109 + .../select2/src/js/select2/data/array.js | 79 + .../select2/src/js/select2/data/base.js | 40 + .../src/js/select2/data/maximumInputLength.js | 31 + .../js/select2/data/maximumSelectionLength.js | 31 + .../src/js/select2/data/minimumInputLength.js | 30 + .../select2/src/js/select2/data/select.js | 285 + .../select2/src/js/select2/data/tags.js | 125 + .../select2/src/js/select2/data/tokenizer.js | 116 + .../select2/src/js/select2/defaults.js | 396 + .../select2/src/js/select2/diacritics.js | 847 + .../select2/src/js/select2/dropdown.js | 42 + .../src/js/select2/dropdown/attachBody.js | 222 + .../js/select2/dropdown/attachContainer.js | 18 + .../src/js/select2/dropdown/closeOnSelect.js | 35 + .../js/select2/dropdown/hidePlaceholder.js | 42 + .../src/js/select2/dropdown/infiniteScroll.js | 89 + .../dropdown/minimumResultsForSearch.js | 39 + .../select2/src/js/select2/dropdown/search.js | 101 + .../src/js/select2/dropdown/selectOnClose.js | 50 + .../js/select2/dropdown/stopPropagation.js | 38 + .../vendors/select2/src/js/select2/i18n/ar.js | 36 + .../vendors/select2/src/js/select2/i18n/az.js | 27 + .../vendors/select2/src/js/select2/i18n/bg.js | 47 + .../vendors/select2/src/js/select2/i18n/ca.js | 52 + .../vendors/select2/src/js/select2/i18n/cs.js | 61 + .../vendors/select2/src/js/select2/i18n/da.js | 40 + .../vendors/select2/src/js/select2/i18n/de.js | 37 + .../vendors/select2/src/js/select2/i18n/el.js | 52 + .../vendors/select2/src/js/select2/i18n/en.js | 44 + .../vendors/select2/src/js/select2/i18n/es.js | 52 + .../vendors/select2/src/js/select2/i18n/et.js | 53 + .../vendors/select2/src/js/select2/i18n/eu.js | 51 + .../vendors/select2/src/js/select2/i18n/fa.js | 38 + .../vendors/select2/src/js/select2/i18n/fi.js | 27 + .../vendors/select2/src/js/select2/i18n/fr.js | 49 + .../vendors/select2/src/js/select2/i18n/gl.js | 51 + .../vendors/select2/src/js/select2/i18n/he.js | 56 + .../vendors/select2/src/js/select2/i18n/hi.js | 39 + .../vendors/select2/src/js/select2/i18n/hr.js | 44 + .../vendors/select2/src/js/select2/i18n/hu.js | 27 + .../vendors/select2/src/js/select2/i18n/id.js | 30 + .../vendors/select2/src/js/select2/i18n/is.js | 41 + .../vendors/select2/src/js/select2/i18n/it.js | 48 + .../vendors/select2/src/js/select2/i18n/ja.js | 36 + .../vendors/select2/src/js/select2/i18n/km.js | 36 + .../vendors/select2/src/js/select2/i18n/ko.js | 36 + .../vendors/select2/src/js/select2/i18n/lt.js | 52 + .../vendors/select2/src/js/select2/i18n/lv.js | 51 + .../vendors/select2/src/js/select2/i18n/mk.js | 47 + .../vendors/select2/src/js/select2/i18n/ms.js | 30 + .../vendors/select2/src/js/select2/i18n/nb.js | 38 + .../vendors/select2/src/js/select2/i18n/nl.js | 43 + .../vendors/select2/src/js/select2/i18n/pl.js | 45 + .../select2/src/js/select2/i18n/pt-BR.js | 46 + .../vendors/select2/src/js/select2/i18n/pt.js | 40 + .../vendors/select2/src/js/select2/i18n/ro.js | 46 + .../vendors/select2/src/js/select2/i18n/ru.js | 58 + .../vendors/select2/src/js/select2/i18n/sk.js | 56 + .../select2/src/js/select2/i18n/sr-Cyrl.js | 55 + .../vendors/select2/src/js/select2/i18n/sr.js | 55 + .../vendors/select2/src/js/select2/i18n/sv.js | 37 + .../vendors/select2/src/js/select2/i18n/th.js | 33 + .../vendors/select2/src/js/select2/i18n/tr.js | 33 + .../vendors/select2/src/js/select2/i18n/uk.js | 43 + .../vendors/select2/src/js/select2/i18n/vi.js | 37 + .../select2/src/js/select2/i18n/zh-CN.js | 36 + .../select2/src/js/select2/i18n/zh-TW.js | 33 + static/vendors/select2/src/js/select2/keys.js | 25 + .../vendors/select2/src/js/select2/options.js | 122 + .../vendors/select2/src/js/select2/results.js | 523 + .../src/js/select2/selection/allowClear.js | 97 + .../select2/src/js/select2/selection/base.js | 158 + .../src/js/select2/selection/clickMask.js | 29 + .../src/js/select2/selection/eventRelay.js | 45 + .../src/js/select2/selection/multiple.js | 109 + .../src/js/select2/selection/placeholder.js | 49 + .../src/js/select2/selection/search.js | 222 + .../src/js/select2/selection/single.js | 99 + .../js/select2/selection/stopPropagation.js | 38 + .../select2/src/js/select2/translation.js | 36 + .../vendors/select2/src/js/select2/utils.js | 276 + static/vendors/select2/src/js/wrapper.end.js | 12 + .../vendors/select2/src/js/wrapper.start.js | 23 + .../vendors/select2/src/scss/_dropdown.scss | 73 + .../vendors/select2/src/scss/_multiple.scss | 35 + static/vendors/select2/src/scss/_single.scss | 34 + static/vendors/select2/src/scss/core.scss | 48 + .../select2/src/scss/mixins/_gradients.scss | 13 + .../src/scss/theme/classic/_defaults.scss | 34 + .../src/scss/theme/classic/_multiple.scss | 93 + .../src/scss/theme/classic/_single.scss | 124 + .../src/scss/theme/classic/layout.scss | 64 + .../src/scss/theme/default/_multiple.scss | 98 + .../src/scss/theme/default/_single.scss | 83 + .../src/scss/theme/default/layout.scss | 97 + .../select2/tests/a11y/search-tests.js | 51 + .../select2/tests/a11y/selection-tests.js | 154 + .../vendors/select2/tests/data/array-tests.js | 318 + .../vendors/select2/tests/data/base-tests.js | 29 + .../select2/tests/data/inputData-tests.js | 158 + .../tests/data/maximumInputLength-tests.js | 138 + .../data/maximumSelectionLength-tests.js | 202 + .../tests/data/minimumInputLength-tests.js | 138 + .../select2/tests/data/select-tests.js | 457 + .../vendors/select2/tests/data/tags-tests.js | 261 + .../select2/tests/data/tokenizer-tests.js | 219 + .../tests/dropdown/dropdownCss-tests.js | 104 + .../tests/dropdown/positioning-tests.js | 177 + .../tests/dropdown/selectOnClose-tests.js | 137 + .../tests/dropdown/stopPropagation-tests.js | 33 + static/vendors/select2/tests/helpers.js | 46 + static/vendors/select2/tests/integration.html | 21 + .../select2/tests/integration/dom-changes.js | 257 + .../select2/tests/integration/jquery-calls.js | 30 + .../tests/integration/select2-methods.js | 139 + .../select2/tests/options/ajax-tests.js | 32 + .../select2/tests/options/data-tests.js | 44 + .../select2/tests/options/deprecated-tests.js | 250 + .../tests/options/translation-tests.js | 28 + .../select2/tests/options/width-tests.js | 66 + .../select2/tests/results/focusing-tests.js | 138 + .../tests/selection/allowClear-tests.js | 218 + .../tests/selection/containerCss-tests.js | 104 + .../select2/tests/selection/multiple-tests.js | 149 + .../tests/selection/placeholder-tests.js | 74 + .../select2/tests/selection/search-tests.js | 191 + .../select2/tests/selection/single-tests.js | 117 + .../tests/selection/stopPropagation-tests.js | 33 + static/vendors/select2/tests/unit.html | 95 + .../select2/tests/utils/decorator-tests.js | 189 + .../select2/tests/utils/escapeMarkup-tests.js | 36 + .../select2/tests/vendor/jquery-1.7.2.js | 9404 ++ .../select2/tests/vendor/qunit-1.23.1.css | 305 + .../select2/tests/vendor/qunit-1.23.1.js | 4334 + static/vendors/select2/vendor/jquery-2.1.0.js | 9111 ++ static/vendors/skycons/.bower.json | 13 + static/vendors/skycons/.gitignore | 1 + static/vendors/skycons/README.md | 50 + static/vendors/skycons/index.html | 156 + static/vendors/skycons/skycons.js | 730 + static/vendors/starrr/.bower.json | 29 + static/vendors/starrr/Gruntfile.coffee | 30 + static/vendors/starrr/README.md | 73 + static/vendors/starrr/bower.json | 18 + static/vendors/starrr/dist/starrr.css | 8 + static/vendors/starrr/dist/starrr.js | 98 + static/vendors/starrr/index.html | 90 + static/vendors/starrr/package.json | 13 + static/vendors/starrr/src/starrr.coffee | 66 + static/vendors/starrr/src/starrr.scss | 13 + static/vendors/switchery/.bower.json | 44 + static/vendors/switchery/CHANGELOG.md | 139 + static/vendors/switchery/bower.json | 35 + static/vendors/switchery/dist/switchery.css | 64 + static/vendors/switchery/dist/switchery.js | 1955 + .../vendors/switchery/dist/switchery.min.css | 1 + .../vendors/switchery/dist/switchery.min.js | 1 + static/vendors/switchery/meteor/export.js | 3 + static/vendors/switchery/meteor/tests.js | 10 + static/vendors/switchery/package.js | 24 + static/vendors/switchery/package.json | 22 + static/vendors/switchery/switchery.css | 67 + static/vendors/switchery/switchery.js | 384 + static/vendors/transitionize/.bower.json | 38 + static/vendors/transitionize/bower.json | 29 + .../transitionize/dist/transitionize.js | 275 + .../transitionize/dist/transitionize.min.js | 1 + .../transitionize/examples/browserify.js | 46 + .../transitionize/examples/example.html | 31 + static/vendors/transitionize/package.json | 19 + static/vendors/transitionize/transitionize.js | 64 + static/vendors/validator/.bower.json | 14 + static/vendors/validator/.gitattributes | 22 + static/vendors/validator/.gitignore | 164 + static/vendors/validator/README.md | 208 + static/vendors/validator/fv.css | 123 + static/vendors/validator/index.html | 270 + static/vendors/validator/multifield.js | 60 + static/vendors/validator/package.json | 22 + static/vendors/validator/validator.js | 594 + 4923 files changed, 1976204 insertions(+) create mode 100644 static/.DS_Store create mode 100644 static/admin/css/autocomplete.css create mode 100644 static/admin/css/base.css create mode 100644 static/admin/css/changelists.css create mode 100644 static/admin/css/dashboard.css create mode 100644 static/admin/css/fonts.css create mode 100644 static/admin/css/forms.css create mode 100644 static/admin/css/login.css create mode 100644 static/admin/css/responsive.css create mode 100644 static/admin/css/responsive_rtl.css create mode 100644 static/admin/css/rtl.css create mode 100644 static/admin/css/vendor/select2/LICENSE-SELECT2.md create mode 100644 static/admin/css/vendor/select2/select2.css create mode 100644 static/admin/css/vendor/select2/select2.min.css create mode 100644 static/admin/css/widgets.css create mode 100644 static/admin/fonts/LICENSE.txt create mode 100644 static/admin/fonts/README.txt create mode 100644 static/admin/fonts/Roboto-Bold-webfont.woff create mode 100644 static/admin/fonts/Roboto-Light-webfont.woff create mode 100644 static/admin/fonts/Roboto-Regular-webfont.woff create mode 100644 static/admin/img/LICENSE create mode 100644 static/admin/img/README.txt create mode 100644 static/admin/img/calendar-icons.svg create mode 100644 static/admin/img/gis/move_vertex_off.svg create mode 100644 static/admin/img/gis/move_vertex_on.svg create mode 100644 static/admin/img/icon-addlink.svg create mode 100644 static/admin/img/icon-alert.svg create mode 100644 static/admin/img/icon-calendar.svg create mode 100644 static/admin/img/icon-changelink.svg create mode 100644 static/admin/img/icon-clock.svg create mode 100644 static/admin/img/icon-deletelink.svg create mode 100644 static/admin/img/icon-no.svg create mode 100644 static/admin/img/icon-unknown-alt.svg create mode 100644 static/admin/img/icon-unknown.svg create mode 100644 static/admin/img/icon-viewlink.svg create mode 100644 static/admin/img/icon-yes.svg create mode 100644 static/admin/img/inline-delete.svg create mode 100644 static/admin/img/search.svg create mode 100644 static/admin/img/selector-icons.svg create mode 100644 static/admin/img/sorting-icons.svg create mode 100644 static/admin/img/tooltag-add.svg create mode 100644 static/admin/img/tooltag-arrowright.svg create mode 100644 static/admin/js/SelectBox.js create mode 100644 static/admin/js/SelectFilter2.js create mode 100644 static/admin/js/actions.js create mode 100644 static/admin/js/actions.min.js create mode 100644 static/admin/js/admin/DateTimeShortcuts.js create mode 100644 static/admin/js/admin/RelatedObjectLookups.js create mode 100644 static/admin/js/autocomplete.js create mode 100644 static/admin/js/calendar.js create mode 100644 static/admin/js/cancel.js create mode 100644 static/admin/js/change_form.js create mode 100644 static/admin/js/collapse.js create mode 100644 static/admin/js/collapse.min.js create mode 100644 static/admin/js/core.js create mode 100644 static/admin/js/inlines.js create mode 100644 static/admin/js/inlines.min.js create mode 100644 static/admin/js/jquery.init.js create mode 100644 static/admin/js/popup_response.js create mode 100644 static/admin/js/prepopulate.js create mode 100644 static/admin/js/prepopulate.min.js create mode 100644 static/admin/js/prepopulate_init.js create mode 100644 static/admin/js/urlify.js create mode 100644 static/admin/js/vendor/jquery/LICENSE.txt create mode 100644 static/admin/js/vendor/jquery/jquery.js create mode 100644 static/admin/js/vendor/jquery/jquery.min.js create mode 100644 static/admin/js/vendor/select2/LICENSE.md create mode 100644 static/admin/js/vendor/select2/i18n/af.js create mode 100644 static/admin/js/vendor/select2/i18n/ar.js create mode 100644 static/admin/js/vendor/select2/i18n/az.js create mode 100644 static/admin/js/vendor/select2/i18n/bg.js create mode 100644 static/admin/js/vendor/select2/i18n/bn.js create mode 100644 static/admin/js/vendor/select2/i18n/bs.js create mode 100644 static/admin/js/vendor/select2/i18n/ca.js create mode 100644 static/admin/js/vendor/select2/i18n/cs.js create mode 100644 static/admin/js/vendor/select2/i18n/da.js create mode 100644 static/admin/js/vendor/select2/i18n/de.js create mode 100644 static/admin/js/vendor/select2/i18n/dsb.js create mode 100644 static/admin/js/vendor/select2/i18n/el.js create mode 100644 static/admin/js/vendor/select2/i18n/en.js create mode 100644 static/admin/js/vendor/select2/i18n/es.js create mode 100644 static/admin/js/vendor/select2/i18n/et.js create mode 100644 static/admin/js/vendor/select2/i18n/eu.js create mode 100644 static/admin/js/vendor/select2/i18n/fa.js create mode 100644 static/admin/js/vendor/select2/i18n/fi.js create mode 100644 static/admin/js/vendor/select2/i18n/fr.js create mode 100644 static/admin/js/vendor/select2/i18n/gl.js create mode 100644 static/admin/js/vendor/select2/i18n/he.js create mode 100644 static/admin/js/vendor/select2/i18n/hi.js create mode 100644 static/admin/js/vendor/select2/i18n/hr.js create mode 100644 static/admin/js/vendor/select2/i18n/hsb.js create mode 100644 static/admin/js/vendor/select2/i18n/hu.js create mode 100644 static/admin/js/vendor/select2/i18n/hy.js create mode 100644 static/admin/js/vendor/select2/i18n/id.js create mode 100644 static/admin/js/vendor/select2/i18n/is.js create mode 100644 static/admin/js/vendor/select2/i18n/it.js create mode 100644 static/admin/js/vendor/select2/i18n/ja.js create mode 100644 static/admin/js/vendor/select2/i18n/ka.js create mode 100644 static/admin/js/vendor/select2/i18n/km.js create mode 100644 static/admin/js/vendor/select2/i18n/ko.js create mode 100644 static/admin/js/vendor/select2/i18n/lt.js create mode 100644 static/admin/js/vendor/select2/i18n/lv.js create mode 100644 static/admin/js/vendor/select2/i18n/mk.js create mode 100644 static/admin/js/vendor/select2/i18n/ms.js create mode 100644 static/admin/js/vendor/select2/i18n/nb.js create mode 100644 static/admin/js/vendor/select2/i18n/ne.js create mode 100644 static/admin/js/vendor/select2/i18n/nl.js create mode 100644 static/admin/js/vendor/select2/i18n/pl.js create mode 100644 static/admin/js/vendor/select2/i18n/ps.js create mode 100644 static/admin/js/vendor/select2/i18n/pt-BR.js create mode 100644 static/admin/js/vendor/select2/i18n/pt.js create mode 100644 static/admin/js/vendor/select2/i18n/ro.js create mode 100644 static/admin/js/vendor/select2/i18n/ru.js create mode 100644 static/admin/js/vendor/select2/i18n/sk.js create mode 100644 static/admin/js/vendor/select2/i18n/sl.js create mode 100644 static/admin/js/vendor/select2/i18n/sq.js create mode 100644 static/admin/js/vendor/select2/i18n/sr-Cyrl.js create mode 100644 static/admin/js/vendor/select2/i18n/sr.js create mode 100644 static/admin/js/vendor/select2/i18n/sv.js create mode 100644 static/admin/js/vendor/select2/i18n/th.js create mode 100644 static/admin/js/vendor/select2/i18n/tk.js create mode 100644 static/admin/js/vendor/select2/i18n/tr.js create mode 100644 static/admin/js/vendor/select2/i18n/uk.js create mode 100644 static/admin/js/vendor/select2/i18n/vi.js create mode 100644 static/admin/js/vendor/select2/i18n/zh-CN.js create mode 100644 static/admin/js/vendor/select2/i18n/zh-TW.js create mode 100644 static/admin/js/vendor/select2/select2.full.js create mode 100644 static/admin/js/vendor/select2/select2.full.min.js create mode 100644 static/admin/js/vendor/xregexp/LICENSE.txt create mode 100644 static/admin/js/vendor/xregexp/xregexp.js create mode 100644 static/admin/js/vendor/xregexp/xregexp.min.js create mode 100644 static/admin_interface/favico/favico-0.3.10-patched.js create mode 100644 static/admin_interface/favico/favico-0.3.10-patched.min.js create mode 100644 static/admin_interface/magnific-popup/jquery.magnific-popup.js create mode 100644 static/admin_interface/magnific-popup/magnific-popup.css create mode 100644 static/admin_interface/related-modal/related-modal.js create mode 100644 static/build/.DS_Store create mode 100644 static/build/css/custom.css create mode 100644 static/build/css/custom.min.css create mode 100755 static/build/images/back_disabled.png create mode 100755 static/build/images/back_enabled.png create mode 100755 static/build/images/back_enabled_hover.png create mode 100755 static/build/images/forward_disabled.png create mode 100755 static/build/images/forward_enabled.png create mode 100755 static/build/images/forward_enabled_hover.png create mode 100644 static/build/images/loading.gif create mode 100644 static/build/images/logoprisma.png create mode 100644 static/build/js/custom.js create mode 100644 static/build/js/custom.min.js create mode 100644 static/ckeditor/ckeditor/skins/light/LICENSE create mode 100644 static/ckeditor/ckeditor/skins/light/README.md create mode 100644 static/ckeditor/ckeditor/skins/light/bower.json create mode 100644 static/ckeditor/ckeditor/skins/light/dialog.css create mode 100644 static/ckeditor/ckeditor/skins/light/editor.css create mode 100644 static/ckeditor/ckeditor/skins/light/editor_gecko.css create mode 100644 static/ckeditor/ckeditor/skins/light/editor_ie.css create mode 100644 static/ckeditor/ckeditor/skins/light/editor_ie7.css create mode 100644 static/ckeditor/ckeditor/skins/light/editor_ie8.css create mode 100644 static/ckeditor/ckeditor/skins/light/icons.png create mode 100644 static/ckeditor/ckeditor/skins/light/icons_hidpi.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/arrow.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/close.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/hidpi/close.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/hidpi/lock-open.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/hidpi/lock.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/hidpi/refresh.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/lock-open.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/lock.png create mode 100644 static/ckeditor/ckeditor/skins/light/images/refresh.png create mode 100644 static/ckeditor/ckeditor/skins/light/skin.js create mode 100644 static/colorfield/colorfield.js create mode 100644 static/colorfield/jscolor/jscolor.js create mode 100644 static/colorfield/jscolor/jscolor.min.js create mode 100644 static/ordered_model/arrow-bottom.gif create mode 100644 static/ordered_model/arrow-down.gif create mode 100644 static/ordered_model/arrow-top.gif create mode 100644 static/ordered_model/arrow-up.gif create mode 100644 static/suit/css/font-awesome.min.css create mode 100644 static/suit/css/suit.css create mode 100644 static/suit/fonts/FontAwesome.otf create mode 100644 static/suit/fonts/fontawesome-webfont.eot create mode 100644 static/suit/fonts/fontawesome-webfont.svg create mode 100644 static/suit/fonts/fontawesome-webfont.ttf create mode 100644 static/suit/fonts/fontawesome-webfont.woff create mode 100644 static/suit/fonts/fontawesome-webfont.woff2 create mode 100644 static/suit/js/autosize.min.js create mode 100644 static/suit/js/suit.js create mode 100644 static/suit/js/suit.sortables.js create mode 100644 static/vendors/Chart.js/.bower.json create mode 100644 static/vendors/Chart.js/.codeclimate.yml create mode 100644 static/vendors/Chart.js/.editorconfig create mode 100644 static/vendors/Chart.js/.eslintignore create mode 100644 static/vendors/Chart.js/.eslintrc create mode 100644 static/vendors/Chart.js/.github/ISSUE_TEMPLATE.md create mode 100644 static/vendors/Chart.js/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 static/vendors/Chart.js/.gitignore create mode 100644 static/vendors/Chart.js/.travis.yml create mode 100644 static/vendors/Chart.js/CONTRIBUTING.md create mode 100644 static/vendors/Chart.js/LICENSE.md create mode 100644 static/vendors/Chart.js/README.md create mode 100644 static/vendors/Chart.js/bower.json create mode 100644 static/vendors/Chart.js/composer.json create mode 100644 static/vendors/Chart.js/config.jshintrc create mode 100644 static/vendors/Chart.js/dist/Chart.bundle.js create mode 100644 static/vendors/Chart.js/dist/Chart.bundle.min.js create mode 100644 static/vendors/Chart.js/dist/Chart.js create mode 100644 static/vendors/Chart.js/dist/Chart.min.js create mode 100644 static/vendors/Chart.js/docs/00-Getting-Started.md create mode 100644 static/vendors/Chart.js/docs/01-Chart-Configuration.md create mode 100644 static/vendors/Chart.js/docs/02-Scales.md create mode 100644 static/vendors/Chart.js/docs/03-Line-Chart.md create mode 100644 static/vendors/Chart.js/docs/04-Bar-Chart.md create mode 100644 static/vendors/Chart.js/docs/05-Radar-Chart.md create mode 100644 static/vendors/Chart.js/docs/06-Polar-Area-Chart.md create mode 100644 static/vendors/Chart.js/docs/07-Pie-Doughnut-Chart.md create mode 100644 static/vendors/Chart.js/docs/08-Bubble-Chart.md create mode 100644 static/vendors/Chart.js/docs/09-Advanced.md create mode 100644 static/vendors/Chart.js/docs/10-Notes.md create mode 100644 static/vendors/Chart.js/gulpfile.js create mode 100644 static/vendors/Chart.js/karma.conf.ci.js create mode 100644 static/vendors/Chart.js/karma.conf.js create mode 100644 static/vendors/Chart.js/karma.coverage.conf.js create mode 100644 static/vendors/Chart.js/package.json create mode 100644 static/vendors/Chart.js/samples/AnimationCallbacks/progress-bar.html create mode 100644 static/vendors/Chart.js/samples/bar-horizontal.html create mode 100644 static/vendors/Chart.js/samples/bar-multi-axis.html create mode 100644 static/vendors/Chart.js/samples/bar-stacked.html create mode 100644 static/vendors/Chart.js/samples/bar.html create mode 100644 static/vendors/Chart.js/samples/bubble.html create mode 100644 static/vendors/Chart.js/samples/combo-bar-line.html create mode 100644 static/vendors/Chart.js/samples/data_label_combo-bar-line.html create mode 100644 static/vendors/Chart.js/samples/different-point-sizes.html create mode 100644 static/vendors/Chart.js/samples/doughnut.html create mode 100644 static/vendors/Chart.js/samples/line-customTooltips.html create mode 100644 static/vendors/Chart.js/samples/line-legend.html create mode 100644 static/vendors/Chart.js/samples/line-logarithmic.html create mode 100644 static/vendors/Chart.js/samples/line-multi-axis.html create mode 100644 static/vendors/Chart.js/samples/line-skip-points.html create mode 100644 static/vendors/Chart.js/samples/line-stacked-area.html create mode 100644 static/vendors/Chart.js/samples/line-x-axis-filter.html create mode 100644 static/vendors/Chart.js/samples/line.html create mode 100644 static/vendors/Chart.js/samples/pie-customTooltips.html create mode 100644 static/vendors/Chart.js/samples/pie.html create mode 100644 static/vendors/Chart.js/samples/polar-area.html create mode 100644 static/vendors/Chart.js/samples/radar-skip-points.html create mode 100644 static/vendors/Chart.js/samples/radar.html create mode 100644 static/vendors/Chart.js/samples/scatter-logX.html create mode 100644 static/vendors/Chart.js/samples/scatter-multi-axis.html create mode 100644 static/vendors/Chart.js/samples/scatter.html create mode 100644 static/vendors/Chart.js/samples/timeScale/combo-time-scale.html create mode 100644 static/vendors/Chart.js/samples/timeScale/line-time-point-data.html create mode 100644 static/vendors/Chart.js/samples/timeScale/line-time-scale.html create mode 100644 static/vendors/Chart.js/samples/tooltip-hooks.html create mode 100644 static/vendors/Chart.js/src/chart.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Bar.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Bubble.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Doughnut.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Line.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.PolarArea.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Radar.js create mode 100644 static/vendors/Chart.js/src/charts/Chart.Scatter.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.bar.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.bubble.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.doughnut.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.line.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.polarArea.js create mode 100644 static/vendors/Chart.js/src/controllers/controller.radar.js create mode 100644 static/vendors/Chart.js/src/core/core.animation.js create mode 100644 static/vendors/Chart.js/src/core/core.controller.js create mode 100644 static/vendors/Chart.js/src/core/core.datasetController.js create mode 100644 static/vendors/Chart.js/src/core/core.element.js create mode 100644 static/vendors/Chart.js/src/core/core.helpers.js create mode 100755 static/vendors/Chart.js/src/core/core.js create mode 100644 static/vendors/Chart.js/src/core/core.layoutService.js create mode 100644 static/vendors/Chart.js/src/core/core.legend.js create mode 100644 static/vendors/Chart.js/src/core/core.plugin.js create mode 100644 static/vendors/Chart.js/src/core/core.scale.js create mode 100644 static/vendors/Chart.js/src/core/core.scaleService.js create mode 100644 static/vendors/Chart.js/src/core/core.title.js create mode 100644 static/vendors/Chart.js/src/core/core.tooltip.js create mode 100644 static/vendors/Chart.js/src/elements/element.arc.js create mode 100644 static/vendors/Chart.js/src/elements/element.line.js create mode 100644 static/vendors/Chart.js/src/elements/element.point.js create mode 100644 static/vendors/Chart.js/src/elements/element.rectangle.js create mode 100644 static/vendors/Chart.js/src/scales/scale.category.js create mode 100644 static/vendors/Chart.js/src/scales/scale.linear.js create mode 100644 static/vendors/Chart.js/src/scales/scale.logarithmic.js create mode 100644 static/vendors/Chart.js/src/scales/scale.radialLinear.js create mode 100644 static/vendors/Chart.js/src/scales/scale.time.js create mode 100644 static/vendors/Chart.js/test/controller.bar.tests.js create mode 100644 static/vendors/Chart.js/test/controller.bubble.tests.js create mode 100644 static/vendors/Chart.js/test/controller.doughnut.tests.js create mode 100644 static/vendors/Chart.js/test/controller.line.tests.js create mode 100644 static/vendors/Chart.js/test/controller.polarArea.tests.js create mode 100644 static/vendors/Chart.js/test/controller.radar.tests.js create mode 100644 static/vendors/Chart.js/test/core.element.tests.js create mode 100644 static/vendors/Chart.js/test/core.helpers.tests.js create mode 100644 static/vendors/Chart.js/test/core.layoutService.tests.js create mode 100644 static/vendors/Chart.js/test/core.legend.tests.js create mode 100644 static/vendors/Chart.js/test/core.plugin.tests.js create mode 100644 static/vendors/Chart.js/test/core.scaleService.tests.js create mode 100644 static/vendors/Chart.js/test/core.title.tests.js create mode 100644 static/vendors/Chart.js/test/defaultConfig.tests.js create mode 100644 static/vendors/Chart.js/test/element.arc.tests.js create mode 100644 static/vendors/Chart.js/test/element.line.tests.js create mode 100644 static/vendors/Chart.js/test/element.point.tests.js create mode 100644 static/vendors/Chart.js/test/element.rectangle.tests.js create mode 100644 static/vendors/Chart.js/test/mockContext.js create mode 100644 static/vendors/Chart.js/test/scale.category.tests.js create mode 100644 static/vendors/Chart.js/test/scale.linear.tests.js create mode 100644 static/vendors/Chart.js/test/scale.logarithmic.tests.js create mode 100644 static/vendors/Chart.js/test/scale.radialLinear.tests.js create mode 100644 static/vendors/Chart.js/test/scale.time.tests.js create mode 100644 static/vendors/DateJS/.bower.json create mode 100644 static/vendors/DateJS/GruntFile.js create mode 100644 static/vendors/DateJS/LICENSE create mode 100644 static/vendors/DateJS/README.md create mode 100644 static/vendors/DateJS/bower.json create mode 100644 static/vendors/DateJS/build/date-af-ZA.js create mode 100644 static/vendors/DateJS/build/date-ar-AE.js create mode 100644 static/vendors/DateJS/build/date-ar-BH.js create mode 100644 static/vendors/DateJS/build/date-ar-DZ.js create mode 100644 static/vendors/DateJS/build/date-ar-EG.js create mode 100644 static/vendors/DateJS/build/date-ar-IQ.js create mode 100644 static/vendors/DateJS/build/date-ar-JO.js create mode 100644 static/vendors/DateJS/build/date-ar-KW.js create mode 100644 static/vendors/DateJS/build/date-ar-LB.js create mode 100644 static/vendors/DateJS/build/date-ar-LY.js create mode 100644 static/vendors/DateJS/build/date-ar-MA.js create mode 100644 static/vendors/DateJS/build/date-ar-OM.js create mode 100644 static/vendors/DateJS/build/date-ar-QA.js create mode 100644 static/vendors/DateJS/build/date-ar-SA.js create mode 100644 static/vendors/DateJS/build/date-ar-SY.js create mode 100644 static/vendors/DateJS/build/date-ar-TN.js create mode 100644 static/vendors/DateJS/build/date-ar-YE.js create mode 100644 static/vendors/DateJS/build/date-az-Cyrl-AZ.js create mode 100644 static/vendors/DateJS/build/date-az-Latn-AZ.js create mode 100644 static/vendors/DateJS/build/date-be-BY.js create mode 100644 static/vendors/DateJS/build/date-bg-BG.js create mode 100644 static/vendors/DateJS/build/date-bs-Latn-BA.js create mode 100644 static/vendors/DateJS/build/date-ca-ES.js create mode 100644 static/vendors/DateJS/build/date-cs-CZ.js create mode 100644 static/vendors/DateJS/build/date-cy-GB.js create mode 100644 static/vendors/DateJS/build/date-da-DK.js create mode 100644 static/vendors/DateJS/build/date-de-AT.js create mode 100644 static/vendors/DateJS/build/date-de-CH.js create mode 100644 static/vendors/DateJS/build/date-de-DE.js create mode 100644 static/vendors/DateJS/build/date-de-LI.js create mode 100644 static/vendors/DateJS/build/date-de-LU.js create mode 100644 static/vendors/DateJS/build/date-dv-MV.js create mode 100644 static/vendors/DateJS/build/date-el-GR.js create mode 100644 static/vendors/DateJS/build/date-en-029.js create mode 100644 static/vendors/DateJS/build/date-en-AU.js create mode 100644 static/vendors/DateJS/build/date-en-BZ.js create mode 100644 static/vendors/DateJS/build/date-en-CA.js create mode 100644 static/vendors/DateJS/build/date-en-GB.js create mode 100644 static/vendors/DateJS/build/date-en-IE.js create mode 100644 static/vendors/DateJS/build/date-en-JM.js create mode 100644 static/vendors/DateJS/build/date-en-NZ.js create mode 100644 static/vendors/DateJS/build/date-en-PH.js create mode 100644 static/vendors/DateJS/build/date-en-TT.js create mode 100644 static/vendors/DateJS/build/date-en-US.js create mode 100644 static/vendors/DateJS/build/date-en-ZA.js create mode 100644 static/vendors/DateJS/build/date-en-ZW.js create mode 100644 static/vendors/DateJS/build/date-es-AR.js create mode 100644 static/vendors/DateJS/build/date-es-BO.js create mode 100644 static/vendors/DateJS/build/date-es-CL.js create mode 100644 static/vendors/DateJS/build/date-es-CO.js create mode 100644 static/vendors/DateJS/build/date-es-CR.js create mode 100644 static/vendors/DateJS/build/date-es-DO.js create mode 100644 static/vendors/DateJS/build/date-es-EC.js create mode 100644 static/vendors/DateJS/build/date-es-ES.js create mode 100644 static/vendors/DateJS/build/date-es-GT.js create mode 100644 static/vendors/DateJS/build/date-es-HN.js create mode 100644 static/vendors/DateJS/build/date-es-MX.js create mode 100644 static/vendors/DateJS/build/date-es-NI.js create mode 100644 static/vendors/DateJS/build/date-es-PA.js create mode 100644 static/vendors/DateJS/build/date-es-PE.js create mode 100644 static/vendors/DateJS/build/date-es-PR.js create mode 100644 static/vendors/DateJS/build/date-es-PY.js create mode 100644 static/vendors/DateJS/build/date-es-SV.js create mode 100644 static/vendors/DateJS/build/date-es-UY.js create mode 100644 static/vendors/DateJS/build/date-es-VE.js create mode 100644 static/vendors/DateJS/build/date-et-EE.js create mode 100644 static/vendors/DateJS/build/date-eu-ES.js create mode 100644 static/vendors/DateJS/build/date-fa-IR.js create mode 100644 static/vendors/DateJS/build/date-fi-FI.js create mode 100644 static/vendors/DateJS/build/date-fo-FO.js create mode 100644 static/vendors/DateJS/build/date-fr-BE.js create mode 100644 static/vendors/DateJS/build/date-fr-CA.js create mode 100644 static/vendors/DateJS/build/date-fr-CH.js create mode 100644 static/vendors/DateJS/build/date-fr-FR.js create mode 100644 static/vendors/DateJS/build/date-fr-LU.js create mode 100644 static/vendors/DateJS/build/date-fr-MC.js create mode 100644 static/vendors/DateJS/build/date-gl-ES.js create mode 100644 static/vendors/DateJS/build/date-gu-IN.js create mode 100644 static/vendors/DateJS/build/date-he-IL.js create mode 100644 static/vendors/DateJS/build/date-hi-IN.js create mode 100644 static/vendors/DateJS/build/date-hr-BA.js create mode 100644 static/vendors/DateJS/build/date-hr-HR.js create mode 100644 static/vendors/DateJS/build/date-hu-HU.js create mode 100644 static/vendors/DateJS/build/date-hy-AM.js create mode 100644 static/vendors/DateJS/build/date-id-ID.js create mode 100644 static/vendors/DateJS/build/date-is-IS.js create mode 100644 static/vendors/DateJS/build/date-it-CH.js create mode 100644 static/vendors/DateJS/build/date-it-IT.js create mode 100644 static/vendors/DateJS/build/date-ja-JP.js create mode 100644 static/vendors/DateJS/build/date-ka-GE.js create mode 100644 static/vendors/DateJS/build/date-kk-KZ.js create mode 100644 static/vendors/DateJS/build/date-kn-IN.js create mode 100644 static/vendors/DateJS/build/date-ko-KR.js create mode 100644 static/vendors/DateJS/build/date-kok-IN.js create mode 100644 static/vendors/DateJS/build/date-ky-KG.js create mode 100644 static/vendors/DateJS/build/date-lt-LT.js create mode 100644 static/vendors/DateJS/build/date-lv-LV.js create mode 100644 static/vendors/DateJS/build/date-mi-NZ.js create mode 100644 static/vendors/DateJS/build/date-mk-MK.js create mode 100644 static/vendors/DateJS/build/date-mn-MN.js create mode 100644 static/vendors/DateJS/build/date-mr-IN.js create mode 100644 static/vendors/DateJS/build/date-ms-BN.js create mode 100644 static/vendors/DateJS/build/date-ms-MY.js create mode 100644 static/vendors/DateJS/build/date-mt-MT.js create mode 100644 static/vendors/DateJS/build/date-nb-NO.js create mode 100644 static/vendors/DateJS/build/date-nl-BE.js create mode 100644 static/vendors/DateJS/build/date-nl-NL.js create mode 100644 static/vendors/DateJS/build/date-nn-NO.js create mode 100644 static/vendors/DateJS/build/date-ns-ZA.js create mode 100644 static/vendors/DateJS/build/date-pa-IN.js create mode 100644 static/vendors/DateJS/build/date-pl-PL.js create mode 100644 static/vendors/DateJS/build/date-pt-BR.js create mode 100644 static/vendors/DateJS/build/date-pt-PT.js create mode 100644 static/vendors/DateJS/build/date-quz-BO.js create mode 100644 static/vendors/DateJS/build/date-quz-EC.js create mode 100644 static/vendors/DateJS/build/date-quz-PE.js create mode 100644 static/vendors/DateJS/build/date-ro-RO.js create mode 100644 static/vendors/DateJS/build/date-ru-RU.js create mode 100644 static/vendors/DateJS/build/date-sa-IN.js create mode 100644 static/vendors/DateJS/build/date-se-FI.js create mode 100644 static/vendors/DateJS/build/date-se-NO.js create mode 100644 static/vendors/DateJS/build/date-se-SE.js create mode 100644 static/vendors/DateJS/build/date-sk-SK.js create mode 100644 static/vendors/DateJS/build/date-sl-SI.js create mode 100644 static/vendors/DateJS/build/date-sma-NO.js create mode 100644 static/vendors/DateJS/build/date-sma-SE.js create mode 100644 static/vendors/DateJS/build/date-smj-NO.js create mode 100644 static/vendors/DateJS/build/date-smj-SE.js create mode 100644 static/vendors/DateJS/build/date-smn-FI.js create mode 100644 static/vendors/DateJS/build/date-sms-FI.js create mode 100644 static/vendors/DateJS/build/date-sq-AL.js create mode 100644 static/vendors/DateJS/build/date-sr-Cyrl-BA.js create mode 100644 static/vendors/DateJS/build/date-sr-Cyrl-CS.js create mode 100644 static/vendors/DateJS/build/date-sr-Latn-BA.js create mode 100644 static/vendors/DateJS/build/date-sr-Latn-CS.js create mode 100644 static/vendors/DateJS/build/date-sv-FI.js create mode 100644 static/vendors/DateJS/build/date-sv-SE.js create mode 100644 static/vendors/DateJS/build/date-sw-KE.js create mode 100644 static/vendors/DateJS/build/date-syr-SY.js create mode 100644 static/vendors/DateJS/build/date-ta-IN.js create mode 100644 static/vendors/DateJS/build/date-te-IN.js create mode 100644 static/vendors/DateJS/build/date-th-TH.js create mode 100644 static/vendors/DateJS/build/date-tn-ZA.js create mode 100644 static/vendors/DateJS/build/date-tr-TR.js create mode 100644 static/vendors/DateJS/build/date-tt-RU.js create mode 100644 static/vendors/DateJS/build/date-uk-UA.js create mode 100644 static/vendors/DateJS/build/date-ur-PK.js create mode 100644 static/vendors/DateJS/build/date-uz-Cyrl-UZ.js create mode 100644 static/vendors/DateJS/build/date-uz-Latn-UZ.js create mode 100644 static/vendors/DateJS/build/date-vi-VN.js create mode 100644 static/vendors/DateJS/build/date-xh-ZA.js create mode 100644 static/vendors/DateJS/build/date-zh-CN.js create mode 100644 static/vendors/DateJS/build/date-zh-HK.js create mode 100644 static/vendors/DateJS/build/date-zh-MO.js create mode 100644 static/vendors/DateJS/build/date-zh-SG.js create mode 100644 static/vendors/DateJS/build/date-zh-TW.js create mode 100644 static/vendors/DateJS/build/date-zu-ZA.js create mode 100644 static/vendors/DateJS/build/date.js create mode 100644 static/vendors/DateJS/build/i18n/af-ZA.js create mode 100644 static/vendors/DateJS/build/i18n/ar-AE.js create mode 100644 static/vendors/DateJS/build/i18n/ar-BH.js create mode 100644 static/vendors/DateJS/build/i18n/ar-DZ.js create mode 100644 static/vendors/DateJS/build/i18n/ar-EG.js create mode 100644 static/vendors/DateJS/build/i18n/ar-IQ.js create mode 100644 static/vendors/DateJS/build/i18n/ar-JO.js create mode 100644 static/vendors/DateJS/build/i18n/ar-KW.js create mode 100644 static/vendors/DateJS/build/i18n/ar-LB.js create mode 100644 static/vendors/DateJS/build/i18n/ar-LY.js create mode 100644 static/vendors/DateJS/build/i18n/ar-MA.js create mode 100644 static/vendors/DateJS/build/i18n/ar-OM.js create mode 100644 static/vendors/DateJS/build/i18n/ar-QA.js create mode 100644 static/vendors/DateJS/build/i18n/ar-SA.js create mode 100644 static/vendors/DateJS/build/i18n/ar-SY.js create mode 100644 static/vendors/DateJS/build/i18n/ar-TN.js create mode 100644 static/vendors/DateJS/build/i18n/ar-YE.js create mode 100644 static/vendors/DateJS/build/i18n/az-Cyrl-AZ.js create mode 100644 static/vendors/DateJS/build/i18n/az-Latn-AZ.js create mode 100644 static/vendors/DateJS/build/i18n/be-BY.js create mode 100644 static/vendors/DateJS/build/i18n/bg-BG.js create mode 100644 static/vendors/DateJS/build/i18n/bs-Latn-BA.js create mode 100644 static/vendors/DateJS/build/i18n/ca-ES.js create mode 100644 static/vendors/DateJS/build/i18n/cs-CZ.js create mode 100644 static/vendors/DateJS/build/i18n/cy-GB.js create mode 100644 static/vendors/DateJS/build/i18n/da-DK.js create mode 100644 static/vendors/DateJS/build/i18n/de-AT.js create mode 100644 static/vendors/DateJS/build/i18n/de-CH.js create mode 100644 static/vendors/DateJS/build/i18n/de-DE.js create mode 100644 static/vendors/DateJS/build/i18n/de-LI.js create mode 100644 static/vendors/DateJS/build/i18n/de-LU.js create mode 100644 static/vendors/DateJS/build/i18n/dv-MV.js create mode 100644 static/vendors/DateJS/build/i18n/el-GR.js create mode 100644 static/vendors/DateJS/build/i18n/en-029.js create mode 100644 static/vendors/DateJS/build/i18n/en-AU.js create mode 100644 static/vendors/DateJS/build/i18n/en-BZ.js create mode 100644 static/vendors/DateJS/build/i18n/en-CA.js create mode 100644 static/vendors/DateJS/build/i18n/en-GB.js create mode 100644 static/vendors/DateJS/build/i18n/en-IE.js create mode 100644 static/vendors/DateJS/build/i18n/en-JM.js create mode 100644 static/vendors/DateJS/build/i18n/en-NZ.js create mode 100644 static/vendors/DateJS/build/i18n/en-PH.js create mode 100644 static/vendors/DateJS/build/i18n/en-TT.js create mode 100644 static/vendors/DateJS/build/i18n/en-ZA.js create mode 100644 static/vendors/DateJS/build/i18n/en-ZW.js create mode 100644 static/vendors/DateJS/build/i18n/es-AR.js create mode 100644 static/vendors/DateJS/build/i18n/es-BO.js create mode 100644 static/vendors/DateJS/build/i18n/es-CL.js create mode 100644 static/vendors/DateJS/build/i18n/es-CO.js create mode 100644 static/vendors/DateJS/build/i18n/es-CR.js create mode 100644 static/vendors/DateJS/build/i18n/es-DO.js create mode 100644 static/vendors/DateJS/build/i18n/es-EC.js create mode 100644 static/vendors/DateJS/build/i18n/es-ES.js create mode 100644 static/vendors/DateJS/build/i18n/es-GT.js create mode 100644 static/vendors/DateJS/build/i18n/es-HN.js create mode 100644 static/vendors/DateJS/build/i18n/es-MX.js create mode 100644 static/vendors/DateJS/build/i18n/es-NI.js create mode 100644 static/vendors/DateJS/build/i18n/es-PA.js create mode 100644 static/vendors/DateJS/build/i18n/es-PE.js create mode 100644 static/vendors/DateJS/build/i18n/es-PR.js create mode 100644 static/vendors/DateJS/build/i18n/es-PY.js create mode 100644 static/vendors/DateJS/build/i18n/es-SV.js create mode 100644 static/vendors/DateJS/build/i18n/es-UY.js create mode 100644 static/vendors/DateJS/build/i18n/es-VE.js create mode 100644 static/vendors/DateJS/build/i18n/et-EE.js create mode 100644 static/vendors/DateJS/build/i18n/eu-ES.js create mode 100644 static/vendors/DateJS/build/i18n/fa-IR.js create mode 100644 static/vendors/DateJS/build/i18n/fi-FI.js create mode 100644 static/vendors/DateJS/build/i18n/fo-FO.js create mode 100644 static/vendors/DateJS/build/i18n/fr-BE.js create mode 100644 static/vendors/DateJS/build/i18n/fr-CA.js create mode 100644 static/vendors/DateJS/build/i18n/fr-CH.js create mode 100644 static/vendors/DateJS/build/i18n/fr-FR.js create mode 100644 static/vendors/DateJS/build/i18n/fr-LU.js create mode 100644 static/vendors/DateJS/build/i18n/fr-MC.js create mode 100644 static/vendors/DateJS/build/i18n/gl-ES.js create mode 100644 static/vendors/DateJS/build/i18n/gu-IN.js create mode 100644 static/vendors/DateJS/build/i18n/he-IL.js create mode 100644 static/vendors/DateJS/build/i18n/hi-IN.js create mode 100644 static/vendors/DateJS/build/i18n/hr-BA.js create mode 100644 static/vendors/DateJS/build/i18n/hr-HR.js create mode 100644 static/vendors/DateJS/build/i18n/hu-HU.js create mode 100644 static/vendors/DateJS/build/i18n/hy-AM.js create mode 100644 static/vendors/DateJS/build/i18n/id-ID.js create mode 100644 static/vendors/DateJS/build/i18n/is-IS.js create mode 100644 static/vendors/DateJS/build/i18n/it-CH.js create mode 100644 static/vendors/DateJS/build/i18n/it-IT.js create mode 100644 static/vendors/DateJS/build/i18n/ja-JP.js create mode 100644 static/vendors/DateJS/build/i18n/ka-GE.js create mode 100644 static/vendors/DateJS/build/i18n/kk-KZ.js create mode 100644 static/vendors/DateJS/build/i18n/kn-IN.js create mode 100644 static/vendors/DateJS/build/i18n/ko-KR.js create mode 100644 static/vendors/DateJS/build/i18n/kok-IN.js create mode 100644 static/vendors/DateJS/build/i18n/ky-KG.js create mode 100644 static/vendors/DateJS/build/i18n/lt-LT.js create mode 100644 static/vendors/DateJS/build/i18n/lv-LV.js create mode 100644 static/vendors/DateJS/build/i18n/mi-NZ.js create mode 100644 static/vendors/DateJS/build/i18n/mk-MK.js create mode 100644 static/vendors/DateJS/build/i18n/mn-MN.js create mode 100644 static/vendors/DateJS/build/i18n/mr-IN.js create mode 100644 static/vendors/DateJS/build/i18n/ms-BN.js create mode 100644 static/vendors/DateJS/build/i18n/ms-MY.js create mode 100644 static/vendors/DateJS/build/i18n/mt-MT.js create mode 100644 static/vendors/DateJS/build/i18n/nb-NO.js create mode 100644 static/vendors/DateJS/build/i18n/nl-BE.js create mode 100644 static/vendors/DateJS/build/i18n/nl-NL.js create mode 100644 static/vendors/DateJS/build/i18n/nn-NO.js create mode 100644 static/vendors/DateJS/build/i18n/ns-ZA.js create mode 100644 static/vendors/DateJS/build/i18n/pa-IN.js create mode 100644 static/vendors/DateJS/build/i18n/pl-PL.js create mode 100644 static/vendors/DateJS/build/i18n/pt-BR.js create mode 100644 static/vendors/DateJS/build/i18n/pt-PT.js create mode 100644 static/vendors/DateJS/build/i18n/quz-BO.js create mode 100644 static/vendors/DateJS/build/i18n/quz-EC.js create mode 100644 static/vendors/DateJS/build/i18n/quz-PE.js create mode 100644 static/vendors/DateJS/build/i18n/ro-RO.js create mode 100644 static/vendors/DateJS/build/i18n/ru-RU.js create mode 100644 static/vendors/DateJS/build/i18n/sa-IN.js create mode 100644 static/vendors/DateJS/build/i18n/se-FI.js create mode 100644 static/vendors/DateJS/build/i18n/se-NO.js create mode 100644 static/vendors/DateJS/build/i18n/se-SE.js create mode 100644 static/vendors/DateJS/build/i18n/sk-SK.js create mode 100644 static/vendors/DateJS/build/i18n/sl-SI.js create mode 100644 static/vendors/DateJS/build/i18n/sma-NO.js create mode 100644 static/vendors/DateJS/build/i18n/sma-SE.js create mode 100644 static/vendors/DateJS/build/i18n/smj-NO.js create mode 100644 static/vendors/DateJS/build/i18n/smj-SE.js create mode 100644 static/vendors/DateJS/build/i18n/smn-FI.js create mode 100644 static/vendors/DateJS/build/i18n/sms-FI.js create mode 100644 static/vendors/DateJS/build/i18n/sq-AL.js create mode 100644 static/vendors/DateJS/build/i18n/sr-Cyrl-BA.js create mode 100644 static/vendors/DateJS/build/i18n/sr-Cyrl-CS.js create mode 100644 static/vendors/DateJS/build/i18n/sr-Latn-BA.js create mode 100644 static/vendors/DateJS/build/i18n/sr-Latn-CS.js create mode 100644 static/vendors/DateJS/build/i18n/sv-FI.js create mode 100644 static/vendors/DateJS/build/i18n/sv-SE.js create mode 100644 static/vendors/DateJS/build/i18n/sw-KE.js create mode 100644 static/vendors/DateJS/build/i18n/syr-SY.js create mode 100644 static/vendors/DateJS/build/i18n/ta-IN.js create mode 100644 static/vendors/DateJS/build/i18n/te-IN.js create mode 100644 static/vendors/DateJS/build/i18n/th-TH.js create mode 100644 static/vendors/DateJS/build/i18n/tn-ZA.js create mode 100644 static/vendors/DateJS/build/i18n/tr-TR.js create mode 100644 static/vendors/DateJS/build/i18n/tt-RU.js create mode 100644 static/vendors/DateJS/build/i18n/uk-UA.js create mode 100644 static/vendors/DateJS/build/i18n/ur-PK.js create mode 100644 static/vendors/DateJS/build/i18n/uz-Cyrl-UZ.js create mode 100644 static/vendors/DateJS/build/i18n/uz-Latn-UZ.js create mode 100644 static/vendors/DateJS/build/i18n/vi-VN.js create mode 100644 static/vendors/DateJS/build/i18n/xh-ZA.js create mode 100644 static/vendors/DateJS/build/i18n/zh-CN.js create mode 100644 static/vendors/DateJS/build/i18n/zh-HK.js create mode 100644 static/vendors/DateJS/build/i18n/zh-MO.js create mode 100644 static/vendors/DateJS/build/i18n/zh-SG.js create mode 100644 static/vendors/DateJS/build/i18n/zh-TW.js create mode 100644 static/vendors/DateJS/build/i18n/zu-ZA.js create mode 100644 static/vendors/DateJS/build/production/date-af-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-AE.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-BH.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-DZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-EG.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-IQ.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-JO.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-KW.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-LB.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-LY.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-MA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-OM.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-QA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-SA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-SY.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-TN.min.js create mode 100644 static/vendors/DateJS/build/production/date-ar-YE.min.js create mode 100644 static/vendors/DateJS/build/production/date-az-Cyrl-AZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-az-Latn-AZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-be-BY.min.js create mode 100644 static/vendors/DateJS/build/production/date-bg-BG.min.js create mode 100644 static/vendors/DateJS/build/production/date-bs-Latn-BA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ca-ES.min.js create mode 100644 static/vendors/DateJS/build/production/date-cs-CZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-cy-GB.min.js create mode 100644 static/vendors/DateJS/build/production/date-da-DK.min.js create mode 100644 static/vendors/DateJS/build/production/date-de-AT.min.js create mode 100644 static/vendors/DateJS/build/production/date-de-CH.min.js create mode 100644 static/vendors/DateJS/build/production/date-de-DE.min.js create mode 100644 static/vendors/DateJS/build/production/date-de-LI.min.js create mode 100644 static/vendors/DateJS/build/production/date-de-LU.min.js create mode 100644 static/vendors/DateJS/build/production/date-dv-MV.min.js create mode 100644 static/vendors/DateJS/build/production/date-el-GR.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-029.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-AU.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-BZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-CA.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-GB.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-IE.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-JM.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-NZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-PH.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-TT.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-US.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date-en-ZW.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-AR.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-BO.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-CL.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-CO.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-CR.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-DO.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-EC.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-ES.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-GT.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-HN.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-MX.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-NI.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-PA.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-PE.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-PR.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-PY.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-SV.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-UY.min.js create mode 100644 static/vendors/DateJS/build/production/date-es-VE.min.js create mode 100644 static/vendors/DateJS/build/production/date-et-EE.min.js create mode 100644 static/vendors/DateJS/build/production/date-eu-ES.min.js create mode 100644 static/vendors/DateJS/build/production/date-fa-IR.min.js create mode 100644 static/vendors/DateJS/build/production/date-fi-FI.min.js create mode 100644 static/vendors/DateJS/build/production/date-fo-FO.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-BE.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-CA.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-CH.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-FR.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-LU.min.js create mode 100644 static/vendors/DateJS/build/production/date-fr-MC.min.js create mode 100644 static/vendors/DateJS/build/production/date-gl-ES.min.js create mode 100644 static/vendors/DateJS/build/production/date-gu-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-he-IL.min.js create mode 100644 static/vendors/DateJS/build/production/date-hi-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-hr-BA.min.js create mode 100644 static/vendors/DateJS/build/production/date-hr-HR.min.js create mode 100644 static/vendors/DateJS/build/production/date-hu-HU.min.js create mode 100644 static/vendors/DateJS/build/production/date-hy-AM.min.js create mode 100644 static/vendors/DateJS/build/production/date-id-ID.min.js create mode 100644 static/vendors/DateJS/build/production/date-is-IS.min.js create mode 100644 static/vendors/DateJS/build/production/date-it-CH.min.js create mode 100644 static/vendors/DateJS/build/production/date-it-IT.min.js create mode 100644 static/vendors/DateJS/build/production/date-ja-JP.min.js create mode 100644 static/vendors/DateJS/build/production/date-ka-GE.min.js create mode 100644 static/vendors/DateJS/build/production/date-kk-KZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-kn-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-ko-KR.min.js create mode 100644 static/vendors/DateJS/build/production/date-kok-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-ky-KG.min.js create mode 100644 static/vendors/DateJS/build/production/date-lt-LT.min.js create mode 100644 static/vendors/DateJS/build/production/date-lv-LV.min.js create mode 100644 static/vendors/DateJS/build/production/date-mi-NZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-mk-MK.min.js create mode 100644 static/vendors/DateJS/build/production/date-mn-MN.min.js create mode 100644 static/vendors/DateJS/build/production/date-mr-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-ms-BN.min.js create mode 100644 static/vendors/DateJS/build/production/date-ms-MY.min.js create mode 100644 static/vendors/DateJS/build/production/date-mt-MT.min.js create mode 100644 static/vendors/DateJS/build/production/date-nb-NO.min.js create mode 100644 static/vendors/DateJS/build/production/date-nl-BE.min.js create mode 100644 static/vendors/DateJS/build/production/date-nl-NL.min.js create mode 100644 static/vendors/DateJS/build/production/date-nn-NO.min.js create mode 100644 static/vendors/DateJS/build/production/date-ns-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date-pa-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-pl-PL.min.js create mode 100644 static/vendors/DateJS/build/production/date-pt-BR.min.js create mode 100644 static/vendors/DateJS/build/production/date-pt-PT.min.js create mode 100644 static/vendors/DateJS/build/production/date-quz-BO.min.js create mode 100644 static/vendors/DateJS/build/production/date-quz-EC.min.js create mode 100644 static/vendors/DateJS/build/production/date-quz-PE.min.js create mode 100644 static/vendors/DateJS/build/production/date-ro-RO.min.js create mode 100644 static/vendors/DateJS/build/production/date-ru-RU.min.js create mode 100644 static/vendors/DateJS/build/production/date-sa-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-se-FI.min.js create mode 100644 static/vendors/DateJS/build/production/date-se-NO.min.js create mode 100644 static/vendors/DateJS/build/production/date-se-SE.min.js create mode 100644 static/vendors/DateJS/build/production/date-sk-SK.min.js create mode 100644 static/vendors/DateJS/build/production/date-sl-SI.min.js create mode 100644 static/vendors/DateJS/build/production/date-sma-NO.min.js create mode 100644 static/vendors/DateJS/build/production/date-sma-SE.min.js create mode 100644 static/vendors/DateJS/build/production/date-smj-NO.min.js create mode 100644 static/vendors/DateJS/build/production/date-smj-SE.min.js create mode 100644 static/vendors/DateJS/build/production/date-smn-FI.min.js create mode 100644 static/vendors/DateJS/build/production/date-sms-FI.min.js create mode 100644 static/vendors/DateJS/build/production/date-sq-AL.min.js create mode 100644 static/vendors/DateJS/build/production/date-sr-Cyrl-BA.min.js create mode 100644 static/vendors/DateJS/build/production/date-sr-Cyrl-CS.min.js create mode 100644 static/vendors/DateJS/build/production/date-sr-Latn-BA.min.js create mode 100644 static/vendors/DateJS/build/production/date-sr-Latn-CS.min.js create mode 100644 static/vendors/DateJS/build/production/date-sv-FI.min.js create mode 100644 static/vendors/DateJS/build/production/date-sv-SE.min.js create mode 100644 static/vendors/DateJS/build/production/date-sw-KE.min.js create mode 100644 static/vendors/DateJS/build/production/date-syr-SY.min.js create mode 100644 static/vendors/DateJS/build/production/date-ta-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-te-IN.min.js create mode 100644 static/vendors/DateJS/build/production/date-th-TH.min.js create mode 100644 static/vendors/DateJS/build/production/date-tn-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date-tr-TR.min.js create mode 100644 static/vendors/DateJS/build/production/date-tt-RU.min.js create mode 100644 static/vendors/DateJS/build/production/date-uk-UA.min.js create mode 100644 static/vendors/DateJS/build/production/date-ur-PK.min.js create mode 100644 static/vendors/DateJS/build/production/date-uz-Cyrl-UZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-uz-Latn-UZ.min.js create mode 100644 static/vendors/DateJS/build/production/date-vi-VN.min.js create mode 100644 static/vendors/DateJS/build/production/date-xh-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date-zh-CN.min.js create mode 100644 static/vendors/DateJS/build/production/date-zh-HK.min.js create mode 100644 static/vendors/DateJS/build/production/date-zh-MO.min.js create mode 100644 static/vendors/DateJS/build/production/date-zh-SG.min.js create mode 100644 static/vendors/DateJS/build/production/date-zh-TW.min.js create mode 100644 static/vendors/DateJS/build/production/date-zu-ZA.min.js create mode 100644 static/vendors/DateJS/build/production/date.min.js create mode 100644 static/vendors/DateJS/build/production/i18n/af-ZA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-AE.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-BH.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-DZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-EG.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-IQ.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-JO.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-KW.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-LB.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-LY.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-MA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-OM.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-QA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-SA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-SY.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-TN.js create mode 100644 static/vendors/DateJS/build/production/i18n/ar-YE.js create mode 100644 static/vendors/DateJS/build/production/i18n/az-Cyrl-AZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/az-Latn-AZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/be-BY.js create mode 100644 static/vendors/DateJS/build/production/i18n/bg-BG.js create mode 100644 static/vendors/DateJS/build/production/i18n/bs-Latn-BA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ca-ES.js create mode 100644 static/vendors/DateJS/build/production/i18n/cs-CZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/cy-GB.js create mode 100644 static/vendors/DateJS/build/production/i18n/da-DK.js create mode 100644 static/vendors/DateJS/build/production/i18n/de-AT.js create mode 100644 static/vendors/DateJS/build/production/i18n/de-CH.js create mode 100644 static/vendors/DateJS/build/production/i18n/de-DE.js create mode 100644 static/vendors/DateJS/build/production/i18n/de-LI.js create mode 100644 static/vendors/DateJS/build/production/i18n/de-LU.js create mode 100644 static/vendors/DateJS/build/production/i18n/dv-MV.js create mode 100644 static/vendors/DateJS/build/production/i18n/el-GR.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-029.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-AU.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-BZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-CA.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-GB.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-IE.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-JM.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-NZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-PH.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-TT.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-ZA.js create mode 100644 static/vendors/DateJS/build/production/i18n/en-ZW.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-AR.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-BO.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-CL.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-CO.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-CR.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-DO.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-EC.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-ES.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-GT.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-HN.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-MX.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-NI.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-PA.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-PE.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-PR.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-PY.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-SV.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-UY.js create mode 100644 static/vendors/DateJS/build/production/i18n/es-VE.js create mode 100644 static/vendors/DateJS/build/production/i18n/et-EE.js create mode 100644 static/vendors/DateJS/build/production/i18n/eu-ES.js create mode 100644 static/vendors/DateJS/build/production/i18n/fa-IR.js create mode 100644 static/vendors/DateJS/build/production/i18n/fi-FI.js create mode 100644 static/vendors/DateJS/build/production/i18n/fo-FO.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-BE.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-CA.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-CH.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-FR.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-LU.js create mode 100644 static/vendors/DateJS/build/production/i18n/fr-MC.js create mode 100644 static/vendors/DateJS/build/production/i18n/gl-ES.js create mode 100644 static/vendors/DateJS/build/production/i18n/gu-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/he-IL.js create mode 100644 static/vendors/DateJS/build/production/i18n/hi-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/hr-BA.js create mode 100644 static/vendors/DateJS/build/production/i18n/hr-HR.js create mode 100644 static/vendors/DateJS/build/production/i18n/hu-HU.js create mode 100644 static/vendors/DateJS/build/production/i18n/hy-AM.js create mode 100644 static/vendors/DateJS/build/production/i18n/id-ID.js create mode 100644 static/vendors/DateJS/build/production/i18n/is-IS.js create mode 100644 static/vendors/DateJS/build/production/i18n/it-CH.js create mode 100644 static/vendors/DateJS/build/production/i18n/it-IT.js create mode 100644 static/vendors/DateJS/build/production/i18n/ja-JP.js create mode 100644 static/vendors/DateJS/build/production/i18n/ka-GE.js create mode 100644 static/vendors/DateJS/build/production/i18n/kk-KZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/kn-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/ko-KR.js create mode 100644 static/vendors/DateJS/build/production/i18n/kok-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/ky-KG.js create mode 100644 static/vendors/DateJS/build/production/i18n/lt-LT.js create mode 100644 static/vendors/DateJS/build/production/i18n/lv-LV.js create mode 100644 static/vendors/DateJS/build/production/i18n/mi-NZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/mk-MK.js create mode 100644 static/vendors/DateJS/build/production/i18n/mn-MN.js create mode 100644 static/vendors/DateJS/build/production/i18n/mr-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/ms-BN.js create mode 100644 static/vendors/DateJS/build/production/i18n/ms-MY.js create mode 100644 static/vendors/DateJS/build/production/i18n/mt-MT.js create mode 100644 static/vendors/DateJS/build/production/i18n/nb-NO.js create mode 100644 static/vendors/DateJS/build/production/i18n/nl-BE.js create mode 100644 static/vendors/DateJS/build/production/i18n/nl-NL.js create mode 100644 static/vendors/DateJS/build/production/i18n/nn-NO.js create mode 100644 static/vendors/DateJS/build/production/i18n/ns-ZA.js create mode 100644 static/vendors/DateJS/build/production/i18n/pa-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/pl-PL.js create mode 100644 static/vendors/DateJS/build/production/i18n/pt-BR.js create mode 100644 static/vendors/DateJS/build/production/i18n/pt-PT.js create mode 100644 static/vendors/DateJS/build/production/i18n/quz-BO.js create mode 100644 static/vendors/DateJS/build/production/i18n/quz-EC.js create mode 100644 static/vendors/DateJS/build/production/i18n/quz-PE.js create mode 100644 static/vendors/DateJS/build/production/i18n/ro-RO.js create mode 100644 static/vendors/DateJS/build/production/i18n/ru-RU.js create mode 100644 static/vendors/DateJS/build/production/i18n/sa-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/se-FI.js create mode 100644 static/vendors/DateJS/build/production/i18n/se-NO.js create mode 100644 static/vendors/DateJS/build/production/i18n/se-SE.js create mode 100644 static/vendors/DateJS/build/production/i18n/sk-SK.js create mode 100644 static/vendors/DateJS/build/production/i18n/sl-SI.js create mode 100644 static/vendors/DateJS/build/production/i18n/sma-NO.js create mode 100644 static/vendors/DateJS/build/production/i18n/sma-SE.js create mode 100644 static/vendors/DateJS/build/production/i18n/smj-NO.js create mode 100644 static/vendors/DateJS/build/production/i18n/smj-SE.js create mode 100644 static/vendors/DateJS/build/production/i18n/smn-FI.js create mode 100644 static/vendors/DateJS/build/production/i18n/sms-FI.js create mode 100644 static/vendors/DateJS/build/production/i18n/sq-AL.js create mode 100644 static/vendors/DateJS/build/production/i18n/sr-Cyrl-BA.js create mode 100644 static/vendors/DateJS/build/production/i18n/sr-Cyrl-CS.js create mode 100644 static/vendors/DateJS/build/production/i18n/sr-Latn-BA.js create mode 100644 static/vendors/DateJS/build/production/i18n/sr-Latn-CS.js create mode 100644 static/vendors/DateJS/build/production/i18n/sv-FI.js create mode 100644 static/vendors/DateJS/build/production/i18n/sv-SE.js create mode 100644 static/vendors/DateJS/build/production/i18n/sw-KE.js create mode 100644 static/vendors/DateJS/build/production/i18n/syr-SY.js create mode 100644 static/vendors/DateJS/build/production/i18n/ta-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/te-IN.js create mode 100644 static/vendors/DateJS/build/production/i18n/th-TH.js create mode 100644 static/vendors/DateJS/build/production/i18n/tn-ZA.js create mode 100644 static/vendors/DateJS/build/production/i18n/tr-TR.js create mode 100644 static/vendors/DateJS/build/production/i18n/tt-RU.js create mode 100644 static/vendors/DateJS/build/production/i18n/uk-UA.js create mode 100644 static/vendors/DateJS/build/production/i18n/ur-PK.js create mode 100644 static/vendors/DateJS/build/production/i18n/uz-Cyrl-UZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/uz-Latn-UZ.js create mode 100644 static/vendors/DateJS/build/production/i18n/vi-VN.js create mode 100644 static/vendors/DateJS/build/production/i18n/xh-ZA.js create mode 100644 static/vendors/DateJS/build/production/i18n/zh-CN.js create mode 100644 static/vendors/DateJS/build/production/i18n/zh-HK.js create mode 100644 static/vendors/DateJS/build/production/i18n/zh-MO.js create mode 100644 static/vendors/DateJS/build/production/i18n/zh-SG.js create mode 100644 static/vendors/DateJS/build/production/i18n/zh-TW.js create mode 100644 static/vendors/DateJS/build/production/i18n/zu-ZA.js create mode 100644 static/vendors/DateJS/index.js create mode 100644 static/vendors/DateJS/package.json create mode 100644 static/vendors/DateJS/reports/coverage.json create mode 100644 static/vendors/DateJS/reports/lcov-report/core/core-prototypes.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/core.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/extras.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/format_parser.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/i18n.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/index.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/parser.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/parsing_grammar.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/parsing_operators.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/parsing_translator.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/sugarpak.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/time_period.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/core/time_span.js.html create mode 100644 static/vendors/DateJS/reports/lcov-report/index.html create mode 100644 static/vendors/DateJS/reports/lcov-report/prettify.css create mode 100644 static/vendors/DateJS/reports/lcov-report/prettify.js create mode 100644 static/vendors/DateJS/reports/lcov.info create mode 100644 static/vendors/DateJS/src/core/core-prototypes.js create mode 100644 static/vendors/DateJS/src/core/core.js create mode 100644 static/vendors/DateJS/src/core/extras.js create mode 100644 static/vendors/DateJS/src/core/format_parser.js create mode 100644 static/vendors/DateJS/src/core/i18n.js create mode 100644 static/vendors/DateJS/src/core/parser.js create mode 100644 static/vendors/DateJS/src/core/parsing_grammar.js create mode 100644 static/vendors/DateJS/src/core/parsing_operators.js create mode 100644 static/vendors/DateJS/src/core/parsing_translator.js create mode 100644 static/vendors/DateJS/src/core/sugarpak.js create mode 100644 static/vendors/DateJS/src/core/time_period.js create mode 100644 static/vendors/DateJS/src/core/time_span.js create mode 100644 static/vendors/DateJS/src/i18n-template.js create mode 100644 static/vendors/DateJS/src/i18n/af-ZA.js create mode 100644 static/vendors/DateJS/src/i18n/ar-AE.js create mode 100644 static/vendors/DateJS/src/i18n/ar-BH.js create mode 100644 static/vendors/DateJS/src/i18n/ar-DZ.js create mode 100644 static/vendors/DateJS/src/i18n/ar-EG.js create mode 100644 static/vendors/DateJS/src/i18n/ar-IQ.js create mode 100644 static/vendors/DateJS/src/i18n/ar-JO.js create mode 100644 static/vendors/DateJS/src/i18n/ar-KW.js create mode 100644 static/vendors/DateJS/src/i18n/ar-LB.js create mode 100644 static/vendors/DateJS/src/i18n/ar-LY.js create mode 100644 static/vendors/DateJS/src/i18n/ar-MA.js create mode 100644 static/vendors/DateJS/src/i18n/ar-OM.js create mode 100644 static/vendors/DateJS/src/i18n/ar-QA.js create mode 100644 static/vendors/DateJS/src/i18n/ar-SA.js create mode 100644 static/vendors/DateJS/src/i18n/ar-SY.js create mode 100644 static/vendors/DateJS/src/i18n/ar-TN.js create mode 100644 static/vendors/DateJS/src/i18n/ar-YE.js create mode 100644 static/vendors/DateJS/src/i18n/az-Cyrl-AZ.js create mode 100644 static/vendors/DateJS/src/i18n/az-Latn-AZ.js create mode 100644 static/vendors/DateJS/src/i18n/be-BY.js create mode 100644 static/vendors/DateJS/src/i18n/bg-BG.js create mode 100644 static/vendors/DateJS/src/i18n/bs-Latn-BA.js create mode 100644 static/vendors/DateJS/src/i18n/ca-ES.js create mode 100644 static/vendors/DateJS/src/i18n/cs-CZ.js create mode 100644 static/vendors/DateJS/src/i18n/cy-GB.js create mode 100644 static/vendors/DateJS/src/i18n/da-DK.js create mode 100644 static/vendors/DateJS/src/i18n/de-AT.js create mode 100644 static/vendors/DateJS/src/i18n/de-CH.js create mode 100644 static/vendors/DateJS/src/i18n/de-DE.js create mode 100644 static/vendors/DateJS/src/i18n/de-LI.js create mode 100644 static/vendors/DateJS/src/i18n/de-LU.js create mode 100644 static/vendors/DateJS/src/i18n/dv-MV.js create mode 100644 static/vendors/DateJS/src/i18n/el-GR.js create mode 100644 static/vendors/DateJS/src/i18n/en-029.js create mode 100644 static/vendors/DateJS/src/i18n/en-AU.js create mode 100644 static/vendors/DateJS/src/i18n/en-BZ.js create mode 100644 static/vendors/DateJS/src/i18n/en-CA.js create mode 100644 static/vendors/DateJS/src/i18n/en-GB.js create mode 100644 static/vendors/DateJS/src/i18n/en-IE.js create mode 100644 static/vendors/DateJS/src/i18n/en-JM.js create mode 100644 static/vendors/DateJS/src/i18n/en-NZ.js create mode 100644 static/vendors/DateJS/src/i18n/en-PH.js create mode 100644 static/vendors/DateJS/src/i18n/en-TT.js create mode 100644 static/vendors/DateJS/src/i18n/en-ZA.js create mode 100644 static/vendors/DateJS/src/i18n/en-ZW.js create mode 100644 static/vendors/DateJS/src/i18n/es-AR.js create mode 100644 static/vendors/DateJS/src/i18n/es-BO.js create mode 100644 static/vendors/DateJS/src/i18n/es-CL.js create mode 100644 static/vendors/DateJS/src/i18n/es-CO.js create mode 100644 static/vendors/DateJS/src/i18n/es-CR.js create mode 100644 static/vendors/DateJS/src/i18n/es-DO.js create mode 100644 static/vendors/DateJS/src/i18n/es-EC.js create mode 100644 static/vendors/DateJS/src/i18n/es-ES.js create mode 100644 static/vendors/DateJS/src/i18n/es-GT.js create mode 100644 static/vendors/DateJS/src/i18n/es-HN.js create mode 100644 static/vendors/DateJS/src/i18n/es-MX.js create mode 100644 static/vendors/DateJS/src/i18n/es-NI.js create mode 100644 static/vendors/DateJS/src/i18n/es-PA.js create mode 100644 static/vendors/DateJS/src/i18n/es-PE.js create mode 100644 static/vendors/DateJS/src/i18n/es-PR.js create mode 100644 static/vendors/DateJS/src/i18n/es-PY.js create mode 100644 static/vendors/DateJS/src/i18n/es-SV.js create mode 100644 static/vendors/DateJS/src/i18n/es-UY.js create mode 100644 static/vendors/DateJS/src/i18n/es-VE.js create mode 100644 static/vendors/DateJS/src/i18n/et-EE.js create mode 100644 static/vendors/DateJS/src/i18n/eu-ES.js create mode 100644 static/vendors/DateJS/src/i18n/fa-IR.js create mode 100644 static/vendors/DateJS/src/i18n/fi-FI.js create mode 100644 static/vendors/DateJS/src/i18n/fo-FO.js create mode 100644 static/vendors/DateJS/src/i18n/fr-BE.js create mode 100644 static/vendors/DateJS/src/i18n/fr-CA.js create mode 100644 static/vendors/DateJS/src/i18n/fr-CH.js create mode 100644 static/vendors/DateJS/src/i18n/fr-FR.js create mode 100644 static/vendors/DateJS/src/i18n/fr-LU.js create mode 100644 static/vendors/DateJS/src/i18n/fr-MC.js create mode 100644 static/vendors/DateJS/src/i18n/gl-ES.js create mode 100644 static/vendors/DateJS/src/i18n/gu-IN.js create mode 100644 static/vendors/DateJS/src/i18n/he-IL.js create mode 100644 static/vendors/DateJS/src/i18n/hi-IN.js create mode 100644 static/vendors/DateJS/src/i18n/hr-BA.js create mode 100644 static/vendors/DateJS/src/i18n/hr-HR.js create mode 100644 static/vendors/DateJS/src/i18n/hu-HU.js create mode 100644 static/vendors/DateJS/src/i18n/hy-AM.js create mode 100644 static/vendors/DateJS/src/i18n/id-ID.js create mode 100644 static/vendors/DateJS/src/i18n/is-IS.js create mode 100644 static/vendors/DateJS/src/i18n/it-CH.js create mode 100644 static/vendors/DateJS/src/i18n/it-IT.js create mode 100644 static/vendors/DateJS/src/i18n/ja-JP.js create mode 100644 static/vendors/DateJS/src/i18n/ka-GE.js create mode 100644 static/vendors/DateJS/src/i18n/kk-KZ.js create mode 100644 static/vendors/DateJS/src/i18n/kn-IN.js create mode 100644 static/vendors/DateJS/src/i18n/ko-KR.js create mode 100644 static/vendors/DateJS/src/i18n/kok-IN.js create mode 100644 static/vendors/DateJS/src/i18n/ky-KG.js create mode 100644 static/vendors/DateJS/src/i18n/lt-LT.js create mode 100644 static/vendors/DateJS/src/i18n/lv-LV.js create mode 100644 static/vendors/DateJS/src/i18n/mi-NZ.js create mode 100644 static/vendors/DateJS/src/i18n/mk-MK.js create mode 100644 static/vendors/DateJS/src/i18n/mn-MN.js create mode 100644 static/vendors/DateJS/src/i18n/mr-IN.js create mode 100644 static/vendors/DateJS/src/i18n/ms-BN.js create mode 100644 static/vendors/DateJS/src/i18n/ms-MY.js create mode 100644 static/vendors/DateJS/src/i18n/mt-MT.js create mode 100644 static/vendors/DateJS/src/i18n/nb-NO.js create mode 100644 static/vendors/DateJS/src/i18n/nl-BE.js create mode 100644 static/vendors/DateJS/src/i18n/nl-NL.js create mode 100644 static/vendors/DateJS/src/i18n/nn-NO.js create mode 100644 static/vendors/DateJS/src/i18n/ns-ZA.js create mode 100644 static/vendors/DateJS/src/i18n/pa-IN.js create mode 100644 static/vendors/DateJS/src/i18n/pl-PL.js create mode 100644 static/vendors/DateJS/src/i18n/pt-BR.js create mode 100644 static/vendors/DateJS/src/i18n/pt-PT.js create mode 100644 static/vendors/DateJS/src/i18n/quz-BO.js create mode 100644 static/vendors/DateJS/src/i18n/quz-EC.js create mode 100644 static/vendors/DateJS/src/i18n/quz-PE.js create mode 100644 static/vendors/DateJS/src/i18n/ro-RO.js create mode 100644 static/vendors/DateJS/src/i18n/ru-RU.js create mode 100644 static/vendors/DateJS/src/i18n/sa-IN.js create mode 100644 static/vendors/DateJS/src/i18n/se-FI.js create mode 100644 static/vendors/DateJS/src/i18n/se-NO.js create mode 100644 static/vendors/DateJS/src/i18n/se-SE.js create mode 100644 static/vendors/DateJS/src/i18n/sk-SK.js create mode 100644 static/vendors/DateJS/src/i18n/sl-SI.js create mode 100644 static/vendors/DateJS/src/i18n/sma-NO.js create mode 100644 static/vendors/DateJS/src/i18n/sma-SE.js create mode 100644 static/vendors/DateJS/src/i18n/smj-NO.js create mode 100644 static/vendors/DateJS/src/i18n/smj-SE.js create mode 100644 static/vendors/DateJS/src/i18n/smn-FI.js create mode 100644 static/vendors/DateJS/src/i18n/sms-FI.js create mode 100644 static/vendors/DateJS/src/i18n/sq-AL.js create mode 100644 static/vendors/DateJS/src/i18n/sr-Cyrl-BA.js create mode 100644 static/vendors/DateJS/src/i18n/sr-Cyrl-CS.js create mode 100644 static/vendors/DateJS/src/i18n/sr-Latn-BA.js create mode 100644 static/vendors/DateJS/src/i18n/sr-Latn-CS.js create mode 100644 static/vendors/DateJS/src/i18n/sv-FI.js create mode 100644 static/vendors/DateJS/src/i18n/sv-SE.js create mode 100644 static/vendors/DateJS/src/i18n/sw-KE.js create mode 100644 static/vendors/DateJS/src/i18n/syr-SY.js create mode 100644 static/vendors/DateJS/src/i18n/ta-IN.js create mode 100644 static/vendors/DateJS/src/i18n/te-IN.js create mode 100644 static/vendors/DateJS/src/i18n/th-TH.js create mode 100644 static/vendors/DateJS/src/i18n/tn-ZA.js create mode 100644 static/vendors/DateJS/src/i18n/tr-TR.js create mode 100644 static/vendors/DateJS/src/i18n/tt-RU.js create mode 100644 static/vendors/DateJS/src/i18n/uk-UA.js create mode 100644 static/vendors/DateJS/src/i18n/ur-PK.js create mode 100644 static/vendors/DateJS/src/i18n/uz-Cyrl-UZ.js create mode 100644 static/vendors/DateJS/src/i18n/uz-Latn-UZ.js create mode 100644 static/vendors/DateJS/src/i18n/vi-VN.js create mode 100644 static/vendors/DateJS/src/i18n/xh-ZA.js create mode 100644 static/vendors/DateJS/src/i18n/zh-CN.js create mode 100644 static/vendors/DateJS/src/i18n/zh-HK.js create mode 100644 static/vendors/DateJS/src/i18n/zh-MO.js create mode 100644 static/vendors/DateJS/src/i18n/zh-SG.js create mode 100644 static/vendors/DateJS/src/i18n/zh-TW.js create mode 100644 static/vendors/DateJS/src/i18n/zu-ZA.js create mode 100644 static/vendors/Flot/.bower.json create mode 100644 static/vendors/Flot/.circleci/config.yml create mode 100644 static/vendors/Flot/.dont-break.json create mode 100644 static/vendors/Flot/.gitignore create mode 100644 static/vendors/Flot/.npmignore create mode 100644 static/vendors/Flot/.travis.yml create mode 100644 static/vendors/Flot/API.md create mode 100644 static/vendors/Flot/CHANGELOG.md create mode 100644 static/vendors/Flot/CONTRIBUTING.md create mode 100644 static/vendors/Flot/FAQ.md create mode 100644 static/vendors/Flot/LICENSE.txt create mode 100644 static/vendors/Flot/Makefile create mode 100644 static/vendors/Flot/NEWS.md create mode 100644 static/vendors/Flot/PLUGINS.md create mode 100644 static/vendors/Flot/README.md create mode 100644 static/vendors/Flot/build.js create mode 100644 static/vendors/Flot/component.json create mode 100644 static/vendors/Flot/docs/API.md create mode 100644 static/vendors/Flot/docs/PLUGINS.md create mode 100644 static/vendors/Flot/docs/absRelTime.md create mode 100644 static/vendors/Flot/docs/browser.md create mode 100644 static/vendors/Flot/docs/canvaswrapper.md create mode 100644 static/vendors/Flot/docs/composeImages.md create mode 100644 static/vendors/Flot/docs/drawSeries.md create mode 100644 static/vendors/Flot/docs/hover.md create mode 100644 static/vendors/Flot/docs/interactions.md create mode 100644 static/vendors/Flot/docs/logaxis.md create mode 100644 static/vendors/Flot/docs/navigate.md create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth-1.json create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth-2.json create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth-3.json create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth-4.json create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth-5.json create mode 100644 static/vendors/Flot/examples/ajax/data-eu-gdp-growth.json create mode 100644 static/vendors/Flot/examples/ajax/data-japan-gdp-growth.json create mode 100644 static/vendors/Flot/examples/ajax/data-usa-gdp-growth.json create mode 100644 static/vendors/Flot/examples/ajax/index.html create mode 100644 static/vendors/Flot/examples/annotating/index.html create mode 100644 static/vendors/Flot/examples/axes-autoscaling/index.html create mode 100644 static/vendors/Flot/examples/axes-interacting/index.html create mode 100644 static/vendors/Flot/examples/axes-labels/index.html create mode 100644 static/vendors/Flot/examples/axes-multiple/index.html create mode 100644 static/vendors/Flot/examples/axes-tickLabels/index.html create mode 100644 static/vendors/Flot/examples/axes-time-zones/date.js create mode 100644 static/vendors/Flot/examples/axes-time-zones/index.html create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/africa create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/antarctica create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/asia create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/australasia create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/backward create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/etcetera create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/europe create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/factory create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/iso3166.tab create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/leapseconds create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/northamerica create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/pacificnew create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/solar87 create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/solar88 create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/solar89 create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/southamerica create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/systemv create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/yearistype.sh create mode 100644 static/vendors/Flot/examples/axes-time-zones/tz/zone.tab create mode 100644 static/vendors/Flot/examples/axes-time/index.html create mode 100644 static/vendors/Flot/examples/background.png create mode 100644 static/vendors/Flot/examples/basic-options/index.html create mode 100644 static/vendors/Flot/examples/basic-usage/index.html create mode 100644 static/vendors/Flot/examples/canvas/index.html create mode 100644 static/vendors/Flot/examples/categories/index.html create mode 100644 static/vendors/Flot/examples/examples.css create mode 100644 static/vendors/Flot/examples/fill-types/index.html create mode 100644 static/vendors/Flot/examples/image/hs-2004-27-a-large-web.jpg create mode 100644 static/vendors/Flot/examples/image/index.html create mode 100644 static/vendors/Flot/examples/index.html create mode 100644 static/vendors/Flot/examples/interacting/index.html create mode 100644 static/vendors/Flot/examples/log-scale/index.html create mode 100644 static/vendors/Flot/examples/navigate/arrow-down.gif create mode 100644 static/vendors/Flot/examples/navigate/arrow-left.gif create mode 100644 static/vendors/Flot/examples/navigate/arrow-right.gif create mode 100644 static/vendors/Flot/examples/navigate/arrow-up.gif create mode 100644 static/vendors/Flot/examples/navigate/index.html create mode 100644 static/vendors/Flot/examples/navigateTouch/index.html create mode 100644 static/vendors/Flot/examples/percentiles/index.html create mode 100644 static/vendors/Flot/examples/plot-legend/index.html create mode 100644 static/vendors/Flot/examples/realtime/index.html create mode 100644 static/vendors/Flot/examples/resize/index.html create mode 100644 static/vendors/Flot/examples/selection/index.html create mode 100644 static/vendors/Flot/examples/series-errorbars/index.html create mode 100644 static/vendors/Flot/examples/series-pie/index.html create mode 100644 static/vendors/Flot/examples/series-toggle/index.html create mode 100644 static/vendors/Flot/examples/series-types/index.html create mode 100644 static/vendors/Flot/examples/shared/jquery-ui/jquery-ui.min.css create mode 100644 static/vendors/Flot/examples/stacking/index.html create mode 100644 static/vendors/Flot/examples/symbols/index.html create mode 100644 static/vendors/Flot/examples/threshold/index.html create mode 100644 static/vendors/Flot/examples/tracking/index.html create mode 100644 static/vendors/Flot/examples/visitors/index.html create mode 100644 static/vendors/Flot/examples/zooming/index.html create mode 100644 static/vendors/Flot/excanvas.js create mode 100644 static/vendors/Flot/excanvas.min.js create mode 100644 static/vendors/Flot/flot-2.1.3.tgz create mode 100644 static/vendors/Flot/flot.jquery.json create mode 100644 static/vendors/Flot/gulpfile.js create mode 100644 static/vendors/Flot/jquery.colorhelpers.js create mode 100644 static/vendors/Flot/jquery.event.drag.LICENSE.txt create mode 100644 static/vendors/Flot/jquery.flot.canvas.js create mode 100644 static/vendors/Flot/jquery.flot.categories.js create mode 100644 static/vendors/Flot/jquery.flot.crosshair.js create mode 100644 static/vendors/Flot/jquery.flot.errorbars.js create mode 100644 static/vendors/Flot/jquery.flot.fillbetween.js create mode 100644 static/vendors/Flot/jquery.flot.image.js create mode 100644 static/vendors/Flot/jquery.flot.js create mode 100644 static/vendors/Flot/jquery.flot.navigate.js create mode 100644 static/vendors/Flot/jquery.flot.pie.js create mode 100644 static/vendors/Flot/jquery.flot.resize.js create mode 100644 static/vendors/Flot/jquery.flot.selection.js create mode 100644 static/vendors/Flot/jquery.flot.stack.js create mode 100644 static/vendors/Flot/jquery.flot.symbol.js create mode 100644 static/vendors/Flot/jquery.flot.threshold.js create mode 100644 static/vendors/Flot/jquery.flot.time.js create mode 100644 static/vendors/Flot/jquery.js create mode 100644 static/vendors/Flot/jquery.mousewheel.LICENSE.txt create mode 100644 static/vendors/Flot/karma.conf.js create mode 100644 static/vendors/Flot/legend.css create mode 100644 static/vendors/Flot/lib/globalize.culture.en-US.js create mode 100644 static/vendors/Flot/lib/globalize.js create mode 100644 static/vendors/Flot/lib/jquery.event.drag.js create mode 100644 static/vendors/Flot/lib/jquery.mousewheel.js create mode 100644 static/vendors/Flot/package-lock.json create mode 100644 static/vendors/Flot/package.json create mode 100644 static/vendors/Flot/source/jquery.canvaswrapper.js create mode 100644 static/vendors/Flot/source/jquery.colorhelpers.js create mode 100644 static/vendors/Flot/source/jquery.flot.axislabels.js create mode 100644 static/vendors/Flot/source/jquery.flot.browser.js create mode 100644 static/vendors/Flot/source/jquery.flot.categories.js create mode 100644 static/vendors/Flot/source/jquery.flot.composeImages.js create mode 100644 static/vendors/Flot/source/jquery.flot.crosshair.js create mode 100644 static/vendors/Flot/source/jquery.flot.drawSeries.js create mode 100644 static/vendors/Flot/source/jquery.flot.errorbars.js create mode 100644 static/vendors/Flot/source/jquery.flot.fillbetween.js create mode 100644 static/vendors/Flot/source/jquery.flot.flatdata.js create mode 100644 static/vendors/Flot/source/jquery.flot.hover.js create mode 100644 static/vendors/Flot/source/jquery.flot.image.js create mode 100644 static/vendors/Flot/source/jquery.flot.js create mode 100644 static/vendors/Flot/source/jquery.flot.legend.js create mode 100644 static/vendors/Flot/source/jquery.flot.logaxis.js create mode 100644 static/vendors/Flot/source/jquery.flot.navigate.js create mode 100644 static/vendors/Flot/source/jquery.flot.pie.js create mode 100644 static/vendors/Flot/source/jquery.flot.resize.js create mode 100644 static/vendors/Flot/source/jquery.flot.saturated.js create mode 100644 static/vendors/Flot/source/jquery.flot.selection.js create mode 100644 static/vendors/Flot/source/jquery.flot.stack.js create mode 100644 static/vendors/Flot/source/jquery.flot.symbol.js create mode 100644 static/vendors/Flot/source/jquery.flot.threshold.js create mode 100644 static/vendors/Flot/source/jquery.flot.time.js create mode 100644 static/vendors/Flot/source/jquery.flot.touch.js create mode 100644 static/vendors/Flot/source/jquery.flot.touchNavigate.js create mode 100644 static/vendors/Flot/source/jquery.flot.uiConstants.js create mode 100644 static/vendors/Flot/source/jquery.js create mode 100644 static/vendors/Flot/tests/jquery.flot-drawSeries.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot-precision.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.axislabels.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.canvaswrapper.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.colorhelpers.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.composeImages.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.errorbars.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.fillbetween.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.flatdata.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.hover.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.invertedaxis.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.largeNumbers.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.legend.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.logaxis.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.navigate-interaction.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.navigate.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.stack.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.symbol.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.time.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.touch.Test.js create mode 100644 static/vendors/Flot/tests/jquery.flot.touchNavigate.Test.js create mode 100644 static/vendors/Flot/tests/svgstyle.css create mode 100644 static/vendors/Flot/update_docs.js create mode 100644 static/vendors/animate.css/.bower.json create mode 100644 static/vendors/animate.css/animate-config.json create mode 100644 static/vendors/animate.css/animate.css create mode 100644 static/vendors/animate.css/animate.min.css create mode 100644 static/vendors/animate.css/bower.json create mode 100644 static/vendors/animate.css/gulpfile.js create mode 100644 static/vendors/animate.css/package.json create mode 100644 static/vendors/autosize/.bower.json create mode 100644 static/vendors/autosize/.gitignore create mode 100644 static/vendors/autosize/LICENSE.md create mode 100644 static/vendors/autosize/bower.json create mode 100644 static/vendors/autosize/build.js create mode 100644 static/vendors/autosize/changelog.md create mode 100644 static/vendors/autosize/dist/autosize.js create mode 100644 static/vendors/autosize/dist/autosize.min.js create mode 100644 static/vendors/autosize/example/index.html create mode 100644 static/vendors/autosize/package.json create mode 100644 static/vendors/autosize/readme.md create mode 100644 static/vendors/autosize/src/autosize.js create mode 100644 static/vendors/bootstrap-4.5.0/.DS_Store create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-grid.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-grid.css.map create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-grid.min.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-grid.min.css.map create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-reboot.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-reboot.css.map create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-reboot.min.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap-reboot.min.css.map create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap.css.map create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap.min.css create mode 100644 static/vendors/bootstrap-4.5.0/css/bootstrap.min.css.map create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.bundle.js create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.bundle.js.map create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.bundle.min.js create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.bundle.min.js.map create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.js create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.js.map create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.min.js create mode 100644 static/vendors/bootstrap-4.5.0/js/bootstrap.min.js.map create mode 100644 static/vendors/bootstrap-daterangepicker/.bower.json create mode 100644 static/vendors/bootstrap-daterangepicker/README.md create mode 100644 static/vendors/bootstrap-daterangepicker/bower.json create mode 100644 static/vendors/bootstrap-daterangepicker/daterangepicker.css create mode 100644 static/vendors/bootstrap-daterangepicker/daterangepicker.js create mode 100644 static/vendors/bootstrap-daterangepicker/demo.html create mode 100644 static/vendors/bootstrap-daterangepicker/drp.png create mode 100644 static/vendors/bootstrap-daterangepicker/example/amd/index.html create mode 100644 static/vendors/bootstrap-daterangepicker/example/amd/main.js create mode 100644 static/vendors/bootstrap-daterangepicker/example/amd/require.js create mode 100644 static/vendors/bootstrap-daterangepicker/example/browserify/README.md create mode 100644 static/vendors/bootstrap-daterangepicker/example/browserify/bundle.js create mode 100644 static/vendors/bootstrap-daterangepicker/example/browserify/index.html create mode 100644 static/vendors/bootstrap-daterangepicker/example/browserify/main.js create mode 100644 static/vendors/bootstrap-daterangepicker/package.js create mode 100644 static/vendors/bootstrap-daterangepicker/package.json create mode 100644 static/vendors/bootstrap-daterangepicker/website/index.html create mode 100644 static/vendors/bootstrap-daterangepicker/website/website.css create mode 100644 static/vendors/bootstrap-daterangepicker/website/website.js create mode 100644 static/vendors/bootstrap-datetimepicker/CONTRIBUTING.md create mode 100644 static/vendors/bootstrap-datetimepicker/Gruntfile.js create mode 100644 static/vendors/bootstrap-datetimepicker/LICENSE create mode 100644 static/vendors/bootstrap-datetimepicker/README.md create mode 100644 static/vendors/bootstrap-datetimepicker/bower.json create mode 100644 static/vendors/bootstrap-datetimepicker/build/css/bootstrap-datetimepicker-standalone.css create mode 100644 static/vendors/bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css create mode 100644 static/vendors/bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css create mode 100644 static/vendors/bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js create mode 100644 static/vendors/bootstrap-datetimepicker/component.json create mode 100644 static/vendors/bootstrap-datetimepicker/composer.json create mode 100644 static/vendors/bootstrap-datetimepicker/docs/ChangeLog.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/ContributorsGuide.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Events.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Extras.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/FAQ.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Functions.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Installing.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Options.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Version 4 Changelog.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/Version 4 Contributors guide.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/index.md create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-144x144.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-192x192.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-36x36.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-48x48.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-72x72.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/android-chrome-96x96.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-114x114.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-120x120.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-144x144.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-152x152.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-180x180.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-57x57.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-60x60.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-72x72.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-76x76.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon-precomposed.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/apple-touch-icon.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/base.html create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/browserconfig.xml create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/content.html create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/css/base.css create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/css/prettify-1.0.css create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/favicon-16x16.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/favicon-32x32.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/favicon-96x96.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/favicon.ico create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/js/base.js create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/js/prettify-1.0.min.js create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/manifest.json create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/mstile-144x144.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/mstile-150x150.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/mstile-310x150.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/mstile-310x310.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/mstile-70x70.png create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/nav.html create mode 100644 static/vendors/bootstrap-datetimepicker/docs/theme/toc.html create mode 100644 static/vendors/bootstrap-datetimepicker/mkdocs.yml create mode 100644 static/vendors/bootstrap-datetimepicker/package.json create mode 100644 static/vendors/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js create mode 100644 static/vendors/bootstrap-datetimepicker/src/less/_bootstrap-datetimepicker.less create mode 100644 static/vendors/bootstrap-datetimepicker/src/less/bootstrap-datetimepicker-build.less create mode 100644 static/vendors/bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.CSS.nuspec create mode 100644 static/vendors/bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.nuspec create mode 100644 static/vendors/bootstrap-datetimepicker/src/nuget/NuGet.exe create mode 100644 static/vendors/bootstrap-datetimepicker/src/nuget/install.ps1 create mode 100644 static/vendors/bootstrap-datetimepicker/src/sass/_bootstrap-datetimepicker.scss create mode 100644 static/vendors/bootstrap-datetimepicker/src/sass/bootstrap-datetimepicker-build.scss create mode 100644 static/vendors/bootstrap-datetimepicker/tasks/bump_version.js create mode 100644 static/vendors/bootstrap-datetimepicker/test/publicApiSpec.js create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/base.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/compile.js create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/index.js create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/t1.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/t2.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/t3.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/t4.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/screen-capture/t5.html create mode 100644 static/vendors/bootstrap-datetimepicker/test/timezoneDataHelper.js create mode 100644 static/vendors/bootstrap-progressbar/.bower.json create mode 100644 static/vendors/bootstrap-progressbar/CHANGELOG.md create mode 100644 static/vendors/bootstrap-progressbar/CONTRIBUTORS.md create mode 100644 static/vendors/bootstrap-progressbar/LICENSE create mode 100644 static/vendors/bootstrap-progressbar/README.md create mode 100644 static/vendors/bootstrap-progressbar/bootstrap-progressbar.js create mode 100644 static/vendors/bootstrap-progressbar/bootstrap-progressbar.min.js create mode 100644 static/vendors/bootstrap-progressbar/bower.json create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.3.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.3.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.4.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.0.4.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.1.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.1.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.1.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.1.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.2.2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-2.3.2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0-rc1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0-rc1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0-rc2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0-rc2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.3.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.0.3.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.1.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.1.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.1.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.1.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.2.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.2.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.0.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.0.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.1.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.1.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.2.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.2.min.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.4.css create mode 100644 static/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.4.min.css create mode 100644 static/vendors/bootstrap-progressbar/less/bootstrap-progressbar-2.x.x.less create mode 100644 static/vendors/bootstrap-progressbar/less/bootstrap-progressbar-3.0.0-3.1.x.less create mode 100644 static/vendors/bootstrap-progressbar/less/bootstrap-progressbar-3.2.0.less create mode 100644 static/vendors/bootstrap-progressbar/less/bootstrap-progressbar-3.3.0-3.x.x.less create mode 100644 static/vendors/bootstrap-progressbar/package.json create mode 100644 static/vendors/bootstrap-progressbar/scss/bootstrap-progressbar-2.x.x.scss create mode 100644 static/vendors/bootstrap-progressbar/scss/bootstrap-progressbar-3.0.0-3.1.x.scss create mode 100644 static/vendors/bootstrap-progressbar/scss/bootstrap-progressbar-3.2.0.scss create mode 100644 static/vendors/bootstrap-progressbar/scss/bootstrap-progressbar-3.3.0-3.x.x.scss create mode 100644 static/vendors/bootstrap-wysiwyg/.bower.json create mode 100644 static/vendors/bootstrap-wysiwyg/README.md create mode 100644 static/vendors/bootstrap-wysiwyg/bower.json create mode 100644 static/vendors/bootstrap-wysiwyg/css/style.css create mode 100644 static/vendors/bootstrap-wysiwyg/examples/basic.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/clear-formatting.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/events.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/form-post.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/formatblock-example.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/html-editor.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/multiple-editors.html create mode 100644 static/vendors/bootstrap-wysiwyg/examples/php/upload.php create mode 100644 static/vendors/bootstrap-wysiwyg/examples/simple-toolbar.html create mode 100644 static/vendors/bootstrap-wysiwyg/gruntfile.js create mode 100644 static/vendors/bootstrap-wysiwyg/gulpfile.js create mode 100644 static/vendors/bootstrap-wysiwyg/js/bootstrap-wysiwyg.min.js create mode 100644 static/vendors/bootstrap-wysiwyg/package.json create mode 100644 static/vendors/bootstrap-wysiwyg/src/bootstrap-wysiwyg.js create mode 100644 static/vendors/bootstrap/.babelrc.js create mode 100644 static/vendors/bootstrap/.bower.json create mode 100644 static/vendors/bootstrap/.browserslistrc create mode 100644 static/vendors/bootstrap/.editorconfig create mode 100644 static/vendors/bootstrap/.eslintignore create mode 100644 static/vendors/bootstrap/.eslintrc.json create mode 100644 static/vendors/bootstrap/.gitattributes create mode 100644 static/vendors/bootstrap/.github/CODEOWNERS create mode 100644 static/vendors/bootstrap/.github/CONTRIBUTING.md create mode 100644 static/vendors/bootstrap/.github/ISSUE_TEMPLATE/bug.md create mode 100644 static/vendors/bootstrap/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 static/vendors/bootstrap/.github/ISSUE_TEMPLATE/feature.md create mode 100644 static/vendors/bootstrap/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 static/vendors/bootstrap/.github/SUPPORT.md create mode 100644 static/vendors/bootstrap/.gitignore create mode 100644 static/vendors/bootstrap/.stylelintignore create mode 100644 static/vendors/bootstrap/.stylelintrc create mode 100644 static/vendors/bootstrap/.travis.yml create mode 100644 static/vendors/bootstrap/CNAME create mode 100644 static/vendors/bootstrap/CODE_OF_CONDUCT.md create mode 100644 static/vendors/bootstrap/Gemfile create mode 100644 static/vendors/bootstrap/Gemfile.lock create mode 100644 static/vendors/bootstrap/LICENSE create mode 100644 static/vendors/bootstrap/README.md create mode 100644 static/vendors/bootstrap/_config.yml create mode 100644 static/vendors/bootstrap/build/.eslintrc.json create mode 100644 static/vendors/bootstrap/build/banner.js create mode 100644 static/vendors/bootstrap/build/build-plugins.js create mode 100755 static/vendors/bootstrap/build/change-version.js create mode 100644 static/vendors/bootstrap/build/generate-sri.js create mode 100644 static/vendors/bootstrap/build/postcss.config.js create mode 100644 static/vendors/bootstrap/build/rollup.config.js create mode 100755 static/vendors/bootstrap/build/ship.sh create mode 100644 static/vendors/bootstrap/build/svgo.yml create mode 100644 static/vendors/bootstrap/build/vnu-jar.js create mode 100644 static/vendors/bootstrap/composer.json create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-grid.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-grid.css.map create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-grid.min.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-grid.min.css.map create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-reboot.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-reboot.css.map create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-reboot.min.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap-reboot.min.css.map create mode 100644 static/vendors/bootstrap/dist/css/bootstrap.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap.css.map create mode 100644 static/vendors/bootstrap/dist/css/bootstrap.min.css create mode 100644 static/vendors/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.bundle.min.js create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.js create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.js.map create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.min.js create mode 100644 static/vendors/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 static/vendors/bootstrap/js/dist/alert.js create mode 100644 static/vendors/bootstrap/js/dist/alert.js.map create mode 100644 static/vendors/bootstrap/js/dist/button.js create mode 100644 static/vendors/bootstrap/js/dist/button.js.map create mode 100644 static/vendors/bootstrap/js/dist/carousel.js create mode 100644 static/vendors/bootstrap/js/dist/carousel.js.map create mode 100644 static/vendors/bootstrap/js/dist/collapse.js create mode 100644 static/vendors/bootstrap/js/dist/collapse.js.map create mode 100644 static/vendors/bootstrap/js/dist/dropdown.js create mode 100644 static/vendors/bootstrap/js/dist/dropdown.js.map create mode 100644 static/vendors/bootstrap/js/dist/index.js create mode 100644 static/vendors/bootstrap/js/dist/index.js.map create mode 100644 static/vendors/bootstrap/js/dist/modal.js create mode 100644 static/vendors/bootstrap/js/dist/modal.js.map create mode 100644 static/vendors/bootstrap/js/dist/popover.js create mode 100644 static/vendors/bootstrap/js/dist/popover.js.map create mode 100644 static/vendors/bootstrap/js/dist/scrollspy.js create mode 100644 static/vendors/bootstrap/js/dist/scrollspy.js.map create mode 100644 static/vendors/bootstrap/js/dist/tab.js create mode 100644 static/vendors/bootstrap/js/dist/tab.js.map create mode 100644 static/vendors/bootstrap/js/dist/toast.js create mode 100644 static/vendors/bootstrap/js/dist/toast.js.map create mode 100644 static/vendors/bootstrap/js/dist/tooltip.js create mode 100644 static/vendors/bootstrap/js/dist/tooltip.js.map create mode 100644 static/vendors/bootstrap/js/dist/util.js create mode 100644 static/vendors/bootstrap/js/dist/util.js.map create mode 100644 static/vendors/bootstrap/js/src/alert.js create mode 100644 static/vendors/bootstrap/js/src/button.js create mode 100644 static/vendors/bootstrap/js/src/carousel.js create mode 100644 static/vendors/bootstrap/js/src/collapse.js create mode 100644 static/vendors/bootstrap/js/src/dropdown.js create mode 100644 static/vendors/bootstrap/js/src/index.js create mode 100644 static/vendors/bootstrap/js/src/modal.js create mode 100644 static/vendors/bootstrap/js/src/popover.js create mode 100644 static/vendors/bootstrap/js/src/scrollspy.js create mode 100644 static/vendors/bootstrap/js/src/tab.js create mode 100644 static/vendors/bootstrap/js/src/toast.js create mode 100644 static/vendors/bootstrap/js/src/tools/sanitizer.js create mode 100644 static/vendors/bootstrap/js/src/tooltip.js create mode 100644 static/vendors/bootstrap/js/src/util.js create mode 100644 static/vendors/bootstrap/js/tests/README.md create mode 100644 static/vendors/bootstrap/js/tests/browsers.js create mode 100644 static/vendors/bootstrap/js/tests/index.html create mode 100644 static/vendors/bootstrap/js/tests/integration/bundle.js create mode 100644 static/vendors/bootstrap/js/tests/integration/index.html create mode 100644 static/vendors/bootstrap/js/tests/integration/rollup.bundle.js create mode 100644 static/vendors/bootstrap/js/tests/karma.conf.js create mode 100644 static/vendors/bootstrap/js/tests/unit/.eslintrc.json create mode 100644 static/vendors/bootstrap/js/tests/unit/alert.js create mode 100644 static/vendors/bootstrap/js/tests/unit/button.js create mode 100644 static/vendors/bootstrap/js/tests/unit/carousel.js create mode 100644 static/vendors/bootstrap/js/tests/unit/collapse.js create mode 100644 static/vendors/bootstrap/js/tests/unit/dropdown.js create mode 100644 static/vendors/bootstrap/js/tests/unit/modal.js create mode 100644 static/vendors/bootstrap/js/tests/unit/popover.js create mode 100644 static/vendors/bootstrap/js/tests/unit/scrollspy.js create mode 100644 static/vendors/bootstrap/js/tests/unit/tab.js create mode 100644 static/vendors/bootstrap/js/tests/unit/toast.js create mode 100644 static/vendors/bootstrap/js/tests/unit/tooltip.js create mode 100644 static/vendors/bootstrap/js/tests/unit/util.js create mode 100644 static/vendors/bootstrap/js/tests/visual/alert.html create mode 100644 static/vendors/bootstrap/js/tests/visual/button.html create mode 100644 static/vendors/bootstrap/js/tests/visual/carousel.html create mode 100644 static/vendors/bootstrap/js/tests/visual/collapse.html create mode 100644 static/vendors/bootstrap/js/tests/visual/dropdown.html create mode 100644 static/vendors/bootstrap/js/tests/visual/modal.html create mode 100644 static/vendors/bootstrap/js/tests/visual/popover.html create mode 100644 static/vendors/bootstrap/js/tests/visual/scrollspy.html create mode 100644 static/vendors/bootstrap/js/tests/visual/tab.html create mode 100644 static/vendors/bootstrap/js/tests/visual/toast.html create mode 100644 static/vendors/bootstrap/js/tests/visual/tooltip.html create mode 100644 static/vendors/bootstrap/nuget/MyGet.ps1 create mode 100644 static/vendors/bootstrap/nuget/bootstrap.nuspec create mode 100644 static/vendors/bootstrap/nuget/bootstrap.sass.nuspec create mode 100644 static/vendors/bootstrap/package-lock.json create mode 100644 static/vendors/bootstrap/package.js create mode 100644 static/vendors/bootstrap/package.json create mode 100644 static/vendors/bootstrap/scss/_alert.scss create mode 100644 static/vendors/bootstrap/scss/_badge.scss create mode 100644 static/vendors/bootstrap/scss/_breadcrumb.scss create mode 100644 static/vendors/bootstrap/scss/_button-group.scss create mode 100644 static/vendors/bootstrap/scss/_buttons.scss create mode 100644 static/vendors/bootstrap/scss/_card.scss create mode 100644 static/vendors/bootstrap/scss/_carousel.scss create mode 100644 static/vendors/bootstrap/scss/_close.scss create mode 100644 static/vendors/bootstrap/scss/_code.scss create mode 100644 static/vendors/bootstrap/scss/_custom-forms.scss create mode 100644 static/vendors/bootstrap/scss/_dropdown.scss create mode 100644 static/vendors/bootstrap/scss/_forms.scss create mode 100644 static/vendors/bootstrap/scss/_functions.scss create mode 100644 static/vendors/bootstrap/scss/_grid.scss create mode 100644 static/vendors/bootstrap/scss/_images.scss create mode 100644 static/vendors/bootstrap/scss/_input-group.scss create mode 100644 static/vendors/bootstrap/scss/_jumbotron.scss create mode 100644 static/vendors/bootstrap/scss/_list-group.scss create mode 100644 static/vendors/bootstrap/scss/_media.scss create mode 100644 static/vendors/bootstrap/scss/_mixins.scss create mode 100644 static/vendors/bootstrap/scss/_modal.scss create mode 100644 static/vendors/bootstrap/scss/_nav.scss create mode 100644 static/vendors/bootstrap/scss/_navbar.scss create mode 100644 static/vendors/bootstrap/scss/_pagination.scss create mode 100644 static/vendors/bootstrap/scss/_popover.scss create mode 100644 static/vendors/bootstrap/scss/_print.scss create mode 100644 static/vendors/bootstrap/scss/_progress.scss create mode 100644 static/vendors/bootstrap/scss/_reboot.scss create mode 100644 static/vendors/bootstrap/scss/_root.scss create mode 100644 static/vendors/bootstrap/scss/_spinners.scss create mode 100644 static/vendors/bootstrap/scss/_tables.scss create mode 100644 static/vendors/bootstrap/scss/_toasts.scss create mode 100644 static/vendors/bootstrap/scss/_tooltip.scss create mode 100644 static/vendors/bootstrap/scss/_transitions.scss create mode 100644 static/vendors/bootstrap/scss/_type.scss create mode 100644 static/vendors/bootstrap/scss/_utilities.scss create mode 100644 static/vendors/bootstrap/scss/_variables.scss create mode 100644 static/vendors/bootstrap/scss/bootstrap-grid.scss create mode 100644 static/vendors/bootstrap/scss/bootstrap-reboot.scss create mode 100644 static/vendors/bootstrap/scss/bootstrap.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_alert.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_background-variant.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_badge.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_border-radius.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_box-shadow.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_breakpoints.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_buttons.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_caret.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_clearfix.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_deprecate.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_float.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_forms.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_gradients.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_grid-framework.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_grid.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_hover.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_image.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_list-group.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_lists.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_nav-divider.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_pagination.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_reset-text.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_resize.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_screen-reader.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_size.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_table-row.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_text-emphasis.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_text-hide.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_text-truncate.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_transition.scss create mode 100644 static/vendors/bootstrap/scss/mixins/_visibility.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_align.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_background.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_borders.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_clearfix.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_display.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_embed.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_flex.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_float.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_overflow.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_position.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_screenreaders.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_shadows.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_sizing.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_spacing.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_stretched-link.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_text.scss create mode 100644 static/vendors/bootstrap/scss/utilities/_visibility.scss create mode 100644 static/vendors/bootstrap/scss/vendor/_rfs.scss create mode 100644 static/vendors/bootstrap/site/.eslintrc.json create mode 100644 static/vendors/bootstrap/site/_data/breakpoints.yml create mode 100644 static/vendors/bootstrap/site/_data/browser-bugs.yml create mode 100644 static/vendors/bootstrap/site/_data/browser-features.yml create mode 100644 static/vendors/bootstrap/site/_data/colors.yml create mode 100644 static/vendors/bootstrap/site/_data/core-team.yml create mode 100644 static/vendors/bootstrap/site/_data/docs-versions.yml create mode 100644 static/vendors/bootstrap/site/_data/examples.yml create mode 100644 static/vendors/bootstrap/site/_data/grays.yml create mode 100644 static/vendors/bootstrap/site/_data/nav.yml create mode 100644 static/vendors/bootstrap/site/_data/theme-colors.yml create mode 100644 static/vendors/bootstrap/site/_data/translations.yml create mode 100644 static/vendors/bootstrap/site/_includes/ads.html create mode 100644 static/vendors/bootstrap/site/_includes/analytics.html create mode 100644 static/vendors/bootstrap/site/_includes/bugify.html create mode 100644 static/vendors/bootstrap/site/_includes/callout-danger-async-methods.md create mode 100644 static/vendors/bootstrap/site/_includes/callout-info-mediaqueries-breakpoints.md create mode 100644 static/vendors/bootstrap/site/_includes/callout-info-prefersreducedmotion.md create mode 100644 static/vendors/bootstrap/site/_includes/callout-warning-color-assistive-technologies.md create mode 100644 static/vendors/bootstrap/site/_includes/callout.html create mode 100644 static/vendors/bootstrap/site/_includes/docs-navbar.html create mode 100644 static/vendors/bootstrap/site/_includes/docs-sidebar.html create mode 100644 static/vendors/bootstrap/site/_includes/example.html create mode 100644 static/vendors/bootstrap/site/_includes/favicons.html create mode 100644 static/vendors/bootstrap/site/_includes/footer.html create mode 100644 static/vendors/bootstrap/site/_includes/header.html create mode 100644 static/vendors/bootstrap/site/_includes/icons/bootstrap-stack.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/bootstrap.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/download.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/github.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/import.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/lightning.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/menu.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/opencollective.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/placeholder.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/slack.svg create mode 100644 static/vendors/bootstrap/site/_includes/icons/twitter.svg create mode 100644 static/vendors/bootstrap/site/_includes/scripts.html create mode 100644 static/vendors/bootstrap/site/_includes/skippy.html create mode 100644 static/vendors/bootstrap/site/_includes/social.html create mode 100644 static/vendors/bootstrap/site/_includes/stylesheet.html create mode 100644 static/vendors/bootstrap/site/_layouts/default.html create mode 100644 static/vendors/bootstrap/site/_layouts/docs.html create mode 100644 static/vendors/bootstrap/site/_layouts/examples.html create mode 100644 static/vendors/bootstrap/site/_layouts/home.html create mode 100644 static/vendors/bootstrap/site/_layouts/simple.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/about/brand.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/about/license.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/about/overview.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/about/team.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/about/translations.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/brand/bootstrap-outline.svg create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/brand/bootstrap-punchout.svg create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/brand/bootstrap-social-logo.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/brand/bootstrap-social.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/brand/bootstrap-solid.svg create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/css/docs.min.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/css/docs.min.css.map create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/bootstrap-themes.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/bootstrap-themes@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/album.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/album@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/blog.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/blog@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/carousel.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/carousel@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/checkout.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/checkout@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/cover.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/cover@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/dashboard.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/dashboard@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/floating-labels.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/floating-labels@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/grid.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/grid@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/jumbotron.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/jumbotron@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-bottom.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-bottom@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-fixed.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-fixed@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-static.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbar-static@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbars.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/navbars@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/offcanvas.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/offcanvas@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/pricing.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/pricing@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/product.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/product@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sign-in.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sign-in@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/starter-template.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/starter-template@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sticky-footer-navbar.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sticky-footer-navbar@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sticky-footer.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/examples/sticky-footer@2x.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/android-chrome-192x192.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/android-chrome-512x512.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/apple-touch-icon.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/browserconfig.xml create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/favicon-16x16.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/favicon-32x32.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/manifest.json create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/mstile-144x144.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/mstile-150x150.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/mstile-310x150.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/mstile-310x310.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/mstile-70x70.png create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/img/favicons/safari-pinned-tab.svg create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/docs.min.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/src/application.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/src/ie-emulation-modes-warning.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/src/search.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/vendor/anchor.min.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/vendor/bs-custom-file-input.min.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/vendor/clipboard.min.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/js/vendor/jquery-slim.min.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_ads.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_algolia.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_anchor.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_brand.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_browser-bugs.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_buttons.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_callouts.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_clipboard-js.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_colors.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_component-examples.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_content.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_footer.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_masthead.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_nav.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_placeholder-img.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_sidebar.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_skippy.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_syntax.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/_variables.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/assets/scss/docs.scss create mode 100644 static/vendors/bootstrap/site/docs/4.3/browser-bugs.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/alerts.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/badge.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/breadcrumb.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/button-group.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/buttons.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/card.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/carousel.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/collapse.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/dropdowns.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/forms.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/input-group.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/jumbotron.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/list-group.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/media-object.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/modal.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/navbar.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/navs.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/pagination.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/popovers.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/progress.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/scrollspy.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/spinners.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/toasts.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/components/tooltips.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/code.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/figures.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/images.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/reboot.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/tables.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/content/typography.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/.stylelintrc create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/album/album.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/album/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/blog/blog.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/blog/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/carousel/carousel.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/carousel/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/checkout/form-validation.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/checkout/form-validation.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/checkout/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/cover/cover.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/cover/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/dashboard/dashboard.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/dashboard/dashboard.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/dashboard/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/floating-labels/floating-labels.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/floating-labels/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/grid/grid.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/grid/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/jumbotron/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/jumbotron/jumbotron.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbar-bottom/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbar-fixed/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbar-fixed/navbar-top-fixed.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbar-static/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbar-static/navbar-top.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbars/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/navbars/navbar.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/offcanvas/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/offcanvas/offcanvas.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/offcanvas/offcanvas.js create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/pricing/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/pricing/pricing.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/product/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/product/product.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sign-in/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sign-in/signin.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/starter-template/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/starter-template/starter-template.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sticky-footer-navbar/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sticky-footer-navbar/sticky-footer-navbar.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sticky-footer/index.html create mode 100644 static/vendors/bootstrap/site/docs/4.3/examples/sticky-footer/sticky-footer.css create mode 100644 static/vendors/bootstrap/site/docs/4.3/extend/approach.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/extend/icons.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/accessibility.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/best-practices.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/browsers-devices.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/build-tools.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/contents.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/download.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/introduction.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/javascript.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/theming.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/getting-started/webpack.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/layout/grid.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/layout/overview.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/layout/utilities-for-layout.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/migration.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/borders.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/clearfix.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/close-icon.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/colors.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/display.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/embed.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/flex.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/float.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/image-replacement.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/overflow.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/position.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/screen-readers.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/shadows.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/sizing.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/spacing.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/stretched-link.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/text.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/vertical-align.md create mode 100644 static/vendors/bootstrap/site/docs/4.3/utilities/visibility.md create mode 100644 static/vendors/bootstrap/site/docs/versions.html create mode 100644 static/vendors/bootstrap/site/favicon.ico create mode 100644 static/vendors/bootstrap/site/index.html create mode 100644 static/vendors/bootstrap/site/robots.txt create mode 100644 static/vendors/bootstrap/site/sw.js create mode 100644 static/vendors/cropper/.bower.json create mode 100644 static/vendors/cropper/CHANGELOG.md create mode 100644 static/vendors/cropper/LICENSE create mode 100644 static/vendors/cropper/README.md create mode 100644 static/vendors/cropper/bower.json create mode 100644 static/vendors/cropper/dist/cropper.css create mode 100644 static/vendors/cropper/dist/cropper.js create mode 100644 static/vendors/cropper/dist/cropper.min.css create mode 100644 static/vendors/cropper/dist/cropper.min.js create mode 100644 static/vendors/cropper/package.json create mode 100644 static/vendors/cropper/src/img/bg.png create mode 100644 static/vendors/cropper/src/js/bind.js create mode 100644 static/vendors/cropper/src/js/build.js create mode 100644 static/vendors/cropper/src/js/change.js create mode 100644 static/vendors/cropper/src/js/cropper.js create mode 100644 static/vendors/cropper/src/js/defaults.js create mode 100644 static/vendors/cropper/src/js/handlers.js create mode 100644 static/vendors/cropper/src/js/init.js create mode 100644 static/vendors/cropper/src/js/intro.js create mode 100644 static/vendors/cropper/src/js/methods.js create mode 100644 static/vendors/cropper/src/js/outro.js create mode 100644 static/vendors/cropper/src/js/plugin.js create mode 100644 static/vendors/cropper/src/js/preview.js create mode 100644 static/vendors/cropper/src/js/render.js create mode 100644 static/vendors/cropper/src/js/template.js create mode 100644 static/vendors/cropper/src/js/utilities.js create mode 100644 static/vendors/cropper/src/js/variables.js create mode 100644 static/vendors/cropper/src/scss/_main.scss create mode 100644 static/vendors/cropper/src/scss/_mixins.scss create mode 100644 static/vendors/cropper/src/scss/_utilities.scss create mode 100644 static/vendors/cropper/src/scss/_variables.scss create mode 100644 static/vendors/cropper/src/scss/cropper.scss create mode 100644 static/vendors/datatables.net-bs/.bower.json create mode 100644 static/vendors/datatables.net-bs/License.txt create mode 100644 static/vendors/datatables.net-bs/Readme.md create mode 100644 static/vendors/datatables.net-bs/bower.json create mode 100644 static/vendors/datatables.net-bs/css/dataTables.bootstrap.css create mode 100644 static/vendors/datatables.net-bs/css/dataTables.bootstrap.min.css create mode 100644 static/vendors/datatables.net-bs/js/dataTables.bootstrap.js create mode 100644 static/vendors/datatables.net-bs/js/dataTables.bootstrap.min.js create mode 100644 static/vendors/datatables.net-buttons-bs/.bower.json create mode 100644 static/vendors/datatables.net-buttons-bs/License.txt create mode 100644 static/vendors/datatables.net-buttons-bs/Readme.md create mode 100644 static/vendors/datatables.net-buttons-bs/bower.json create mode 100644 static/vendors/datatables.net-buttons-bs/css/buttons.bootstrap.css create mode 100644 static/vendors/datatables.net-buttons-bs/css/buttons.bootstrap.min.css create mode 100644 static/vendors/datatables.net-buttons-bs/js/buttons.bootstrap.js create mode 100644 static/vendors/datatables.net-buttons-bs/js/buttons.bootstrap.min.js create mode 100644 static/vendors/datatables.net-buttons/.bower.json create mode 100644 static/vendors/datatables.net-buttons/License.txt create mode 100644 static/vendors/datatables.net-buttons/Readme.md create mode 100644 static/vendors/datatables.net-buttons/bower.json create mode 100755 static/vendors/datatables.net-buttons/js/buttons.colVis.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.colVis.min.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.flash.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.flash.min.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.html5.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.html5.min.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.print.js create mode 100644 static/vendors/datatables.net-buttons/js/buttons.print.min.js create mode 100644 static/vendors/datatables.net-buttons/js/dataTables.buttons.js create mode 100644 static/vendors/datatables.net-buttons/js/dataTables.buttons.min.js create mode 100644 static/vendors/datatables.net-fixedheader-bs/.bower.json create mode 100644 static/vendors/datatables.net-fixedheader-bs/License.txt create mode 100644 static/vendors/datatables.net-fixedheader-bs/Readme.md create mode 100644 static/vendors/datatables.net-fixedheader-bs/bower.json create mode 100644 static/vendors/datatables.net-fixedheader-bs/css/fixedHeader.bootstrap.css create mode 100644 static/vendors/datatables.net-fixedheader-bs/css/fixedHeader.bootstrap.min.css create mode 100644 static/vendors/datatables.net-fixedheader/.bower.json create mode 100644 static/vendors/datatables.net-fixedheader/License.txt create mode 100644 static/vendors/datatables.net-fixedheader/Readme.md create mode 100644 static/vendors/datatables.net-fixedheader/bower.json create mode 100644 static/vendors/datatables.net-fixedheader/js/dataTables.fixedHeader.js create mode 100644 static/vendors/datatables.net-fixedheader/js/dataTables.fixedHeader.min.js create mode 100644 static/vendors/datatables.net-keytable/.bower.json create mode 100644 static/vendors/datatables.net-keytable/License.txt create mode 100644 static/vendors/datatables.net-keytable/Readme.md create mode 100644 static/vendors/datatables.net-keytable/bower.json create mode 100644 static/vendors/datatables.net-keytable/js/dataTables.keyTable.js create mode 100644 static/vendors/datatables.net-keytable/js/dataTables.keyTable.min.js create mode 100644 static/vendors/datatables.net-responsive-bs/.bower.json create mode 100644 static/vendors/datatables.net-responsive-bs/License.txt create mode 100644 static/vendors/datatables.net-responsive-bs/Readme.md create mode 100644 static/vendors/datatables.net-responsive-bs/bower.json create mode 100644 static/vendors/datatables.net-responsive-bs/css/responsive.bootstrap.css create mode 100644 static/vendors/datatables.net-responsive-bs/css/responsive.bootstrap.min.css create mode 100644 static/vendors/datatables.net-responsive-bs/js/responsive.bootstrap.js create mode 100644 static/vendors/datatables.net-responsive/.bower.json create mode 100644 static/vendors/datatables.net-responsive/License.txt create mode 100644 static/vendors/datatables.net-responsive/Readme.md create mode 100644 static/vendors/datatables.net-responsive/bower.json create mode 100644 static/vendors/datatables.net-responsive/js/dataTables.responsive.js create mode 100644 static/vendors/datatables.net-responsive/js/dataTables.responsive.min.js create mode 100644 static/vendors/datatables.net-scroller-bs/.bower.json create mode 100644 static/vendors/datatables.net-scroller-bs/License.txt create mode 100644 static/vendors/datatables.net-scroller-bs/Readme.md create mode 100644 static/vendors/datatables.net-scroller-bs/bower.json create mode 100644 static/vendors/datatables.net-scroller-bs/css/scroller.bootstrap.css create mode 100644 static/vendors/datatables.net-scroller-bs/css/scroller.bootstrap.min.css create mode 100644 static/vendors/datatables.net-scroller/.bower.json create mode 100644 static/vendors/datatables.net-scroller/License.txt create mode 100644 static/vendors/datatables.net-scroller/Readme.md create mode 100644 static/vendors/datatables.net-scroller/bower.json create mode 100644 static/vendors/datatables.net-scroller/js/dataTables.scroller.js create mode 100644 static/vendors/datatables.net-scroller/js/dataTables.scroller.min.js create mode 100644 static/vendors/datatables.net/.bower.json create mode 100644 static/vendors/datatables.net/License.txt create mode 100644 static/vendors/datatables.net/Readme.md create mode 100644 static/vendors/datatables.net/bower.json create mode 100644 static/vendors/datatables.net/js/jquery.dataTables.js create mode 100644 static/vendors/datatables.net/js/jquery.dataTables.min.js create mode 100644 static/vendors/devbridge-autocomplete/.bower.json create mode 100644 static/vendors/devbridge-autocomplete/bower.json create mode 100644 static/vendors/devbridge-autocomplete/devbridge-autocomplete.jquery.json create mode 100644 static/vendors/devbridge-autocomplete/dist/jquery.autocomplete.js create mode 100644 static/vendors/devbridge-autocomplete/dist/jquery.autocomplete.min.js create mode 100644 static/vendors/devbridge-autocomplete/dist/license.txt create mode 100644 static/vendors/devbridge-autocomplete/gruntfile.js create mode 100644 static/vendors/devbridge-autocomplete/index.htm create mode 100644 static/vendors/devbridge-autocomplete/license.txt create mode 100644 static/vendors/devbridge-autocomplete/package.json create mode 100644 static/vendors/devbridge-autocomplete/readme.md create mode 100644 static/vendors/devbridge-autocomplete/src/jquery.autocomplete.d.ts create mode 100644 static/vendors/devbridge-autocomplete/src/jquery.autocomplete.js create mode 100644 static/vendors/dropzone/.bower.json create mode 100644 static/vendors/dropzone/bower.json create mode 100644 static/vendors/dropzone/dist/basic.css create mode 100644 static/vendors/dropzone/dist/dropzone-amd-module.js create mode 100644 static/vendors/dropzone/dist/dropzone.css create mode 100644 static/vendors/dropzone/dist/dropzone.js create mode 100644 static/vendors/dropzone/dist/min/basic.min.css create mode 100644 static/vendors/dropzone/dist/min/dropzone-amd-module.min.js create mode 100644 static/vendors/dropzone/dist/min/dropzone.min.css create mode 100644 static/vendors/dropzone/dist/min/dropzone.min.js create mode 100644 static/vendors/dropzone/dist/readme.md create mode 100644 static/vendors/echarts/.bower.json create mode 100644 static/vendors/echarts/.editorconfig create mode 100644 static/vendors/echarts/.github/CONTRIBUTING.md create mode 100644 static/vendors/echarts/.github/ISSUE_TEMPLATE.md create mode 100644 static/vendors/echarts/.gitignore create mode 100644 static/vendors/echarts/.jshintrc create mode 100644 static/vendors/echarts/.npmignore create mode 100644 static/vendors/echarts/LICENSE create mode 100644 static/vendors/echarts/README.md create mode 100644 static/vendors/echarts/asset/logo.png create mode 100644 static/vendors/echarts/build/amd2common.js create mode 100644 static/vendors/echarts/build/build.sh create mode 100644 static/vendors/echarts/build/mangleString.js create mode 100644 static/vendors/echarts/build/optimize.js create mode 100644 static/vendors/echarts/dist/echarts.common.js create mode 100644 static/vendors/echarts/dist/echarts.common.min.js create mode 100644 static/vendors/echarts/dist/echarts.js create mode 100644 static/vendors/echarts/dist/echarts.min.js create mode 100644 static/vendors/echarts/dist/echarts.simple.js create mode 100644 static/vendors/echarts/dist/echarts.simple.min.js create mode 100644 static/vendors/echarts/dist/extension/bmap.js create mode 100644 static/vendors/echarts/dist/extension/bmap.min.js create mode 100644 static/vendors/echarts/dist/extension/dataTool.js create mode 100644 static/vendors/echarts/dist/extension/dataTool.min.js create mode 100644 static/vendors/echarts/extension/bmap/BMapCoordSys.js create mode 100644 static/vendors/echarts/extension/bmap/BMapModel.js create mode 100644 static/vendors/echarts/extension/bmap/BMapView.js create mode 100644 static/vendors/echarts/extension/bmap/bmap.js create mode 100644 static/vendors/echarts/extension/dataTool/gexf.js create mode 100644 static/vendors/echarts/extension/dataTool/index.js create mode 100644 static/vendors/echarts/extension/dataTool/prepareBoxplotData.js create mode 100644 static/vendors/echarts/extension/dataTool/quantile.js create mode 100644 static/vendors/echarts/extension/echarts.js create mode 100644 static/vendors/echarts/extension/webpack.config.js create mode 100644 static/vendors/echarts/index.common.js create mode 100644 static/vendors/echarts/index.js create mode 100644 static/vendors/echarts/index.simple.js create mode 100644 static/vendors/echarts/map/js/china-contour.js create mode 100644 static/vendors/echarts/map/js/china.js create mode 100644 static/vendors/echarts/map/js/province/anhui.js create mode 100644 static/vendors/echarts/map/js/province/aomen.js create mode 100644 static/vendors/echarts/map/js/province/beijing.js create mode 100644 static/vendors/echarts/map/js/province/chongqing.js create mode 100644 static/vendors/echarts/map/js/province/fujian.js create mode 100644 static/vendors/echarts/map/js/province/gansu.js create mode 100644 static/vendors/echarts/map/js/province/guangdong.js create mode 100644 static/vendors/echarts/map/js/province/guangxi.js create mode 100644 static/vendors/echarts/map/js/province/guizhou.js create mode 100644 static/vendors/echarts/map/js/province/hainan.js create mode 100644 static/vendors/echarts/map/js/province/hebei.js create mode 100644 static/vendors/echarts/map/js/province/heilongjiang.js create mode 100644 static/vendors/echarts/map/js/province/henan.js create mode 100644 static/vendors/echarts/map/js/province/hubei.js create mode 100644 static/vendors/echarts/map/js/province/hunan.js create mode 100644 static/vendors/echarts/map/js/province/jiangsu.js create mode 100644 static/vendors/echarts/map/js/province/jiangxi.js create mode 100644 static/vendors/echarts/map/js/province/jilin.js create mode 100644 static/vendors/echarts/map/js/province/liaoning.js create mode 100644 static/vendors/echarts/map/js/province/neimenggu.js create mode 100644 static/vendors/echarts/map/js/province/ningxia.js create mode 100644 static/vendors/echarts/map/js/province/qinghai.js create mode 100644 static/vendors/echarts/map/js/province/shandong.js create mode 100644 static/vendors/echarts/map/js/province/shanghai.js create mode 100644 static/vendors/echarts/map/js/province/shanxi.js create mode 100644 static/vendors/echarts/map/js/province/shanxi1.js create mode 100644 static/vendors/echarts/map/js/province/sichuan.js create mode 100644 static/vendors/echarts/map/js/province/tianjin.js create mode 100644 static/vendors/echarts/map/js/province/xianggang.js create mode 100644 static/vendors/echarts/map/js/province/xinjiang.js create mode 100644 static/vendors/echarts/map/js/province/xizang.js create mode 100644 static/vendors/echarts/map/js/province/yunnan.js create mode 100644 static/vendors/echarts/map/js/province/zhejiang.js create mode 100644 static/vendors/echarts/map/js/world.js create mode 100644 static/vendors/echarts/map/json/china-contour.json create mode 100644 static/vendors/echarts/map/json/china.json create mode 100644 static/vendors/echarts/map/json/province/anhui.json create mode 100644 static/vendors/echarts/map/json/province/aomen.json create mode 100644 static/vendors/echarts/map/json/province/beijing.json create mode 100644 static/vendors/echarts/map/json/province/chongqing.json create mode 100644 static/vendors/echarts/map/json/province/fujian.json create mode 100644 static/vendors/echarts/map/json/province/gansu.json create mode 100644 static/vendors/echarts/map/json/province/guangdong.json create mode 100644 static/vendors/echarts/map/json/province/guangxi.json create mode 100644 static/vendors/echarts/map/json/province/guizhou.json create mode 100644 static/vendors/echarts/map/json/province/hainan.json create mode 100644 static/vendors/echarts/map/json/province/hebei.json create mode 100644 static/vendors/echarts/map/json/province/heilongjiang.json create mode 100644 static/vendors/echarts/map/json/province/henan.json create mode 100644 static/vendors/echarts/map/json/province/hubei.json create mode 100644 static/vendors/echarts/map/json/province/hunan.json create mode 100644 static/vendors/echarts/map/json/province/jiangsu.json create mode 100644 static/vendors/echarts/map/json/province/jiangxi.json create mode 100644 static/vendors/echarts/map/json/province/jilin.json create mode 100644 static/vendors/echarts/map/json/province/liaoning.json create mode 100644 static/vendors/echarts/map/json/province/neimenggu.json create mode 100644 static/vendors/echarts/map/json/province/ningxia.json create mode 100644 static/vendors/echarts/map/json/province/qinghai.json create mode 100644 static/vendors/echarts/map/json/province/shandong.json create mode 100644 static/vendors/echarts/map/json/province/shanghai.json create mode 100644 static/vendors/echarts/map/json/province/shanxi.json create mode 100644 static/vendors/echarts/map/json/province/shanxi1.json create mode 100644 static/vendors/echarts/map/json/province/sichuan.json create mode 100644 static/vendors/echarts/map/json/province/tianjin.json create mode 100644 static/vendors/echarts/map/json/province/xianggang.json create mode 100644 static/vendors/echarts/map/json/province/xinjiang.json create mode 100644 static/vendors/echarts/map/json/province/xizang.json create mode 100644 static/vendors/echarts/map/json/province/yunnan.json create mode 100644 static/vendors/echarts/map/json/province/zhejiang.json create mode 100644 static/vendors/echarts/map/json/world.json create mode 100644 static/vendors/echarts/package.json create mode 100644 static/vendors/echarts/src/CoordinateSystem.js create mode 100644 static/vendors/echarts/src/ExtensionAPI.js create mode 100644 static/vendors/echarts/src/action/createDataSelectAction.js create mode 100644 static/vendors/echarts/src/action/geoRoam.js create mode 100644 static/vendors/echarts/src/action/roamHelper.js create mode 100644 static/vendors/echarts/src/chart/bar.js create mode 100644 static/vendors/echarts/src/chart/bar/BarSeries.js create mode 100644 static/vendors/echarts/src/chart/bar/BarView.js create mode 100644 static/vendors/echarts/src/chart/bar/barItemStyle.js create mode 100644 static/vendors/echarts/src/chart/boxplot.js create mode 100644 static/vendors/echarts/src/chart/boxplot/BoxplotSeries.js create mode 100644 static/vendors/echarts/src/chart/boxplot/BoxplotView.js create mode 100644 static/vendors/echarts/src/chart/boxplot/boxplotLayout.js create mode 100644 static/vendors/echarts/src/chart/boxplot/boxplotVisual.js create mode 100644 static/vendors/echarts/src/chart/candlestick.js create mode 100644 static/vendors/echarts/src/chart/candlestick/CandlestickSeries.js create mode 100644 static/vendors/echarts/src/chart/candlestick/CandlestickView.js create mode 100644 static/vendors/echarts/src/chart/candlestick/candlestickLayout.js create mode 100644 static/vendors/echarts/src/chart/candlestick/candlestickVisual.js create mode 100644 static/vendors/echarts/src/chart/candlestick/preprocessor.js create mode 100644 static/vendors/echarts/src/chart/chord.js create mode 100644 static/vendors/echarts/src/chart/chord/ChordSeries.js create mode 100644 static/vendors/echarts/src/chart/chord/ChordView.js create mode 100644 static/vendors/echarts/src/chart/chord/Ribbon.js create mode 100644 static/vendors/echarts/src/chart/chord/chordCircularLayout.js create mode 100644 static/vendors/echarts/src/chart/effectScatter.js create mode 100644 static/vendors/echarts/src/chart/effectScatter/EffectScatterSeries.js create mode 100644 static/vendors/echarts/src/chart/effectScatter/EffectScatterView.js create mode 100644 static/vendors/echarts/src/chart/funnel.js create mode 100644 static/vendors/echarts/src/chart/funnel/FunnelSeries.js create mode 100644 static/vendors/echarts/src/chart/funnel/FunnelView.js create mode 100644 static/vendors/echarts/src/chart/funnel/funnelLayout.js create mode 100644 static/vendors/echarts/src/chart/gauge.js create mode 100644 static/vendors/echarts/src/chart/gauge/GaugeSeries.js create mode 100644 static/vendors/echarts/src/chart/gauge/GaugeView.js create mode 100644 static/vendors/echarts/src/chart/gauge/PointerPath.js create mode 100644 static/vendors/echarts/src/chart/graph.js create mode 100644 static/vendors/echarts/src/chart/graph/GraphSeries.js create mode 100644 static/vendors/echarts/src/chart/graph/GraphView.js create mode 100644 static/vendors/echarts/src/chart/graph/adjustEdge.js create mode 100644 static/vendors/echarts/src/chart/graph/backwardCompat.js create mode 100644 static/vendors/echarts/src/chart/graph/categoryFilter.js create mode 100644 static/vendors/echarts/src/chart/graph/categoryVisual.js create mode 100644 static/vendors/echarts/src/chart/graph/circularLayout.js create mode 100644 static/vendors/echarts/src/chart/graph/circularLayoutHelper.js create mode 100644 static/vendors/echarts/src/chart/graph/createView.js create mode 100644 static/vendors/echarts/src/chart/graph/edgeVisual.js create mode 100644 static/vendors/echarts/src/chart/graph/forceHelper.js create mode 100644 static/vendors/echarts/src/chart/graph/forceLayout.js create mode 100644 static/vendors/echarts/src/chart/graph/roamAction.js create mode 100644 static/vendors/echarts/src/chart/graph/simpleLayout.js create mode 100644 static/vendors/echarts/src/chart/graph/simpleLayoutEdge.js create mode 100644 static/vendors/echarts/src/chart/graph/simpleLayoutHelper.js create mode 100644 static/vendors/echarts/src/chart/heatmap.js create mode 100644 static/vendors/echarts/src/chart/heatmap/HeatmapLayer.js create mode 100644 static/vendors/echarts/src/chart/heatmap/HeatmapSeries.js create mode 100644 static/vendors/echarts/src/chart/heatmap/HeatmapView.js create mode 100644 static/vendors/echarts/src/chart/helper/EffectLine.js create mode 100644 static/vendors/echarts/src/chart/helper/EffectSymbol.js create mode 100644 static/vendors/echarts/src/chart/helper/LargeSymbolDraw.js create mode 100644 static/vendors/echarts/src/chart/helper/Line.js create mode 100644 static/vendors/echarts/src/chart/helper/LineDraw.js create mode 100644 static/vendors/echarts/src/chart/helper/LinePath.js create mode 100644 static/vendors/echarts/src/chart/helper/Symbol.js create mode 100644 static/vendors/echarts/src/chart/helper/SymbolDraw.js create mode 100644 static/vendors/echarts/src/chart/helper/WhiskerBoxDraw.js create mode 100644 static/vendors/echarts/src/chart/helper/createGraphFromNodeEdge.js create mode 100644 static/vendors/echarts/src/chart/helper/createGraphFromNodeMatrix.js create mode 100644 static/vendors/echarts/src/chart/helper/createListFromArray.js create mode 100644 static/vendors/echarts/src/chart/helper/whiskerBoxCommon.js create mode 100644 static/vendors/echarts/src/chart/line.js create mode 100644 static/vendors/echarts/src/chart/line/LineSeries.js create mode 100644 static/vendors/echarts/src/chart/line/LineView.js create mode 100644 static/vendors/echarts/src/chart/line/lineAnimationDiff.js create mode 100644 static/vendors/echarts/src/chart/line/poly.js create mode 100644 static/vendors/echarts/src/chart/lines.js create mode 100644 static/vendors/echarts/src/chart/lines/LinesSeries.js create mode 100644 static/vendors/echarts/src/chart/lines/LinesView.js create mode 100644 static/vendors/echarts/src/chart/lines/linesLayout.js create mode 100644 static/vendors/echarts/src/chart/map.js create mode 100644 static/vendors/echarts/src/chart/map/MapSeries.js create mode 100644 static/vendors/echarts/src/chart/map/MapView.js create mode 100644 static/vendors/echarts/src/chart/map/backwardCompat.js create mode 100644 static/vendors/echarts/src/chart/map/mapDataStatistic.js create mode 100644 static/vendors/echarts/src/chart/map/mapSymbolLayout.js create mode 100644 static/vendors/echarts/src/chart/map/mapVisual.js create mode 100644 static/vendors/echarts/src/chart/parallel.js create mode 100644 static/vendors/echarts/src/chart/parallel/ParallelSeries.js create mode 100644 static/vendors/echarts/src/chart/parallel/ParallelView.js create mode 100644 static/vendors/echarts/src/chart/parallel/parallelVisual.js create mode 100644 static/vendors/echarts/src/chart/pie.js create mode 100644 static/vendors/echarts/src/chart/pie/PieSeries.js create mode 100644 static/vendors/echarts/src/chart/pie/PieView.js create mode 100644 static/vendors/echarts/src/chart/pie/labelLayout.js create mode 100644 static/vendors/echarts/src/chart/pie/pieLayout.js create mode 100644 static/vendors/echarts/src/chart/radar.js create mode 100644 static/vendors/echarts/src/chart/radar/RadarSeries.js create mode 100644 static/vendors/echarts/src/chart/radar/RadarView.js create mode 100644 static/vendors/echarts/src/chart/radar/backwardCompat.js create mode 100644 static/vendors/echarts/src/chart/radar/radarLayout.js create mode 100644 static/vendors/echarts/src/chart/sankey.js create mode 100644 static/vendors/echarts/src/chart/sankey/SankeySeries.js create mode 100644 static/vendors/echarts/src/chart/sankey/SankeyView.js create mode 100644 static/vendors/echarts/src/chart/sankey/sankeyLayout.js create mode 100644 static/vendors/echarts/src/chart/sankey/sankeyVisual.js create mode 100644 static/vendors/echarts/src/chart/scatter.js create mode 100644 static/vendors/echarts/src/chart/scatter/ScatterSeries.js create mode 100644 static/vendors/echarts/src/chart/scatter/ScatterView.js create mode 100644 static/vendors/echarts/src/chart/themeRiver.js create mode 100644 static/vendors/echarts/src/chart/themeRiver/ThemeRiverSeries.js create mode 100644 static/vendors/echarts/src/chart/themeRiver/ThemeRiverView.js create mode 100644 static/vendors/echarts/src/chart/themeRiver/themeRiverLayout.js create mode 100644 static/vendors/echarts/src/chart/themeRiver/themeRiverVisual.js create mode 100644 static/vendors/echarts/src/chart/treemap.js create mode 100644 static/vendors/echarts/src/chart/treemap/Breadcrumb.js create mode 100644 static/vendors/echarts/src/chart/treemap/TreemapSeries.js create mode 100644 static/vendors/echarts/src/chart/treemap/TreemapView.js create mode 100644 static/vendors/echarts/src/chart/treemap/helper.js create mode 100644 static/vendors/echarts/src/chart/treemap/treemapAction.js create mode 100644 static/vendors/echarts/src/chart/treemap/treemapLayout.js create mode 100644 static/vendors/echarts/src/chart/treemap/treemapVisual.js create mode 100644 static/vendors/echarts/src/component/angleAxis.js create mode 100644 static/vendors/echarts/src/component/axis.js create mode 100644 static/vendors/echarts/src/component/axis/AngleAxisView.js create mode 100644 static/vendors/echarts/src/component/axis/AxisBuilder.js create mode 100644 static/vendors/echarts/src/component/axis/AxisView.js create mode 100644 static/vendors/echarts/src/component/axis/ParallelAxisView.js create mode 100644 static/vendors/echarts/src/component/axis/RadiusAxisView.js create mode 100644 static/vendors/echarts/src/component/axis/SingleAxisView.js create mode 100644 static/vendors/echarts/src/component/axis/parallelAxisAction.js create mode 100644 static/vendors/echarts/src/component/dataZoom.js create mode 100644 static/vendors/echarts/src/component/dataZoom/AxisProxy.js create mode 100644 static/vendors/echarts/src/component/dataZoom/DataZoomModel.js create mode 100644 static/vendors/echarts/src/component/dataZoom/DataZoomView.js create mode 100644 static/vendors/echarts/src/component/dataZoom/InsideZoomModel.js create mode 100644 static/vendors/echarts/src/component/dataZoom/InsideZoomView.js create mode 100644 static/vendors/echarts/src/component/dataZoom/SelectZoomModel.js create mode 100644 static/vendors/echarts/src/component/dataZoom/SelectZoomView.js create mode 100644 static/vendors/echarts/src/component/dataZoom/SliderZoomModel.js create mode 100644 static/vendors/echarts/src/component/dataZoom/SliderZoomView.js create mode 100644 static/vendors/echarts/src/component/dataZoom/dataZoomAction.js create mode 100644 static/vendors/echarts/src/component/dataZoom/dataZoomProcessor.js create mode 100644 static/vendors/echarts/src/component/dataZoom/history.js create mode 100644 static/vendors/echarts/src/component/dataZoom/roams.js create mode 100644 static/vendors/echarts/src/component/dataZoom/typeDefaulter.js create mode 100644 static/vendors/echarts/src/component/dataZoomInside.js create mode 100644 static/vendors/echarts/src/component/dataZoomSelect.js create mode 100644 static/vendors/echarts/src/component/geo.js create mode 100644 static/vendors/echarts/src/component/geo/GeoView.js create mode 100644 static/vendors/echarts/src/component/grid.js create mode 100644 static/vendors/echarts/src/component/helper/MapDraw.js create mode 100644 static/vendors/echarts/src/component/helper/RoamController.js create mode 100644 static/vendors/echarts/src/component/helper/SelectController.js create mode 100644 static/vendors/echarts/src/component/helper/interactionMutex.js create mode 100644 static/vendors/echarts/src/component/helper/listComponent.js create mode 100644 static/vendors/echarts/src/component/helper/selectableMixin.js create mode 100644 static/vendors/echarts/src/component/helper/sliderMove.js create mode 100644 static/vendors/echarts/src/component/legend.js create mode 100644 static/vendors/echarts/src/component/legend/LegendModel.js create mode 100644 static/vendors/echarts/src/component/legend/LegendView.js create mode 100644 static/vendors/echarts/src/component/legend/legendAction.js create mode 100644 static/vendors/echarts/src/component/legend/legendFilter.js create mode 100644 static/vendors/echarts/src/component/markLine.js create mode 100644 static/vendors/echarts/src/component/markPoint.js create mode 100644 static/vendors/echarts/src/component/marker/MarkLineModel.js create mode 100644 static/vendors/echarts/src/component/marker/MarkLineView.js create mode 100644 static/vendors/echarts/src/component/marker/MarkPointModel.js create mode 100644 static/vendors/echarts/src/component/marker/MarkPointView.js create mode 100644 static/vendors/echarts/src/component/marker/markerHelper.js create mode 100644 static/vendors/echarts/src/component/parallel.js create mode 100644 static/vendors/echarts/src/component/parallelAxis.js create mode 100644 static/vendors/echarts/src/component/polar.js create mode 100644 static/vendors/echarts/src/component/radar.js create mode 100644 static/vendors/echarts/src/component/radar/RadarView.js create mode 100644 static/vendors/echarts/src/component/radiusAxis.js create mode 100644 static/vendors/echarts/src/component/single.js create mode 100644 static/vendors/echarts/src/component/singleAxis.js create mode 100644 static/vendors/echarts/src/component/timeline.js create mode 100644 static/vendors/echarts/src/component/timeline/SliderTimelineModel.js create mode 100644 static/vendors/echarts/src/component/timeline/SliderTimelineView.js create mode 100644 static/vendors/echarts/src/component/timeline/TimelineAxis.js create mode 100644 static/vendors/echarts/src/component/timeline/TimelineModel.js create mode 100644 static/vendors/echarts/src/component/timeline/TimelineView.js create mode 100644 static/vendors/echarts/src/component/timeline/preprocessor.js create mode 100644 static/vendors/echarts/src/component/timeline/timelineAction.js create mode 100644 static/vendors/echarts/src/component/timeline/typeDefaulter.js create mode 100644 static/vendors/echarts/src/component/title.js create mode 100644 static/vendors/echarts/src/component/toolbox.js create mode 100644 static/vendors/echarts/src/component/toolbox/ToolboxModel.js create mode 100644 static/vendors/echarts/src/component/toolbox/ToolboxView.js create mode 100644 static/vendors/echarts/src/component/toolbox/feature/DataView.js create mode 100644 static/vendors/echarts/src/component/toolbox/feature/DataZoom.js create mode 100644 static/vendors/echarts/src/component/toolbox/feature/MagicType.js create mode 100644 static/vendors/echarts/src/component/toolbox/feature/Restore.js create mode 100644 static/vendors/echarts/src/component/toolbox/feature/SaveAsImage.js create mode 100644 static/vendors/echarts/src/component/toolbox/featureManager.js create mode 100644 static/vendors/echarts/src/component/tooltip.js create mode 100644 static/vendors/echarts/src/component/tooltip/TooltipContent.js create mode 100644 static/vendors/echarts/src/component/tooltip/TooltipModel.js create mode 100644 static/vendors/echarts/src/component/tooltip/TooltipView.js create mode 100644 static/vendors/echarts/src/component/visualMap.js create mode 100644 static/vendors/echarts/src/component/visualMap/ContinuousModel.js create mode 100644 static/vendors/echarts/src/component/visualMap/ContinuousView.js create mode 100644 static/vendors/echarts/src/component/visualMap/PiecewiseModel.js create mode 100644 static/vendors/echarts/src/component/visualMap/PiecewiseView.js create mode 100644 static/vendors/echarts/src/component/visualMap/VisualMapModel.js create mode 100644 static/vendors/echarts/src/component/visualMap/VisualMapView.js create mode 100644 static/vendors/echarts/src/component/visualMap/helper.js create mode 100644 static/vendors/echarts/src/component/visualMap/preprocessor.js create mode 100644 static/vendors/echarts/src/component/visualMap/typeDefaulter.js create mode 100644 static/vendors/echarts/src/component/visualMap/visualCoding.js create mode 100644 static/vendors/echarts/src/component/visualMap/visualMapAction.js create mode 100644 static/vendors/echarts/src/component/visualMapContinuous.js create mode 100644 static/vendors/echarts/src/component/visualMapPiecewise.js create mode 100644 static/vendors/echarts/src/coord/Axis.js create mode 100644 static/vendors/echarts/src/coord/View.js create mode 100644 static/vendors/echarts/src/coord/axisDefault.js create mode 100644 static/vendors/echarts/src/coord/axisHelper.js create mode 100644 static/vendors/echarts/src/coord/axisModelCommonMixin.js create mode 100644 static/vendors/echarts/src/coord/axisModelCreator.js create mode 100644 static/vendors/echarts/src/coord/cartesian/Axis2D.js create mode 100644 static/vendors/echarts/src/coord/cartesian/AxisModel.js create mode 100644 static/vendors/echarts/src/coord/cartesian/Cartesian.js create mode 100644 static/vendors/echarts/src/coord/cartesian/Cartesian2D.js create mode 100644 static/vendors/echarts/src/coord/cartesian/Grid.js create mode 100644 static/vendors/echarts/src/coord/cartesian/GridModel.js create mode 100644 static/vendors/echarts/src/coord/cartesian/axisLabelInterval.js create mode 100644 static/vendors/echarts/src/coord/geo/Geo.js create mode 100644 static/vendors/echarts/src/coord/geo/GeoModel.js create mode 100644 static/vendors/echarts/src/coord/geo/Region.js create mode 100644 static/vendors/echarts/src/coord/geo/fix/geoCoord.js create mode 100644 static/vendors/echarts/src/coord/geo/fix/nanhai.js create mode 100644 static/vendors/echarts/src/coord/geo/fix/textCoord.js create mode 100644 static/vendors/echarts/src/coord/geo/geoCreator.js create mode 100644 static/vendors/echarts/src/coord/geo/parseGeoJson.js create mode 100644 static/vendors/echarts/src/coord/parallel/AxisModel.js create mode 100644 static/vendors/echarts/src/coord/parallel/Parallel.js create mode 100644 static/vendors/echarts/src/coord/parallel/ParallelAxis.js create mode 100644 static/vendors/echarts/src/coord/parallel/ParallelModel.js create mode 100644 static/vendors/echarts/src/coord/parallel/parallelCreator.js create mode 100644 static/vendors/echarts/src/coord/parallel/parallelPreprocessor.js create mode 100644 static/vendors/echarts/src/coord/polar/AngleAxis.js create mode 100644 static/vendors/echarts/src/coord/polar/AxisModel.js create mode 100644 static/vendors/echarts/src/coord/polar/Polar.js create mode 100644 static/vendors/echarts/src/coord/polar/PolarModel.js create mode 100644 static/vendors/echarts/src/coord/polar/RadiusAxis.js create mode 100644 static/vendors/echarts/src/coord/polar/polarCreator.js create mode 100644 static/vendors/echarts/src/coord/radar/IndicatorAxis.js create mode 100644 static/vendors/echarts/src/coord/radar/Radar.js create mode 100644 static/vendors/echarts/src/coord/radar/RadarModel.js create mode 100644 static/vendors/echarts/src/coord/single/AxisModel.js create mode 100644 static/vendors/echarts/src/coord/single/Single.js create mode 100644 static/vendors/echarts/src/coord/single/SingleAxis.js create mode 100644 static/vendors/echarts/src/coord/single/singleCreator.js create mode 100644 static/vendors/echarts/src/data/DataDiffer.js create mode 100644 static/vendors/echarts/src/data/Graph.js create mode 100644 static/vendors/echarts/src/data/List.js create mode 100644 static/vendors/echarts/src/data/Tree.js create mode 100644 static/vendors/echarts/src/data/helper/completeDimensions.js create mode 100644 static/vendors/echarts/src/data/helper/linkList.js create mode 100644 static/vendors/echarts/src/echarts.js create mode 100644 static/vendors/echarts/src/layout/barGrid.js create mode 100644 static/vendors/echarts/src/layout/points.js create mode 100644 static/vendors/echarts/src/loading/default.js create mode 100644 static/vendors/echarts/src/model/Component.js create mode 100644 static/vendors/echarts/src/model/Global.js create mode 100644 static/vendors/echarts/src/model/Model.js create mode 100644 static/vendors/echarts/src/model/OptionManager.js create mode 100644 static/vendors/echarts/src/model/Series.js create mode 100644 static/vendors/echarts/src/model/globalDefault.js create mode 100644 static/vendors/echarts/src/model/mixin/areaStyle.js create mode 100644 static/vendors/echarts/src/model/mixin/boxLayout.js create mode 100644 static/vendors/echarts/src/model/mixin/itemStyle.js create mode 100644 static/vendors/echarts/src/model/mixin/lineStyle.js create mode 100644 static/vendors/echarts/src/model/mixin/makeStyleMapper.js create mode 100644 static/vendors/echarts/src/model/mixin/textStyle.js create mode 100644 static/vendors/echarts/src/preprocessor/backwardCompat.js create mode 100644 static/vendors/echarts/src/preprocessor/helper/compatStyle.js create mode 100644 static/vendors/echarts/src/processor/dataFilter.js create mode 100644 static/vendors/echarts/src/processor/dataSample.js create mode 100644 static/vendors/echarts/src/scale/Interval.js create mode 100644 static/vendors/echarts/src/scale/Log.js create mode 100644 static/vendors/echarts/src/scale/Ordinal.js create mode 100644 static/vendors/echarts/src/scale/Scale.js create mode 100644 static/vendors/echarts/src/scale/Time.js create mode 100644 static/vendors/echarts/src/util/KDTree.js create mode 100644 static/vendors/echarts/src/util/animation.js create mode 100644 static/vendors/echarts/src/util/array/nest.js create mode 100644 static/vendors/echarts/src/util/clazz.js create mode 100644 static/vendors/echarts/src/util/component.js create mode 100644 static/vendors/echarts/src/util/format.js create mode 100644 static/vendors/echarts/src/util/graphic.js create mode 100644 static/vendors/echarts/src/util/layout.js create mode 100644 static/vendors/echarts/src/util/model.js create mode 100644 static/vendors/echarts/src/util/number.js create mode 100644 static/vendors/echarts/src/util/quickSelect.js create mode 100644 static/vendors/echarts/src/util/symbol.js create mode 100755 static/vendors/echarts/src/util/throttle.js create mode 100644 static/vendors/echarts/src/view/Chart.js create mode 100644 static/vendors/echarts/src/view/Component.js create mode 100644 static/vendors/echarts/src/visual/VisualMapping.js create mode 100644 static/vendors/echarts/src/visual/dataColor.js create mode 100644 static/vendors/echarts/src/visual/seriesColor.js create mode 100644 static/vendors/echarts/src/visual/symbol.js create mode 100644 static/vendors/echarts/src/visual/visualDefault.js create mode 100644 static/vendors/echarts/test/README.md create mode 100644 static/vendors/echarts/test/area.html create mode 100644 static/vendors/echarts/test/area2.html create mode 100644 static/vendors/echarts/test/axes.html create mode 100644 static/vendors/echarts/test/axis.html create mode 100644 static/vendors/echarts/test/bar-large.html create mode 100644 static/vendors/echarts/test/bar.html create mode 100644 static/vendors/echarts/test/bar2.html create mode 100644 static/vendors/echarts/test/bmap.html create mode 100644 static/vendors/echarts/test/boxplot-multi.html create mode 100644 static/vendors/echarts/test/boxplot.html create mode 100644 static/vendors/echarts/test/candlestick.html create mode 100644 static/vendors/echarts/test/candlestickConnect.html create mode 100644 static/vendors/echarts/test/chord.html create mode 100644 static/vendors/echarts/test/color-mix-aqi.html create mode 100644 static/vendors/echarts/test/config.js create mode 100644 static/vendors/echarts/test/connect.html create mode 100644 static/vendors/echarts/test/connect2.html create mode 100644 static/vendors/echarts/test/data/Michelson-Morley.json.js create mode 100644 static/vendors/echarts/test/data/aqi/BJdata.js create mode 100644 static/vendors/echarts/test/data/aqi/GZdata.js create mode 100644 static/vendors/echarts/test/data/aqi/SHdata.js create mode 100644 static/vendors/echarts/test/data/aqi/processAQI.js create mode 100644 static/vendors/echarts/test/data/disk.tree.js create mode 100755 static/vendors/echarts/test/data/energy.json create mode 100644 static/vendors/echarts/test/data/les-miserables.gexf create mode 100644 static/vendors/echarts/test/data/masterPainterColorChoice.json create mode 100644 static/vendors/echarts/test/data/obama_budget_proposal_2012.tree.js create mode 100644 static/vendors/echarts/test/data/option-view.json create mode 100644 static/vendors/echarts/test/data/option-view2.json create mode 100644 static/vendors/echarts/test/data/product.json create mode 100644 static/vendors/echarts/test/data/rainfall.json.js create mode 100644 static/vendors/echarts/test/data/security-sh-2013.json.js create mode 100644 static/vendors/echarts/test/data/timelineGDP.js create mode 100644 static/vendors/echarts/test/dataView.html create mode 100644 static/vendors/echarts/test/dataZoom-axes.html create mode 100644 static/vendors/echarts/test/dataZoom-axis-type.html create mode 100644 static/vendors/echarts/test/dataZoom-cartesian-h.html create mode 100644 static/vendors/echarts/test/dataZoom-cartesian-v.html create mode 100644 static/vendors/echarts/test/dataZoom-dataShadow.html create mode 100644 static/vendors/echarts/test/dataZoom-dataShadow0.html create mode 100644 static/vendors/echarts/test/dataZoom-dataShadow1.html create mode 100644 static/vendors/echarts/test/dataZoom-dataShadow2.html create mode 100644 static/vendors/echarts/test/dataZoom-dynamic.html create mode 100644 static/vendors/echarts/test/dataZoom-rainfall-connect.html create mode 100644 static/vendors/echarts/test/dataZoom-rainfall-inside.html create mode 100644 static/vendors/echarts/test/dataZoom-rainfall.html create mode 100644 static/vendors/echarts/test/dataZoom-scatter-category.html create mode 100644 static/vendors/echarts/test/dataZoom-scatter-hv-polar.html create mode 100644 static/vendors/echarts/test/dataZoom-scatter-hv.html create mode 100644 static/vendors/echarts/test/dataZoom-scatter-toolbox.html create mode 100644 static/vendors/echarts/test/dataZoomHighPrecision.html create mode 100644 static/vendors/echarts/test/diff.html create mode 100644 static/vendors/echarts/test/dynamicData.html create mode 100644 static/vendors/echarts/test/effectScatter.html create mode 100644 static/vendors/echarts/test/esl.js create mode 100644 static/vendors/echarts/test/force.html create mode 100644 static/vendors/echarts/test/force2.html create mode 100644 static/vendors/echarts/test/force3.html create mode 100644 static/vendors/echarts/test/funnel.html create mode 100644 static/vendors/echarts/test/gauge.html create mode 100644 static/vendors/echarts/test/geoLine.html create mode 100644 static/vendors/echarts/test/geoScatter.html create mode 100644 static/vendors/echarts/test/getOption.html create mode 100644 static/vendors/echarts/test/graph-grid.html create mode 100644 static/vendors/echarts/test/graph-simple.html create mode 100644 static/vendors/echarts/test/graph.html create mode 100644 static/vendors/echarts/test/heatmap-map.html create mode 100644 static/vendors/echarts/test/heatmap.html create mode 100644 static/vendors/echarts/test/ie8.html create mode 100644 static/vendors/echarts/test/largeLine.html create mode 100644 static/vendors/echarts/test/lib/dat.gui.min.js create mode 100644 static/vendors/echarts/test/lib/draggable.js create mode 100644 static/vendors/echarts/test/lib/facePrint.js create mode 100644 static/vendors/echarts/test/lib/jquery.min.js create mode 100644 static/vendors/echarts/test/line.html create mode 100644 static/vendors/echarts/test/loading.html create mode 100644 static/vendors/echarts/test/logScale.html create mode 100644 static/vendors/echarts/test/map-contour.html create mode 100644 static/vendors/echarts/test/map.html create mode 100644 static/vendors/echarts/test/mapWorld.html create mode 100644 static/vendors/echarts/test/markLine.html create mode 100644 static/vendors/echarts/test/markPoint.html create mode 100644 static/vendors/echarts/test/masterPainterColorChoice.html create mode 100644 static/vendors/echarts/test/media-dataZoom.html create mode 100644 static/vendors/echarts/test/media-finance.html create mode 100644 static/vendors/echarts/test/media-pie.html create mode 100644 static/vendors/echarts/test/mix.html create mode 100644 static/vendors/echarts/test/mobileBench.html create mode 100644 static/vendors/echarts/test/multipleGrid.html create mode 100644 static/vendors/echarts/test/parallel-aqi.html create mode 100644 static/vendors/echarts/test/pie.html create mode 100644 static/vendors/echarts/test/pie2.html create mode 100644 static/vendors/echarts/test/pie3.html create mode 100644 static/vendors/echarts/test/pieDynamic.html create mode 100644 static/vendors/echarts/test/polarLine.html create mode 100644 static/vendors/echarts/test/polarLine2.html create mode 100644 static/vendors/echarts/test/polarScatter.html create mode 100644 static/vendors/echarts/test/punchCard.html create mode 100644 static/vendors/echarts/test/radar.html create mode 100644 static/vendors/echarts/test/radar2.html create mode 100644 static/vendors/echarts/test/radar3.html create mode 100644 static/vendors/echarts/test/radar4.html create mode 100644 static/vendors/echarts/test/reset.css create mode 100644 static/vendors/echarts/test/roseType.html create mode 100644 static/vendors/echarts/test/sankey.html create mode 100644 static/vendors/echarts/test/scale-integer.html create mode 100644 static/vendors/echarts/test/scatter.html create mode 100644 static/vendors/echarts/test/selectedMode.html create mode 100644 static/vendors/echarts/test/showTip.html create mode 100644 static/vendors/echarts/test/symbol.html create mode 100644 static/vendors/echarts/test/theme.html create mode 100644 static/vendors/echarts/test/themeRiver.html create mode 100644 static/vendors/echarts/test/timeScale.html create mode 100644 static/vendors/echarts/test/timeline-finance.html create mode 100644 static/vendors/echarts/test/timeline-layout.html create mode 100644 static/vendors/echarts/test/tooltip.html create mode 100644 static/vendors/echarts/test/treemap-disk.html create mode 100644 static/vendors/echarts/test/treemap-obama.html create mode 100644 static/vendors/echarts/test/treemap-option.html create mode 100644 static/vendors/echarts/test/treemap-option2.html create mode 100644 static/vendors/echarts/test/treemap-simple.html create mode 100644 static/vendors/echarts/test/ut/.jshintrc create mode 100755 static/vendors/echarts/test/ut/MIT.LICENSE create mode 100644 static/vendors/echarts/test/ut/config.js create mode 100644 static/vendors/echarts/test/ut/configure create mode 100644 static/vendors/echarts/test/ut/core/uiHelper.js create mode 100755 static/vendors/echarts/test/ut/core/utHelper.js create mode 100644 static/vendors/echarts/test/ut/lib/canteen.js create mode 100644 static/vendors/echarts/test/ut/lib/imagediff.js create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/boot.js create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/console.js create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/jasmine-html.js create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/jasmine.css create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/jasmine.js create mode 100755 static/vendors/echarts/test/ut/lib/jasmine-2.3.4/jasmine_favicon.png create mode 100644 static/vendors/echarts/test/ut/spec/component/visualMap/setOption.js create mode 100644 static/vendors/echarts/test/ut/spec/data/List.js create mode 100755 static/vendors/echarts/test/ut/spec/model/Component.js create mode 100755 static/vendors/echarts/test/ut/spec/model/Global.js create mode 100644 static/vendors/echarts/test/ut/spec/model/timelineOptions.js create mode 100644 static/vendors/echarts/test/ut/spec/ui/config.js create mode 100644 static/vendors/echarts/test/ut/spec/ui/legend.js create mode 100644 static/vendors/echarts/test/ut/spec/ui/title.js create mode 100644 static/vendors/echarts/test/ut/spec/ui/title.subtextStyle.js create mode 100644 static/vendors/echarts/test/ut/spec/ui/title.textStyle.js create mode 100755 static/vendors/echarts/test/ut/spec/util/graphic.js create mode 100755 static/vendors/echarts/test/ut/spec/util/model.js create mode 100644 static/vendors/echarts/test/ut/spec/util/number.js create mode 100644 static/vendors/echarts/test/ut/ui.html create mode 100644 static/vendors/echarts/test/ut/ut.html create mode 100644 static/vendors/echarts/test/ut/ut.js create mode 100644 static/vendors/echarts/test/visualMap-categories.html create mode 100644 static/vendors/echarts/test/visualMap-continuous.html create mode 100644 static/vendors/echarts/test/visualMap-layout.html create mode 100644 static/vendors/echarts/test/visualMap-opacity.html create mode 100644 static/vendors/echarts/test/visualMap-pieces.html create mode 100644 static/vendors/echarts/test/visualMap-scatter-colorAndSymbol.html create mode 100644 static/vendors/echarts/test/visualMap-scatter-symbolSize.html create mode 100644 static/vendors/echarts/test/webkit-dep.html create mode 100644 static/vendors/echarts/test/worldPopulationBubble.html create mode 100644 static/vendors/echarts/theme/dark.js create mode 100644 static/vendors/echarts/theme/infographic.js create mode 100644 static/vendors/echarts/theme/macarons.js create mode 100644 static/vendors/echarts/theme/roma.js create mode 100644 static/vendors/echarts/theme/shine.js create mode 100644 static/vendors/echarts/theme/tool/option/area.js create mode 100644 static/vendors/echarts/theme/tool/option/bar.js create mode 100644 static/vendors/echarts/theme/tool/option/graph.js create mode 100644 static/vendors/echarts/theme/tool/option/map.js create mode 100644 static/vendors/echarts/theme/tool/option/pie.js create mode 100644 static/vendors/echarts/theme/tool/option/scatter.js create mode 100644 static/vendors/echarts/theme/tool/thumb.js create mode 100644 static/vendors/echarts/theme/vintage.js create mode 100644 static/vendors/echarts/webpack.config.js create mode 100644 static/vendors/eve/.bower.json create mode 100644 static/vendors/eve/LICENSE create mode 100644 static/vendors/eve/README.md create mode 100644 static/vendors/eve/component.json create mode 100644 static/vendors/eve/e.html create mode 100644 static/vendors/eve/eve.js create mode 100644 static/vendors/eve/package.json create mode 100644 static/vendors/fastclick/.bower.json create mode 100644 static/vendors/fastclick/LICENSE create mode 100644 static/vendors/fastclick/README.md create mode 100644 static/vendors/fastclick/bower.json create mode 100644 static/vendors/fastclick/lib/fastclick.js create mode 100644 static/vendors/flot-spline/.bower.json create mode 100644 static/vendors/flot-spline/LICENSE create mode 100644 static/vendors/flot-spline/bower.json create mode 100644 static/vendors/flot-spline/js/jquery.flot.spline.js create mode 100644 static/vendors/flot-spline/js/jquery.flot.spline.min.js create mode 100644 static/vendors/flot-spline/package.json create mode 100644 static/vendors/flot.curvedlines/.bower.json create mode 100644 static/vendors/flot.curvedlines/bower.json create mode 100644 static/vendors/flot.curvedlines/curvedLines.js create mode 100644 static/vendors/flot.orderbars/.bower.json create mode 100644 static/vendors/flot.orderbars/README.md create mode 100644 static/vendors/flot.orderbars/examples/index.html create mode 100644 static/vendors/flot.orderbars/examples/js/flot/flot.js create mode 100644 static/vendors/flot.orderbars/examples/js/flot/stack.js create mode 100644 static/vendors/flot.orderbars/examples/js/main.js create mode 100644 static/vendors/flot.orderbars/examples/js/vendor/jquery-1.9.1.min.js create mode 100644 static/vendors/flot.orderbars/js/jquery.flot.orderBars.js create mode 100644 static/vendors/font-awesome/.bower.json create mode 100644 static/vendors/font-awesome/.gitignore create mode 100644 static/vendors/font-awesome/.npmignore create mode 100644 static/vendors/font-awesome/HELP-US-OUT.txt create mode 100644 static/vendors/font-awesome/bower.json create mode 100644 static/vendors/font-awesome/css/font-awesome.css create mode 100644 static/vendors/font-awesome/css/font-awesome.css.map create mode 100644 static/vendors/font-awesome/css/font-awesome.min.css create mode 100644 static/vendors/font-awesome/fonts/FontAwesome.otf create mode 100644 static/vendors/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 static/vendors/font-awesome/fonts/fontawesome-webfont.svg create mode 100644 static/vendors/font-awesome/fonts/fontawesome-webfont.ttf create mode 100644 static/vendors/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 static/vendors/font-awesome/fonts/fontawesome-webfont.woff2 create mode 100644 static/vendors/font-awesome/less/animated.less create mode 100644 static/vendors/font-awesome/less/bordered-pulled.less create mode 100644 static/vendors/font-awesome/less/core.less create mode 100644 static/vendors/font-awesome/less/fixed-width.less create mode 100644 static/vendors/font-awesome/less/font-awesome.less create mode 100644 static/vendors/font-awesome/less/icons.less create mode 100644 static/vendors/font-awesome/less/larger.less create mode 100644 static/vendors/font-awesome/less/list.less create mode 100644 static/vendors/font-awesome/less/mixins.less create mode 100644 static/vendors/font-awesome/less/path.less create mode 100644 static/vendors/font-awesome/less/rotated-flipped.less create mode 100644 static/vendors/font-awesome/less/screen-reader.less create mode 100644 static/vendors/font-awesome/less/stacked.less create mode 100644 static/vendors/font-awesome/less/variables.less create mode 100644 static/vendors/font-awesome/scss/_animated.scss create mode 100644 static/vendors/font-awesome/scss/_bordered-pulled.scss create mode 100644 static/vendors/font-awesome/scss/_core.scss create mode 100644 static/vendors/font-awesome/scss/_fixed-width.scss create mode 100644 static/vendors/font-awesome/scss/_icons.scss create mode 100644 static/vendors/font-awesome/scss/_larger.scss create mode 100644 static/vendors/font-awesome/scss/_list.scss create mode 100644 static/vendors/font-awesome/scss/_mixins.scss create mode 100644 static/vendors/font-awesome/scss/_path.scss create mode 100644 static/vendors/font-awesome/scss/_rotated-flipped.scss create mode 100644 static/vendors/font-awesome/scss/_screen-reader.scss create mode 100644 static/vendors/font-awesome/scss/_stacked.scss create mode 100644 static/vendors/font-awesome/scss/_variables.scss create mode 100644 static/vendors/font-awesome/scss/font-awesome.scss create mode 100644 static/vendors/fontawesome/.bower.json create mode 100644 static/vendors/fontawesome/.gitignore create mode 100644 static/vendors/fontawesome/.npmignore create mode 100644 static/vendors/fontawesome/HELP-US-OUT.txt create mode 100644 static/vendors/fontawesome/bower.json create mode 100644 static/vendors/fontawesome/css/font-awesome.css create mode 100644 static/vendors/fontawesome/css/font-awesome.css.map create mode 100644 static/vendors/fontawesome/css/font-awesome.min.css create mode 100644 static/vendors/fontawesome/fonts/FontAwesome.otf create mode 100644 static/vendors/fontawesome/fonts/fontawesome-webfont.eot create mode 100644 static/vendors/fontawesome/fonts/fontawesome-webfont.svg create mode 100644 static/vendors/fontawesome/fonts/fontawesome-webfont.ttf create mode 100644 static/vendors/fontawesome/fonts/fontawesome-webfont.woff create mode 100644 static/vendors/fontawesome/fonts/fontawesome-webfont.woff2 create mode 100644 static/vendors/fontawesome/less/animated.less create mode 100644 static/vendors/fontawesome/less/bordered-pulled.less create mode 100644 static/vendors/fontawesome/less/core.less create mode 100644 static/vendors/fontawesome/less/fixed-width.less create mode 100644 static/vendors/fontawesome/less/font-awesome.less create mode 100644 static/vendors/fontawesome/less/icons.less create mode 100644 static/vendors/fontawesome/less/larger.less create mode 100644 static/vendors/fontawesome/less/list.less create mode 100644 static/vendors/fontawesome/less/mixins.less create mode 100644 static/vendors/fontawesome/less/path.less create mode 100644 static/vendors/fontawesome/less/rotated-flipped.less create mode 100644 static/vendors/fontawesome/less/stacked.less create mode 100644 static/vendors/fontawesome/less/variables.less create mode 100644 static/vendors/fontawesome/scss/_animated.scss create mode 100644 static/vendors/fontawesome/scss/_bordered-pulled.scss create mode 100644 static/vendors/fontawesome/scss/_core.scss create mode 100644 static/vendors/fontawesome/scss/_fixed-width.scss create mode 100644 static/vendors/fontawesome/scss/_icons.scss create mode 100644 static/vendors/fontawesome/scss/_larger.scss create mode 100644 static/vendors/fontawesome/scss/_list.scss create mode 100644 static/vendors/fontawesome/scss/_mixins.scss create mode 100644 static/vendors/fontawesome/scss/_path.scss create mode 100644 static/vendors/fontawesome/scss/_rotated-flipped.scss create mode 100644 static/vendors/fontawesome/scss/_stacked.scss create mode 100644 static/vendors/fontawesome/scss/_variables.scss create mode 100644 static/vendors/fontawesome/scss/font-awesome.scss create mode 100644 static/vendors/fullcalendar/.bower.json create mode 100644 static/vendors/fullcalendar/CHANGELOG.md create mode 100644 static/vendors/fullcalendar/CONTRIBUTING.md create mode 100644 static/vendors/fullcalendar/LICENSE.txt create mode 100644 static/vendors/fullcalendar/README.md create mode 100644 static/vendors/fullcalendar/bower.json create mode 100644 static/vendors/fullcalendar/dist/fullcalendar.css create mode 100644 static/vendors/fullcalendar/dist/fullcalendar.js create mode 100644 static/vendors/fullcalendar/dist/fullcalendar.min.css create mode 100644 static/vendors/fullcalendar/dist/fullcalendar.min.js create mode 100644 static/vendors/fullcalendar/dist/fullcalendar.print.css create mode 100644 static/vendors/fullcalendar/dist/gcal.js create mode 100644 static/vendors/fullcalendar/dist/lang-all.js create mode 100644 static/vendors/fullcalendar/dist/lang/ar-ma.js create mode 100644 static/vendors/fullcalendar/dist/lang/ar-sa.js create mode 100644 static/vendors/fullcalendar/dist/lang/ar-tn.js create mode 100644 static/vendors/fullcalendar/dist/lang/ar.js create mode 100644 static/vendors/fullcalendar/dist/lang/bg.js create mode 100644 static/vendors/fullcalendar/dist/lang/ca.js create mode 100644 static/vendors/fullcalendar/dist/lang/cs.js create mode 100644 static/vendors/fullcalendar/dist/lang/da.js create mode 100644 static/vendors/fullcalendar/dist/lang/de-at.js create mode 100644 static/vendors/fullcalendar/dist/lang/de.js create mode 100644 static/vendors/fullcalendar/dist/lang/el.js create mode 100644 static/vendors/fullcalendar/dist/lang/en-au.js create mode 100644 static/vendors/fullcalendar/dist/lang/en-ca.js create mode 100644 static/vendors/fullcalendar/dist/lang/en-gb.js create mode 100644 static/vendors/fullcalendar/dist/lang/en-ie.js create mode 100644 static/vendors/fullcalendar/dist/lang/en-nz.js create mode 100644 static/vendors/fullcalendar/dist/lang/es.js create mode 100644 static/vendors/fullcalendar/dist/lang/fa.js create mode 100644 static/vendors/fullcalendar/dist/lang/fi.js create mode 100644 static/vendors/fullcalendar/dist/lang/fr-ca.js create mode 100644 static/vendors/fullcalendar/dist/lang/fr-ch.js create mode 100644 static/vendors/fullcalendar/dist/lang/fr.js create mode 100644 static/vendors/fullcalendar/dist/lang/he.js create mode 100644 static/vendors/fullcalendar/dist/lang/hi.js create mode 100644 static/vendors/fullcalendar/dist/lang/hr.js create mode 100644 static/vendors/fullcalendar/dist/lang/hu.js create mode 100644 static/vendors/fullcalendar/dist/lang/id.js create mode 100644 static/vendors/fullcalendar/dist/lang/is.js create mode 100644 static/vendors/fullcalendar/dist/lang/it.js create mode 100644 static/vendors/fullcalendar/dist/lang/ja.js create mode 100644 static/vendors/fullcalendar/dist/lang/ko.js create mode 100644 static/vendors/fullcalendar/dist/lang/lt.js create mode 100644 static/vendors/fullcalendar/dist/lang/lv.js create mode 100644 static/vendors/fullcalendar/dist/lang/nb.js create mode 100644 static/vendors/fullcalendar/dist/lang/nl.js create mode 100644 static/vendors/fullcalendar/dist/lang/pl.js create mode 100644 static/vendors/fullcalendar/dist/lang/pt-br.js create mode 100644 static/vendors/fullcalendar/dist/lang/pt.js create mode 100644 static/vendors/fullcalendar/dist/lang/ro.js create mode 100644 static/vendors/fullcalendar/dist/lang/ru.js create mode 100644 static/vendors/fullcalendar/dist/lang/sk.js create mode 100644 static/vendors/fullcalendar/dist/lang/sl.js create mode 100644 static/vendors/fullcalendar/dist/lang/sr-cyrl.js create mode 100644 static/vendors/fullcalendar/dist/lang/sr.js create mode 100644 static/vendors/fullcalendar/dist/lang/sv.js create mode 100644 static/vendors/fullcalendar/dist/lang/th.js create mode 100644 static/vendors/fullcalendar/dist/lang/tr.js create mode 100644 static/vendors/fullcalendar/dist/lang/uk.js create mode 100644 static/vendors/fullcalendar/dist/lang/vi.js create mode 100644 static/vendors/fullcalendar/dist/lang/zh-cn.js create mode 100644 static/vendors/fullcalendar/dist/lang/zh-tw.js create mode 100644 static/vendors/gauge.js/.bower.json create mode 100644 static/vendors/gauge.js/README.md create mode 100644 static/vendors/gauge.js/assets/arrow.gif create mode 100755 static/vendors/gauge.js/assets/bg.png create mode 100644 static/vendors/gauge.js/assets/bootstrap.min.css create mode 100755 static/vendors/gauge.js/assets/browsers.png create mode 100644 static/vendors/gauge.js/assets/cross.gif create mode 100755 static/vendors/gauge.js/assets/crosshair.gif create mode 100755 static/vendors/gauge.js/assets/excanvas.compiled.js create mode 100755 static/vendors/gauge.js/assets/fd-slider/fd-slider-tooltip.css create mode 100755 static/vendors/gauge.js/assets/fd-slider/fd-slider.css create mode 100755 static/vendors/gauge.js/assets/fd-slider/fd-slider.js create mode 100755 static/vendors/gauge.js/assets/github.gif create mode 100644 static/vendors/gauge.js/assets/hs.png create mode 100644 static/vendors/gauge.js/assets/hv.png create mode 100644 static/vendors/gauge.js/assets/jscolor.js create mode 100755 static/vendors/gauge.js/assets/main.css create mode 100755 static/vendors/gauge.js/assets/prettify.css create mode 100755 static/vendors/gauge.js/assets/prettify.js create mode 100755 static/vendors/gauge.js/assets/preview.jpg create mode 100755 static/vendors/gauge.js/assets/ribbon.png create mode 100644 static/vendors/gauge.js/assets/strike.png create mode 100644 static/vendors/gauge.js/bower.json create mode 100644 static/vendors/gauge.js/dist/gauge.coffee create mode 100644 static/vendors/gauge.js/dist/gauge.js create mode 100644 static/vendors/gauge.js/dist/gauge.min.js create mode 100755 static/vendors/gauge.js/favicon.ico create mode 100644 static/vendors/gauge.js/index.html create mode 100644 static/vendors/google-code-prettify/.bower.json create mode 100644 static/vendors/google-code-prettify/CHANGES.html create mode 100644 static/vendors/google-code-prettify/COPYING create mode 100644 static/vendors/google-code-prettify/README-zh-Hans.html create mode 100644 static/vendors/google-code-prettify/README.html create mode 100644 static/vendors/google-code-prettify/README.md create mode 100644 static/vendors/google-code-prettify/bin/prettify.min.css create mode 100644 static/vendors/google-code-prettify/bin/prettify.min.js create mode 100644 static/vendors/google-code-prettify/bin/run_prettify.min.js create mode 100644 static/vendors/google-code-prettify/bower.json create mode 100644 static/vendors/google-code-prettify/examples/quine.html create mode 100644 static/vendors/google-code-prettify/src/lang-apollo.js create mode 100644 static/vendors/google-code-prettify/src/lang-basic.js create mode 100644 static/vendors/google-code-prettify/src/lang-clj.js create mode 100644 static/vendors/google-code-prettify/src/lang-css.js create mode 100644 static/vendors/google-code-prettify/src/lang-dart.js create mode 100644 static/vendors/google-code-prettify/src/lang-erlang.js create mode 100644 static/vendors/google-code-prettify/src/lang-go.js create mode 100644 static/vendors/google-code-prettify/src/lang-hs.js create mode 100644 static/vendors/google-code-prettify/src/lang-lisp.js create mode 100644 static/vendors/google-code-prettify/src/lang-llvm.js create mode 100644 static/vendors/google-code-prettify/src/lang-lua.js create mode 100644 static/vendors/google-code-prettify/src/lang-matlab.js create mode 100644 static/vendors/google-code-prettify/src/lang-ml.js create mode 100644 static/vendors/google-code-prettify/src/lang-mumps.js create mode 100644 static/vendors/google-code-prettify/src/lang-n.js create mode 100644 static/vendors/google-code-prettify/src/lang-pascal.js create mode 100644 static/vendors/google-code-prettify/src/lang-proto.js create mode 100644 static/vendors/google-code-prettify/src/lang-r.js create mode 100644 static/vendors/google-code-prettify/src/lang-rd.js create mode 100644 static/vendors/google-code-prettify/src/lang-scala.js create mode 100644 static/vendors/google-code-prettify/src/lang-sql.js create mode 100644 static/vendors/google-code-prettify/src/lang-tcl.js create mode 100644 static/vendors/google-code-prettify/src/lang-tex.js create mode 100644 static/vendors/google-code-prettify/src/lang-vb.js create mode 100644 static/vendors/google-code-prettify/src/lang-vhdl.js create mode 100644 static/vendors/google-code-prettify/src/lang-wiki.js create mode 100644 static/vendors/google-code-prettify/src/lang-xq.js create mode 100644 static/vendors/google-code-prettify/src/lang-yaml.js create mode 100644 static/vendors/google-code-prettify/src/prettify.css create mode 100644 static/vendors/google-code-prettify/src/prettify.js create mode 100644 static/vendors/google-code-prettify/src/run_prettify.js create mode 100644 static/vendors/google-code-prettify/styles/demo.html create mode 100644 static/vendors/google-code-prettify/styles/desert.css create mode 100644 static/vendors/google-code-prettify/styles/doxy.css create mode 100644 static/vendors/google-code-prettify/styles/index.html create mode 100644 static/vendors/google-code-prettify/styles/sons-of-obsidian.css create mode 100644 static/vendors/google-code-prettify/styles/sunburst.css create mode 100644 static/vendors/iCheck/.bower.json create mode 100644 static/vendors/iCheck/bower.json create mode 100644 static/vendors/iCheck/icheck.jquery.json create mode 100644 static/vendors/iCheck/icheck.js create mode 100644 static/vendors/iCheck/icheck.min.js create mode 100644 static/vendors/iCheck/skins/all.css create mode 100644 static/vendors/iCheck/skins/flat/_all.css create mode 100644 static/vendors/iCheck/skins/flat/aero.css create mode 100644 static/vendors/iCheck/skins/flat/aero.png create mode 100644 static/vendors/iCheck/skins/flat/aero@2x.png create mode 100644 static/vendors/iCheck/skins/flat/blue.css create mode 100644 static/vendors/iCheck/skins/flat/blue.png create mode 100644 static/vendors/iCheck/skins/flat/blue@2x.png create mode 100644 static/vendors/iCheck/skins/flat/flat.css create mode 100644 static/vendors/iCheck/skins/flat/flat.png create mode 100644 static/vendors/iCheck/skins/flat/flat@2x.png create mode 100644 static/vendors/iCheck/skins/flat/green.css create mode 100644 static/vendors/iCheck/skins/flat/green.png create mode 100644 static/vendors/iCheck/skins/flat/green@2x.png create mode 100644 static/vendors/iCheck/skins/flat/grey.css create mode 100644 static/vendors/iCheck/skins/flat/grey.png create mode 100644 static/vendors/iCheck/skins/flat/grey@2x.png create mode 100644 static/vendors/iCheck/skins/flat/orange.css create mode 100644 static/vendors/iCheck/skins/flat/orange.png create mode 100644 static/vendors/iCheck/skins/flat/orange@2x.png create mode 100644 static/vendors/iCheck/skins/flat/pink.css create mode 100644 static/vendors/iCheck/skins/flat/pink.png create mode 100644 static/vendors/iCheck/skins/flat/pink@2x.png create mode 100644 static/vendors/iCheck/skins/flat/purple.css create mode 100644 static/vendors/iCheck/skins/flat/purple.png create mode 100644 static/vendors/iCheck/skins/flat/purple@2x.png create mode 100644 static/vendors/iCheck/skins/flat/red.css create mode 100644 static/vendors/iCheck/skins/flat/red.png create mode 100644 static/vendors/iCheck/skins/flat/red@2x.png create mode 100644 static/vendors/iCheck/skins/flat/yellow.css create mode 100644 static/vendors/iCheck/skins/flat/yellow.png create mode 100644 static/vendors/iCheck/skins/flat/yellow@2x.png create mode 100644 static/vendors/iCheck/skins/futurico/futurico.css create mode 100644 static/vendors/iCheck/skins/futurico/futurico.png create mode 100644 static/vendors/iCheck/skins/futurico/futurico@2x.png create mode 100644 static/vendors/iCheck/skins/line/_all.css create mode 100644 static/vendors/iCheck/skins/line/aero.css create mode 100644 static/vendors/iCheck/skins/line/blue.css create mode 100644 static/vendors/iCheck/skins/line/green.css create mode 100644 static/vendors/iCheck/skins/line/grey.css create mode 100644 static/vendors/iCheck/skins/line/line.css create mode 100644 static/vendors/iCheck/skins/line/line.png create mode 100644 static/vendors/iCheck/skins/line/line@2x.png create mode 100644 static/vendors/iCheck/skins/line/orange.css create mode 100644 static/vendors/iCheck/skins/line/pink.css create mode 100644 static/vendors/iCheck/skins/line/purple.css create mode 100644 static/vendors/iCheck/skins/line/red.css create mode 100644 static/vendors/iCheck/skins/line/yellow.css create mode 100644 static/vendors/iCheck/skins/minimal/_all.css create mode 100644 static/vendors/iCheck/skins/minimal/aero.css create mode 100644 static/vendors/iCheck/skins/minimal/aero.png create mode 100644 static/vendors/iCheck/skins/minimal/aero@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/blue.css create mode 100644 static/vendors/iCheck/skins/minimal/blue.png create mode 100644 static/vendors/iCheck/skins/minimal/blue@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/green.css create mode 100644 static/vendors/iCheck/skins/minimal/green.png create mode 100644 static/vendors/iCheck/skins/minimal/green@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/grey.css create mode 100644 static/vendors/iCheck/skins/minimal/grey.png create mode 100644 static/vendors/iCheck/skins/minimal/grey@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/minimal.css create mode 100644 static/vendors/iCheck/skins/minimal/minimal.png create mode 100644 static/vendors/iCheck/skins/minimal/minimal@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/orange.css create mode 100644 static/vendors/iCheck/skins/minimal/orange.png create mode 100644 static/vendors/iCheck/skins/minimal/orange@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/pink.css create mode 100644 static/vendors/iCheck/skins/minimal/pink.png create mode 100644 static/vendors/iCheck/skins/minimal/pink@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/purple.css create mode 100644 static/vendors/iCheck/skins/minimal/purple.png create mode 100644 static/vendors/iCheck/skins/minimal/purple@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/red.css create mode 100644 static/vendors/iCheck/skins/minimal/red.png create mode 100644 static/vendors/iCheck/skins/minimal/red@2x.png create mode 100644 static/vendors/iCheck/skins/minimal/yellow.css create mode 100644 static/vendors/iCheck/skins/minimal/yellow.png create mode 100644 static/vendors/iCheck/skins/minimal/yellow@2x.png create mode 100644 static/vendors/iCheck/skins/polaris/polaris.css create mode 100644 static/vendors/iCheck/skins/polaris/polaris.png create mode 100644 static/vendors/iCheck/skins/polaris/polaris@2x.png create mode 100644 static/vendors/iCheck/skins/square/_all.css create mode 100644 static/vendors/iCheck/skins/square/aero.css create mode 100644 static/vendors/iCheck/skins/square/aero.png create mode 100644 static/vendors/iCheck/skins/square/aero@2x.png create mode 100644 static/vendors/iCheck/skins/square/blue.css create mode 100644 static/vendors/iCheck/skins/square/blue.png create mode 100644 static/vendors/iCheck/skins/square/blue@2x.png create mode 100644 static/vendors/iCheck/skins/square/green.css create mode 100644 static/vendors/iCheck/skins/square/green.png create mode 100644 static/vendors/iCheck/skins/square/green@2x.png create mode 100644 static/vendors/iCheck/skins/square/grey.css create mode 100644 static/vendors/iCheck/skins/square/grey.png create mode 100644 static/vendors/iCheck/skins/square/grey@2x.png create mode 100644 static/vendors/iCheck/skins/square/orange.css create mode 100644 static/vendors/iCheck/skins/square/orange.png create mode 100644 static/vendors/iCheck/skins/square/orange@2x.png create mode 100644 static/vendors/iCheck/skins/square/pink.css create mode 100644 static/vendors/iCheck/skins/square/pink.png create mode 100644 static/vendors/iCheck/skins/square/pink@2x.png create mode 100644 static/vendors/iCheck/skins/square/purple.css create mode 100644 static/vendors/iCheck/skins/square/purple.png create mode 100644 static/vendors/iCheck/skins/square/purple@2x.png create mode 100644 static/vendors/iCheck/skins/square/red.css create mode 100644 static/vendors/iCheck/skins/square/red.png create mode 100644 static/vendors/iCheck/skins/square/red@2x.png create mode 100644 static/vendors/iCheck/skins/square/square.css create mode 100644 static/vendors/iCheck/skins/square/square.png create mode 100644 static/vendors/iCheck/skins/square/square@2x.png create mode 100644 static/vendors/iCheck/skins/square/yellow.css create mode 100644 static/vendors/iCheck/skins/square/yellow.png create mode 100644 static/vendors/iCheck/skins/square/yellow@2x.png create mode 100644 static/vendors/ion.rangeSlider/.bower.json create mode 100644 static/vendors/ion.rangeSlider/.gitignore create mode 100644 static/vendors/ion.rangeSlider/.npmignore create mode 100644 static/vendors/ion.rangeSlider/_tmp/logo-ion-range-slider.png create mode 100644 static/vendors/ion.rangeSlider/bower.json create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.css create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.skinFlat.css create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.skinHTML5.css create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.skinModern.css create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.skinNice.css create mode 100644 static/vendors/ion.rangeSlider/css/ion.rangeSlider.skinSimple.css create mode 100644 static/vendors/ion.rangeSlider/css/normalize.css create mode 100644 static/vendors/ion.rangeSlider/history.md create mode 100644 static/vendors/ion.rangeSlider/img/sprite-skin-flat.png create mode 100644 static/vendors/ion.rangeSlider/img/sprite-skin-modern.png create mode 100644 static/vendors/ion.rangeSlider/img/sprite-skin-nice.png create mode 100644 static/vendors/ion.rangeSlider/img/sprite-skin-simple.png create mode 100644 static/vendors/ion.rangeSlider/index.md create mode 100644 static/vendors/ion.rangeSlider/js/ion.rangeSlider.js create mode 100644 static/vendors/ion.rangeSlider/js/ion.rangeSlider.min.js create mode 100644 static/vendors/ion.rangeSlider/package.json create mode 100644 static/vendors/ion.rangeSlider/readme.md create mode 100644 static/vendors/ion.rangeSlider/readme.ru.md create mode 100644 static/vendors/jQuery-Smart-Wizard/.bower.json create mode 100644 static/vendors/jQuery-Smart-Wizard/README.md create mode 100644 static/vendors/jQuery-Smart-Wizard/images/loader.gif create mode 100644 static/vendors/jQuery-Smart-Wizard/js/jquery-1.4.2.min.js create mode 100644 static/vendors/jQuery-Smart-Wizard/js/jquery.smartWizard.js create mode 100644 static/vendors/jQuery-Smart-Wizard/styles/demo_style.css create mode 100644 static/vendors/jQuery-Smart-Wizard/styles/smart_wizard.css create mode 100644 static/vendors/jQuery-Smart-Wizard/styles/smart_wizard_vertical.css create mode 100644 static/vendors/jquery-knob/.bower.json create mode 100644 static/vendors/jquery-knob/.gitignore create mode 100755 static/vendors/jquery-knob/LICENSE create mode 100755 static/vendors/jquery-knob/README.md create mode 100755 static/vendors/jquery-knob/bower.json create mode 100755 static/vendors/jquery-knob/dist/jquery.knob.min.js create mode 100755 static/vendors/jquery-knob/excanvas.js create mode 100755 static/vendors/jquery-knob/index.html create mode 100644 static/vendors/jquery-knob/js/jquery.knob.js create mode 100755 static/vendors/jquery-knob/knob.jquery.json create mode 100644 static/vendors/jquery-knob/package.json create mode 100755 static/vendors/jquery-knob/secretplan.jpg create mode 100644 static/vendors/jquery-mousewheel/.bower.json create mode 100644 static/vendors/jquery-mousewheel/ChangeLog.md create mode 100644 static/vendors/jquery-mousewheel/LICENSE.txt create mode 100644 static/vendors/jquery-mousewheel/README.md create mode 100644 static/vendors/jquery-mousewheel/bower.json create mode 100755 static/vendors/jquery-mousewheel/jquery.mousewheel.js create mode 100644 static/vendors/jquery-mousewheel/jquery.mousewheel.min.js create mode 100644 static/vendors/jquery-sparkline/.bower.json create mode 100644 static/vendors/jquery-sparkline/Changelog.txt create mode 100644 static/vendors/jquery-sparkline/Makefile create mode 100644 static/vendors/jquery-sparkline/README.md create mode 100644 static/vendors/jquery-sparkline/bower.json create mode 100644 static/vendors/jquery-sparkline/dist/jquery.sparkline.js create mode 100644 static/vendors/jquery-sparkline/dist/jquery.sparkline.min.js create mode 100644 static/vendors/jquery-sparkline/minheader.txt create mode 100644 static/vendors/jquery-sparkline/sparkline.jquery.json create mode 100644 static/vendors/jquery-sparkline/src/base.js create mode 100644 static/vendors/jquery-sparkline/src/chart-bar.js create mode 100644 static/vendors/jquery-sparkline/src/chart-box.js create mode 100644 static/vendors/jquery-sparkline/src/chart-bullet.js create mode 100644 static/vendors/jquery-sparkline/src/chart-discrete.js create mode 100644 static/vendors/jquery-sparkline/src/chart-line.js create mode 100644 static/vendors/jquery-sparkline/src/chart-pie.js create mode 100644 static/vendors/jquery-sparkline/src/chart-tristate.js create mode 100644 static/vendors/jquery-sparkline/src/defaults.js create mode 100644 static/vendors/jquery-sparkline/src/footer.js create mode 100644 static/vendors/jquery-sparkline/src/header.js create mode 100644 static/vendors/jquery-sparkline/src/interact.js create mode 100644 static/vendors/jquery-sparkline/src/rangemap.js create mode 100644 static/vendors/jquery-sparkline/src/simpledraw.js create mode 100644 static/vendors/jquery-sparkline/src/utils.js create mode 100644 static/vendors/jquery-sparkline/src/vcanvas-base.js create mode 100644 static/vendors/jquery-sparkline/src/vcanvas-canvas.js create mode 100644 static/vendors/jquery-sparkline/src/vcanvas-vml.js create mode 100644 static/vendors/jquery-sparkline/version.txt create mode 100644 static/vendors/jquery.easy-pie-chart/.bower.json create mode 100644 static/vendors/jquery.easy-pie-chart/.gitignore create mode 100644 static/vendors/jquery.easy-pie-chart/.travis.yml create mode 100644 static/vendors/jquery.easy-pie-chart/Gruntfile.js create mode 100644 static/vendors/jquery.easy-pie-chart/LICENSE create mode 100644 static/vendors/jquery.easy-pie-chart/Readme.md create mode 100644 static/vendors/jquery.easy-pie-chart/bower.json create mode 100644 static/vendors/jquery.easy-pie-chart/changelog.md create mode 100644 static/vendors/jquery.easy-pie-chart/dist/angular.easypiechart.js create mode 100644 static/vendors/jquery.easy-pie-chart/dist/angular.easypiechart.min.js create mode 100644 static/vendors/jquery.easy-pie-chart/dist/easypiechart.js create mode 100644 static/vendors/jquery.easy-pie-chart/dist/easypiechart.min.js create mode 100644 static/vendors/jquery.easy-pie-chart/dist/jquery.easypiechart.js create mode 100644 static/vendors/jquery.easy-pie-chart/dist/jquery.easypiechart.min.js create mode 100644 static/vendors/jquery.easy-pie-chart/docs/README.tmpl.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/bagdes.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/browser-support.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/callbacks.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/credits.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/features.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/get-started.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/options.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/plugin-api.md create mode 100644 static/vendors/jquery.easy-pie-chart/docs/test.md create mode 100644 static/vendors/jquery.easy-pie-chart/karma.conf.coffee create mode 100644 static/vendors/jquery.easy-pie-chart/package.json create mode 100644 static/vendors/jquery.easy-pie-chart/src/angular.directive.js create mode 100644 static/vendors/jquery.easy-pie-chart/src/easypiechart.js create mode 100644 static/vendors/jquery.easy-pie-chart/src/jquery.plugin.js create mode 100644 static/vendors/jquery.easy-pie-chart/src/renderer/canvas.js create mode 100644 static/vendors/jquery.easy-pie-chart/test/polyfills/bind.js create mode 100644 static/vendors/jquery.easy-pie-chart/test/unit/angular.directive.js create mode 100644 static/vendors/jquery.easy-pie-chart/test/unit/jquery.js create mode 100644 static/vendors/jquery.hotkeys/.bower.json create mode 100644 static/vendors/jquery.hotkeys/README.md create mode 100644 static/vendors/jquery.hotkeys/bower.json create mode 100644 static/vendors/jquery.hotkeys/jquery.hotkeys.js create mode 100644 static/vendors/jquery.inputmask/.bower.json create mode 100644 static/vendors/jquery.inputmask/bower.json create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.date.extensions.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.dependencyLib.jquery.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.extensions.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.numeric.extensions.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.phone.extensions.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/inputmask.regex.extensions.js create mode 100644 static/vendors/jquery.inputmask/dist/inputmask/jquery.inputmask.js create mode 100644 static/vendors/jquery.inputmask/dist/jquery.inputmask.bundle.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.date.extensions.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.dependencyLib.jquery.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.extensions.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/inputmask/jquery.inputmask.min.js create mode 100644 static/vendors/jquery.inputmask/dist/min/jquery.inputmask.bundle.min.js create mode 100644 static/vendors/jquery.inputmask/extra/bindings/inputmask.binding.js create mode 100644 static/vendors/jquery.inputmask/extra/dependencyLibs/inputmask.dependencyLib.jqlite.js create mode 100644 static/vendors/jquery.inputmask/extra/dependencyLibs/inputmask.dependencyLib.js create mode 100644 static/vendors/jquery.inputmask/extra/phone-codes/phone-be.js create mode 100644 static/vendors/jquery.inputmask/extra/phone-codes/phone-codes.js create mode 100644 static/vendors/jquery.inputmask/extra/phone-codes/phone-nl.js create mode 100644 static/vendors/jquery.inputmask/extra/phone-codes/phone-ru.js create mode 100644 static/vendors/jquery.inputmask/extra/phone-codes/phone-uk.js create mode 100644 static/vendors/jquery.tagsinput/.bower.json create mode 100644 static/vendors/jquery.tagsinput/Gruntfile.js create mode 100644 static/vendors/jquery.tagsinput/bower.json create mode 100644 static/vendors/jquery.tagsinput/dist/jquery.tagsinput.min.css create mode 100644 static/vendors/jquery.tagsinput/grunt-tasks/assets_production.js create mode 100644 static/vendors/jquery.tagsinput/grunt-tasks/options/cssmin.js create mode 100644 static/vendors/jquery.tagsinput/grunt-tasks/options/uglify.js create mode 100644 static/vendors/jquery.tagsinput/src/jquery.tagsinput.css create mode 100644 static/vendors/jquery.tagsinput/src/jquery.tagsinput.js create mode 100644 static/vendors/jquery/.bower.json create mode 100644 static/vendors/jquery/AUTHORS.txt create mode 100644 static/vendors/jquery/LICENSE.txt create mode 100644 static/vendors/jquery/README.md create mode 100644 static/vendors/jquery/bower.json create mode 100644 static/vendors/jquery/dist/jquery.js create mode 100644 static/vendors/jquery/dist/jquery.min.js create mode 100644 static/vendors/jquery/dist/jquery.min.map create mode 100644 static/vendors/jquery/external/sizzle/LICENSE.txt create mode 100644 static/vendors/jquery/external/sizzle/dist/sizzle.js create mode 100644 static/vendors/jquery/external/sizzle/dist/sizzle.min.js create mode 100644 static/vendors/jquery/external/sizzle/dist/sizzle.min.map create mode 100644 static/vendors/jquery/src/.jshintrc create mode 100644 static/vendors/jquery/src/ajax.js create mode 100644 static/vendors/jquery/src/ajax/jsonp.js create mode 100644 static/vendors/jquery/src/ajax/load.js create mode 100644 static/vendors/jquery/src/ajax/parseJSON.js create mode 100644 static/vendors/jquery/src/ajax/parseXML.js create mode 100644 static/vendors/jquery/src/ajax/script.js create mode 100644 static/vendors/jquery/src/ajax/var/location.js create mode 100644 static/vendors/jquery/src/ajax/var/nonce.js create mode 100644 static/vendors/jquery/src/ajax/var/rquery.js create mode 100644 static/vendors/jquery/src/ajax/xhr.js create mode 100644 static/vendors/jquery/src/attributes.js create mode 100644 static/vendors/jquery/src/attributes/attr.js create mode 100644 static/vendors/jquery/src/attributes/classes.js create mode 100644 static/vendors/jquery/src/attributes/prop.js create mode 100644 static/vendors/jquery/src/attributes/support.js create mode 100644 static/vendors/jquery/src/attributes/val.js create mode 100644 static/vendors/jquery/src/callbacks.js create mode 100644 static/vendors/jquery/src/core.js create mode 100644 static/vendors/jquery/src/core/access.js create mode 100644 static/vendors/jquery/src/core/init.js create mode 100644 static/vendors/jquery/src/core/parseHTML.js create mode 100644 static/vendors/jquery/src/core/ready.js create mode 100644 static/vendors/jquery/src/core/var/rsingleTag.js create mode 100644 static/vendors/jquery/src/css.js create mode 100644 static/vendors/jquery/src/css/addGetHookIf.js create mode 100644 static/vendors/jquery/src/css/adjustCSS.js create mode 100644 static/vendors/jquery/src/css/curCSS.js create mode 100644 static/vendors/jquery/src/css/defaultDisplay.js create mode 100644 static/vendors/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 static/vendors/jquery/src/css/showHide.js create mode 100644 static/vendors/jquery/src/css/support.js create mode 100644 static/vendors/jquery/src/css/var/cssExpand.js create mode 100644 static/vendors/jquery/src/css/var/getStyles.js create mode 100644 static/vendors/jquery/src/css/var/isHidden.js create mode 100644 static/vendors/jquery/src/css/var/rmargin.js create mode 100644 static/vendors/jquery/src/css/var/rnumnonpx.js create mode 100644 static/vendors/jquery/src/css/var/swap.js create mode 100644 static/vendors/jquery/src/data.js create mode 100644 static/vendors/jquery/src/data/Data.js create mode 100644 static/vendors/jquery/src/data/var/acceptData.js create mode 100644 static/vendors/jquery/src/data/var/dataPriv.js create mode 100644 static/vendors/jquery/src/data/var/dataUser.js create mode 100644 static/vendors/jquery/src/deferred.js create mode 100644 static/vendors/jquery/src/deprecated.js create mode 100644 static/vendors/jquery/src/dimensions.js create mode 100644 static/vendors/jquery/src/effects.js create mode 100644 static/vendors/jquery/src/effects/Tween.js create mode 100644 static/vendors/jquery/src/effects/animatedSelector.js create mode 100644 static/vendors/jquery/src/event.js create mode 100644 static/vendors/jquery/src/event/ajax.js create mode 100644 static/vendors/jquery/src/event/alias.js create mode 100644 static/vendors/jquery/src/event/focusin.js create mode 100644 static/vendors/jquery/src/event/support.js create mode 100644 static/vendors/jquery/src/event/trigger.js create mode 100644 static/vendors/jquery/src/exports/amd.js create mode 100644 static/vendors/jquery/src/exports/global.js create mode 100644 static/vendors/jquery/src/intro.js create mode 100644 static/vendors/jquery/src/jquery.js create mode 100644 static/vendors/jquery/src/manipulation.js create mode 100644 static/vendors/jquery/src/manipulation/_evalUrl.js create mode 100644 static/vendors/jquery/src/manipulation/buildFragment.js create mode 100644 static/vendors/jquery/src/manipulation/getAll.js create mode 100644 static/vendors/jquery/src/manipulation/setGlobalEval.js create mode 100644 static/vendors/jquery/src/manipulation/support.js create mode 100644 static/vendors/jquery/src/manipulation/var/rcheckableType.js create mode 100644 static/vendors/jquery/src/manipulation/var/rscriptType.js create mode 100644 static/vendors/jquery/src/manipulation/var/rtagName.js create mode 100644 static/vendors/jquery/src/manipulation/wrapMap.js create mode 100644 static/vendors/jquery/src/offset.js create mode 100644 static/vendors/jquery/src/outro.js create mode 100644 static/vendors/jquery/src/queue.js create mode 100644 static/vendors/jquery/src/queue/delay.js create mode 100644 static/vendors/jquery/src/selector-native.js create mode 100644 static/vendors/jquery/src/selector-sizzle.js create mode 100644 static/vendors/jquery/src/selector.js create mode 100644 static/vendors/jquery/src/serialize.js create mode 100644 static/vendors/jquery/src/traversing.js create mode 100644 static/vendors/jquery/src/traversing/findFilter.js create mode 100644 static/vendors/jquery/src/traversing/var/dir.js create mode 100644 static/vendors/jquery/src/traversing/var/rneedsContext.js create mode 100644 static/vendors/jquery/src/traversing/var/siblings.js create mode 100644 static/vendors/jquery/src/var/arr.js create mode 100644 static/vendors/jquery/src/var/class2type.js create mode 100644 static/vendors/jquery/src/var/concat.js create mode 100644 static/vendors/jquery/src/var/document.js create mode 100644 static/vendors/jquery/src/var/documentElement.js create mode 100644 static/vendors/jquery/src/var/hasOwn.js create mode 100644 static/vendors/jquery/src/var/indexOf.js create mode 100644 static/vendors/jquery/src/var/pnum.js create mode 100644 static/vendors/jquery/src/var/push.js create mode 100644 static/vendors/jquery/src/var/rcssNum.js create mode 100644 static/vendors/jquery/src/var/rnotwhite.js create mode 100644 static/vendors/jquery/src/var/slice.js create mode 100644 static/vendors/jquery/src/var/support.js create mode 100644 static/vendors/jquery/src/var/toString.js create mode 100644 static/vendors/jquery/src/wrap.js create mode 100644 static/vendors/jqvmap/.bower.json create mode 100644 static/vendors/jqvmap/CHANGELOG.md create mode 100644 static/vendors/jqvmap/CONTRIBUTING.md create mode 100644 static/vendors/jqvmap/LICENSE create mode 100644 static/vendors/jqvmap/README.md create mode 100644 static/vendors/jqvmap/REGIONS.md create mode 100644 static/vendors/jqvmap/bower.json create mode 100644 static/vendors/jqvmap/create/README.md create mode 100644 static/vendors/jqvmap/create/config/continent.json create mode 100644 static/vendors/jqvmap/create/config/new-york.json create mode 100644 static/vendors/jqvmap/create/config/syria.json create mode 100644 static/vendors/jqvmap/create/jqvmap.py create mode 100644 static/vendors/jqvmap/dist/jquery.vmap.js create mode 100644 static/vendors/jqvmap/dist/jquery.vmap.min.js create mode 100644 static/vendors/jqvmap/dist/jqvmap.css create mode 100644 static/vendors/jqvmap/dist/jqvmap.min.css create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.africa.js create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.asia.js create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.australia.js create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.europe.js create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.north-america.js create mode 100644 static/vendors/jqvmap/dist/maps/continents/jquery.vmap.south-america.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.algeria.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.argentina.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.brazil.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.canada.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.europe.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.france.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.germany.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.greece.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.iran.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.iraq.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.russia.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.tunisia.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.turkey.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.usa.js create mode 100644 static/vendors/jqvmap/dist/maps/jquery.vmap.world.js create mode 100644 static/vendors/jqvmap/examples/algeria.html create mode 100644 static/vendors/jqvmap/examples/argentina.html create mode 100644 static/vendors/jqvmap/examples/brazil.html create mode 100644 static/vendors/jqvmap/examples/continents.html create mode 100644 static/vendors/jqvmap/examples/europe.html create mode 100644 static/vendors/jqvmap/examples/france.html create mode 100644 static/vendors/jqvmap/examples/germany.html create mode 100644 static/vendors/jqvmap/examples/greece.html create mode 100644 static/vendors/jqvmap/examples/images/background.png create mode 100644 static/vendors/jqvmap/examples/images/flag.png create mode 100644 static/vendors/jqvmap/examples/images/globe.png create mode 100644 static/vendors/jqvmap/examples/images/marker/black.png create mode 100644 static/vendors/jqvmap/examples/images/marker/blue.png create mode 100644 static/vendors/jqvmap/examples/images/marker/green.png create mode 100644 static/vendors/jqvmap/examples/images/marker/grey.png create mode 100644 static/vendors/jqvmap/examples/images/marker/orange.png create mode 100644 static/vendors/jqvmap/examples/images/marker/purple.png create mode 100644 static/vendors/jqvmap/examples/images/marker/red.png create mode 100644 static/vendors/jqvmap/examples/images/marker/white.png create mode 100644 static/vendors/jqvmap/examples/images/marker/yellow.png create mode 100644 static/vendors/jqvmap/examples/images/thumb.jpg create mode 100644 static/vendors/jqvmap/examples/images/tip.png create mode 100644 static/vendors/jqvmap/examples/inactive_regions.html create mode 100644 static/vendors/jqvmap/examples/iran.html create mode 100644 static/vendors/jqvmap/examples/iraq.html create mode 100644 static/vendors/jqvmap/examples/js/jquery.vmap.sampledata.js create mode 100644 static/vendors/jqvmap/examples/labels.html create mode 100644 static/vendors/jqvmap/examples/mobile.html create mode 100644 static/vendors/jqvmap/examples/multi.html create mode 100644 static/vendors/jqvmap/examples/pins.html create mode 100644 static/vendors/jqvmap/examples/pins_custom.html create mode 100644 static/vendors/jqvmap/examples/responsive.html create mode 100644 static/vendors/jqvmap/examples/russia.html create mode 100644 static/vendors/jqvmap/examples/touch_detect.html create mode 100644 static/vendors/jqvmap/examples/tunisia.html create mode 100644 static/vendors/jqvmap/examples/turkey.html create mode 100644 static/vendors/jqvmap/examples/usa.html create mode 100644 static/vendors/jqvmap/examples/world.html create mode 100644 static/vendors/jqvmap/grunt/bump.js create mode 100644 static/vendors/jqvmap/grunt/changelog.js create mode 100644 static/vendors/jqvmap/grunt/clean.js create mode 100644 static/vendors/jqvmap/grunt/concat.js create mode 100644 static/vendors/jqvmap/grunt/index.js create mode 100644 static/vendors/jqvmap/grunt/qunit.js create mode 100644 static/vendors/jqvmap/grunt/shell.js create mode 100644 static/vendors/jqvmap/grunt/uglify.js create mode 100644 static/vendors/jqvmap/gruntfile.js create mode 100644 static/vendors/jqvmap/package.json create mode 100644 static/vendors/jqvmap/src/Base.js create mode 100644 static/vendors/jqvmap/src/ColorScale.js create mode 100644 static/vendors/jqvmap/src/ColorScale/arrayToRgb.js create mode 100644 static/vendors/jqvmap/src/ColorScale/getColor.js create mode 100644 static/vendors/jqvmap/src/ColorScale/rgbToArray.js create mode 100644 static/vendors/jqvmap/src/ColorScale/setColors.js create mode 100644 static/vendors/jqvmap/src/ColorScale/setMax.js create mode 100644 static/vendors/jqvmap/src/ColorScale/setMin.js create mode 100644 static/vendors/jqvmap/src/ColorScale/setNormalizeFunction.js create mode 100644 static/vendors/jqvmap/src/ColorScale/vectorAdd.js create mode 100644 static/vendors/jqvmap/src/ColorScale/vectorLength.js create mode 100644 static/vendors/jqvmap/src/ColorScale/vectorMult.js create mode 100644 static/vendors/jqvmap/src/ColorScale/vectorSubtract.js create mode 100644 static/vendors/jqvmap/src/ColorScale/vectorToNum.js create mode 100644 static/vendors/jqvmap/src/JQVMap.js create mode 100644 static/vendors/jqvmap/src/JQVMap/applyTransform.js create mode 100644 static/vendors/jqvmap/src/JQVMap/bindZoomButtons.js create mode 100644 static/vendors/jqvmap/src/JQVMap/deselect.js create mode 100644 static/vendors/jqvmap/src/JQVMap/getCountryId.js create mode 100644 static/vendors/jqvmap/src/JQVMap/getPin.js create mode 100644 static/vendors/jqvmap/src/JQVMap/getPinId.js create mode 100644 static/vendors/jqvmap/src/JQVMap/getPins.js create mode 100644 static/vendors/jqvmap/src/JQVMap/highlight.js create mode 100644 static/vendors/jqvmap/src/JQVMap/isSelected.js create mode 100644 static/vendors/jqvmap/src/JQVMap/makeDraggable.js create mode 100644 static/vendors/jqvmap/src/JQVMap/placePins.js create mode 100644 static/vendors/jqvmap/src/JQVMap/positionPins.js create mode 100644 static/vendors/jqvmap/src/JQVMap/removePin.js create mode 100644 static/vendors/jqvmap/src/JQVMap/removePins.js create mode 100644 static/vendors/jqvmap/src/JQVMap/reset.js create mode 100644 static/vendors/jqvmap/src/JQVMap/resize.js create mode 100644 static/vendors/jqvmap/src/JQVMap/select.js create mode 100644 static/vendors/jqvmap/src/JQVMap/selectIndex.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setBackgroundColor.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setColors.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setNormalizeFunction.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setScale.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setScaleColors.js create mode 100644 static/vendors/jqvmap/src/JQVMap/setValues.js create mode 100644 static/vendors/jqvmap/src/JQVMap/unhighlight.js create mode 100644 static/vendors/jqvmap/src/JQVMap/zoomIn.js create mode 100644 static/vendors/jqvmap/src/JQVMap/zoomOut.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas/applyTransformParams.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas/createGroup.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas/createPath.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas/pathSvgToVml.js create mode 100644 static/vendors/jqvmap/src/VectorCanvas/setSize.js create mode 100644 static/vendors/jszip/.bower.json create mode 100644 static/vendors/jszip/CHANGES.md create mode 100644 static/vendors/jszip/Gruntfile.js create mode 100644 static/vendors/jszip/LICENSE.markdown create mode 100644 static/vendors/jszip/README.markdown create mode 100644 static/vendors/jszip/_config.yml create mode 100644 static/vendors/jszip/bower.json create mode 100644 static/vendors/jszip/component.json create mode 100644 static/vendors/jszip/dist/jszip.js create mode 100644 static/vendors/jszip/dist/jszip.min.js create mode 100644 static/vendors/jszip/docs/APPNOTE.TXT create mode 100644 static/vendors/jszip/docs/ZIP spec.txt create mode 100644 static/vendors/jszip/docs/references.txt create mode 100644 static/vendors/jszip/documentation/_layouts/default.html create mode 100644 static/vendors/jszip/documentation/api_jszip.md create mode 100644 static/vendors/jszip/documentation/api_jszip/constructor.md create mode 100644 static/vendors/jszip/documentation/api_jszip/constructor_load.md create mode 100644 static/vendors/jszip/documentation/api_jszip/file_data.md create mode 100644 static/vendors/jszip/documentation/api_jszip/file_name.md create mode 100644 static/vendors/jszip/documentation/api_jszip/file_regex.md create mode 100644 static/vendors/jszip/documentation/api_jszip/filter.md create mode 100644 static/vendors/jszip/documentation/api_jszip/folder_data.md create mode 100644 static/vendors/jszip/documentation/api_jszip/folder_regex.md create mode 100644 static/vendors/jszip/documentation/api_jszip/generate.md create mode 100644 static/vendors/jszip/documentation/api_jszip/load.md create mode 100644 static/vendors/jszip/documentation/api_jszip/remove.md create mode 100644 static/vendors/jszip/documentation/api_jszip/support.md create mode 100644 static/vendors/jszip/documentation/api_zipobject.md create mode 100644 static/vendors/jszip/documentation/contributing.md create mode 100644 static/vendors/jszip/documentation/css/main.css create mode 100644 static/vendors/jszip/documentation/css/pygments.css create mode 100644 static/vendors/jszip/documentation/examples.md create mode 100644 static/vendors/jszip/documentation/examples/download-zip-file.html create mode 100644 static/vendors/jszip/documentation/examples/downloader.html create mode 100644 static/vendors/jszip/documentation/examples/downloader.js create mode 100644 static/vendors/jszip/documentation/examples/get-binary-files-ajax.html create mode 100644 static/vendors/jszip/documentation/examples/read-local-file-api.html create mode 100644 static/vendors/jszip/documentation/faq.md create mode 100644 static/vendors/jszip/documentation/howto/read_zip.md create mode 100644 static/vendors/jszip/documentation/howto/write_zip.md create mode 100644 static/vendors/jszip/documentation/limitations.md create mode 100644 static/vendors/jszip/documentation/upgrade_guide.md create mode 100644 static/vendors/jszip/index.html create mode 100644 static/vendors/jszip/lib/arrayReader.js create mode 100644 static/vendors/jszip/lib/base64.js create mode 100644 static/vendors/jszip/lib/compressedObject.js create mode 100644 static/vendors/jszip/lib/compressions.js create mode 100644 static/vendors/jszip/lib/crc32.js create mode 100644 static/vendors/jszip/lib/dataReader.js create mode 100644 static/vendors/jszip/lib/defaults.js create mode 100644 static/vendors/jszip/lib/deprecatedPublicUtils.js create mode 100644 static/vendors/jszip/lib/flate.js create mode 100644 static/vendors/jszip/lib/index.js create mode 100644 static/vendors/jszip/lib/license_header.js create mode 100644 static/vendors/jszip/lib/load.js create mode 100644 static/vendors/jszip/lib/nodeBuffer.js create mode 100644 static/vendors/jszip/lib/nodeBufferReader.js create mode 100644 static/vendors/jszip/lib/object.js create mode 100644 static/vendors/jszip/lib/signature.js create mode 100644 static/vendors/jszip/lib/stringReader.js create mode 100644 static/vendors/jszip/lib/stringWriter.js create mode 100644 static/vendors/jszip/lib/support.js create mode 100644 static/vendors/jszip/lib/uint8ArrayReader.js create mode 100644 static/vendors/jszip/lib/uint8ArrayWriter.js create mode 100644 static/vendors/jszip/lib/utf8.js create mode 100644 static/vendors/jszip/lib/utils.js create mode 100644 static/vendors/jszip/lib/zipEntries.js create mode 100644 static/vendors/jszip/lib/zipEntry.js create mode 100644 static/vendors/jszip/package.json create mode 100644 static/vendors/jszip/vendor/FileSaver.js create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/.bower.json create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/bower.json create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css create mode 100644 static/vendors/malihu-custom-scrollbar-plugin/mCSB_buttons.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/.bower.json create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/CONTRIBUTING.md create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/LICENSE create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/README.md create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/bower.json create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.css create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.css.map create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css.map create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/alpha-horizontal.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/alpha.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/hue-horizontal.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/hue.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/saturation.png create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/assets/main.css create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/helpers/code/index.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/api.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/example.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/01_basic.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/02_component.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/03_component_options.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/04_events.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/05_transparent.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/06_horizontal.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/07_inline.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/08_palette.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/09_size.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/10_disabled.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/examples/11_modal.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/includes/social.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/layout.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/docs/pages/index.hbs create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/serve.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/src/js/colorpicker-color.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/src/js/colorpicker-component.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/src/js/colorpicker-defaults.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/src/js/colorpicker-plugin-wrapper.js create mode 100644 static/vendors/mjolnic-bootstrap-colorpicker/src/less/colorpicker.less create mode 100644 static/vendors/mocha/.bower.json create mode 100644 static/vendors/mocha/History.md create mode 100644 static/vendors/mocha/LICENSE create mode 100644 static/vendors/mocha/Readme.md create mode 100644 static/vendors/mocha/bower.json create mode 100644 static/vendors/mocha/media/logo.svg create mode 100644 static/vendors/mocha/mocha.css create mode 100644 static/vendors/mocha/mocha.js create mode 100644 static/vendors/moment/.bower.json create mode 100644 static/vendors/moment/CHANGELOG.md create mode 100644 static/vendors/moment/LICENSE create mode 100644 static/vendors/moment/README.md create mode 100644 static/vendors/moment/bower.json create mode 100644 static/vendors/moment/locale/af.js create mode 100644 static/vendors/moment/locale/ar-ma.js create mode 100644 static/vendors/moment/locale/ar-sa.js create mode 100644 static/vendors/moment/locale/ar-tn.js create mode 100644 static/vendors/moment/locale/ar.js create mode 100644 static/vendors/moment/locale/az.js create mode 100644 static/vendors/moment/locale/be.js create mode 100644 static/vendors/moment/locale/bg.js create mode 100644 static/vendors/moment/locale/bn.js create mode 100644 static/vendors/moment/locale/bo.js create mode 100644 static/vendors/moment/locale/br.js create mode 100644 static/vendors/moment/locale/bs.js create mode 100644 static/vendors/moment/locale/ca.js create mode 100644 static/vendors/moment/locale/cs.js create mode 100644 static/vendors/moment/locale/cv.js create mode 100644 static/vendors/moment/locale/cy.js create mode 100644 static/vendors/moment/locale/da.js create mode 100644 static/vendors/moment/locale/de-at.js create mode 100644 static/vendors/moment/locale/de.js create mode 100644 static/vendors/moment/locale/dv.js create mode 100644 static/vendors/moment/locale/el.js create mode 100644 static/vendors/moment/locale/en-au.js create mode 100644 static/vendors/moment/locale/en-ca.js create mode 100644 static/vendors/moment/locale/en-gb.js create mode 100644 static/vendors/moment/locale/en-ie.js create mode 100644 static/vendors/moment/locale/en-nz.js create mode 100644 static/vendors/moment/locale/eo.js create mode 100644 static/vendors/moment/locale/es.js create mode 100644 static/vendors/moment/locale/et.js create mode 100644 static/vendors/moment/locale/eu.js create mode 100644 static/vendors/moment/locale/fa.js create mode 100644 static/vendors/moment/locale/fi.js create mode 100644 static/vendors/moment/locale/fo.js create mode 100644 static/vendors/moment/locale/fr-ca.js create mode 100644 static/vendors/moment/locale/fr-ch.js create mode 100644 static/vendors/moment/locale/fr.js create mode 100644 static/vendors/moment/locale/fy.js create mode 100644 static/vendors/moment/locale/gd.js create mode 100644 static/vendors/moment/locale/gl.js create mode 100644 static/vendors/moment/locale/he.js create mode 100644 static/vendors/moment/locale/hi.js create mode 100644 static/vendors/moment/locale/hr.js create mode 100644 static/vendors/moment/locale/hu.js create mode 100644 static/vendors/moment/locale/hy-am.js create mode 100644 static/vendors/moment/locale/id.js create mode 100644 static/vendors/moment/locale/is.js create mode 100644 static/vendors/moment/locale/it.js create mode 100644 static/vendors/moment/locale/ja.js create mode 100644 static/vendors/moment/locale/jv.js create mode 100644 static/vendors/moment/locale/ka.js create mode 100644 static/vendors/moment/locale/kk.js create mode 100644 static/vendors/moment/locale/km.js create mode 100644 static/vendors/moment/locale/ko.js create mode 100644 static/vendors/moment/locale/ky.js create mode 100644 static/vendors/moment/locale/lb.js create mode 100644 static/vendors/moment/locale/lo.js create mode 100644 static/vendors/moment/locale/lt.js create mode 100644 static/vendors/moment/locale/lv.js create mode 100644 static/vendors/moment/locale/me.js create mode 100644 static/vendors/moment/locale/mk.js create mode 100644 static/vendors/moment/locale/ml.js create mode 100644 static/vendors/moment/locale/mr.js create mode 100644 static/vendors/moment/locale/ms-my.js create mode 100644 static/vendors/moment/locale/ms.js create mode 100644 static/vendors/moment/locale/my.js create mode 100644 static/vendors/moment/locale/nb.js create mode 100644 static/vendors/moment/locale/ne.js create mode 100644 static/vendors/moment/locale/nl.js create mode 100644 static/vendors/moment/locale/nn.js create mode 100644 static/vendors/moment/locale/pa-in.js create mode 100644 static/vendors/moment/locale/pl.js create mode 100644 static/vendors/moment/locale/pt-br.js create mode 100644 static/vendors/moment/locale/pt.js create mode 100644 static/vendors/moment/locale/ro.js create mode 100644 static/vendors/moment/locale/ru.js create mode 100644 static/vendors/moment/locale/se.js create mode 100644 static/vendors/moment/locale/si.js create mode 100644 static/vendors/moment/locale/sk.js create mode 100644 static/vendors/moment/locale/sl.js create mode 100644 static/vendors/moment/locale/sq.js create mode 100644 static/vendors/moment/locale/sr-cyrl.js create mode 100644 static/vendors/moment/locale/sr.js create mode 100644 static/vendors/moment/locale/ss.js create mode 100644 static/vendors/moment/locale/sv.js create mode 100644 static/vendors/moment/locale/sw.js create mode 100644 static/vendors/moment/locale/ta.js create mode 100644 static/vendors/moment/locale/te.js create mode 100644 static/vendors/moment/locale/th.js create mode 100644 static/vendors/moment/locale/tl-ph.js create mode 100644 static/vendors/moment/locale/tlh.js create mode 100644 static/vendors/moment/locale/tr.js create mode 100644 static/vendors/moment/locale/tzl.js create mode 100644 static/vendors/moment/locale/tzm-latn.js create mode 100644 static/vendors/moment/locale/tzm.js create mode 100644 static/vendors/moment/locale/uk.js create mode 100644 static/vendors/moment/locale/uz.js create mode 100644 static/vendors/moment/locale/vi.js create mode 100644 static/vendors/moment/locale/x-pseudo.js create mode 100644 static/vendors/moment/locale/zh-cn.js create mode 100644 static/vendors/moment/locale/zh-tw.js create mode 100644 static/vendors/moment/min/locales.js create mode 100644 static/vendors/moment/min/locales.min.js create mode 100644 static/vendors/moment/min/moment-with-locales.js create mode 100644 static/vendors/moment/min/moment-with-locales.min.js create mode 100644 static/vendors/moment/min/moment.min.js create mode 100644 static/vendors/moment/min/tests.js create mode 100644 static/vendors/moment/moment.d.ts create mode 100644 static/vendors/moment/moment.js create mode 100644 static/vendors/moment/src/lib/create/check-overflow.js create mode 100644 static/vendors/moment/src/lib/create/date-from-array.js create mode 100644 static/vendors/moment/src/lib/create/from-anything.js create mode 100644 static/vendors/moment/src/lib/create/from-array.js create mode 100644 static/vendors/moment/src/lib/create/from-object.js create mode 100644 static/vendors/moment/src/lib/create/from-string-and-array.js create mode 100644 static/vendors/moment/src/lib/create/from-string-and-format.js create mode 100644 static/vendors/moment/src/lib/create/from-string.js create mode 100644 static/vendors/moment/src/lib/create/local.js create mode 100644 static/vendors/moment/src/lib/create/parsing-flags.js create mode 100644 static/vendors/moment/src/lib/create/utc.js create mode 100644 static/vendors/moment/src/lib/create/valid.js create mode 100644 static/vendors/moment/src/lib/duration/abs.js create mode 100644 static/vendors/moment/src/lib/duration/add-subtract.js create mode 100644 static/vendors/moment/src/lib/duration/as.js create mode 100644 static/vendors/moment/src/lib/duration/bubble.js create mode 100644 static/vendors/moment/src/lib/duration/constructor.js create mode 100644 static/vendors/moment/src/lib/duration/create.js create mode 100644 static/vendors/moment/src/lib/duration/duration.js create mode 100644 static/vendors/moment/src/lib/duration/get.js create mode 100644 static/vendors/moment/src/lib/duration/humanize.js create mode 100644 static/vendors/moment/src/lib/duration/iso-string.js create mode 100644 static/vendors/moment/src/lib/duration/prototype.js create mode 100644 static/vendors/moment/src/lib/format/format.js create mode 100644 static/vendors/moment/src/lib/locale/calendar.js create mode 100644 static/vendors/moment/src/lib/locale/constructor.js create mode 100644 static/vendors/moment/src/lib/locale/en.js create mode 100644 static/vendors/moment/src/lib/locale/formats.js create mode 100644 static/vendors/moment/src/lib/locale/invalid.js create mode 100644 static/vendors/moment/src/lib/locale/lists.js create mode 100644 static/vendors/moment/src/lib/locale/locale.js create mode 100644 static/vendors/moment/src/lib/locale/locales.js create mode 100644 static/vendors/moment/src/lib/locale/ordinal.js create mode 100644 static/vendors/moment/src/lib/locale/pre-post-format.js create mode 100644 static/vendors/moment/src/lib/locale/prototype.js create mode 100644 static/vendors/moment/src/lib/locale/relative.js create mode 100644 static/vendors/moment/src/lib/locale/set.js create mode 100644 static/vendors/moment/src/lib/moment/add-subtract.js create mode 100644 static/vendors/moment/src/lib/moment/calendar.js create mode 100644 static/vendors/moment/src/lib/moment/clone.js create mode 100644 static/vendors/moment/src/lib/moment/compare.js create mode 100644 static/vendors/moment/src/lib/moment/constructor.js create mode 100644 static/vendors/moment/src/lib/moment/creation-data.js create mode 100644 static/vendors/moment/src/lib/moment/diff.js create mode 100644 static/vendors/moment/src/lib/moment/format.js create mode 100644 static/vendors/moment/src/lib/moment/from.js create mode 100644 static/vendors/moment/src/lib/moment/get-set.js create mode 100644 static/vendors/moment/src/lib/moment/locale.js create mode 100644 static/vendors/moment/src/lib/moment/min-max.js create mode 100644 static/vendors/moment/src/lib/moment/moment.js create mode 100644 static/vendors/moment/src/lib/moment/now.js create mode 100644 static/vendors/moment/src/lib/moment/prototype.js create mode 100644 static/vendors/moment/src/lib/moment/start-end-of.js create mode 100644 static/vendors/moment/src/lib/moment/to-type.js create mode 100644 static/vendors/moment/src/lib/moment/to.js create mode 100644 static/vendors/moment/src/lib/moment/valid.js create mode 100644 static/vendors/moment/src/lib/parse/regex.js create mode 100644 static/vendors/moment/src/lib/parse/token.js create mode 100644 static/vendors/moment/src/lib/units/aliases.js create mode 100644 static/vendors/moment/src/lib/units/constants.js create mode 100644 static/vendors/moment/src/lib/units/day-of-month.js create mode 100644 static/vendors/moment/src/lib/units/day-of-week.js create mode 100644 static/vendors/moment/src/lib/units/day-of-year.js create mode 100644 static/vendors/moment/src/lib/units/hour.js create mode 100644 static/vendors/moment/src/lib/units/millisecond.js create mode 100644 static/vendors/moment/src/lib/units/minute.js create mode 100644 static/vendors/moment/src/lib/units/month.js create mode 100644 static/vendors/moment/src/lib/units/offset.js create mode 100644 static/vendors/moment/src/lib/units/quarter.js create mode 100644 static/vendors/moment/src/lib/units/second.js create mode 100644 static/vendors/moment/src/lib/units/timestamp.js create mode 100644 static/vendors/moment/src/lib/units/timezone.js create mode 100644 static/vendors/moment/src/lib/units/units.js create mode 100644 static/vendors/moment/src/lib/units/week-calendar-utils.js create mode 100644 static/vendors/moment/src/lib/units/week-year.js create mode 100644 static/vendors/moment/src/lib/units/week.js create mode 100644 static/vendors/moment/src/lib/units/year.js create mode 100644 static/vendors/moment/src/lib/utils/abs-ceil.js create mode 100644 static/vendors/moment/src/lib/utils/abs-floor.js create mode 100644 static/vendors/moment/src/lib/utils/abs-round.js create mode 100644 static/vendors/moment/src/lib/utils/compare-arrays.js create mode 100644 static/vendors/moment/src/lib/utils/defaults.js create mode 100644 static/vendors/moment/src/lib/utils/deprecate.js create mode 100644 static/vendors/moment/src/lib/utils/extend.js create mode 100644 static/vendors/moment/src/lib/utils/has-own-prop.js create mode 100644 static/vendors/moment/src/lib/utils/hooks.js create mode 100644 static/vendors/moment/src/lib/utils/index-of.js create mode 100644 static/vendors/moment/src/lib/utils/is-array.js create mode 100644 static/vendors/moment/src/lib/utils/is-date.js create mode 100644 static/vendors/moment/src/lib/utils/is-function.js create mode 100644 static/vendors/moment/src/lib/utils/is-object.js create mode 100644 static/vendors/moment/src/lib/utils/is-undefined.js create mode 100644 static/vendors/moment/src/lib/utils/keys.js create mode 100644 static/vendors/moment/src/lib/utils/map.js create mode 100644 static/vendors/moment/src/lib/utils/some.js create mode 100644 static/vendors/moment/src/lib/utils/to-int.js create mode 100644 static/vendors/moment/src/lib/utils/zero-fill.js create mode 100644 static/vendors/moment/src/locale/af.js create mode 100644 static/vendors/moment/src/locale/ar-ma.js create mode 100644 static/vendors/moment/src/locale/ar-sa.js create mode 100644 static/vendors/moment/src/locale/ar-tn.js create mode 100644 static/vendors/moment/src/locale/ar.js create mode 100644 static/vendors/moment/src/locale/az.js create mode 100644 static/vendors/moment/src/locale/be.js create mode 100644 static/vendors/moment/src/locale/bg.js create mode 100644 static/vendors/moment/src/locale/bn.js create mode 100644 static/vendors/moment/src/locale/bo.js create mode 100644 static/vendors/moment/src/locale/br.js create mode 100644 static/vendors/moment/src/locale/bs.js create mode 100644 static/vendors/moment/src/locale/ca.js create mode 100644 static/vendors/moment/src/locale/cs.js create mode 100644 static/vendors/moment/src/locale/cv.js create mode 100644 static/vendors/moment/src/locale/cy.js create mode 100644 static/vendors/moment/src/locale/da.js create mode 100644 static/vendors/moment/src/locale/de-at.js create mode 100644 static/vendors/moment/src/locale/de.js create mode 100644 static/vendors/moment/src/locale/dv.js create mode 100644 static/vendors/moment/src/locale/el.js create mode 100644 static/vendors/moment/src/locale/en-au.js create mode 100644 static/vendors/moment/src/locale/en-ca.js create mode 100644 static/vendors/moment/src/locale/en-gb.js create mode 100644 static/vendors/moment/src/locale/en-ie.js create mode 100644 static/vendors/moment/src/locale/en-nz.js create mode 100644 static/vendors/moment/src/locale/eo.js create mode 100644 static/vendors/moment/src/locale/es.js create mode 100644 static/vendors/moment/src/locale/et.js create mode 100644 static/vendors/moment/src/locale/eu.js create mode 100644 static/vendors/moment/src/locale/fa.js create mode 100644 static/vendors/moment/src/locale/fi.js create mode 100644 static/vendors/moment/src/locale/fo.js create mode 100644 static/vendors/moment/src/locale/fr-ca.js create mode 100644 static/vendors/moment/src/locale/fr-ch.js create mode 100644 static/vendors/moment/src/locale/fr.js create mode 100644 static/vendors/moment/src/locale/fy.js create mode 100644 static/vendors/moment/src/locale/gd.js create mode 100644 static/vendors/moment/src/locale/gl.js create mode 100644 static/vendors/moment/src/locale/he.js create mode 100644 static/vendors/moment/src/locale/hi.js create mode 100644 static/vendors/moment/src/locale/hr.js create mode 100644 static/vendors/moment/src/locale/hu.js create mode 100644 static/vendors/moment/src/locale/hy-am.js create mode 100644 static/vendors/moment/src/locale/id.js create mode 100644 static/vendors/moment/src/locale/is.js create mode 100644 static/vendors/moment/src/locale/it.js create mode 100644 static/vendors/moment/src/locale/ja.js create mode 100644 static/vendors/moment/src/locale/jv.js create mode 100644 static/vendors/moment/src/locale/ka.js create mode 100644 static/vendors/moment/src/locale/kk.js create mode 100644 static/vendors/moment/src/locale/km.js create mode 100644 static/vendors/moment/src/locale/ko.js create mode 100644 static/vendors/moment/src/locale/ky.js create mode 100644 static/vendors/moment/src/locale/lb.js create mode 100644 static/vendors/moment/src/locale/lo.js create mode 100644 static/vendors/moment/src/locale/lt.js create mode 100644 static/vendors/moment/src/locale/lv.js create mode 100644 static/vendors/moment/src/locale/me.js create mode 100644 static/vendors/moment/src/locale/mk.js create mode 100644 static/vendors/moment/src/locale/ml.js create mode 100644 static/vendors/moment/src/locale/mr.js create mode 100644 static/vendors/moment/src/locale/ms-my.js create mode 100644 static/vendors/moment/src/locale/ms.js create mode 100644 static/vendors/moment/src/locale/my.js create mode 100644 static/vendors/moment/src/locale/nb.js create mode 100644 static/vendors/moment/src/locale/ne.js create mode 100644 static/vendors/moment/src/locale/nl.js create mode 100644 static/vendors/moment/src/locale/nn.js create mode 100644 static/vendors/moment/src/locale/pa-in.js create mode 100644 static/vendors/moment/src/locale/pl.js create mode 100644 static/vendors/moment/src/locale/pt-br.js create mode 100644 static/vendors/moment/src/locale/pt.js create mode 100644 static/vendors/moment/src/locale/ro.js create mode 100644 static/vendors/moment/src/locale/ru.js create mode 100644 static/vendors/moment/src/locale/se.js create mode 100644 static/vendors/moment/src/locale/si.js create mode 100644 static/vendors/moment/src/locale/sk.js create mode 100644 static/vendors/moment/src/locale/sl.js create mode 100644 static/vendors/moment/src/locale/sq.js create mode 100644 static/vendors/moment/src/locale/sr-cyrl.js create mode 100644 static/vendors/moment/src/locale/sr.js create mode 100644 static/vendors/moment/src/locale/ss.js create mode 100644 static/vendors/moment/src/locale/sv.js create mode 100644 static/vendors/moment/src/locale/sw.js create mode 100644 static/vendors/moment/src/locale/ta.js create mode 100644 static/vendors/moment/src/locale/te.js create mode 100644 static/vendors/moment/src/locale/th.js create mode 100644 static/vendors/moment/src/locale/tl-ph.js create mode 100644 static/vendors/moment/src/locale/tlh.js create mode 100644 static/vendors/moment/src/locale/tr.js create mode 100644 static/vendors/moment/src/locale/tzl.js create mode 100644 static/vendors/moment/src/locale/tzm-latn.js create mode 100644 static/vendors/moment/src/locale/tzm.js create mode 100644 static/vendors/moment/src/locale/uk.js create mode 100644 static/vendors/moment/src/locale/uz.js create mode 100644 static/vendors/moment/src/locale/vi.js create mode 100644 static/vendors/moment/src/locale/x-pseudo.js create mode 100644 static/vendors/moment/src/locale/zh-cn.js create mode 100644 static/vendors/moment/src/locale/zh-tw.js create mode 100644 static/vendors/moment/src/moment.js create mode 100644 static/vendors/moment/templates/amd-named.js create mode 100644 static/vendors/moment/templates/amd.js create mode 100644 static/vendors/moment/templates/default.js create mode 100644 static/vendors/moment/templates/globals.js create mode 100644 static/vendors/moment/templates/locale-header.js create mode 100644 static/vendors/moment/templates/test-header.js create mode 100644 static/vendors/morris.js/.bower.json create mode 100644 static/vendors/morris.js/.gitignore create mode 100644 static/vendors/morris.js/.travis.yml create mode 100644 static/vendors/morris.js/Gruntfile.js create mode 100644 static/vendors/morris.js/README.md create mode 100644 static/vendors/morris.js/bower.json create mode 100644 static/vendors/morris.js/bower.travis.json create mode 100644 static/vendors/morris.js/examples/_template.html create mode 100644 static/vendors/morris.js/examples/area-as-line.html create mode 100644 static/vendors/morris.js/examples/area.html create mode 100644 static/vendors/morris.js/examples/bar-colors.html create mode 100644 static/vendors/morris.js/examples/bar-no-axes.html create mode 100644 static/vendors/morris.js/examples/bar.html create mode 100644 static/vendors/morris.js/examples/days.html create mode 100644 static/vendors/morris.js/examples/decimal-custom-hover.html create mode 100644 static/vendors/morris.js/examples/diagonal-xlabels-bar.html create mode 100644 static/vendors/morris.js/examples/diagonal-xlabels.html create mode 100644 static/vendors/morris.js/examples/donut-colors.html create mode 100644 static/vendors/morris.js/examples/donut-formatter.html create mode 100644 static/vendors/morris.js/examples/donut.html create mode 100644 static/vendors/morris.js/examples/dst.html create mode 100644 static/vendors/morris.js/examples/events.html create mode 100644 static/vendors/morris.js/examples/goals.html create mode 100644 static/vendors/morris.js/examples/lib/example.css create mode 100644 static/vendors/morris.js/examples/lib/example.js create mode 100644 static/vendors/morris.js/examples/months-no-smooth.html create mode 100644 static/vendors/morris.js/examples/negative.html create mode 100644 static/vendors/morris.js/examples/no-grid.html create mode 100644 static/vendors/morris.js/examples/non-continuous.html create mode 100644 static/vendors/morris.js/examples/non-date.html create mode 100644 static/vendors/morris.js/examples/quarters.html create mode 100644 static/vendors/morris.js/examples/resize.html create mode 100644 static/vendors/morris.js/examples/stacked_bars.html create mode 100644 static/vendors/morris.js/examples/timestamps.html create mode 100644 static/vendors/morris.js/examples/updating.html create mode 100644 static/vendors/morris.js/examples/weeks.html create mode 100644 static/vendors/morris.js/examples/years.html create mode 100644 static/vendors/morris.js/less/morris.core.less create mode 100644 static/vendors/morris.js/lib/morris.area.coffee create mode 100644 static/vendors/morris.js/lib/morris.bar.coffee create mode 100644 static/vendors/morris.js/lib/morris.coffee create mode 100644 static/vendors/morris.js/lib/morris.donut.coffee create mode 100644 static/vendors/morris.js/lib/morris.grid.coffee create mode 100644 static/vendors/morris.js/lib/morris.hover.coffee create mode 100644 static/vendors/morris.js/lib/morris.line.coffee create mode 100644 static/vendors/morris.js/morris.css create mode 100644 static/vendors/morris.js/morris.js create mode 100644 static/vendors/morris.js/morris.min.js create mode 100644 static/vendors/morris.js/package.json create mode 100644 static/vendors/morris.js/spec/lib/area/area_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/bar/bar_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/bar/colours.coffee create mode 100644 static/vendors/morris.js/spec/lib/commas_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/donut/donut_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/grid/auto_grid_lines_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/grid/set_data_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/grid/y_label_format_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/hover_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/label_series_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/line/line_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/pad_spec.coffee create mode 100644 static/vendors/morris.js/spec/lib/parse_time_spec.coffee create mode 100644 static/vendors/morris.js/spec/specs.html create mode 100644 static/vendors/morris.js/spec/support/placeholder.coffee create mode 100644 static/vendors/morris.js/spec/viz/examples.js create mode 100644 static/vendors/morris.js/spec/viz/exemplary/area0.png create mode 100644 static/vendors/morris.js/spec/viz/exemplary/bar0.png create mode 100644 static/vendors/morris.js/spec/viz/exemplary/line0.png create mode 100644 static/vendors/morris.js/spec/viz/exemplary/stacked_bar0.png create mode 100755 static/vendors/morris.js/spec/viz/run.sh create mode 100644 static/vendors/morris.js/spec/viz/test.html create mode 100644 static/vendors/morris.js/spec/viz/visual_specs.js create mode 100644 static/vendors/normalize-css/.bower.json create mode 100644 static/vendors/normalize-css/.editorconfig create mode 100644 static/vendors/normalize-css/.gitignore create mode 100644 static/vendors/normalize-css/.travis.yml create mode 100644 static/vendors/normalize-css/LICENSE.md create mode 100644 static/vendors/normalize-css/bower.json create mode 100644 static/vendors/normalize-css/normalize.css create mode 100644 static/vendors/nprogress/.bower.json create mode 100644 static/vendors/nprogress/History.md create mode 100644 static/vendors/nprogress/License.md create mode 100644 static/vendors/nprogress/Notes.md create mode 100644 static/vendors/nprogress/Readme.md create mode 100644 static/vendors/nprogress/bower.json create mode 100644 static/vendors/nprogress/component.json create mode 100644 static/vendors/nprogress/index.html create mode 100644 static/vendors/nprogress/nprogress.css create mode 100644 static/vendors/nprogress/nprogress.js create mode 100644 static/vendors/nprogress/support/extras.css create mode 100644 static/vendors/nprogress/support/style.css create mode 100644 static/vendors/parsleyjs/.bower.json create mode 100644 static/vendors/parsleyjs/CNAME create mode 100644 static/vendors/parsleyjs/LICENSE create mode 100644 static/vendors/parsleyjs/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/DOCS-LICENSE create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/LICENSE create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/LICENSE-MIT create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/css/bootstrap-theme.css create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/css/bootstrap-theme.min.css create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/css/bootstrap.css create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/css/bootstrap.min.css create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/js/bootstrap.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/dist/js/bootstrap.min.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/affix.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/alert.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/button.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/carousel.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/collapse.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/dropdown.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/modal.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/popover.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/scrollspy.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/tab.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/tooltip.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/js/transition.js create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/alerts.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/badges.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/bootstrap.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/breadcrumbs.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/button-groups.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/buttons.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/carousel.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/close.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/code.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/component-animations.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/dropdowns.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/forms.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/glyphicons.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/grid.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/input-groups.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/jumbotron.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/labels.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/list-group.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/media.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/mixins.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/modals.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/navbar.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/navs.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/normalize.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/pager.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/pagination.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/panels.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/popovers.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/print.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/progress-bars.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/responsive-utilities.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/scaffolding.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/tables.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/theme.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/thumbnails.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/tooltip.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/type.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/utilities.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/variables.less create mode 100644 static/vendors/parsleyjs/bower_components/bootstrap/less/wells.less create mode 100644 static/vendors/parsleyjs/bower_components/expect.js/Makefile create mode 100644 static/vendors/parsleyjs/bower_components/expect.js/index.js create mode 100644 static/vendors/parsleyjs/bower_components/expect.js/support/jquery.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/MIT-LICENSE.txt create mode 100644 static/vendors/parsleyjs/bower_components/jquery/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/jquery/dist/jquery.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/dist/jquery.min.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/dist/jquery.min.map create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/jsonp.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/load.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/parseJSON.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/parseXML.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/script.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/var/nonce.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/var/rquery.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/ajax/xhr.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes/attr.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes/classes.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes/prop.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes/support.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/attributes/val.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/callbacks.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core/access.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core/init.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core/parseHTML.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core/ready.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/core/var/rsingleTag.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/addGetHookIf.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/curCSS.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/defaultDisplay.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/support.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/swap.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/var/cssExpand.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/var/getStyles.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/var/isHidden.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/var/rmargin.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/css/var/rnumnonpx.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/data.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/data/Data.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/data/accepts.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/data/var/data_priv.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/data/var/data_user.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/deferred.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/deprecated.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/dimensions.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/effects.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/effects/Tween.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/effects/animatedSelector.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/event.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/event/ajax.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/event/alias.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/event/support.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/exports/amd.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/exports/global.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/intro.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/jquery.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/manipulation.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/manipulation/_evalUrl.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/manipulation/support.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/manipulation/var/rcheckableType.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/offset.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/outro.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/queue.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/queue/delay.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/selector-native.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/selector-sizzle.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/selector.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/serialize.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/sizzle/dist/sizzle.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/sizzle/dist/sizzle.min.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/sizzle/dist/sizzle.min.map create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/traversing.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/traversing/findFilter.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/traversing/var/rneedsContext.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/arr.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/class2type.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/concat.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/hasOwn.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/indexOf.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/pnum.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/push.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/rnotwhite.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/slice.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/strundefined.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/support.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/var/toString.js create mode 100644 static/vendors/parsleyjs/bower_components/jquery/src/wrap.js create mode 100644 static/vendors/parsleyjs/bower_components/mocha/LICENSE create mode 100644 static/vendors/parsleyjs/bower_components/mocha/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/mocha/media/logo.svg create mode 100644 static/vendors/parsleyjs/bower_components/mocha/mocha.css create mode 100644 static/vendors/parsleyjs/bower_components/mocha/mocha.js create mode 100755 static/vendors/parsleyjs/bower_components/mocha/scripts/ensure-compatible-npm.sh create mode 100644 static/vendors/parsleyjs/bower_components/sinonjs/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/sinonjs/sinon.js create mode 100644 static/vendors/parsleyjs/bower_components/uwidget/LICENSE create mode 100644 static/vendors/parsleyjs/bower_components/uwidget/bower.json create mode 100644 static/vendors/parsleyjs/bower_components/uwidget/uwidget.css create mode 100644 static/vendors/parsleyjs/bower_components/uwidget/uwidget.js create mode 100644 static/vendors/parsleyjs/bower_components/uwidget/uwidget.less create mode 100644 static/vendors/parsleyjs/dist/i18n/al.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ar.js create mode 100644 static/vendors/parsleyjs/dist/i18n/bg.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ca.js create mode 100644 static/vendors/parsleyjs/dist/i18n/cs.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/cs.js create mode 100644 static/vendors/parsleyjs/dist/i18n/da.js create mode 100644 static/vendors/parsleyjs/dist/i18n/de.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/de.js create mode 100644 static/vendors/parsleyjs/dist/i18n/el.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/el.js create mode 100644 static/vendors/parsleyjs/dist/i18n/en.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/en.js create mode 100644 static/vendors/parsleyjs/dist/i18n/es.js create mode 100644 static/vendors/parsleyjs/dist/i18n/fa.js create mode 100644 static/vendors/parsleyjs/dist/i18n/fi.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/fi.js create mode 100644 static/vendors/parsleyjs/dist/i18n/fr.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/fr.js create mode 100644 static/vendors/parsleyjs/dist/i18n/he.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/he.js create mode 100644 static/vendors/parsleyjs/dist/i18n/hr.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/hr.js create mode 100644 static/vendors/parsleyjs/dist/i18n/id.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/id.js create mode 100644 static/vendors/parsleyjs/dist/i18n/it.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/it.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ja.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ko.js create mode 100644 static/vendors/parsleyjs/dist/i18n/lt.js create mode 100644 static/vendors/parsleyjs/dist/i18n/lv.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/lv.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ms.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ms.js create mode 100644 static/vendors/parsleyjs/dist/i18n/nl.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/nl.js create mode 100644 static/vendors/parsleyjs/dist/i18n/no.js create mode 100644 static/vendors/parsleyjs/dist/i18n/pl.js create mode 100644 static/vendors/parsleyjs/dist/i18n/pt-br.js create mode 100644 static/vendors/parsleyjs/dist/i18n/pt-pt.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ro.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ro.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ru.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/ru.js create mode 100644 static/vendors/parsleyjs/dist/i18n/sq.js create mode 100644 static/vendors/parsleyjs/dist/i18n/sv.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/sv.js create mode 100644 static/vendors/parsleyjs/dist/i18n/th.js create mode 100644 static/vendors/parsleyjs/dist/i18n/tr.js create mode 100644 static/vendors/parsleyjs/dist/i18n/uk.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/uk.js create mode 100644 static/vendors/parsleyjs/dist/i18n/zh_cn.extra.js create mode 100644 static/vendors/parsleyjs/dist/i18n/zh_cn.js create mode 100644 static/vendors/parsleyjs/dist/i18n/zh_tw.js create mode 100644 static/vendors/parsleyjs/dist/parsley.js create mode 100644 static/vendors/parsleyjs/dist/parsley.js.map create mode 100644 static/vendors/parsleyjs/dist/parsley.min.js create mode 100644 static/vendors/parsleyjs/dist/parsley.min.js.map create mode 100644 static/vendors/parsleyjs/gulpfile.babel.js create mode 100644 static/vendors/parsleyjs/src/extra/plugin/bind.js create mode 100644 static/vendors/parsleyjs/src/extra/validator/comparison.js create mode 100644 static/vendors/parsleyjs/src/extra/validator/dateiso.js create mode 100644 static/vendors/parsleyjs/src/extra/validator/luhn.js create mode 100644 static/vendors/parsleyjs/src/extra/validator/notequalto.js create mode 100644 static/vendors/parsleyjs/src/extra/validator/words.js create mode 100644 static/vendors/parsleyjs/src/header.js create mode 100644 static/vendors/parsleyjs/src/i18n/al.js create mode 100644 static/vendors/parsleyjs/src/i18n/ar.js create mode 100644 static/vendors/parsleyjs/src/i18n/bg.js create mode 100644 static/vendors/parsleyjs/src/i18n/ca.js create mode 100644 static/vendors/parsleyjs/src/i18n/cs.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/cs.js create mode 100644 static/vendors/parsleyjs/src/i18n/da.js create mode 100644 static/vendors/parsleyjs/src/i18n/de.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/de.js create mode 100644 static/vendors/parsleyjs/src/i18n/el.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/el.js create mode 100644 static/vendors/parsleyjs/src/i18n/en.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/en.js create mode 100644 static/vendors/parsleyjs/src/i18n/es.js create mode 100644 static/vendors/parsleyjs/src/i18n/fa.js create mode 100644 static/vendors/parsleyjs/src/i18n/fi.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/fi.js create mode 100644 static/vendors/parsleyjs/src/i18n/fr.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/fr.js create mode 100644 static/vendors/parsleyjs/src/i18n/he.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/he.js create mode 100644 static/vendors/parsleyjs/src/i18n/hr.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/hr.js create mode 100644 static/vendors/parsleyjs/src/i18n/id.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/id.js create mode 100644 static/vendors/parsleyjs/src/i18n/it.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/it.js create mode 100644 static/vendors/parsleyjs/src/i18n/ja.js create mode 100644 static/vendors/parsleyjs/src/i18n/ko.js create mode 100644 static/vendors/parsleyjs/src/i18n/lt.js create mode 100644 static/vendors/parsleyjs/src/i18n/lv.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/lv.js create mode 100644 static/vendors/parsleyjs/src/i18n/ms.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/ms.js create mode 100644 static/vendors/parsleyjs/src/i18n/nl.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/nl.js create mode 100644 static/vendors/parsleyjs/src/i18n/no.js create mode 100644 static/vendors/parsleyjs/src/i18n/pl.js create mode 100644 static/vendors/parsleyjs/src/i18n/pt-br.js create mode 100644 static/vendors/parsleyjs/src/i18n/pt-pt.js create mode 100644 static/vendors/parsleyjs/src/i18n/ro.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/ro.js create mode 100644 static/vendors/parsleyjs/src/i18n/ru.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/ru.js create mode 100644 static/vendors/parsleyjs/src/i18n/sq.js create mode 100644 static/vendors/parsleyjs/src/i18n/sv.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/sv.js create mode 100644 static/vendors/parsleyjs/src/i18n/th.js create mode 100644 static/vendors/parsleyjs/src/i18n/tr.js create mode 100644 static/vendors/parsleyjs/src/i18n/uk.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/uk.js create mode 100644 static/vendors/parsleyjs/src/i18n/zh_cn.extra.js create mode 100644 static/vendors/parsleyjs/src/i18n/zh_cn.js create mode 100644 static/vendors/parsleyjs/src/i18n/zh_tw.js create mode 100644 static/vendors/parsleyjs/src/parsley.css create mode 100644 static/vendors/parsleyjs/src/parsley.js create mode 100644 static/vendors/parsleyjs/src/parsley/abstract.js create mode 100644 static/vendors/parsleyjs/src/parsley/defaults.js create mode 100644 static/vendors/parsleyjs/src/parsley/factory.js create mode 100644 static/vendors/parsleyjs/src/parsley/factory/constraint.js create mode 100644 static/vendors/parsleyjs/src/parsley/field.js create mode 100644 static/vendors/parsleyjs/src/parsley/form.js create mode 100644 static/vendors/parsleyjs/src/parsley/main.js create mode 100644 static/vendors/parsleyjs/src/parsley/multiple.js create mode 100644 static/vendors/parsleyjs/src/parsley/pubsub.js create mode 100644 static/vendors/parsleyjs/src/parsley/remote.js create mode 100644 static/vendors/parsleyjs/src/parsley/ui.js create mode 100644 static/vendors/parsleyjs/src/parsley/utils.js create mode 100644 static/vendors/parsleyjs/src/parsley/validator.js create mode 100644 static/vendors/parsleyjs/src/parsley/validator_registry.js create mode 100644 static/vendors/parsleyjs/src/vendor/inputevent.js create mode 100644 static/vendors/pdfmake/.bower.json create mode 100644 static/vendors/pdfmake/LICENSE create mode 100644 static/vendors/pdfmake/bower.json create mode 100644 static/vendors/pdfmake/build/pdfmake.js create mode 100644 static/vendors/pdfmake/build/pdfmake.min.js create mode 100644 static/vendors/pdfmake/build/pdfmake.min.js.map create mode 100644 static/vendors/pdfmake/build/vfs_fonts.js create mode 100644 static/vendors/pnotify/.bower.json create mode 100644 static/vendors/pnotify/.gitignore create mode 100644 static/vendors/pnotify/COPYING create mode 100644 static/vendors/pnotify/README.md create mode 100644 static/vendors/pnotify/bower.json create mode 100644 static/vendors/pnotify/dist/pnotify.animate.js create mode 100644 static/vendors/pnotify/dist/pnotify.brighttheme.css create mode 100644 static/vendors/pnotify/dist/pnotify.buttons.css create mode 100644 static/vendors/pnotify/dist/pnotify.buttons.js create mode 100644 static/vendors/pnotify/dist/pnotify.callbacks.js create mode 100644 static/vendors/pnotify/dist/pnotify.confirm.js create mode 100644 static/vendors/pnotify/dist/pnotify.css create mode 100644 static/vendors/pnotify/dist/pnotify.desktop.js create mode 100644 static/vendors/pnotify/dist/pnotify.history.css create mode 100644 static/vendors/pnotify/dist/pnotify.history.js create mode 100644 static/vendors/pnotify/dist/pnotify.js create mode 100644 static/vendors/pnotify/dist/pnotify.material.css create mode 100644 static/vendors/pnotify/dist/pnotify.mobile.css create mode 100644 static/vendors/pnotify/dist/pnotify.mobile.js create mode 100644 static/vendors/pnotify/dist/pnotify.nonblock.css create mode 100644 static/vendors/pnotify/dist/pnotify.nonblock.js create mode 100644 static/vendors/pnotify/dist/pnotify.reference.js create mode 100644 static/vendors/pnotify/dist/pnotify.tooltip.js create mode 100644 static/vendors/pnotify/libtests/browserify/index.js create mode 100644 static/vendors/raphael/.bower.json create mode 100644 static/vendors/raphael/bower.json create mode 100644 static/vendors/raphael/dev/banner.txt create mode 100644 static/vendors/raphael/dev/raphael.amd.js create mode 100644 static/vendors/raphael/dev/raphael.core.js create mode 100644 static/vendors/raphael/dev/raphael.svg.js create mode 100644 static/vendors/raphael/dev/raphael.vml.js create mode 100644 static/vendors/raphael/dev/test/svg/dom.js create mode 100644 static/vendors/raphael/dev/test/vml/dom.js create mode 100644 static/vendors/raphael/license.txt create mode 100644 static/vendors/raphael/raphael.js create mode 100644 static/vendors/raphael/raphael.min.js create mode 100644 static/vendors/raphael/raphael.no-deps.js create mode 100644 static/vendors/raphael/raphael.no-deps.min.js create mode 100644 static/vendors/raphael/webpack.config.js create mode 100644 static/vendors/requirejs/.bower.json create mode 100644 static/vendors/requirejs/README.md create mode 100644 static/vendors/requirejs/bower.json create mode 100644 static/vendors/requirejs/require.js create mode 100644 static/vendors/select2/.bower.json create mode 100644 static/vendors/select2/.editorconfig create mode 100644 static/vendors/select2/.gitignore create mode 100644 static/vendors/select2/.jshintignore create mode 100644 static/vendors/select2/.jshintrc create mode 100644 static/vendors/select2/.travis.yml create mode 100644 static/vendors/select2/CONTRIBUTING.md create mode 100644 static/vendors/select2/Gruntfile.js create mode 100644 static/vendors/select2/ISSUE_TEMPLATE.md create mode 100644 static/vendors/select2/LICENSE.md create mode 100644 static/vendors/select2/PULL_REQUEST_TEMPLATE.md create mode 100644 static/vendors/select2/README.md create mode 100644 static/vendors/select2/bower.json create mode 100644 static/vendors/select2/component.json create mode 100644 static/vendors/select2/composer.json create mode 100644 static/vendors/select2/dist/css/select2.css create mode 100644 static/vendors/select2/dist/css/select2.min.css create mode 100644 static/vendors/select2/dist/js/i18n/ar.js create mode 100644 static/vendors/select2/dist/js/i18n/az.js create mode 100644 static/vendors/select2/dist/js/i18n/bg.js create mode 100644 static/vendors/select2/dist/js/i18n/ca.js create mode 100644 static/vendors/select2/dist/js/i18n/cs.js create mode 100644 static/vendors/select2/dist/js/i18n/da.js create mode 100644 static/vendors/select2/dist/js/i18n/de.js create mode 100644 static/vendors/select2/dist/js/i18n/el.js create mode 100644 static/vendors/select2/dist/js/i18n/en.js create mode 100644 static/vendors/select2/dist/js/i18n/es.js create mode 100644 static/vendors/select2/dist/js/i18n/et.js create mode 100644 static/vendors/select2/dist/js/i18n/eu.js create mode 100644 static/vendors/select2/dist/js/i18n/fa.js create mode 100644 static/vendors/select2/dist/js/i18n/fi.js create mode 100644 static/vendors/select2/dist/js/i18n/fr.js create mode 100644 static/vendors/select2/dist/js/i18n/gl.js create mode 100644 static/vendors/select2/dist/js/i18n/he.js create mode 100644 static/vendors/select2/dist/js/i18n/hi.js create mode 100644 static/vendors/select2/dist/js/i18n/hr.js create mode 100644 static/vendors/select2/dist/js/i18n/hu.js create mode 100644 static/vendors/select2/dist/js/i18n/id.js create mode 100644 static/vendors/select2/dist/js/i18n/is.js create mode 100644 static/vendors/select2/dist/js/i18n/it.js create mode 100644 static/vendors/select2/dist/js/i18n/ja.js create mode 100644 static/vendors/select2/dist/js/i18n/km.js create mode 100644 static/vendors/select2/dist/js/i18n/ko.js create mode 100644 static/vendors/select2/dist/js/i18n/lt.js create mode 100644 static/vendors/select2/dist/js/i18n/lv.js create mode 100644 static/vendors/select2/dist/js/i18n/mk.js create mode 100644 static/vendors/select2/dist/js/i18n/ms.js create mode 100644 static/vendors/select2/dist/js/i18n/nb.js create mode 100644 static/vendors/select2/dist/js/i18n/nl.js create mode 100644 static/vendors/select2/dist/js/i18n/pl.js create mode 100644 static/vendors/select2/dist/js/i18n/pt-BR.js create mode 100644 static/vendors/select2/dist/js/i18n/pt.js create mode 100644 static/vendors/select2/dist/js/i18n/ro.js create mode 100644 static/vendors/select2/dist/js/i18n/ru.js create mode 100644 static/vendors/select2/dist/js/i18n/sk.js create mode 100644 static/vendors/select2/dist/js/i18n/sr-Cyrl.js create mode 100644 static/vendors/select2/dist/js/i18n/sr.js create mode 100644 static/vendors/select2/dist/js/i18n/sv.js create mode 100644 static/vendors/select2/dist/js/i18n/th.js create mode 100644 static/vendors/select2/dist/js/i18n/tr.js create mode 100644 static/vendors/select2/dist/js/i18n/uk.js create mode 100644 static/vendors/select2/dist/js/i18n/vi.js create mode 100644 static/vendors/select2/dist/js/i18n/zh-CN.js create mode 100644 static/vendors/select2/dist/js/i18n/zh-TW.js create mode 100644 static/vendors/select2/dist/js/select2.full.js create mode 100644 static/vendors/select2/dist/js/select2.full.min.js create mode 100644 static/vendors/select2/dist/js/select2.js create mode 100644 static/vendors/select2/dist/js/select2.min.js create mode 100644 static/vendors/select2/docs/.gitignore create mode 100644 static/vendors/select2/docs/README.md create mode 100644 static/vendors/select2/docs/_includes/examples/basics.html create mode 100644 static/vendors/select2/docs/_includes/examples/data.html create mode 100644 static/vendors/select2/docs/_includes/examples/disabled-mode.html create mode 100644 static/vendors/select2/docs/_includes/examples/disabled-results.html create mode 100644 static/vendors/select2/docs/_includes/examples/hide-search.html create mode 100644 static/vendors/select2/docs/_includes/examples/localization-rtl-diacritics.html create mode 100644 static/vendors/select2/docs/_includes/examples/matcher.html create mode 100644 static/vendors/select2/docs/_includes/examples/multiple-max.html create mode 100644 static/vendors/select2/docs/_includes/examples/placeholders.html create mode 100644 static/vendors/select2/docs/_includes/examples/programmatic-control.html create mode 100644 static/vendors/select2/docs/_includes/examples/tags.html create mode 100644 static/vendors/select2/docs/_includes/examples/themes-templating-responsive-design.html create mode 100644 static/vendors/select2/docs/_includes/examples/tokenizer.html create mode 100644 static/vendors/select2/docs/_includes/footer.html create mode 100644 static/vendors/select2/docs/_includes/ga.html create mode 100644 static/vendors/select2/docs/_includes/head.html create mode 100644 static/vendors/select2/docs/_includes/js-source-states.html create mode 100644 static/vendors/select2/docs/_includes/nav/announcements-4.0.html create mode 100644 static/vendors/select2/docs/_includes/nav/examples.html create mode 100644 static/vendors/select2/docs/_includes/nav/options-old.html create mode 100644 static/vendors/select2/docs/_includes/nav/options.html create mode 100644 static/vendors/select2/docs/_includes/navigation.html create mode 100644 static/vendors/select2/docs/_includes/notice-previous.html create mode 100644 static/vendors/select2/docs/_includes/options-old/adapters.html create mode 100644 static/vendors/select2/docs/_includes/options-old/backwards-compatibility.html create mode 100644 static/vendors/select2/docs/_includes/options-old/core-options.html create mode 100644 static/vendors/select2/docs/_includes/options-old/dropdown.html create mode 100644 static/vendors/select2/docs/_includes/options-old/events.html create mode 100644 static/vendors/select2/docs/_includes/options-old/setting-default-options.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility/initial-selection.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility/introduction.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility/matcher.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility/query-function.html create mode 100644 static/vendors/select2/docs/_includes/options/compatibility/text-input.html create mode 100644 static/vendors/select2/docs/_includes/options/core.html create mode 100644 static/vendors/select2/docs/_includes/options/core/amd-support.html create mode 100644 static/vendors/select2/docs/_includes/options/core/data-attributes.html create mode 100644 static/vendors/select2/docs/_includes/options/core/options.html create mode 100644 static/vendors/select2/docs/_includes/options/data.html create mode 100644 static/vendors/select2/docs/_includes/options/data/ajax.html create mode 100644 static/vendors/select2/docs/_includes/options/data/array.html create mode 100644 static/vendors/select2/docs/_includes/options/data/select.html create mode 100644 static/vendors/select2/docs/_includes/options/dropdown.html create mode 100644 static/vendors/select2/docs/_includes/options/dropdown/filtering.html create mode 100644 static/vendors/select2/docs/_includes/options/dropdown/placement.html create mode 100644 static/vendors/select2/docs/_includes/options/dropdown/selections.html create mode 100644 static/vendors/select2/docs/_includes/options/dropdown/tagging.html create mode 100644 static/vendors/select2/docs/_includes/options/events.html create mode 100644 static/vendors/select2/docs/_includes/options/events/internal.html create mode 100644 static/vendors/select2/docs/_includes/options/events/jquery.html create mode 100644 static/vendors/select2/docs/_includes/options/introduction.html create mode 100644 static/vendors/select2/docs/_includes/options/not-written.html create mode 100644 static/vendors/select2/docs/_includes/options/selections.html create mode 100644 static/vendors/select2/docs/_includes/options/selections/clearing-selections.html create mode 100644 static/vendors/select2/docs/_includes/options/selections/multiple.html create mode 100644 static/vendors/select2/docs/_includes/options/selections/placeholder.html create mode 100644 static/vendors/select2/docs/_includes/options/selections/templating.html create mode 100644 static/vendors/select2/docs/_includes/social-buttons.html create mode 100644 static/vendors/select2/docs/_layouts/default.html create mode 100644 static/vendors/select2/docs/_layouts/home.html create mode 100644 static/vendors/select2/docs/_sass/_alert.scss create mode 100644 static/vendors/select2/docs/_sass/_anchorjs.scss create mode 100644 static/vendors/select2/docs/_sass/_buttons.scss create mode 100644 static/vendors/select2/docs/_sass/_code.scss create mode 100644 static/vendors/select2/docs/_sass/_dl-panels.scss create mode 100644 static/vendors/select2/docs/_sass/_examples.scss create mode 100644 static/vendors/select2/docs/_sass/_featurette.scss create mode 100644 static/vendors/select2/docs/_sass/_footer.scss create mode 100644 static/vendors/select2/docs/_sass/_hamburger.scss create mode 100644 static/vendors/select2/docs/_sass/_home.scss create mode 100644 static/vendors/select2/docs/_sass/_jumbotron.scss create mode 100644 static/vendors/select2/docs/_sass/_layout.scss create mode 100644 static/vendors/select2/docs/_sass/_nav.scss create mode 100644 static/vendors/select2/docs/_sass/_prettify.scss create mode 100644 static/vendors/select2/docs/_sass/_result-repository.scss create mode 100644 static/vendors/select2/docs/_sass/_sidenav.scss create mode 100644 static/vendors/select2/docs/_sass/_social.scss create mode 100644 static/vendors/select2/docs/_sass/_syntax-highlighting.scss create mode 100644 static/vendors/select2/docs/_sass/_typography.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_alerts.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_badges.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_breadcrumbs.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_button-groups.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_buttons.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_carousel.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_close.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_code.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_component-animations.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_dropdowns.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_forms.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_glyphicons.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_grid.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_input-groups.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_jumbotron.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_labels.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_list-group.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_media.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_mixins.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_modals.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_navbar.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_navs.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_normalize.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_pager.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_pagination.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_panels.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_popovers.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_print.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_progress-bars.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_responsive-embed.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_responsive-utilities.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_scaffolding.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_tables.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_theme.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_thumbnails.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_tooltip.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_type.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_utilities.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_variables.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/_wells.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_alerts.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_background-variant.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_border-radius.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_buttons.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_center-block.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_clearfix.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_forms.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_gradients.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_grid-framework.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_grid.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_hide-text.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_image.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_labels.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_list-group.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_nav-divider.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_nav-vertical-align.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_opacity.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_pagination.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_panels.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_progress-bar.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_reset-filter.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_reset-text.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_resize.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_responsive-visibility.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_size.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_tab-focus.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_table-row.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_text-emphasis.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_text-overflow.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/bootstrap/mixins/_vendor-prefixes.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_animated.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_bordered-pulled.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_core.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_fixed-width.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_icons.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_larger.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_list.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_mixins.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_path.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_rotated-flipped.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_stacked.scss create mode 100644 static/vendors/select2/docs/_sass/vendor/font-awesome/_variables.scss create mode 100644 static/vendors/select2/docs/announcements-4.0.html create mode 100644 static/vendors/select2/docs/browserconfig.xml create mode 100644 static/vendors/select2/docs/community.html create mode 100644 static/vendors/select2/docs/css/bootstrap.scss create mode 100644 static/vendors/select2/docs/css/font-awesome.scss create mode 100644 static/vendors/select2/docs/css/s2-docs.scss create mode 100644 static/vendors/select2/docs/examples.html create mode 100644 static/vendors/select2/docs/images/android-chrome-36x36.png create mode 100644 static/vendors/select2/docs/images/android-chrome-48x48.png create mode 100644 static/vendors/select2/docs/images/android-chrome-72x72.png create mode 100644 static/vendors/select2/docs/images/apple-touch-icon-57x57.png create mode 100644 static/vendors/select2/docs/images/apple-touch-icon-60x60.png create mode 100644 static/vendors/select2/docs/images/apple-touch-icon-72x72.png create mode 100644 static/vendors/select2/docs/images/apple-touch-icon-precomposed.png create mode 100644 static/vendors/select2/docs/images/apple-touch-icon.png create mode 100644 static/vendors/select2/docs/images/favicon-16x16.png create mode 100644 static/vendors/select2/docs/images/favicon-32x32.png create mode 100644 static/vendors/select2/docs/images/favicon.ico create mode 100644 static/vendors/select2/docs/images/logo.png create mode 100644 static/vendors/select2/docs/images/manifest.json create mode 100644 static/vendors/select2/docs/images/mstile-150x150.png create mode 100644 static/vendors/select2/docs/images/mstile-310x150.png create mode 100644 static/vendors/select2/docs/images/mstile-70x70.png create mode 100644 static/vendors/select2/docs/images/safari-pinned-tab.svg create mode 100644 static/vendors/select2/docs/index.html create mode 100644 static/vendors/select2/docs/options-old.html create mode 100644 static/vendors/select2/docs/options.html create mode 100644 static/vendors/select2/docs/vendor/fonts/FontAwesome.otf create mode 100644 static/vendors/select2/docs/vendor/fonts/fontawesome-webfont.eot create mode 100644 static/vendors/select2/docs/vendor/fonts/fontawesome-webfont.svg create mode 100644 static/vendors/select2/docs/vendor/fonts/fontawesome-webfont.ttf create mode 100644 static/vendors/select2/docs/vendor/fonts/fontawesome-webfont.woff create mode 100644 static/vendors/select2/docs/vendor/fonts/fontawesome-webfont.woff2 create mode 100755 static/vendors/select2/docs/vendor/images/flags/ak.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/al.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ar.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/az.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ca.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/co.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ct.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/de.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/fl.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ga.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/hi.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ia.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/id.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/il.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/in.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ks.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ky.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/la.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ma.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/md.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/me.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/mi.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/mn.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/mo.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ms.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/mt.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nc.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nd.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ne.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nh.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nj.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nm.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/nv.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ny.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/oh.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ok.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/or.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/pa.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ri.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/sc.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/sd.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/tn.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/tx.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/ut.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/va.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/vt.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/wa.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/wi.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/wv.png create mode 100755 static/vendors/select2/docs/vendor/images/flags/wy.png create mode 100755 static/vendors/select2/docs/vendor/js/anchor.min.js create mode 100644 static/vendors/select2/docs/vendor/js/bootstrap.min.js create mode 100644 static/vendors/select2/docs/vendor/js/jquery.min.js create mode 100644 static/vendors/select2/docs/vendor/js/placeholders.jquery.min.js create mode 100644 static/vendors/select2/docs/vendor/js/prettify.min.js create mode 100644 static/vendors/select2/package.json create mode 100644 static/vendors/select2/select2.jquery.json create mode 100644 static/vendors/select2/src/js/banner.end.js create mode 100644 static/vendors/select2/src/js/banner.start.js create mode 100644 static/vendors/select2/src/js/jquery.mousewheel.shim.js create mode 100644 static/vendors/select2/src/js/jquery.select2.js create mode 100644 static/vendors/select2/src/js/jquery.shim.js create mode 100644 static/vendors/select2/src/js/select2/compat/containerCss.js create mode 100644 static/vendors/select2/src/js/select2/compat/dropdownCss.js create mode 100644 static/vendors/select2/src/js/select2/compat/initSelection.js create mode 100644 static/vendors/select2/src/js/select2/compat/inputData.js create mode 100644 static/vendors/select2/src/js/select2/compat/matcher.js create mode 100644 static/vendors/select2/src/js/select2/compat/query.js create mode 100644 static/vendors/select2/src/js/select2/compat/utils.js create mode 100644 static/vendors/select2/src/js/select2/core.js create mode 100644 static/vendors/select2/src/js/select2/data/ajax.js create mode 100644 static/vendors/select2/src/js/select2/data/array.js create mode 100644 static/vendors/select2/src/js/select2/data/base.js create mode 100644 static/vendors/select2/src/js/select2/data/maximumInputLength.js create mode 100644 static/vendors/select2/src/js/select2/data/maximumSelectionLength.js create mode 100644 static/vendors/select2/src/js/select2/data/minimumInputLength.js create mode 100644 static/vendors/select2/src/js/select2/data/select.js create mode 100644 static/vendors/select2/src/js/select2/data/tags.js create mode 100644 static/vendors/select2/src/js/select2/data/tokenizer.js create mode 100644 static/vendors/select2/src/js/select2/defaults.js create mode 100644 static/vendors/select2/src/js/select2/diacritics.js create mode 100644 static/vendors/select2/src/js/select2/dropdown.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/attachBody.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/attachContainer.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/closeOnSelect.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/hidePlaceholder.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/infiniteScroll.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/minimumResultsForSearch.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/search.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/selectOnClose.js create mode 100644 static/vendors/select2/src/js/select2/dropdown/stopPropagation.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ar.js create mode 100644 static/vendors/select2/src/js/select2/i18n/az.js create mode 100644 static/vendors/select2/src/js/select2/i18n/bg.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ca.js create mode 100644 static/vendors/select2/src/js/select2/i18n/cs.js create mode 100644 static/vendors/select2/src/js/select2/i18n/da.js create mode 100644 static/vendors/select2/src/js/select2/i18n/de.js create mode 100644 static/vendors/select2/src/js/select2/i18n/el.js create mode 100644 static/vendors/select2/src/js/select2/i18n/en.js create mode 100644 static/vendors/select2/src/js/select2/i18n/es.js create mode 100644 static/vendors/select2/src/js/select2/i18n/et.js create mode 100644 static/vendors/select2/src/js/select2/i18n/eu.js create mode 100644 static/vendors/select2/src/js/select2/i18n/fa.js create mode 100644 static/vendors/select2/src/js/select2/i18n/fi.js create mode 100644 static/vendors/select2/src/js/select2/i18n/fr.js create mode 100644 static/vendors/select2/src/js/select2/i18n/gl.js create mode 100644 static/vendors/select2/src/js/select2/i18n/he.js create mode 100644 static/vendors/select2/src/js/select2/i18n/hi.js create mode 100644 static/vendors/select2/src/js/select2/i18n/hr.js create mode 100644 static/vendors/select2/src/js/select2/i18n/hu.js create mode 100644 static/vendors/select2/src/js/select2/i18n/id.js create mode 100644 static/vendors/select2/src/js/select2/i18n/is.js create mode 100644 static/vendors/select2/src/js/select2/i18n/it.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ja.js create mode 100644 static/vendors/select2/src/js/select2/i18n/km.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ko.js create mode 100644 static/vendors/select2/src/js/select2/i18n/lt.js create mode 100644 static/vendors/select2/src/js/select2/i18n/lv.js create mode 100644 static/vendors/select2/src/js/select2/i18n/mk.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ms.js create mode 100644 static/vendors/select2/src/js/select2/i18n/nb.js create mode 100644 static/vendors/select2/src/js/select2/i18n/nl.js create mode 100644 static/vendors/select2/src/js/select2/i18n/pl.js create mode 100644 static/vendors/select2/src/js/select2/i18n/pt-BR.js create mode 100644 static/vendors/select2/src/js/select2/i18n/pt.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ro.js create mode 100644 static/vendors/select2/src/js/select2/i18n/ru.js create mode 100644 static/vendors/select2/src/js/select2/i18n/sk.js create mode 100644 static/vendors/select2/src/js/select2/i18n/sr-Cyrl.js create mode 100644 static/vendors/select2/src/js/select2/i18n/sr.js create mode 100644 static/vendors/select2/src/js/select2/i18n/sv.js create mode 100644 static/vendors/select2/src/js/select2/i18n/th.js create mode 100644 static/vendors/select2/src/js/select2/i18n/tr.js create mode 100644 static/vendors/select2/src/js/select2/i18n/uk.js create mode 100644 static/vendors/select2/src/js/select2/i18n/vi.js create mode 100644 static/vendors/select2/src/js/select2/i18n/zh-CN.js create mode 100644 static/vendors/select2/src/js/select2/i18n/zh-TW.js create mode 100644 static/vendors/select2/src/js/select2/keys.js create mode 100644 static/vendors/select2/src/js/select2/options.js create mode 100644 static/vendors/select2/src/js/select2/results.js create mode 100644 static/vendors/select2/src/js/select2/selection/allowClear.js create mode 100644 static/vendors/select2/src/js/select2/selection/base.js create mode 100644 static/vendors/select2/src/js/select2/selection/clickMask.js create mode 100644 static/vendors/select2/src/js/select2/selection/eventRelay.js create mode 100644 static/vendors/select2/src/js/select2/selection/multiple.js create mode 100644 static/vendors/select2/src/js/select2/selection/placeholder.js create mode 100644 static/vendors/select2/src/js/select2/selection/search.js create mode 100644 static/vendors/select2/src/js/select2/selection/single.js create mode 100644 static/vendors/select2/src/js/select2/selection/stopPropagation.js create mode 100644 static/vendors/select2/src/js/select2/translation.js create mode 100644 static/vendors/select2/src/js/select2/utils.js create mode 100644 static/vendors/select2/src/js/wrapper.end.js create mode 100644 static/vendors/select2/src/js/wrapper.start.js create mode 100644 static/vendors/select2/src/scss/_dropdown.scss create mode 100644 static/vendors/select2/src/scss/_multiple.scss create mode 100644 static/vendors/select2/src/scss/_single.scss create mode 100644 static/vendors/select2/src/scss/core.scss create mode 100644 static/vendors/select2/src/scss/mixins/_gradients.scss create mode 100644 static/vendors/select2/src/scss/theme/classic/_defaults.scss create mode 100644 static/vendors/select2/src/scss/theme/classic/_multiple.scss create mode 100644 static/vendors/select2/src/scss/theme/classic/_single.scss create mode 100644 static/vendors/select2/src/scss/theme/classic/layout.scss create mode 100644 static/vendors/select2/src/scss/theme/default/_multiple.scss create mode 100644 static/vendors/select2/src/scss/theme/default/_single.scss create mode 100644 static/vendors/select2/src/scss/theme/default/layout.scss create mode 100644 static/vendors/select2/tests/a11y/search-tests.js create mode 100644 static/vendors/select2/tests/a11y/selection-tests.js create mode 100644 static/vendors/select2/tests/data/array-tests.js create mode 100644 static/vendors/select2/tests/data/base-tests.js create mode 100644 static/vendors/select2/tests/data/inputData-tests.js create mode 100644 static/vendors/select2/tests/data/maximumInputLength-tests.js create mode 100644 static/vendors/select2/tests/data/maximumSelectionLength-tests.js create mode 100644 static/vendors/select2/tests/data/minimumInputLength-tests.js create mode 100644 static/vendors/select2/tests/data/select-tests.js create mode 100644 static/vendors/select2/tests/data/tags-tests.js create mode 100644 static/vendors/select2/tests/data/tokenizer-tests.js create mode 100644 static/vendors/select2/tests/dropdown/dropdownCss-tests.js create mode 100644 static/vendors/select2/tests/dropdown/positioning-tests.js create mode 100644 static/vendors/select2/tests/dropdown/selectOnClose-tests.js create mode 100644 static/vendors/select2/tests/dropdown/stopPropagation-tests.js create mode 100644 static/vendors/select2/tests/helpers.js create mode 100644 static/vendors/select2/tests/integration.html create mode 100644 static/vendors/select2/tests/integration/dom-changes.js create mode 100644 static/vendors/select2/tests/integration/jquery-calls.js create mode 100644 static/vendors/select2/tests/integration/select2-methods.js create mode 100644 static/vendors/select2/tests/options/ajax-tests.js create mode 100644 static/vendors/select2/tests/options/data-tests.js create mode 100644 static/vendors/select2/tests/options/deprecated-tests.js create mode 100644 static/vendors/select2/tests/options/translation-tests.js create mode 100644 static/vendors/select2/tests/options/width-tests.js create mode 100644 static/vendors/select2/tests/results/focusing-tests.js create mode 100644 static/vendors/select2/tests/selection/allowClear-tests.js create mode 100644 static/vendors/select2/tests/selection/containerCss-tests.js create mode 100644 static/vendors/select2/tests/selection/multiple-tests.js create mode 100644 static/vendors/select2/tests/selection/placeholder-tests.js create mode 100644 static/vendors/select2/tests/selection/search-tests.js create mode 100644 static/vendors/select2/tests/selection/single-tests.js create mode 100644 static/vendors/select2/tests/selection/stopPropagation-tests.js create mode 100644 static/vendors/select2/tests/unit.html create mode 100644 static/vendors/select2/tests/utils/decorator-tests.js create mode 100644 static/vendors/select2/tests/utils/escapeMarkup-tests.js create mode 100644 static/vendors/select2/tests/vendor/jquery-1.7.2.js create mode 100644 static/vendors/select2/tests/vendor/qunit-1.23.1.css create mode 100644 static/vendors/select2/tests/vendor/qunit-1.23.1.js create mode 100644 static/vendors/select2/vendor/jquery-2.1.0.js create mode 100644 static/vendors/skycons/.bower.json create mode 100644 static/vendors/skycons/.gitignore create mode 100644 static/vendors/skycons/README.md create mode 100644 static/vendors/skycons/index.html create mode 100644 static/vendors/skycons/skycons.js create mode 100644 static/vendors/starrr/.bower.json create mode 100644 static/vendors/starrr/Gruntfile.coffee create mode 100644 static/vendors/starrr/README.md create mode 100644 static/vendors/starrr/bower.json create mode 100644 static/vendors/starrr/dist/starrr.css create mode 100644 static/vendors/starrr/dist/starrr.js create mode 100644 static/vendors/starrr/index.html create mode 100644 static/vendors/starrr/package.json create mode 100644 static/vendors/starrr/src/starrr.coffee create mode 100644 static/vendors/starrr/src/starrr.scss create mode 100644 static/vendors/switchery/.bower.json create mode 100644 static/vendors/switchery/CHANGELOG.md create mode 100644 static/vendors/switchery/bower.json create mode 100644 static/vendors/switchery/dist/switchery.css create mode 100644 static/vendors/switchery/dist/switchery.js create mode 100644 static/vendors/switchery/dist/switchery.min.css create mode 100644 static/vendors/switchery/dist/switchery.min.js create mode 100644 static/vendors/switchery/meteor/export.js create mode 100644 static/vendors/switchery/meteor/tests.js create mode 100644 static/vendors/switchery/package.js create mode 100644 static/vendors/switchery/package.json create mode 100644 static/vendors/switchery/switchery.css create mode 100644 static/vendors/switchery/switchery.js create mode 100644 static/vendors/transitionize/.bower.json create mode 100644 static/vendors/transitionize/bower.json create mode 100644 static/vendors/transitionize/dist/transitionize.js create mode 100644 static/vendors/transitionize/dist/transitionize.min.js create mode 100644 static/vendors/transitionize/examples/browserify.js create mode 100644 static/vendors/transitionize/examples/example.html create mode 100644 static/vendors/transitionize/package.json create mode 100644 static/vendors/transitionize/transitionize.js create mode 100644 static/vendors/validator/.bower.json create mode 100644 static/vendors/validator/.gitattributes create mode 100644 static/vendors/validator/.gitignore create mode 100644 static/vendors/validator/README.md create mode 100644 static/vendors/validator/fv.css create mode 100644 static/vendors/validator/index.html create mode 100644 static/vendors/validator/multifield.js create mode 100644 static/vendors/validator/package.json create mode 100644 static/vendors/validator/validator.js diff --git a/static/.DS_Store b/static/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6396604580e1ec1b01f7ae21194518deee3eb01a GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z3~dZp0Z1N%F(jFwA|RR(Y(`#6adJ*letr&AhA;)v z%gT_*kiwA5kja3epPiwMA(bJIA%!8Ip@^ZFWTOdNKB{6g1V%$(Gz3ONU^E0qU0EvOL zf@qLd5Dn7GzzAZ2%>Zj9#k5)cj6&cFz^8N>%`XJ7=|%)r11(ayjK z(ayjK?V&J2v@ .select2-results__options { + max-height: 200px; + overflow-y: auto; +} + +.select2-container--admin-autocomplete .select2-results__option[role=group] { + padding: 0; +} + +.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { + color: #999; +} + +.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { + background-color: #ddd; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option { + padding-left: 1em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; +} + +.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { + background-color: #79aec8; + color: white; +} + +.select2-container--admin-autocomplete .select2-results__group { + cursor: default; + display: block; + padding: 6px; +} diff --git a/static/admin/css/base.css b/static/admin/css/base.css new file mode 100644 index 00000000..fd011a3f --- /dev/null +++ b/static/admin/css/base.css @@ -0,0 +1,987 @@ +/* + DJANGO Admin styles +*/ + +@import url(fonts.css); + +body { + margin: 0; + padding: 0; + font-size: 14px; + font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; + color: #333; + background: #fff; +} + +/* LINKS */ + +a:link, a:visited { + color: #447e9b; + text-decoration: none; +} + +a:focus, a:hover { + color: #036; +} + +a:focus { + text-decoration: underline; +} + +a img { + border: none; +} + +a.section:link, a.section:visited { + color: #fff; + text-decoration: none; +} + +a.section:focus, a.section:hover { + text-decoration: underline; +} + +/* GLOBAL DEFAULTS */ + +p, ol, ul, dl { + margin: .2em 0 .8em 0; +} + +p { + padding: 0; + line-height: 140%; +} + +h1,h2,h3,h4,h5 { + font-weight: bold; +} + +h1 { + margin: 0 0 20px; + font-weight: 300; + font-size: 20px; + color: #666; +} + +h2 { + font-size: 16px; + margin: 1em 0 .5em 0; +} + +h2.subhead { + font-weight: normal; + margin-top: 0; +} + +h3 { + font-size: 14px; + margin: .8em 0 .3em 0; + color: #666; + font-weight: bold; +} + +h4 { + font-size: 12px; + margin: 1em 0 .8em 0; + padding-bottom: 3px; +} + +h5 { + font-size: 10px; + margin: 1.5em 0 .5em 0; + color: #666; + text-transform: uppercase; + letter-spacing: 1px; +} + +ul li { + list-style-type: square; + padding: 1px 0; +} + +li ul { + margin-bottom: 0; +} + +li, dt, dd { + font-size: 13px; + line-height: 20px; +} + +dt { + font-weight: bold; + margin-top: 4px; +} + +dd { + margin-left: 0; +} + +form { + margin: 0; + padding: 0; +} + +fieldset { + margin: 0; + padding: 0; + border: none; + border-top: 1px solid #eee; +} + +blockquote { + font-size: 11px; + color: #777; + margin-left: 2px; + padding-left: 10px; + border-left: 5px solid #ddd; +} + +code, pre { + font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; + color: #666; + font-size: 12px; +} + +pre.literal-block { + margin: 10px; + background: #eee; + padding: 6px 8px; +} + +code strong { + color: #930; +} + +hr { + clear: both; + color: #eee; + background-color: #eee; + height: 1px; + border: none; + margin: 0; + padding: 0; + font-size: 1px; + line-height: 1px; +} + +/* TEXT STYLES & MODIFIERS */ + +.small { + font-size: 11px; +} + +.tiny { + font-size: 10px; +} + +p.tiny { + margin-top: -2px; +} + +.mini { + font-size: 10px; +} + +p.mini { + margin-top: -3px; +} + +.help, p.help, form p.help, div.help, form div.help, div.help li { + font-size: 11px; + color: #999; +} + +div.help ul { + margin-bottom: 0; +} + +.help-tooltip { + cursor: help; +} + +p img, h1 img, h2 img, h3 img, h4 img, td img { + vertical-align: middle; +} + +.quiet, a.quiet:link, a.quiet:visited { + color: #999; + font-weight: normal; +} + +.float-right { + float: right; +} + +.float-left { + float: left; +} + +.clear { + clear: both; +} + +.align-left { + text-align: left; +} + +.align-right { + text-align: right; +} + +.example { + margin: 10px 0; + padding: 5px 10px; + background: #efefef; +} + +.nowrap { + white-space: nowrap; +} + +/* TABLES */ + +table { + border-collapse: collapse; + border-color: #ccc; +} + +td, th { + font-size: 13px; + line-height: 16px; + border-bottom: 1px solid #eee; + vertical-align: top; + padding: 8px; + font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; +} + +th { + font-weight: 600; + text-align: left; +} + +thead th, +tfoot td { + color: #666; + padding: 5px 10px; + font-size: 11px; + background: #fff; + border: none; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; +} + +tfoot td { + border-bottom: none; + border-top: 1px solid #eee; +} + +thead th.required { + color: #000; +} + +tr.alt { + background: #f6f6f6; +} + +.row1 { + background: #fff; +} + +.row2 { + background: #f9f9f9; +} + +/* SORTABLE TABLES */ + +thead th { + padding: 5px 10px; + line-height: normal; + text-transform: uppercase; + background: #f6f6f6; +} + +thead th a:link, thead th a:visited { + color: #666; +} + +thead th.sorted { + background: #eee; +} + +thead th.sorted .text { + padding-right: 42px; +} + +table thead th .text span { + padding: 8px 10px; + display: block; +} + +table thead th .text a { + display: block; + cursor: pointer; + padding: 8px 10px; +} + +table thead th .text a:focus, table thead th .text a:hover { + background: #eee; +} + +thead th.sorted a.sortremove { + visibility: hidden; +} + +table thead th.sorted:hover a.sortremove { + visibility: visible; +} + +table thead th.sorted .sortoptions { + display: block; + padding: 9px 5px 0 5px; + float: right; + text-align: right; +} + +table thead th.sorted .sortpriority { + font-size: .8em; + min-width: 12px; + text-align: center; + vertical-align: 3px; + margin-left: 2px; + margin-right: 2px; +} + +table thead th.sorted .sortoptions a { + position: relative; + width: 14px; + height: 14px; + display: inline-block; + background: url(../img/sorting-icons.svg) 0 0 no-repeat; + background-size: 14px auto; +} + +table thead th.sorted .sortoptions a.sortremove { + background-position: 0 0; +} + +table thead th.sorted .sortoptions a.sortremove:after { + content: '\\'; + position: absolute; + top: -6px; + left: 3px; + font-weight: 200; + font-size: 18px; + color: #999; +} + +table thead th.sorted .sortoptions a.sortremove:focus:after, +table thead th.sorted .sortoptions a.sortremove:hover:after { + color: #447e9b; +} + +table thead th.sorted .sortoptions a.sortremove:focus, +table thead th.sorted .sortoptions a.sortremove:hover { + background-position: 0 -14px; +} + +table thead th.sorted .sortoptions a.ascending { + background-position: 0 -28px; +} + +table thead th.sorted .sortoptions a.ascending:focus, +table thead th.sorted .sortoptions a.ascending:hover { + background-position: 0 -42px; +} + +table thead th.sorted .sortoptions a.descending { + top: 1px; + background-position: 0 -56px; +} + +table thead th.sorted .sortoptions a.descending:focus, +table thead th.sorted .sortoptions a.descending:hover { + background-position: 0 -70px; +} + +/* FORM DEFAULTS */ + +input, textarea, select, .form-row p, form .button { + margin: 2px 0; + padding: 2px 3px; + vertical-align: middle; + font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + font-size: 13px; +} +.form-row div.help { + padding: 2px 3px; +} + +textarea { + vertical-align: top; +} + +input[type=text], input[type=password], input[type=email], input[type=url], +input[type=number], input[type=tel], textarea, select, .vTextField { + border: 1px solid #ccc; + border-radius: 4px; + padding: 5px 6px; + margin-top: 0; +} + +input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, +input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus, +textarea:focus, select:focus, .vTextField:focus { + border-color: #999; +} + +select { + height: 30px; +} + +select[multiple] { + /* Allow HTML size attribute to override the height in the rule above. */ + height: auto; + min-height: 150px; +} + +/* FORM BUTTONS */ + +.button, input[type=submit], input[type=button], .submit-row input, a.button { + background: #79aec8; + padding: 10px 15px; + border: none; + border-radius: 4px; + color: #fff; + cursor: pointer; +} + +a.button { + padding: 4px 5px; +} + +.button:active, input[type=submit]:active, input[type=button]:active, +.button:focus, input[type=submit]:focus, input[type=button]:focus, +.button:hover, input[type=submit]:hover, input[type=button]:hover { + background: #609ab6; +} + +.button[disabled], input[type=submit][disabled], input[type=button][disabled] { + opacity: 0.4; +} + +.button.default, input[type=submit].default, .submit-row input.default { + float: right; + border: none; + font-weight: 400; + background: #417690; +} + +.button.default:active, input[type=submit].default:active, +.button.default:focus, input[type=submit].default:focus, +.button.default:hover, input[type=submit].default:hover { + background: #205067; +} + +.button[disabled].default, +input[type=submit][disabled].default, +input[type=button][disabled].default { + opacity: 0.4; +} + + +/* MODULES */ + +.module { + border: none; + margin-bottom: 30px; + background: #fff; +} + +.module p, .module ul, .module h3, .module h4, .module dl, .module pre { + padding-left: 10px; + padding-right: 10px; +} + +.module blockquote { + margin-left: 12px; +} + +.module ul, .module ol { + margin-left: 1.5em; +} + +.module h3 { + margin-top: .6em; +} + +.module h2, .module caption, .inline-group h2 { + margin: 0; + padding: 8px; + font-weight: 400; + font-size: 13px; + text-align: left; + background: #79aec8; + color: #fff; +} + +.module caption, +.inline-group h2 { + font-size: 12px; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +.module table { + border-collapse: collapse; +} + +/* MESSAGES & ERRORS */ + +ul.messagelist { + padding: 0; + margin: 0; +} + +ul.messagelist li { + display: block; + font-weight: 400; + font-size: 13px; + padding: 10px 10px 10px 65px; + margin: 0 0 10px 0; + background: #dfd url(../img/icon-yes.svg) 40px 12px no-repeat; + background-size: 16px auto; + color: #333; +} + +ul.messagelist li.warning { + background: #ffc url(../img/icon-alert.svg) 40px 14px no-repeat; + background-size: 14px auto; +} + +ul.messagelist li.error { + background: #ffefef url(../img/icon-no.svg) 40px 12px no-repeat; + background-size: 16px auto; +} + +.errornote { + font-size: 14px; + font-weight: 700; + display: block; + padding: 10px 12px; + margin: 0 0 10px 0; + color: #ba2121; + border: 1px solid #ba2121; + border-radius: 4px; + background-color: #fff; + background-position: 5px 12px; +} + +ul.errorlist { + margin: 0 0 4px; + padding: 0; + color: #ba2121; + background: #fff; +} + +ul.errorlist li { + font-size: 13px; + display: block; + margin-bottom: 4px; +} + +ul.errorlist li:first-child { + margin-top: 0; +} + +ul.errorlist li a { + color: inherit; + text-decoration: underline; +} + +td ul.errorlist { + margin: 0; + padding: 0; +} + +td ul.errorlist li { + margin: 0; +} + +.form-row.errors { + margin: 0; + border: none; + border-bottom: 1px solid #eee; + background: none; +} + +.form-row.errors ul.errorlist li { + padding-left: 0; +} + +.errors input, .errors select, .errors textarea { + border: 1px solid #ba2121; +} + +div.system-message { + background: #ffc; + margin: 10px; + padding: 6px 8px; + font-size: .8em; +} + +div.system-message p.system-message-title { + padding: 4px 5px 4px 25px; + margin: 0; + color: #c11; + background: #ffefef url(../img/icon-no.svg) 5px 5px no-repeat; +} + +.description { + font-size: 12px; + padding: 5px 0 0 12px; +} + +/* BREADCRUMBS */ + +div.breadcrumbs { + background: #79aec8; + padding: 10px 40px; + border: none; + font-size: 14px; + color: #c4dce8; + text-align: left; +} + +div.breadcrumbs a { + color: #fff; +} + +div.breadcrumbs a:focus, div.breadcrumbs a:hover { + color: #c4dce8; +} + +/* ACTION ICONS */ + +.viewlink, .inlineviewlink { + padding-left: 16px; + background: url(../img/icon-viewlink.svg) 0 1px no-repeat; +} + +.addlink { + padding-left: 16px; + background: url(../img/icon-addlink.svg) 0 1px no-repeat; +} + +.changelink, .inlinechangelink { + padding-left: 16px; + background: url(../img/icon-changelink.svg) 0 1px no-repeat; +} + +.deletelink { + padding-left: 16px; + background: url(../img/icon-deletelink.svg) 0 1px no-repeat; +} + +a.deletelink:link, a.deletelink:visited { + color: #CC3434; +} + +a.deletelink:focus, a.deletelink:hover { + color: #993333; + text-decoration: none; +} + +/* OBJECT TOOLS */ + +.object-tools { + font-size: 10px; + font-weight: bold; + padding-left: 0; + float: right; + position: relative; + margin-top: -48px; +} + +.form-row .object-tools { + margin-top: 5px; + margin-bottom: 5px; + float: none; + height: 2em; + padding-left: 3.5em; +} + +.object-tools li { + display: block; + float: left; + margin-left: 5px; + height: 16px; +} + +.object-tools a { + border-radius: 15px; +} + +.object-tools a:link, .object-tools a:visited { + display: block; + float: left; + padding: 3px 12px; + background: #999; + font-weight: 400; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.5px; + color: #fff; +} + +.object-tools a:focus, .object-tools a:hover { + background-color: #417690; +} + +.object-tools a:focus{ + text-decoration: none; +} + +.object-tools a.viewsitelink, .object-tools a.golink,.object-tools a.addlink { + background-repeat: no-repeat; + background-position: right 7px center; + padding-right: 26px; +} + +.object-tools a.viewsitelink, .object-tools a.golink { + background-image: url(../img/tooltag-arrowright.svg); +} + +.object-tools a.addlink { + background-image: url(../img/tooltag-add.svg); +} + +/* OBJECT HISTORY */ + +table#change-history { + width: 100%; +} + +table#change-history tbody th { + width: 16em; +} + +/* PAGE STRUCTURE */ + +#container { + position: relative; + width: 100%; + min-width: 980px; + padding: 0; +} + +#content { + padding: 20px 40px; +} + +.dashboard #content { + width: 600px; +} + +#content-main { + float: left; + width: 100%; +} + +#content-related { + float: right; + width: 260px; + position: relative; + margin-right: -300px; +} + +#footer { + clear: both; + padding: 10px; +} + +/* COLUMN TYPES */ + +.colMS { + margin-right: 300px; +} + +.colSM { + margin-left: 300px; +} + +.colSM #content-related { + float: left; + margin-right: 0; + margin-left: -300px; +} + +.colSM #content-main { + float: right; +} + +.popup .colM { + width: auto; +} + +/* HEADER */ + +#header { + width: auto; + height: auto; + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 40px; + background: #417690; + color: #ffc; + overflow: hidden; +} + +#header a:link, #header a:visited { + color: #fff; +} + +#header a:focus , #header a:hover { + text-decoration: underline; +} + +#branding { + float: left; +} + +#branding h1 { + padding: 0; + margin: 0 20px 0 0; + font-weight: 300; + font-size: 24px; + color: #f5dd5d; +} + +#branding h1, #branding h1 a:link, #branding h1 a:visited { + color: #f5dd5d; +} + +#branding h2 { + padding: 0 10px; + font-size: 14px; + margin: -8px 0 8px 0; + font-weight: normal; + color: #ffc; +} + +#branding a:hover { + text-decoration: none; +} + +#user-tools { + float: right; + padding: 0; + margin: 0 0 0 20px; + font-weight: 300; + font-size: 11px; + letter-spacing: 0.5px; + text-transform: uppercase; + text-align: right; +} + +#user-tools a { + border-bottom: 1px solid rgba(255, 255, 255, 0.25); +} + +#user-tools a:focus, #user-tools a:hover { + text-decoration: none; + border-bottom-color: #79aec8; + color: #79aec8; +} + +/* SIDEBAR */ + +#content-related { + background: #f8f8f8; +} + +#content-related .module { + background: none; +} + +#content-related h3 { + font-size: 14px; + color: #666; + padding: 0 16px; + margin: 0 0 16px; +} + +#content-related h4 { + font-size: 13px; +} + +#content-related p { + padding-left: 16px; + padding-right: 16px; +} + +#content-related .actionlist { + padding: 0; + margin: 16px; +} + +#content-related .actionlist li { + line-height: 1.2; + margin-bottom: 10px; + padding-left: 18px; +} + +#content-related .module h2 { + background: none; + padding: 16px; + margin-bottom: 16px; + border-bottom: 1px solid #eaeaea; + font-size: 18px; + color: #333; +} + +.delete-confirmation form input[type="submit"] { + background: #ba2121; + border-radius: 4px; + padding: 10px 15px; + color: #fff; +} + +.delete-confirmation form input[type="submit"]:active, +.delete-confirmation form input[type="submit"]:focus, +.delete-confirmation form input[type="submit"]:hover { + background: #a41515; +} + +.delete-confirmation form .cancel-link { + display: inline-block; + vertical-align: middle; + height: 15px; + line-height: 15px; + background: #ddd; + border-radius: 4px; + padding: 10px 15px; + color: #333; + margin: 0 0 0 10px; +} + +.delete-confirmation form .cancel-link:active, +.delete-confirmation form .cancel-link:focus, +.delete-confirmation form .cancel-link:hover { + background: #ccc; +} + +/* POPUP */ +.popup #content { + padding: 20px; +} + +.popup #container { + min-width: 0; +} + +.popup #header { + padding: 10px 20px; +} diff --git a/static/admin/css/changelists.css b/static/admin/css/changelists.css new file mode 100644 index 00000000..ce922555 --- /dev/null +++ b/static/admin/css/changelists.css @@ -0,0 +1 @@ +/* Overridden by Django Suit empty stylesheet to reset original style. */ diff --git a/static/admin/css/dashboard.css b/static/admin/css/dashboard.css new file mode 100644 index 00000000..ce922555 --- /dev/null +++ b/static/admin/css/dashboard.css @@ -0,0 +1 @@ +/* Overridden by Django Suit empty stylesheet to reset original style. */ diff --git a/static/admin/css/fonts.css b/static/admin/css/fonts.css new file mode 100644 index 00000000..c837e017 --- /dev/null +++ b/static/admin/css/fonts.css @@ -0,0 +1,20 @@ +@font-face { + font-family: 'Roboto'; + src: url('../fonts/Roboto-Bold-webfont.woff'); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('../fonts/Roboto-Regular-webfont.woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('../fonts/Roboto-Light-webfont.woff'); + font-weight: 300; + font-style: normal; +} diff --git a/static/admin/css/forms.css b/static/admin/css/forms.css new file mode 100644 index 00000000..ce922555 --- /dev/null +++ b/static/admin/css/forms.css @@ -0,0 +1 @@ +/* Overridden by Django Suit empty stylesheet to reset original style. */ diff --git a/static/admin/css/login.css b/static/admin/css/login.css new file mode 100644 index 00000000..ce922555 --- /dev/null +++ b/static/admin/css/login.css @@ -0,0 +1 @@ +/* Overridden by Django Suit empty stylesheet to reset original style. */ diff --git a/static/admin/css/responsive.css b/static/admin/css/responsive.css new file mode 100644 index 00000000..b3db28fb --- /dev/null +++ b/static/admin/css/responsive.css @@ -0,0 +1,996 @@ +/* Tablets */ + +input[type="submit"], button { + -webkit-appearance: none; + appearance: none; +} + +@media (max-width: 1024px) { + /* Basic */ + + html { + -webkit-text-size-adjust: 100%; + } + + td, th { + padding: 10px; + font-size: 14px; + } + + .small { + font-size: 12px; + } + + /* Layout */ + + #container { + min-width: 0; + } + + #content { + padding: 20px 30px 30px; + } + + div.breadcrumbs { + padding: 10px 30px; + } + + /* Header */ + + #header { + flex-direction: column; + padding: 15px 30px; + justify-content: flex-start; + } + + #branding h1 { + margin: 0 0 8px; + font-size: 20px; + line-height: 1.2; + } + + #user-tools { + margin: 0; + font-weight: 400; + line-height: 1.85; + text-align: left; + } + + #user-tools a { + display: inline-block; + line-height: 1.4; + } + + /* Dashboard */ + + .dashboard #content { + width: auto; + } + + #content-related { + margin-right: -290px; + } + + .colSM #content-related { + margin-left: -290px; + } + + .colMS { + margin-right: 290px; + } + + .colSM { + margin-left: 290px; + } + + .dashboard .module table td a { + padding-right: 0; + } + + td .changelink, td .addlink { + font-size: 13px; + } + + /* Changelist */ + + #changelist #toolbar { + border: none; + padding: 15px; + } + + #changelist-search > div { + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + max-width: 480px; + } + + #changelist-search label { + line-height: 22px; + } + + #changelist #toolbar form #searchbar { + -webkit-flex: 1 0 auto; + flex: 1 0 auto; + width: 0; + height: 22px; + margin: 0 10px 0 6px; + } + + #changelist-search .quiet { + width: 100%; + margin: 5px 0 0 25px; + } + + #changelist .actions { + display: flex; + flex-wrap: wrap; + padding: 15px 0; + } + + #changelist .actions.selected { + border: none; + } + + #changelist .actions label { + display: flex; + } + + #changelist .actions select { + background: #fff; + } + + #changelist .actions .button { + min-width: 48px; + margin: 0 10px; + } + + #changelist .actions span.all, + #changelist .actions span.clear, + #changelist .actions span.question, + #changelist .actions span.action-counter { + font-size: 11px; + margin: 0 10px 0 0; + } + + #changelist-filter { + width: 200px; + } + + .change-list .filtered .results, + .change-list .filtered .paginator, + .filtered #toolbar, + .filtered .actions, + .filtered div.xfull { + margin-right: 230px; + } + + #changelist .paginator { + border-top-color: #eee; + } + + #changelist .results + .paginator { + border-top: none; + } + + /* Forms */ + + label { + font-size: 14px; + } + + .form-row input[type=text], + .form-row input[type=password], + .form-row input[type=email], + .form-row input[type=url], + .form-row input[type=tel], + .form-row input[type=number], + .form-row textarea, + .form-row select, + .form-row .vTextField { + box-sizing: border-box; + margin: 0; + padding: 6px 8px; + min-height: 36px; + font-size: 14px; + } + + .form-row select { + height: 36px; + } + + .form-row select[multiple] { + height: auto; + min-height: 0; + } + + fieldset .fieldBox { + float: none; + margin: 0 -10px; + padding: 0 10px; + } + + fieldset .fieldBox + .fieldBox { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid #eee; + } + + textarea { + max-width: 518px; + max-height: 120px; + } + + .aligned label { + padding-top: 6px; + } + + .aligned .add-another, + .aligned .related-lookup, + .aligned .datetimeshortcuts, + .aligned .related-lookup + strong { + align-self: center; + margin-left: 15px; + } + + form .aligned ul.radiolist { + margin-left: 2px; + } + + /* Related widget */ + + .related-widget-wrapper { + float: none; + } + + .related-widget-wrapper-link + .selector { + max-width: calc(100% - 30px); + margin-right: 15px; + } + + select + .related-widget-wrapper-link, + .related-widget-wrapper-link + .related-widget-wrapper-link { + margin-left: 10px; + } + + /* Selector */ + + .selector { + display: flex; + width: 100%; + } + + .selector .selector-filter { + display: flex; + align-items: center; + } + + .selector .selector-filter label { + margin: 0 8px 0 0; + } + + .selector .selector-filter input { + width: auto; + min-height: 0; + flex: 1 1; + } + + .selector-available, .selector-chosen { + width: auto; + flex: 1 1; + display: flex; + flex-direction: column; + } + + .selector select { + width: 100%; + flex: 1 0 auto; + margin-bottom: 5px; + } + + .selector ul.selector-chooser { + width: 26px; + height: 52px; + padding: 2px 0; + margin: auto 15px; + border-radius: 20px; + transform: translateY(-10px); + } + + .selector-add, .selector-remove { + width: 20px; + height: 20px; + background-size: 20px auto; + } + + .selector-add { + background-position: 0 -120px; + } + + .selector-remove { + background-position: 0 -80px; + } + + a.selector-chooseall, a.selector-clearall { + align-self: center; + } + + .stacked { + flex-direction: column; + max-width: 480px; + } + + .stacked > * { + flex: 0 1 auto; + } + + .stacked select { + margin-bottom: 0; + } + + .stacked .selector-available, .stacked .selector-chosen { + width: auto; + } + + .stacked ul.selector-chooser { + width: 52px; + height: 26px; + padding: 0 2px; + margin: 15px auto; + transform: none; + } + + .stacked .selector-chooser li { + padding: 3px; + } + + .stacked .selector-add, .stacked .selector-remove { + background-size: 20px auto; + } + + .stacked .selector-add { + background-position: 0 -40px; + } + + .stacked .active.selector-add { + background-position: 0 -60px; + } + + .stacked .selector-remove { + background-position: 0 0; + } + + .stacked .active.selector-remove { + background-position: 0 -20px; + } + + .help-tooltip, .selector .help-icon { + display: none; + } + + form .form-row p.datetime { + width: 100%; + } + + .datetime input { + width: 50%; + max-width: 120px; + } + + .datetime span { + font-size: 13px; + } + + .datetime .timezonewarning { + display: block; + font-size: 11px; + color: #999; + } + + .datetimeshortcuts { + color: #ccc; + } + + .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { + width: 75%; + } + + .inline-group { + overflow: auto; + } + + /* Messages */ + + ul.messagelist li { + padding-left: 55px; + background-position: 30px 12px; + } + + ul.messagelist li.error { + background-position: 30px 12px; + } + + ul.messagelist li.warning { + background-position: 30px 14px; + } + + /* Login */ + + .login #header { + padding: 15px 20px; + } + + .login #branding h1 { + margin: 0; + } + + /* GIS */ + + div.olMap { + max-width: calc(100vw - 30px); + max-height: 300px; + } + + .olMap + .clear_features { + display: block; + margin-top: 10px; + } + + /* Docs */ + + .module table.xfull { + width: 100%; + } + + pre.literal-block { + overflow: auto; + } +} + +/* Mobile */ + +@media (max-width: 767px) { + /* Layout */ + + #header, #content, #footer { + padding: 15px; + } + + #footer:empty { + padding: 0; + } + + div.breadcrumbs { + padding: 10px 15px; + } + + /* Dashboard */ + + .colMS, .colSM { + margin: 0; + } + + #content-related, .colSM #content-related { + width: 100%; + margin: 0; + } + + #content-related .module { + margin-bottom: 0; + } + + #content-related .module h2 { + padding: 10px 15px; + font-size: 16px; + } + + /* Changelist */ + + #changelist { + display: flex; + flex-direction: column; + } + + #changelist #toolbar { + order: 1; + padding: 10px; + } + + #changelist .xfull { + order: 2; + } + + #changelist-form { + order: 3; + } + + #changelist-filter { + order: 4; + } + + #changelist .actions label { + flex: 1 1; + } + + #changelist .actions select { + flex: 1 0; + width: 100%; + } + + #changelist .actions span { + flex: 1 0 100%; + } + + .change-list .filtered .results, .change-list .filtered .paginator, + .filtered #toolbar, .filtered .actions, .filtered div.xfull { + margin-right: 0; + } + + #changelist-filter { + position: static; + width: auto; + margin-top: 30px; + } + + .object-tools { + float: none; + margin: 0 0 15px; + padding: 0; + overflow: hidden; + } + + .object-tools li { + height: auto; + margin-left: 0; + } + + .object-tools li + li { + margin-left: 15px; + } + + /* Forms */ + + .form-row { + padding: 15px 0; + } + + .aligned .form-row, + .aligned .form-row > div { + display: flex; + flex-wrap: wrap; + max-width: 100vw; + } + + .aligned .form-row > div { + width: calc(100vw - 30px); + } + + textarea { + max-width: none; + } + + .vURLField { + width: auto; + } + + fieldset .fieldBox + .fieldBox { + margin-top: 15px; + padding-top: 15px; + } + + fieldset.collapsed .form-row { + display: none; + } + + .aligned label { + width: 100%; + padding: 0 0 10px; + } + + .aligned label:after { + max-height: 0; + } + + .aligned .form-row input, + .aligned .form-row select, + .aligned .form-row textarea { + flex: 1 1 auto; + max-width: 100%; + } + + .aligned .checkbox-row { + align-items: center; + } + + .aligned .checkbox-row input { + flex: 0 1 auto; + margin: 0; + } + + .aligned .vCheckboxLabel { + flex: 1 0; + padding: 1px 0 0 5px; + } + + .aligned label + p, + .aligned label + div.help, + .aligned label + div.readonly { + padding: 0; + margin-left: 0; + } + + .aligned p.file-upload { + margin-left: 0; + font-size: 13px; + } + + span.clearable-file-input { + margin-left: 15px; + } + + span.clearable-file-input label { + font-size: 13px; + padding-bottom: 0; + } + + .aligned .timezonewarning { + flex: 1 0 100%; + margin-top: 5px; + } + + form .aligned .form-row div.help { + width: 100%; + margin: 5px 0 0; + padding: 0; + } + + form .aligned ul { + margin-left: 0; + padding-left: 0; + } + + form .aligned ul.radiolist { + margin-right: 15px; + margin-bottom: -3px; + } + + form .aligned ul.radiolist li + li { + margin-top: 5px; + } + + /* Related widget */ + + .related-widget-wrapper { + width: 100%; + display: flex; + align-items: flex-start; + } + + .related-widget-wrapper .selector { + order: 1; + } + + .related-widget-wrapper > a { + order: 2; + } + + .related-widget-wrapper .radiolist ~ a { + align-self: flex-end; + } + + .related-widget-wrapper > select ~ a { + align-self: center; + } + + select + .related-widget-wrapper-link, + .related-widget-wrapper-link + .related-widget-wrapper-link { + margin-left: 15px; + } + + /* Selector */ + + .selector { + flex-direction: column; + } + + .selector > * { + float: none; + } + + .selector-available, .selector-chosen { + margin-bottom: 0; + flex: 1 1 auto; + } + + .selector select { + max-height: 96px; + } + + .selector ul.selector-chooser { + display: block; + float: none; + width: 52px; + height: 26px; + padding: 0 2px; + margin: 15px auto 20px; + transform: none; + } + + .selector ul.selector-chooser li { + float: left; + } + + .selector-remove { + background-position: 0 0; + } + + .selector-add { + background-position: 0 -40px; + } + + /* Inlines */ + + .inline-group[data-inline-type="stacked"] .inline-related { + border: 2px solid #eee; + border-radius: 4px; + margin-top: 15px; + overflow: auto; + } + + .inline-group[data-inline-type="stacked"] .inline-related > * { + box-sizing: border-box; + } + + .inline-group[data-inline-type="stacked"] .inline-related + .inline-related { + margin-top: 30px; + } + + .inline-group[data-inline-type="stacked"] .inline-related .module { + padding: 0 10px; + } + + .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:last-child { + border-bottom: none; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 { + padding: 10px; + border-top-width: 0; + border-bottom-width: 2px; + display: flex; + flex-wrap: wrap; + align-items: center; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label { + margin-right: auto; + } + + .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete { + float: none; + flex: 1 1 100%; + margin-top: 5px; + } + + .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) { + width: 100%; + } + + .inline-group[data-inline-type="stacked"] .aligned label { + width: 100%; + } + + .inline-group[data-inline-type="stacked"] div.add-row { + margin-top: 15px; + border: 1px solid #eee; + border-radius: 4px; + } + + .inline-group div.add-row, + .inline-group .tabular tr.add-row td { + padding: 0; + } + + .inline-group div.add-row a, + .inline-group .tabular tr.add-row td a { + display: block; + padding: 8px 10px 8px 26px; + background-position: 8px 9px; + } + + /* Submit row */ + + .submit-row { + padding: 10px 10px 0; + margin: 0 0 15px; + display: flex; + flex-direction: column; + } + + .submit-row > * { + width: 100%; + } + + .submit-row input, .submit-row input.default, .submit-row a, .submit-row a.closelink { + float: none; + margin: 0 0 10px; + text-align: center; + } + + .submit-row a.closelink { + padding: 10px 0; + } + + .submit-row p.deletelink-box { + order: 4; + } + + /* Messages */ + + ul.messagelist li { + padding-left: 40px; + background-position: 15px 12px; + } + + ul.messagelist li.error { + background-position: 15px 12px; + } + + ul.messagelist li.warning { + background-position: 15px 14px; + } + + /* Paginator */ + + .paginator .this-page, .paginator a:link, .paginator a:visited { + padding: 4px 10px; + } + + /* Login */ + + body.login { + padding: 0 15px; + } + + .login #container { + width: auto; + max-width: 480px; + margin: 50px auto; + } + + .login #header, + .login #content { + padding: 15px; + } + + .login #content-main { + float: none; + } + + .login .form-row { + padding: 0; + } + + .login .form-row + .form-row { + margin-top: 15px; + } + + .login .form-row label { + display: block; + margin: 0 0 5px; + padding: 0; + line-height: 1.2; + } + + .login .submit-row { + padding: 15px 0 0; + } + + .login br, .login .submit-row label { + display: none; + } + + .login .submit-row input { + margin: 0; + text-transform: uppercase; + } + + .errornote { + margin: 0 0 20px; + padding: 8px 12px; + font-size: 13px; + } + + /* Calendar and clock */ + + .calendarbox, .clockbox { + position: fixed !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -50%); + margin: 0; + border: none; + overflow: visible; + } + + .calendarbox:before, .clockbox:before { + content: ''; + position: fixed; + top: 50%; + left: 50%; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.75); + transform: translate(-50%, -50%); + } + + .calendarbox > *, .clockbox > * { + position: relative; + z-index: 1; + } + + .calendarbox > div:first-child { + z-index: 2; + } + + .calendarbox .calendar, .clockbox h2 { + border-radius: 4px 4px 0 0; + overflow: hidden; + } + + .calendarbox .calendar-cancel, .clockbox .calendar-cancel { + border-radius: 0 0 4px 4px; + overflow: hidden; + } + + .calendar-shortcuts { + padding: 10px 0; + font-size: 12px; + line-height: 12px; + } + + .calendar-shortcuts a { + margin: 0 4px; + } + + .timelist a { + background: #fff; + padding: 4px; + } + + .calendar-cancel { + padding: 8px 10px; + } + + .clockbox h2 { + padding: 8px 15px; + } + + .calendar caption { + padding: 10px; + } + + .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { + z-index: 1; + top: 10px; + } + + /* History */ + + table#change-history tbody th, table#change-history tbody td { + font-size: 13px; + word-break: break-word; + } + + table#change-history tbody th { + width: auto; + } + + /* Docs */ + + table.model tbody th, table.model tbody td { + font-size: 13px; + word-break: break-word; + } +} diff --git a/static/admin/css/responsive_rtl.css b/static/admin/css/responsive_rtl.css new file mode 100644 index 00000000..f999cb12 --- /dev/null +++ b/static/admin/css/responsive_rtl.css @@ -0,0 +1,84 @@ +/* TABLETS */ + +@media (max-width: 1024px) { + [dir="rtl"] .colMS { + margin-right: 0; + } + + [dir="rtl"] #user-tools { + text-align: right; + } + + [dir="rtl"] #changelist .actions label { + padding-left: 10px; + padding-right: 0; + } + + [dir="rtl"] #changelist .actions select { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .change-list .filtered .results, + [dir="rtl"] .change-list .filtered .paginator, + [dir="rtl"] .filtered #toolbar, + [dir="rtl"] .filtered div.xfull, + [dir="rtl"] .filtered .actions { + margin-right: 0; + margin-left: 230px; + } + + [dir="rtl"] .inline-group ul.tools a.add, + [dir="rtl"] .inline-group div.add-row a, + [dir="rtl"] .inline-group .tabular tr.add-row td a { + padding: 8px 26px 8px 10px; + background-position: calc(100% - 8px) 9px; + } + + [dir="rtl"] .related-widget-wrapper-link + .selector { + margin-right: 0; + margin-left: 15px; + } + + [dir="rtl"] .selector .selector-filter label { + margin-right: 0; + margin-left: 8px; + } + + [dir="rtl"] .object-tools li { + float: right; + } + + [dir="rtl"] .object-tools li + li { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .dashboard .module table td a { + padding-left: 0; + padding-right: 16px; + } +} + +/* MOBILE */ + +@media (max-width: 767px) { + [dir="rtl"] .change-list .filtered .results, + [dir="rtl"] .change-list .filtered .paginator, + [dir="rtl"] .filtered #toolbar, + [dir="rtl"] .filtered div.xfull, + [dir="rtl"] .filtered .actions { + margin-left: 0; + } + + [dir="rtl"] .aligned .add-another, + [dir="rtl"] .aligned .related-lookup, + [dir="rtl"] .aligned .datetimeshortcuts { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .aligned ul { + margin-right: 0; + } +} diff --git a/static/admin/css/rtl.css b/static/admin/css/rtl.css new file mode 100644 index 00000000..b9e26bfe --- /dev/null +++ b/static/admin/css/rtl.css @@ -0,0 +1,269 @@ +body { + direction: rtl; +} + +/* LOGIN */ + +.login .form-row { + float: right; +} + +.login .form-row label { + float: right; + padding-left: 0.5em; + padding-right: 0; + text-align: left; +} + +.login .submit-row { + clear: both; + padding: 1em 9.4em 0 0; +} + +/* GLOBAL */ + +th { + text-align: right; +} + +.module h2, .module caption { + text-align: right; +} + +.module ul, .module ol { + margin-left: 0; + margin-right: 1.5em; +} + +.viewlink, .addlink, .changelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.deletelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.object-tools { + float: left; +} + +thead th:first-child, +tfoot td:first-child { + border-left: none; +} + +/* LAYOUT */ + +#user-tools { + right: auto; + left: 0; + text-align: left; +} + +div.breadcrumbs { + text-align: right; +} + +#content-main { + float: right; +} + +#content-related { + float: left; + margin-left: -300px; + margin-right: auto; +} + +.colMS { + margin-left: 300px; + margin-right: 0; +} + +/* SORTABLE TABLES */ + +table thead th.sorted .sortoptions { + float: left; +} + +thead th.sorted .text { + padding-right: 0; + padding-left: 42px; +} + +/* dashboard styles */ + +.dashboard .module table td a { + padding-left: .6em; + padding-right: 16px; +} + +/* changelists styles */ + +.change-list .filtered table { + border-left: none; + border-right: 0px none; +} + +#changelist-filter { + right: auto; + left: 0; + border-left: none; + border-right: none; +} + +.change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { + margin-right: 0; + margin-left: 280px; +} + +#changelist-filter li.selected { + border-left: none; + padding-left: 10px; + margin-left: 0; + border-right: 5px solid #eaeaea; + padding-right: 10px; + margin-right: -15px; +} + +.filtered .actions { + margin-left: 280px; + margin-right: 0; +} + +#changelist table tbody td:first-child, #changelist table tbody th:first-child { + border-right: none; + border-left: none; +} + +/* FORMS */ + +.aligned label { + padding: 0 0 3px 1em; + float: right; +} + +.submit-row { + text-align: left +} + +.submit-row p.deletelink-box { + float: right; +} + +.submit-row input.default { + margin-left: 0; +} + +.vDateField, .vTimeField { + margin-left: 2px; +} + +.aligned .form-row input { + margin-left: 5px; +} + +form .aligned p.help, form .aligned div.help { + clear: right; +} + +form .aligned ul { + margin-right: 163px; + margin-left: 0; +} + +form ul.inline li { + float: right; + padding-right: 0; + padding-left: 7px; +} + +input[type=submit].default, .submit-row input.default { + float: left; +} + +fieldset .fieldBox { + float: right; + margin-left: 20px; + margin-right: 0; +} + +.errorlist li { + background-position: 100% 12px; + padding: 0; +} + +.errornote { + background-position: 100% 12px; + padding: 10px 12px; +} + +/* WIDGETS */ + +.calendarnav-previous { + top: 0; + left: auto; + right: 10px; +} + +.calendarnav-next { + top: 0; + right: auto; + left: 10px; +} + +.calendar caption, .calendarbox h2 { + text-align: center; +} + +.selector { + float: right; +} + +.selector .selector-filter { + text-align: right; +} + +.inline-deletelink { + float: left; +} + +form .form-row p.datetime { + overflow: hidden; +} + +.related-widget-wrapper { + float: right; +} + +/* MISC */ + +.inline-related h2, .inline-group h2 { + text-align: right +} + +.inline-related h3 span.delete { + padding-right: 20px; + padding-left: inherit; + left: 10px; + right: inherit; + float:left; +} + +.inline-related h3 span.delete label { + margin-left: inherit; + margin-right: 2px; +} + +/* IE7 specific bug fixes */ + +div.colM { + position: relative; +} + +.submit-row input { + float: left; +} diff --git a/static/admin/css/vendor/select2/LICENSE-SELECT2.md b/static/admin/css/vendor/select2/LICENSE-SELECT2.md new file mode 100644 index 00000000..8cb8a2b1 --- /dev/null +++ b/static/admin/css/vendor/select2/LICENSE-SELECT2.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/static/admin/css/vendor/select2/select2.css b/static/admin/css/vendor/select2/select2.css new file mode 100644 index 00000000..ce3afd1d --- /dev/null +++ b/static/admin/css/vendor/select2/select2.css @@ -0,0 +1,484 @@ +.select2-container { + box-sizing: border-box; + display: inline-block; + margin: 0; + position: relative; + vertical-align: middle; } + .select2-container .select2-selection--single { + box-sizing: border-box; + cursor: pointer; + display: block; + height: 28px; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--single .select2-selection__rendered { + display: block; + padding-left: 8px; + padding-right: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-selection--single .select2-selection__clear { + position: relative; } + .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { + padding-right: 8px; + padding-left: 20px; } + .select2-container .select2-selection--multiple { + box-sizing: border-box; + cursor: pointer; + display: block; + min-height: 32px; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--multiple .select2-selection__rendered { + display: inline-block; + overflow: hidden; + padding-left: 8px; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-search--inline { + float: left; } + .select2-container .select2-search--inline .select2-search__field { + box-sizing: border-box; + border: none; + font-size: 100%; + margin-top: 5px; + padding: 0; } + .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + +.select2-dropdown { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + box-sizing: border-box; + display: block; + position: absolute; + left: -100000px; + width: 100%; + z-index: 1051; } + +.select2-results { + display: block; } + +.select2-results__options { + list-style: none; + margin: 0; + padding: 0; } + +.select2-results__option { + padding: 6px; + user-select: none; + -webkit-user-select: none; } + .select2-results__option[aria-selected] { + cursor: pointer; } + +.select2-container--open .select2-dropdown { + left: 0; } + +.select2-container--open .select2-dropdown--above { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--open .select2-dropdown--below { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-search--dropdown { + display: block; + padding: 4px; } + .select2-search--dropdown .select2-search__field { + padding: 4px; + width: 100%; + box-sizing: border-box; } + .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + .select2-search--dropdown.select2-search--hide { + display: none; } + +.select2-close-mask { + border: 0; + margin: 0; + padding: 0; + display: block; + position: fixed; + left: 0; + top: 0; + min-height: 100%; + min-width: 100%; + height: auto; + width: auto; + opacity: 0; + z-index: 99; + background-color: #fff; + filter: alpha(opacity=0); } + +.select2-hidden-accessible { + border: 0 !important; + clip: rect(0 0 0 0) !important; + -webkit-clip-path: inset(50%) !important; + clip-path: inset(50%) !important; + height: 1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + white-space: nowrap !important; } + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 1px solid #aaa; + border-radius: 4px; } + .select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; } + .select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; } + .select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; } + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; } + .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; } + +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + list-style: none; + margin: 0; + padding: 0 5px; + width: 100%; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered li { + list-style: none; } + .select2-container--default .select2-selection--multiple .select2-selection__placeholder { + color: #999; + margin-top: 5px; + float: left; } + .select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-top: 5px; + margin-right: 10px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #999; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #333; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { + float: right; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: solid black 1px; + outline: 0; } + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; } + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; } + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; } + +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; } + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--default .select2-results__option[role=group] { + padding: 0; } + +.select2-container--default .select2-results__option[aria-disabled=true] { + color: #999; } + +.select2-container--default .select2-results__option[aria-selected=true] { + background-color: #ddd; } + +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; } + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #5897fb; + color: white; } + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic .select2-selection--single { + background-color: #f7f7f7; + border: 1px solid #aaa; + border-radius: 4px; + outline: 0; + background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%); + background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%); + background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + .select2-container--classic .select2-selection--single:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--classic .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; } + .select2-container--classic .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--classic .select2-selection--single .select2-selection__arrow { + background-color: #ddd; + border: none; + border-left: 1px solid #aaa; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; + background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%); + background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%); + background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } + .select2-container--classic .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { + border: none; + border-right: 1px solid #aaa; + border-radius: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + left: 1px; + right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--single { + border: 1px solid #5897fb; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { + background: transparent; + border: none; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%); + background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%); + background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%); + background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%); + background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } + +.select2-container--classic .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; + outline: 0; } + .select2-container--classic .select2-selection--multiple:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--multiple .select2-selection__rendered { + list-style: none; + margin: 0; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__clear { + display: none; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { + color: #888; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #555; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + float: right; + margin-left: 5px; + margin-right: auto; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--multiple { + border: 1px solid #5897fb; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--classic .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; + outline: 0; } + +.select2-container--classic .select2-search--inline .select2-search__field { + outline: 0; + box-shadow: none; } + +.select2-container--classic .select2-dropdown { + background-color: white; + border: 1px solid transparent; } + +.select2-container--classic .select2-dropdown--above { + border-bottom: none; } + +.select2-container--classic .select2-dropdown--below { + border-top: none; } + +.select2-container--classic .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--classic .select2-results__option[role=group] { + padding: 0; } + +.select2-container--classic .select2-results__option[aria-disabled=true] { + color: grey; } + +.select2-container--classic .select2-results__option--highlighted[aria-selected] { + background-color: #3875d7; + color: white; } + +.select2-container--classic .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic.select2-container--open .select2-dropdown { + border-color: #5897fb; } diff --git a/static/admin/css/vendor/select2/select2.min.css b/static/admin/css/vendor/select2/select2.min.css new file mode 100644 index 00000000..60d59904 --- /dev/null +++ b/static/admin/css/vendor/select2/select2.min.css @@ -0,0 +1 @@ +.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/static/admin/css/widgets.css b/static/admin/css/widgets.css new file mode 100644 index 00000000..6dbc58e0 --- /dev/null +++ b/static/admin/css/widgets.css @@ -0,0 +1,564 @@ +/* SELECTOR (FILTER INTERFACE) */ + +.selector { + width: 800px; + float: left; +} + +.selector select { + width: 380px; + height: 17.2em; +} + +.selector-available, .selector-chosen { + float: left; + width: 380px; + text-align: center; + margin-bottom: 5px; +} + +.selector-chosen select { + border-top: none; +} + +.selector-available h2, .selector-chosen h2 { + border: 1px solid #ccc; + border-radius: 4px 4px 0 0; +} + +.selector-chosen h2 { + background: #79aec8; + color: #fff; +} + +.selector .selector-available h2 { + background: #f8f8f8; + color: #666; +} + +.selector .selector-filter { + background: white; + border: 1px solid #ccc; + border-width: 0 1px; + padding: 8px; + color: #999; + font-size: 10px; + margin: 0; + text-align: left; +} + +.selector .selector-filter label, +.inline-group .aligned .selector .selector-filter label { + float: left; + margin: 7px 0 0; + width: 18px; + height: 18px; + padding: 0; + overflow: hidden; + line-height: 1; +} + +.selector .selector-available input { + width: 320px; + margin-left: 8px; +} + +.selector ul.selector-chooser { + float: left; + width: 22px; + background-color: #eee; + border-radius: 10px; + margin: 10em 5px 0 5px; + padding: 0; +} + +.selector-chooser li { + margin: 0; + padding: 3px; + list-style-type: none; +} + +.selector select { + padding: 0 10px; + margin: 0 0 10px; + border-radius: 0 0 4px 4px; +} + +.selector-add, .selector-remove { + width: 16px; + height: 16px; + display: block; + text-indent: -3000px; + overflow: hidden; + cursor: default; + opacity: 0.3; +} + +.active.selector-add, .active.selector-remove { + opacity: 1; +} + +.active.selector-add:hover, .active.selector-remove:hover { + cursor: pointer; +} + +.selector-add { + background: url(../img/selector-icons.svg) 0 -96px no-repeat; +} + +.active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -112px; +} + +.selector-remove { + background: url(../img/selector-icons.svg) 0 -64px no-repeat; +} + +.active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -80px; +} + +a.selector-chooseall, a.selector-clearall { + display: inline-block; + height: 16px; + text-align: left; + margin: 1px auto 3px; + overflow: hidden; + font-weight: bold; + line-height: 16px; + color: #666; + text-decoration: none; + opacity: 0.3; +} + +a.active.selector-chooseall:focus, a.active.selector-clearall:focus, +a.active.selector-chooseall:hover, a.active.selector-clearall:hover { + color: #447e9b; +} + +a.active.selector-chooseall, a.active.selector-clearall { + opacity: 1; +} + +a.active.selector-chooseall:hover, a.active.selector-clearall:hover { + cursor: pointer; +} + +a.selector-chooseall { + padding: 0 18px 0 0; + background: url(../img/selector-icons.svg) right -160px no-repeat; + cursor: default; +} + +a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { + background-position: 100% -176px; +} + +a.selector-clearall { + padding: 0 0 0 18px; + background: url(../img/selector-icons.svg) 0 -128px no-repeat; + cursor: default; +} + +a.active.selector-clearall:focus, a.active.selector-clearall:hover { + background-position: 0 -144px; +} + +/* STACKED SELECTORS */ + +.stacked { + float: left; + width: 490px; +} + +.stacked select { + width: 480px; + height: 10.1em; +} + +.stacked .selector-available, .stacked .selector-chosen { + width: 480px; +} + +.stacked .selector-available { + margin-bottom: 0; +} + +.stacked .selector-available input { + width: 422px; +} + +.stacked ul.selector-chooser { + height: 22px; + width: 50px; + margin: 0 0 10px 40%; + background-color: #eee; + border-radius: 10px; +} + +.stacked .selector-chooser li { + float: left; + padding: 3px 3px 3px 5px; +} + +.stacked .selector-chooseall, .stacked .selector-clearall { + display: none; +} + +.stacked .selector-add { + background: url(../img/selector-icons.svg) 0 -32px no-repeat; + cursor: default; +} + +.stacked .active.selector-add { + background-position: 0 -48px; + cursor: pointer; +} + +.stacked .selector-remove { + background: url(../img/selector-icons.svg) 0 0 no-repeat; + cursor: default; +} + +.stacked .active.selector-remove { + background-position: 0 -16px; + cursor: pointer; +} + +.selector .help-icon { + background: url(../img/icon-unknown.svg) 0 0 no-repeat; + display: inline-block; + vertical-align: middle; + margin: -2px 0 0 2px; + width: 13px; + height: 13px; +} + +.selector .selector-chosen .help-icon { + background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat; +} + +.selector .search-label-icon { + background: url(../img/search.svg) 0 0 no-repeat; + display: inline-block; + height: 18px; + width: 18px; +} + +/* DATE AND TIME */ + +p.datetime { + line-height: 20px; + margin: 0; + padding: 0; + color: #666; + font-weight: bold; +} + +.datetime span { + white-space: nowrap; + font-weight: normal; + font-size: 11px; + color: #ccc; +} + +.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { + margin-left: 5px; + margin-bottom: 4px; +} + +table p.datetime { + font-size: 11px; + margin-left: 0; + padding-left: 0; +} + +.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon { + position: relative; + display: inline-block; + vertical-align: middle; + height: 16px; + width: 16px; + overflow: hidden; +} + +.datetimeshortcuts .clock-icon { + background: url(../img/icon-clock.svg) 0 0 no-repeat; +} + +.datetimeshortcuts a:focus .clock-icon, +.datetimeshortcuts a:hover .clock-icon { + background-position: 0 -16px; +} + +.datetimeshortcuts .date-icon { + background: url(../img/icon-calendar.svg) 0 0 no-repeat; + top: -1px; +} + +.datetimeshortcuts a:focus .date-icon, +.datetimeshortcuts a:hover .date-icon { + background-position: 0 -16px; +} + +.timezonewarning { + font-size: 11px; + color: #999; +} + +/* URL */ + +p.url { + line-height: 20px; + margin: 0; + padding: 0; + color: #666; + font-size: 11px; + font-weight: bold; +} + +.url a { + font-weight: normal; +} + +/* FILE UPLOADS */ + +p.file-upload { + line-height: 20px; + margin: 0; + padding: 0; + color: #666; + font-size: 11px; + font-weight: bold; +} + +.aligned p.file-upload { + margin-left: 170px; +} + +.file-upload a { + font-weight: normal; +} + +.file-upload .deletelink { + margin-left: 5px; +} + +span.clearable-file-input label { + color: #333; + font-size: 11px; + display: inline; + float: none; +} + +/* CALENDARS & CLOCKS */ + +.calendarbox, .clockbox { + margin: 5px auto; + font-size: 12px; + width: 19em; + text-align: center; + background: white; + border: 1px solid #ddd; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + overflow: hidden; + position: relative; +} + +.clockbox { + width: auto; +} + +.calendar { + margin: 0; + padding: 0; +} + +.calendar table { + margin: 0; + padding: 0; + border-collapse: collapse; + background: white; + width: 100%; +} + +.calendar caption, .calendarbox h2 { + margin: 0; + text-align: center; + border-top: none; + background: #f5dd5d; + font-weight: 700; + font-size: 12px; + color: #333; +} + +.calendar th { + padding: 8px 5px; + background: #f8f8f8; + border-bottom: 1px solid #ddd; + font-weight: 400; + font-size: 12px; + text-align: center; + color: #666; +} + +.calendar td { + font-weight: 400; + font-size: 12px; + text-align: center; + padding: 0; + border-top: 1px solid #eee; + border-bottom: none; +} + +.calendar td.selected a { + background: #79aec8; + color: #fff; +} + +.calendar td.nonday { + background: #f8f8f8; +} + +.calendar td.today a { + font-weight: 700; +} + +.calendar td a, .timelist a { + display: block; + font-weight: 400; + padding: 6px; + text-decoration: none; + color: #444; +} + +.calendar td a:focus, .timelist a:focus, +.calendar td a:hover, .timelist a:hover { + background: #79aec8; + color: white; +} + +.calendar td a:active, .timelist a:active { + background: #417690; + color: white; +} + +.calendarnav { + font-size: 10px; + text-align: center; + color: #ccc; + margin: 0; + padding: 1px 3px; +} + +.calendarnav a:link, #calendarnav a:visited, +#calendarnav a:focus, #calendarnav a:hover { + color: #999; +} + +.calendar-shortcuts { + background: white; + font-size: 11px; + line-height: 11px; + border-top: 1px solid #eee; + padding: 8px 0; + color: #ccc; +} + +.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { + display: block; + position: absolute; + top: 8px; + width: 15px; + height: 15px; + text-indent: -9999px; + padding: 0; +} + +.calendarnav-previous { + left: 10px; + background: url(../img/calendar-icons.svg) 0 0 no-repeat; +} + +.calendarbox .calendarnav-previous:focus, +.calendarbox .calendarnav-previous:hover { + background-position: 0 -15px; +} + +.calendarnav-next { + right: 10px; + background: url(../img/calendar-icons.svg) 0 -30px no-repeat; +} + +.calendarbox .calendarnav-next:focus, +.calendarbox .calendarnav-next:hover { + background-position: 0 -45px; +} + +.calendar-cancel { + margin: 0; + padding: 4px 0; + font-size: 12px; + background: #eee; + border-top: 1px solid #ddd; + color: #333; +} + +.calendar-cancel:focus, .calendar-cancel:hover { + background: #ddd; +} + +.calendar-cancel a { + color: black; + display: block; +} + +ul.timelist, .timelist li { + list-style-type: none; + margin: 0; + padding: 0; +} + +.timelist a { + padding: 2px; +} + +/* EDIT INLINE */ + +.inline-deletelink { + float: right; + text-indent: -9999px; + background: url(../img/inline-delete.svg) 0 0 no-repeat; + width: 16px; + height: 16px; + border: 0px none; +} + +.inline-deletelink:focus, .inline-deletelink:hover { + cursor: pointer; +} + +/* RELATED WIDGET WRAPPER */ +.related-widget-wrapper { + float: left; /* display properly in form rows with multiple fields */ + overflow: hidden; /* clear floated contents */ +} + +.related-widget-wrapper-link { + opacity: 0.3; +} + +.related-widget-wrapper-link:link { + opacity: .8; +} + +.related-widget-wrapper-link:link:focus, +.related-widget-wrapper-link:link:hover { + opacity: 1; +} + +select + .related-widget-wrapper-link, +.related-widget-wrapper-link + .related-widget-wrapper-link { + margin-left: 7px; +} diff --git a/static/admin/fonts/LICENSE.txt b/static/admin/fonts/LICENSE.txt new file mode 100644 index 00000000..75b52484 --- /dev/null +++ b/static/admin/fonts/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/static/admin/fonts/README.txt b/static/admin/fonts/README.txt new file mode 100644 index 00000000..b247bef3 --- /dev/null +++ b/static/admin/fonts/README.txt @@ -0,0 +1,3 @@ +Roboto webfont source: https://www.google.com/fonts/specimen/Roboto +WOFF files extracted using https://github.com/majodev/google-webfonts-helper +Weights used in this project: Light (300), Regular (400), Bold (700) diff --git a/static/admin/fonts/Roboto-Bold-webfont.woff b/static/admin/fonts/Roboto-Bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e0f56267035c2321ca6b590adcfc0fc93b7dc51 GIT binary patch literal 86184 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 literal 0 HcmV?d00001 diff --git a/static/admin/fonts/Roboto-Light-webfont.woff b/static/admin/fonts/Roboto-Light-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..b9e99185c8300c786fa77a0490fefdd26ab2e99e GIT binary patch literal 85692 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

-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 z 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 WsO{O{pqkviFa7yR{$QEVNelpC{qWcT literal 0 HcmV?d00001 diff --git a/static/admin/img/LICENSE b/static/admin/img/LICENSE new file mode 100644 index 00000000..a4faaa1d --- /dev/null +++ b/static/admin/img/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Code Charm Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/static/admin/img/README.txt b/static/admin/img/README.txt new file mode 100644 index 00000000..4eb2e492 --- /dev/null +++ b/static/admin/img/README.txt @@ -0,0 +1,7 @@ +All icons are taken from Font Awesome (http://fontawesome.io/) project. +The Font Awesome font is licensed under the SIL OFL 1.1: +- https://scripts.sil.org/OFL + +SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG +Font-Awesome-SVG-PNG is licensed under the MIT license (see file license +in current folder). diff --git a/static/admin/img/calendar-icons.svg b/static/admin/img/calendar-icons.svg new file mode 100644 index 00000000..dbf21c39 --- /dev/null +++ b/static/admin/img/calendar-icons.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/admin/img/gis/move_vertex_off.svg b/static/admin/img/gis/move_vertex_off.svg new file mode 100644 index 00000000..228854f3 --- /dev/null +++ b/static/admin/img/gis/move_vertex_off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/admin/img/gis/move_vertex_on.svg b/static/admin/img/gis/move_vertex_on.svg new file mode 100644 index 00000000..96b87fdd --- /dev/null +++ b/static/admin/img/gis/move_vertex_on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/admin/img/icon-addlink.svg b/static/admin/img/icon-addlink.svg new file mode 100644 index 00000000..e004fb16 --- /dev/null +++ b/static/admin/img/icon-addlink.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-alert.svg b/static/admin/img/icon-alert.svg new file mode 100644 index 00000000..e51ea83f --- /dev/null +++ b/static/admin/img/icon-alert.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-calendar.svg b/static/admin/img/icon-calendar.svg new file mode 100644 index 00000000..97910a99 --- /dev/null +++ b/static/admin/img/icon-calendar.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/admin/img/icon-changelink.svg b/static/admin/img/icon-changelink.svg new file mode 100644 index 00000000..bbb137aa --- /dev/null +++ b/static/admin/img/icon-changelink.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-clock.svg b/static/admin/img/icon-clock.svg new file mode 100644 index 00000000..bf9985d3 --- /dev/null +++ b/static/admin/img/icon-clock.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/admin/img/icon-deletelink.svg b/static/admin/img/icon-deletelink.svg new file mode 100644 index 00000000..4059b155 --- /dev/null +++ b/static/admin/img/icon-deletelink.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-no.svg b/static/admin/img/icon-no.svg new file mode 100644 index 00000000..2e0d3832 --- /dev/null +++ b/static/admin/img/icon-no.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-unknown-alt.svg b/static/admin/img/icon-unknown-alt.svg new file mode 100644 index 00000000..1c6b99fc --- /dev/null +++ b/static/admin/img/icon-unknown-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-unknown.svg b/static/admin/img/icon-unknown.svg new file mode 100644 index 00000000..50b4f972 --- /dev/null +++ b/static/admin/img/icon-unknown.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-viewlink.svg b/static/admin/img/icon-viewlink.svg new file mode 100644 index 00000000..a1ca1d3f --- /dev/null +++ b/static/admin/img/icon-viewlink.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/icon-yes.svg b/static/admin/img/icon-yes.svg new file mode 100644 index 00000000..5883d877 --- /dev/null +++ b/static/admin/img/icon-yes.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/inline-delete.svg b/static/admin/img/inline-delete.svg new file mode 100644 index 00000000..17d1ad67 --- /dev/null +++ b/static/admin/img/inline-delete.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/search.svg b/static/admin/img/search.svg new file mode 100644 index 00000000..c8c69b2a --- /dev/null +++ b/static/admin/img/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/selector-icons.svg b/static/admin/img/selector-icons.svg new file mode 100644 index 00000000..926b8e21 --- /dev/null +++ b/static/admin/img/selector-icons.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/admin/img/sorting-icons.svg b/static/admin/img/sorting-icons.svg new file mode 100644 index 00000000..7c31ec91 --- /dev/null +++ b/static/admin/img/sorting-icons.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/static/admin/img/tooltag-add.svg b/static/admin/img/tooltag-add.svg new file mode 100644 index 00000000..1ca64ae5 --- /dev/null +++ b/static/admin/img/tooltag-add.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/img/tooltag-arrowright.svg b/static/admin/img/tooltag-arrowright.svg new file mode 100644 index 00000000..b664d619 --- /dev/null +++ b/static/admin/img/tooltag-arrowright.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/admin/js/SelectBox.js b/static/admin/js/SelectBox.js new file mode 100644 index 00000000..2073f03d --- /dev/null +++ b/static/admin/js/SelectBox.js @@ -0,0 +1,144 @@ +(function($) { + 'use strict'; + var SelectBox = { + cache: {}, + init: function(id) { + var box = document.getElementById(id); + var node; + SelectBox.cache[id] = []; + var cache = SelectBox.cache[id]; + var boxOptions = box.options; + var boxOptionsLength = boxOptions.length; + for (var i = 0, j = boxOptionsLength; i < j; i++) { + node = boxOptions[i]; + cache.push({value: node.value, text: node.text, displayed: 1}); + } + }, + redisplay: function(id) { + // Repopulate HTML select box from cache + var box = document.getElementById(id); + var node; + $(box).empty(); // clear all options + var new_options = box.outerHTML.slice(0, -9); // grab just the opening tag + var cache = SelectBox.cache[id]; + for (var i = 0, j = cache.length; i < j; i++) { + node = cache[i]; + if (node.displayed) { + var new_option = new Option(node.text, node.value, false, false); + // Shows a tooltip when hovering over the option + new_option.setAttribute("title", node.text); + new_options += new_option.outerHTML; + } + } + new_options += ''; + box.outerHTML = new_options; + }, + filter: function(id, text) { + // Redisplay the HTML select box, displaying only the choices containing ALL + // the words in text. (It's an AND search.) + var tokens = text.toLowerCase().split(/\s+/); + var node, token; + var cache = SelectBox.cache[id]; + for (var i = 0, j = cache.length; i < j; i++) { + node = cache[i]; + node.displayed = 1; + var node_text = node.text.toLowerCase(); + var numTokens = tokens.length; + for (var k = 0; k < numTokens; k++) { + token = tokens[k]; + if (node_text.indexOf(token) === -1) { + node.displayed = 0; + break; // Once the first token isn't found we're done + } + } + } + SelectBox.redisplay(id); + }, + delete_from_cache: function(id, value) { + var node, delete_index = null; + var cache = SelectBox.cache[id]; + for (var i = 0, j = cache.length; i < j; i++) { + node = cache[i]; + if (node.value === value) { + delete_index = i; + break; + } + } + cache.splice(delete_index, 1); + }, + add_to_cache: function(id, option) { + SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); + }, + cache_contains: function(id, value) { + // Check if an item is contained in the cache + var node; + var cache = SelectBox.cache[id]; + for (var i = 0, j = cache.length; i < j; i++) { + node = cache[i]; + if (node.value === value) { + return true; + } + } + return false; + }, + move: function(from, to) { + var from_box = document.getElementById(from); + var option; + var boxOptions = from_box.options; + var boxOptionsLength = boxOptions.length; + for (var i = 0, j = boxOptionsLength; i < j; i++) { + option = boxOptions[i]; + var option_value = option.value; + if (option.selected && SelectBox.cache_contains(from, option_value)) { + SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option_value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + move_all: function(from, to) { + var from_box = document.getElementById(from); + var option; + var boxOptions = from_box.options; + var boxOptionsLength = boxOptions.length; + for (var i = 0, j = boxOptionsLength; i < j; i++) { + option = boxOptions[i]; + var option_value = option.value; + if (SelectBox.cache_contains(from, option_value)) { + SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option_value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + sort: function(id) { + SelectBox.cache[id].sort(function(a, b) { + a = a.text.toLowerCase(); + b = b.text.toLowerCase(); + try { + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + } + catch (e) { + // silently fail on IE 'unknown' exception + } + return 0; + } ); + }, + select_all: function(id) { + var box = document.getElementById(id); + var boxOptions = box.options; + var boxOptionsLength = boxOptions.length; + for (var i = 0; i < boxOptionsLength; i++) { + boxOptions[i].selected = 'selected'; + } + } + }; + window.SelectBox = SelectBox; +})(django.jQuery); diff --git a/static/admin/js/SelectFilter2.js b/static/admin/js/SelectFilter2.js new file mode 100644 index 00000000..46056b8d --- /dev/null +++ b/static/admin/js/SelectFilter2.js @@ -0,0 +1,246 @@ +/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/ +/* +SelectFilter2 - Turns a multiple-select box into a filter interface. + +Requires jQuery, core.js, and SelectBox.js. +*/ +(function($) { + 'use strict'; + function findForm(node) { + // returns the node of the form containing the given node + if (node.tagName.toLowerCase() !== 'form') { + return findForm(node.parentNode); + } + return node; + } + + window.SelectFilter = { + init: function(field_id, field_name, is_stacked) { + if (field_id.match(/__prefix__/)) { + // Don't initialize on empty forms. + return; + } + var from_box = document.getElementById(field_id); + from_box.id += '_from'; // change its ID + from_box.className = 'filtered'; + + var ps = from_box.parentNode.getElementsByTagName('p'); + for (var i = 0; i < ps.length; i++) { + if (ps[i].className.indexOf("info") !== -1) { + // Remove

, because it just gets in the way. + from_box.parentNode.removeChild(ps[i]); + } else if (ps[i].className.indexOf("help") !== -1) { + // Move help text up to the top so it isn't below the select + // boxes or wrapped off on the side to the right of the add + // button: + from_box.parentNode.insertBefore(ps[i], from_box.parentNode.firstChild); + } + } + + //

or
+ var selector_div = quickElement('div', from_box.parentNode); + selector_div.className = is_stacked ? 'selector stacked' : 'selector'; + + //
+ var selector_available = quickElement('div', selector_div); + selector_available.className = 'selector-available'; + var title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name])); + quickElement( + 'span', title_available, '', + 'class', 'help help-tooltip help-icon', + 'title', interpolate( + gettext( + 'This is the list of available %s. You may choose some by ' + + 'selecting them in the box below and then clicking the ' + + '"Choose" arrow between the two boxes.' + ), + [field_name] + ) + ); + + var filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter'); + filter_p.className = 'selector-filter'; + + var search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input'); + + quickElement( + 'span', search_filter_label, '', + 'class', 'help-tooltip search-label-icon', + 'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name]) + ); + + filter_p.appendChild(document.createTextNode(' ')); + + var filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter")); + filter_input.id = field_id + '_input'; + + selector_available.appendChild(from_box); + var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_add_all_link'); + choose_all.className = 'selector-chooseall'; + + //
    + var selector_chooser = quickElement('ul', selector_div); + selector_chooser.className = 'selector-chooser'; + var add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', '#', 'id', field_id + '_add_link'); + add_link.className = 'selector-add'; + var remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', '#', 'id', field_id + '_remove_link'); + remove_link.className = 'selector-remove'; + + //
    + var selector_chosen = quickElement('div', selector_div); + selector_chosen.className = 'selector-chosen'; + var title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name])); + quickElement( + 'span', title_chosen, '', + 'class', 'help help-tooltip help-icon', + 'title', interpolate( + gettext( + 'This is the list of chosen %s. You may remove some by ' + + 'selecting them in the box below and then clicking the ' + + '"Remove" arrow between the two boxes.' + ), + [field_name] + ) + ); + + var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name')); + to_box.className = 'filtered'; + var clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link'); + clear_all.className = 'selector-clearall'; + + from_box.setAttribute('name', from_box.getAttribute('name') + '_old'); + + // Set up the JavaScript event handlers for the select box filter interface + var move_selection = function(e, elem, move_func, from, to) { + if (elem.className.indexOf('active') !== -1) { + move_func(from, to); + SelectFilter.refresh_icons(field_id); + } + e.preventDefault(); + }; + choose_all.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move_all, field_id + '_from', field_id + '_to'); + }); + add_link.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move, field_id + '_from', field_id + '_to'); + }); + remove_link.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move, field_id + '_to', field_id + '_from'); + }); + clear_all.addEventListener('click', function(e) { + move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from'); + }); + filter_input.addEventListener('keypress', function(e) { + SelectFilter.filter_key_press(e, field_id); + }); + filter_input.addEventListener('keyup', function(e) { + SelectFilter.filter_key_up(e, field_id); + }); + filter_input.addEventListener('keydown', function(e) { + SelectFilter.filter_key_down(e, field_id); + }); + selector_div.addEventListener('change', function(e) { + if (e.target.tagName === 'SELECT') { + SelectFilter.refresh_icons(field_id); + } + }); + selector_div.addEventListener('dblclick', function(e) { + if (e.target.tagName === 'OPTION') { + if (e.target.closest('select').id === field_id + '_to') { + SelectBox.move(field_id + '_to', field_id + '_from'); + } else { + SelectBox.move(field_id + '_from', field_id + '_to'); + } + SelectFilter.refresh_icons(field_id); + } + }); + findForm(from_box).addEventListener('submit', function() { + SelectBox.select_all(field_id + '_to'); + }); + SelectBox.init(field_id + '_from'); + SelectBox.init(field_id + '_to'); + // Move selected from_box options to to_box + SelectBox.move(field_id + '_from', field_id + '_to'); + + if (!is_stacked) { + // In horizontal mode, give the same height to the two boxes. + var j_from_box = $('#' + field_id + '_from'); + var j_to_box = $('#' + field_id + '_to'); + j_to_box.height($(filter_p).outerHeight() + j_from_box.outerHeight()); + } + + // Initial icon refresh + SelectFilter.refresh_icons(field_id); + }, + any_selected: function(field) { + var any_selected = false; + try { + // Temporarily add the required attribute and check validity. + // This is much faster in WebKit browsers than the fallback. + field.attr('required', 'required'); + any_selected = field.is(':valid'); + } catch (e) { + // Browsers that don't support :valid (IE < 10) + any_selected = field.find('option:selected').length > 0; + } + field.removeAttr('required'); + return any_selected; + }, + refresh_icons: function(field_id) { + var from = $('#' + field_id + '_from'); + var to = $('#' + field_id + '_to'); + // Active if at least one item is selected + $('#' + field_id + '_add_link').toggleClass('active', SelectFilter.any_selected(from)); + $('#' + field_id + '_remove_link').toggleClass('active', SelectFilter.any_selected(to)); + // Active if the corresponding box isn't empty + $('#' + field_id + '_add_all_link').toggleClass('active', from.find('option').length > 0); + $('#' + field_id + '_remove_all_link').toggleClass('active', to.find('option').length > 0); + }, + filter_key_press: function(event, field_id) { + var from = document.getElementById(field_id + '_from'); + // don't submit form if user pressed Enter + if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) { + from.selectedIndex = 0; + SelectBox.move(field_id + '_from', field_id + '_to'); + from.selectedIndex = 0; + event.preventDefault(); + return false; + } + }, + filter_key_up: function(event, field_id) { + var from = document.getElementById(field_id + '_from'); + var temp = from.selectedIndex; + SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value); + from.selectedIndex = temp; + return true; + }, + filter_key_down: function(event, field_id) { + var from = document.getElementById(field_id + '_from'); + // right arrow -- move across + if ((event.which && event.which === 39) || (event.keyCode && event.keyCode === 39)) { + var old_index = from.selectedIndex; + SelectBox.move(field_id + '_from', field_id + '_to'); + from.selectedIndex = (old_index === from.length) ? from.length - 1 : old_index; + return false; + } + // down arrow -- wrap around + if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) { + from.selectedIndex = (from.length === from.selectedIndex + 1) ? 0 : from.selectedIndex + 1; + } + // up arrow -- wrap around + if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) { + from.selectedIndex = (from.selectedIndex === 0) ? from.length - 1 : from.selectedIndex - 1; + } + return true; + } + }; + + window.addEventListener('load', function(e) { + $('select.selectfilter, select.selectfilterstacked').each(function() { + var $el = $(this), + data = $el.data(); + SelectFilter.init($el.attr('id'), data.fieldName, parseInt(data.isStacked, 10)); + }); + }); + +})(django.jQuery); diff --git a/static/admin/js/actions.js b/static/admin/js/actions.js new file mode 100644 index 00000000..27c60a6e --- /dev/null +++ b/static/admin/js/actions.js @@ -0,0 +1,153 @@ +/*global gettext, interpolate, ngettext*/ +(function($) { + 'use strict'; + var lastChecked; + + $.fn.actions = function(opts) { + var options = $.extend({}, $.fn.actions.defaults, opts); + var actionCheckboxes = $(this); + var list_editable_changed = false; + var showQuestion = function() { + $(options.acrossClears).hide(); + $(options.acrossQuestions).show(); + $(options.allContainer).hide(); + }, + showClear = function() { + $(options.acrossClears).show(); + $(options.acrossQuestions).hide(); + $(options.actionContainer).toggleClass(options.selectedClass); + $(options.allContainer).show(); + $(options.counterContainer).hide(); + }, + reset = function() { + $(options.acrossClears).hide(); + $(options.acrossQuestions).hide(); + $(options.allContainer).hide(); + $(options.counterContainer).show(); + }, + clearAcross = function() { + reset(); + $(options.acrossInput).val(0); + $(options.actionContainer).removeClass(options.selectedClass); + }, + checker = function(checked) { + if (checked) { + showQuestion(); + } else { + reset(); + } + $(actionCheckboxes).prop("checked", checked) + .parent().parent().toggleClass(options.selectedClass, checked); + }, + updateCounter = function() { + var sel = $(actionCheckboxes).filter(":checked").length; + // data-actions-icnt is defined in the generated HTML + // and contains the total amount of objects in the queryset + var actions_icnt = $('.action-counter').data('actionsIcnt'); + $(options.counterContainer).html(interpolate( + ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), { + sel: sel, + cnt: actions_icnt + }, true)); + $(options.allToggle).prop("checked", function() { + var value; + if (sel === actionCheckboxes.length) { + value = true; + showQuestion(); + } else { + value = false; + clearAcross(); + } + return value; + }); + }; + // Show counter by default + $(options.counterContainer).show(); + // Check state of checkboxes and reinit state if needed + $(this).filter(":checked").each(function(i) { + $(this).parent().parent().toggleClass(options.selectedClass); + updateCounter(); + if ($(options.acrossInput).val() === 1) { + showClear(); + } + }); + $(options.allToggle).show().on('click', function() { + checker($(this).prop("checked")); + updateCounter(); + }); + $("a", options.acrossQuestions).on('click', function(event) { + event.preventDefault(); + $(options.acrossInput).val(1); + showClear(); + }); + $("a", options.acrossClears).on('click', function(event) { + event.preventDefault(); + $(options.allToggle).prop("checked", false); + clearAcross(); + checker(0); + updateCounter(); + }); + lastChecked = null; + $(actionCheckboxes).on('click', function(event) { + if (!event) { event = window.event; } + var target = event.target ? event.target : event.srcElement; + if (lastChecked && $.data(lastChecked) !== $.data(target) && event.shiftKey === true) { + var inrange = false; + $(lastChecked).prop("checked", target.checked) + .parent().parent().toggleClass(options.selectedClass, target.checked); + $(actionCheckboxes).each(function() { + if ($.data(this) === $.data(lastChecked) || $.data(this) === $.data(target)) { + inrange = (inrange) ? false : true; + } + if (inrange) { + $(this).prop("checked", target.checked) + .parent().parent().toggleClass(options.selectedClass, target.checked); + } + }); + } + $(target).parent().parent().toggleClass(options.selectedClass, target.checked); + lastChecked = target; + updateCounter(); + }); + $('form#changelist-form table#result_list tr').on('change', 'td:gt(0) :input', function() { + list_editable_changed = true; + }); + $('form#changelist-form button[name="index"]').on('click', function(event) { + if (list_editable_changed) { + return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost.")); + } + }); + $('form#changelist-form input[name="_save"]').on('click', function(event) { + var action_changed = false; + $('select option:selected', options.actionContainer).each(function() { + if ($(this).val()) { + action_changed = true; + } + }); + if (action_changed) { + if (list_editable_changed) { + return confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")); + } else { + return confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button.")); + } + } + }); + }; + /* Setup plugin defaults */ + $.fn.actions.defaults = { + actionContainer: "div.actions", + counterContainer: "span.action-counter", + allContainer: "div.actions span.all", + acrossInput: "div.actions input.select-across", + acrossQuestions: "div.actions span.question", + acrossClears: "div.actions span.clear", + allToggle: "#action-toggle", + selectedClass: "selected" + }; + $(document).ready(function() { + var $actionsEls = $('tr input.action-select'); + if ($actionsEls.length > 0) { + $actionsEls.actions(); + } + }); +})(django.jQuery); diff --git a/static/admin/js/actions.min.js b/static/admin/js/actions.min.js new file mode 100644 index 00000000..31e83c1f --- /dev/null +++ b/static/admin/js/actions.min.js @@ -0,0 +1,7 @@ +(function(a){var f;a.fn.actions=function(e){var b=a.extend({},a.fn.actions.defaults,e),g=a(this),k=!1,l=function(){a(b.acrossClears).hide();a(b.acrossQuestions).show();a(b.allContainer).hide()},m=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()},n=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()},p=function(){n(); +a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)},q=function(c){c?l():n();a(g).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){var c=a(g).filter(":checked").length,d=a(".action-counter").data("actionsIcnt");a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:d},!0));a(b.allToggle).prop("checked",function(){if(c===g.length){var a=!0;l()}else a=!1,p();return a})};a(b.counterContainer).show(); +a(this).filter(":checked").each(function(c){a(this).parent().parent().toggleClass(b.selectedClass);h();1===a(b.acrossInput).val()&&m()});a(b.allToggle).show().on("click",function(){q(a(this).prop("checked"));h()});a("a",b.acrossQuestions).on("click",function(c){c.preventDefault();a(b.acrossInput).val(1);m()});a("a",b.acrossClears).on("click",function(c){c.preventDefault();a(b.allToggle).prop("checked",!1);p();q(0);h()});f=null;a(g).on("click",function(c){c||(c=window.event);var d=c.target?c.target: +c.srcElement;if(f&&a.data(f)!==a.data(d)&&!0===c.shiftKey){var e=!1;a(f).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked);a(g).each(function(){if(a.data(this)===a.data(f)||a.data(this)===a.data(d))e=e?!1:!0;e&&a(this).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);f=d;h()});a("form#changelist-form table#result_list tr").on("change","td:gt(0) :input",function(){k=!0}); +a('form#changelist-form button[name="index"]').on("click",function(a){if(k)return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."))});a('form#changelist-form input[name="_save"]').on("click",function(c){var d=!1;a("select option:selected",b.actionContainer).each(function(){a(this).val()&&(d=!0)});if(d)return k?confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")): +confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button."))})};a.fn.actions.defaults={actionContainer:"div.actions",counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"};a(document).ready(function(){var e= +a("tr input.action-select");0 +// +(function() { + 'use strict'; + var DateTimeShortcuts = { + calendars: [], + calendarInputs: [], + clockInputs: [], + clockHours: { + default_: [ + [gettext_noop('Now'), -1], + [gettext_noop('Midnight'), 0], + [gettext_noop('6 a.m.'), 6], + [gettext_noop('Noon'), 12], + [gettext_noop('6 p.m.'), 18] + ] + }, + dismissClockFunc: [], + dismissCalendarFunc: [], + calendarDivName1: 'calendarbox', // name of calendar
    that gets toggled + calendarDivName2: 'calendarin', // name of
    that contains calendar + calendarLinkName: 'calendarlink', // name of the link that is used to toggle + clockDivName: 'clockbox', // name of clock
    that gets toggled + clockLinkName: 'clocklink', // name of the link that is used to toggle + shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts + timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch + timezoneOffset: 0, + init: function() { + var body = document.getElementsByTagName('body')[0]; + var serverOffset = body.getAttribute('data-admin-utc-offset'); + if (serverOffset) { + var localOffset = new Date().getTimezoneOffset() * -60; + DateTimeShortcuts.timezoneOffset = localOffset - serverOffset; + } + + var inputs = document.getElementsByTagName('input'); + for (var i = 0; i < inputs.length; i++) { + var inp = inputs[i]; + if (inp.getAttribute('type') === 'text' && inp.className.match(/vTimeField/)) { + DateTimeShortcuts.addClock(inp); + DateTimeShortcuts.addTimezoneWarning(inp); + } + else if (inp.getAttribute('type') === 'text' && inp.className.match(/vDateField/)) { + DateTimeShortcuts.addCalendar(inp); + DateTimeShortcuts.addTimezoneWarning(inp); + } + } + }, + // Return the current time while accounting for the server timezone. + now: function() { + var body = document.getElementsByTagName('body')[0]; + var serverOffset = body.getAttribute('data-admin-utc-offset'); + if (serverOffset) { + var localNow = new Date(); + var localOffset = localNow.getTimezoneOffset() * -60; + localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset)); + return localNow; + } else { + return new Date(); + } + }, + // Add a warning when the time zone in the browser and backend do not match. + addTimezoneWarning: function(inp) { + var warningClass = DateTimeShortcuts.timezoneWarningClass; + var timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600; + + // Only warn if there is a time zone mismatch. + if (!timezoneOffset) { + return; + } + + // Check if warning is already there. + if (inp.parentNode.querySelectorAll('.' + warningClass).length) { + return; + } + + var message; + if (timezoneOffset > 0) { + message = ngettext( + 'Note: You are %s hour ahead of server time.', + 'Note: You are %s hours ahead of server time.', + timezoneOffset + ); + } + else { + timezoneOffset *= -1; + message = ngettext( + 'Note: You are %s hour behind server time.', + 'Note: You are %s hours behind server time.', + timezoneOffset + ); + } + message = interpolate(message, [timezoneOffset]); + + var warning = document.createElement('span'); + warning.className = warningClass; + warning.textContent = message; + inp.parentNode.appendChild(document.createElement('br')); + inp.parentNode.appendChild(warning); + }, + // Add clock widget to a given field + addClock: function(inp) { + var num = DateTimeShortcuts.clockInputs.length; + DateTimeShortcuts.clockInputs[num] = inp; + DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; }; + + // Shortcut links (clock icon and "Now" link) + var shortcuts_span = document.createElement('span'); + shortcuts_span.className = DateTimeShortcuts.shortCutsClass; + inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); + var now_link = document.createElement('a'); + now_link.setAttribute('href', "#"); + now_link.textContent = gettext('Now'); + now_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleClockQuicklink(num, -1); + }); + var clock_link = document.createElement('a'); + clock_link.setAttribute('href', '#'); + clock_link.id = DateTimeShortcuts.clockLinkName + num; + clock_link.addEventListener('click', function(e) { + e.preventDefault(); + // avoid triggering the document click handler to dismiss the clock + e.stopPropagation(); + DateTimeShortcuts.openClock(num); + }); + + quickElement( + 'span', clock_link, '', + 'class', 'clock-icon', + 'title', gettext('Choose a Time') + ); + shortcuts_span.appendChild(document.createTextNode('\u00A0')); + shortcuts_span.appendChild(now_link); + shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); + shortcuts_span.appendChild(clock_link); + + // Create clock link div + // + // Markup looks like: + // + + var clock_box = document.createElement('div'); + clock_box.style.display = 'none'; + clock_box.style.position = 'absolute'; + clock_box.className = 'clockbox module'; + clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num); + document.body.appendChild(clock_box); + clock_box.addEventListener('click', function(e) { e.stopPropagation(); }); + + quickElement('h2', clock_box, gettext('Choose a time')); + var time_list = quickElement('ul', clock_box); + time_list.className = 'timelist'; + // The list of choices can be overridden in JavaScript like this: + // DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]]; + // where name is the name attribute of the . + var name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name; + DateTimeShortcuts.clockHours[name].forEach(function(element) { + var time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#'); + time_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleClockQuicklink(num, element[1]); + }); + }); + + var cancel_p = quickElement('p', clock_box); + cancel_p.className = 'calendar-cancel'; + var cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); + cancel_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.dismissClock(num); + }); + + document.addEventListener('keyup', function(event) { + if (event.which === 27) { + // ESC key closes popup + DateTimeShortcuts.dismissClock(num); + event.preventDefault(); + } + }); + }, + openClock: function(num) { + var clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num); + var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num); + + // Recalculate the clockbox position + // is it left-to-right or right-to-left layout ? + if (window.getComputedStyle(document.body).direction !== 'rtl') { + clock_box.style.left = findPosX(clock_link) + 17 + 'px'; + } + else { + // since style's width is in em, it'd be tough to calculate + // px value of it. let's use an estimated px for now + // TODO: IE returns wrong value for findPosX when in rtl mode + // (it returns as it was left aligned), needs to be fixed. + clock_box.style.left = findPosX(clock_link) - 110 + 'px'; + } + clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px'; + + // Show the clock box + clock_box.style.display = 'block'; + document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); + }, + dismissClock: function(num) { + document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none'; + document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); + }, + handleClockQuicklink: function(num, val) { + var d; + if (val === -1) { + d = DateTimeShortcuts.now(); + } + else { + d = new Date(1970, 1, 1, val, 0, 0, 0); + } + DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]); + DateTimeShortcuts.clockInputs[num].focus(); + DateTimeShortcuts.dismissClock(num); + }, + // Add calendar widget to a given field. + addCalendar: function(inp) { + var num = DateTimeShortcuts.calendars.length; + + DateTimeShortcuts.calendarInputs[num] = inp; + DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; }; + + // Shortcut links (calendar icon and "Today" link) + var shortcuts_span = document.createElement('span'); + shortcuts_span.className = DateTimeShortcuts.shortCutsClass; + inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); + var today_link = document.createElement('a'); + today_link.setAttribute('href', '#'); + today_link.appendChild(document.createTextNode(gettext('Today'))); + today_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, 0); + }); + var cal_link = document.createElement('a'); + cal_link.setAttribute('href', '#'); + cal_link.id = DateTimeShortcuts.calendarLinkName + num; + cal_link.addEventListener('click', function(e) { + e.preventDefault(); + // avoid triggering the document click handler to dismiss the calendar + e.stopPropagation(); + DateTimeShortcuts.openCalendar(num); + }); + quickElement( + 'span', cal_link, '', + 'class', 'date-icon', + 'title', gettext('Choose a Date') + ); + shortcuts_span.appendChild(document.createTextNode('\u00A0')); + shortcuts_span.appendChild(today_link); + shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); + shortcuts_span.appendChild(cal_link); + + // Create calendarbox div. + // + // Markup looks like: + // + //
    + //

    + // + // February 2003 + //

    + //
    + // + //
    + //
    + // Yesterday | Today | Tomorrow + //
    + //

    Cancel

    + //
    + var cal_box = document.createElement('div'); + cal_box.style.display = 'none'; + cal_box.style.position = 'absolute'; + cal_box.className = 'calendarbox module'; + cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num); + document.body.appendChild(cal_box); + cal_box.addEventListener('click', function(e) { e.stopPropagation(); }); + + // next-prev links + var cal_nav = quickElement('div', cal_box); + var cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#'); + cal_nav_prev.className = 'calendarnav-previous'; + cal_nav_prev.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.drawPrev(num); + }); + + var cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#'); + cal_nav_next.className = 'calendarnav-next'; + cal_nav_next.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.drawNext(num); + }); + + // main box + var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num); + cal_main.className = 'calendar'; + DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num)); + DateTimeShortcuts.calendars[num].drawCurrent(); + + // calendar shortcuts + var shortcuts = quickElement('div', cal_box); + shortcuts.className = 'calendar-shortcuts'; + var day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, -1); + }); + shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); + day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, 0); + }); + shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); + day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#'); + day_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.handleCalendarQuickLink(num, +1); + }); + + // cancel bar + var cancel_p = quickElement('p', cal_box); + cancel_p.className = 'calendar-cancel'; + var cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); + cancel_link.addEventListener('click', function(e) { + e.preventDefault(); + DateTimeShortcuts.dismissCalendar(num); + }); + document.addEventListener('keyup', function(event) { + if (event.which === 27) { + // ESC key closes popup + DateTimeShortcuts.dismissCalendar(num); + event.preventDefault(); + } + }); + }, + openCalendar: function(num) { + var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num); + var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num); + var inp = DateTimeShortcuts.calendarInputs[num]; + + // Determine if the current value in the input has a valid date. + // If so, draw the calendar with that date's year and month. + if (inp.value) { + var format = get_format('DATE_INPUT_FORMATS')[0]; + var selected = inp.value.strptime(format); + var year = selected.getUTCFullYear(); + var month = selected.getUTCMonth() + 1; + var re = /\d{4}/; + if (re.test(year.toString()) && month >= 1 && month <= 12) { + DateTimeShortcuts.calendars[num].drawDate(month, year, selected); + } + } + + // Recalculate the clockbox position + // is it left-to-right or right-to-left layout ? + if (window.getComputedStyle(document.body).direction !== 'rtl') { + cal_box.style.left = findPosX(cal_link) + 17 + 'px'; + } + else { + // since style's width is in em, it'd be tough to calculate + // px value of it. let's use an estimated px for now + // TODO: IE returns wrong value for findPosX when in rtl mode + // (it returns as it was left aligned), needs to be fixed. + cal_box.style.left = findPosX(cal_link) - 180 + 'px'; + } + cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px'; + + cal_box.style.display = 'block'; + document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); + }, + dismissCalendar: function(num) { + document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; + document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); + }, + drawPrev: function(num) { + DateTimeShortcuts.calendars[num].drawPreviousMonth(); + }, + drawNext: function(num) { + DateTimeShortcuts.calendars[num].drawNextMonth(); + }, + handleCalendarCallback: function(num) { + var format = get_format('DATE_INPUT_FORMATS')[0]; + // the format needs to be escaped a little + format = format.replace('\\', '\\\\') + .replace('\r', '\\r') + .replace('\n', '\\n') + .replace('\t', '\\t') + .replace("'", "\\'"); + return function(y, m, d) { + DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); + DateTimeShortcuts.calendarInputs[num].focus(); + document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; + }; + }, + handleCalendarQuickLink: function(num, offset) { + var d = DateTimeShortcuts.now(); + d.setDate(d.getDate() + offset); + DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]); + DateTimeShortcuts.calendarInputs[num].focus(); + DateTimeShortcuts.dismissCalendar(num); + } + }; + + window.addEventListener('load', DateTimeShortcuts.init); + window.DateTimeShortcuts = DateTimeShortcuts; +})(); diff --git a/static/admin/js/admin/RelatedObjectLookups.js b/static/admin/js/admin/RelatedObjectLookups.js new file mode 100644 index 00000000..f4c57c40 --- /dev/null +++ b/static/admin/js/admin/RelatedObjectLookups.js @@ -0,0 +1,181 @@ +/*global SelectBox, interpolate*/ +// Handles related-objects functionality: lookup link for raw_id_fields +// and Add Another links. + +(function($) { + 'use strict'; + + // IE doesn't accept periods or dashes in the window name, but the element IDs + // we use to generate popup window names may contain them, therefore we map them + // to allowed characters in a reversible way so that we can locate the correct + // element when the popup window is dismissed. + function id_to_windowname(text) { + text = text.replace(/\./g, '__dot__'); + text = text.replace(/\-/g, '__dash__'); + return text; + } + + function windowname_to_id(text) { + text = text.replace(/__dot__/g, '.'); + text = text.replace(/__dash__/g, '-'); + return text; + } + + function showAdminPopup(triggeringLink, name_regexp, add_popup) { + var name = triggeringLink.id.replace(name_regexp, ''); + name = id_to_windowname(name); + var href = triggeringLink.href; + if (add_popup) { + if (href.indexOf('?') === -1) { + href += '?_popup=1'; + } else { + href += '&_popup=1'; + } + } + var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + win.focus(); + return false; + } + + function showRelatedObjectLookupPopup(triggeringLink) { + return showAdminPopup(triggeringLink, /^lookup_/, true); + } + + function dismissRelatedLookupPopup(win, chosenId) { + var name = windowname_to_id(win.name); + var elem = document.getElementById(name); + if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) { + elem.value += ',' + chosenId; + } else { + document.getElementById(name).value = chosenId; + } + win.close(); + } + + function showRelatedObjectPopup(triggeringLink) { + return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false); + } + + function updateRelatedObjectLinks(triggeringLink) { + var $this = $(triggeringLink); + var siblings = $this.nextAll('.view-related, .change-related, .delete-related'); + if (!siblings.length) { + return; + } + var value = $this.val(); + if (value) { + siblings.each(function() { + var elm = $(this); + elm.attr('href', elm.attr('data-href-template').replace('__fk__', value)); + }); + } else { + siblings.removeAttr('href'); + } + } + + function dismissAddRelatedObjectPopup(win, newId, newRepr) { + var name = windowname_to_id(win.name); + var elem = document.getElementById(name); + if (elem) { + var elemName = elem.nodeName.toUpperCase(); + if (elemName === 'SELECT') { + elem.options[elem.options.length] = new Option(newRepr, newId, true, true); + } else if (elemName === 'INPUT') { + if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) { + elem.value += ',' + newId; + } else { + elem.value = newId; + } + } + // Trigger a change event to update related links if required. + $(elem).trigger('change'); + } else { + var toId = name + "_to"; + var o = new Option(newRepr, newId); + SelectBox.add_to_cache(toId, o); + SelectBox.redisplay(toId); + } + win.close(); + } + + function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { + var id = windowname_to_id(win.name).replace(/^edit_/, ''); + var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); + var selects = $(selectsSelector); + selects.find('option').each(function() { + if (this.value === objId) { + this.textContent = newRepr; + this.value = newId; + } + }); + selects.next().find('.select2-selection__rendered').each(function() { + // The element can have a clear button as a child. + // Use the lastChild to modify only the displayed value. + this.lastChild.textContent = newRepr; + this.title = newRepr; + }); + win.close(); + } + + function dismissDeleteRelatedObjectPopup(win, objId) { + var id = windowname_to_id(win.name).replace(/^delete_/, ''); + var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); + var selects = $(selectsSelector); + selects.find('option').each(function() { + if (this.value === objId) { + $(this).remove(); + } + }).trigger('change'); + win.close(); + } + + // Global for testing purposes + window.id_to_windowname = id_to_windowname; + window.windowname_to_id = windowname_to_id; + + window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup; + window.dismissRelatedLookupPopup = dismissRelatedLookupPopup; + window.showRelatedObjectPopup = showRelatedObjectPopup; + window.updateRelatedObjectLinks = updateRelatedObjectLinks; + window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; + window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; + window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; + + // Kept for backward compatibility + window.showAddAnotherPopup = showRelatedObjectPopup; + window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; + + $(document).ready(function() { + $("a[data-popup-opener]").on('click', function(event) { + event.preventDefault(); + opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener")); + }); + $('body').on('click', '.related-widget-wrapper-link', function(e) { + e.preventDefault(); + if (this.href) { + var event = $.Event('django:show-related', {href: this.href}); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + showRelatedObjectPopup(this); + } + } + }); + $('body').on('change', '.related-widget-wrapper select', function(e) { + var event = $.Event('django:update-related'); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + updateRelatedObjectLinks(this); + } + }); + $('.related-widget-wrapper select').trigger('change'); + $('body').on('click', '.related-lookup', function(e) { + e.preventDefault(); + var event = $.Event('django:lookup-related'); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + showRelatedObjectLookupPopup(this); + } + }); + }); + +})(django.jQuery); diff --git a/static/admin/js/autocomplete.js b/static/admin/js/autocomplete.js new file mode 100644 index 00000000..65c0702d --- /dev/null +++ b/static/admin/js/autocomplete.js @@ -0,0 +1,37 @@ +(function($) { + 'use strict'; + var init = function($element, options) { + var settings = $.extend({ + ajax: { + data: function(params) { + return { + term: params.term, + page: params.page + }; + } + } + }, options); + $element.select2(settings); + }; + + $.fn.djangoAdminSelect2 = function(options) { + var settings = $.extend({}, options); + $.each(this, function(i, element) { + var $element = $(element); + init($element, settings); + }); + return this; + }; + + $(function() { + // Initialize all autocomplete widgets except the one in the template + // form used when a new formset is added. + $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); + }); + + $(document).on('formset:added', (function() { + return function(event, $newFormset) { + return $newFormset.find('.admin-autocomplete').djangoAdminSelect2(); + }; + })(this)); +}(django.jQuery)); diff --git a/static/admin/js/calendar.js b/static/admin/js/calendar.js new file mode 100644 index 00000000..a4c047aa --- /dev/null +++ b/static/admin/js/calendar.js @@ -0,0 +1,208 @@ +/*global gettext, pgettext, get_format, quickElement, removeChildren*/ +/* +calendar.js - Calendar functions by Adrian Holovaty +depends on core.js for utility functions like removeChildren or quickElement +*/ + +(function() { + 'use strict'; + // CalendarNamespace -- Provides a collection of HTML calendar-related helper functions + var CalendarNamespace = { + monthsOfYear: [ + gettext('January'), + gettext('February'), + gettext('March'), + gettext('April'), + gettext('May'), + gettext('June'), + gettext('July'), + gettext('August'), + gettext('September'), + gettext('October'), + gettext('November'), + gettext('December') + ], + daysOfWeek: [ + pgettext('one letter Sunday', 'S'), + pgettext('one letter Monday', 'M'), + pgettext('one letter Tuesday', 'T'), + pgettext('one letter Wednesday', 'W'), + pgettext('one letter Thursday', 'T'), + pgettext('one letter Friday', 'F'), + pgettext('one letter Saturday', 'S') + ], + firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')), + isLeapYear: function(year) { + return (((year % 4) === 0) && ((year % 100) !== 0 ) || ((year % 400) === 0)); + }, + getDaysInMonth: function(month, year) { + var days; + if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) { + days = 31; + } + else if (month === 4 || month === 6 || month === 9 || month === 11) { + days = 30; + } + else if (month === 2 && CalendarNamespace.isLeapYear(year)) { + days = 29; + } + else { + days = 28; + } + return days; + }, + draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999 + var today = new Date(); + var todayDay = today.getDate(); + var todayMonth = today.getMonth() + 1; + var todayYear = today.getFullYear(); + var todayClass = ''; + + // Use UTC functions here because the date field does not contain time + // and using the UTC function variants prevent the local time offset + // from altering the date, specifically the day field. For example: + // + // ``` + // var x = new Date('2013-10-02'); + // var day = x.getDate(); + // ``` + // + // The day variable above will be 1 instead of 2 in, say, US Pacific time + // zone. + var isSelectedMonth = false; + if (typeof selected !== 'undefined') { + isSelectedMonth = (selected.getUTCFullYear() === year && (selected.getUTCMonth() + 1) === month); + } + + month = parseInt(month); + year = parseInt(year); + var calDiv = document.getElementById(div_id); + removeChildren(calDiv); + var calTable = document.createElement('table'); + quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month - 1] + ' ' + year); + var tableBody = quickElement('tbody', calTable); + + // Draw days-of-week header + var tableRow = quickElement('tr', tableBody); + for (var i = 0; i < 7; i++) { + quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]); + } + + var startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay(); + var days = CalendarNamespace.getDaysInMonth(month, year); + + var nonDayCell; + + // Draw blanks before first of month + tableRow = quickElement('tr', tableBody); + for (i = 0; i < startingPos; i++) { + nonDayCell = quickElement('td', tableRow, ' '); + nonDayCell.className = "nonday"; + } + + function calendarMonth(y, m) { + function onClick(e) { + e.preventDefault(); + callback(y, m, this.textContent); + } + return onClick; + } + + // Draw days of month + var currentDay = 1; + for (i = startingPos; currentDay <= days; i++) { + if (i % 7 === 0 && currentDay !== 1) { + tableRow = quickElement('tr', tableBody); + } + if ((currentDay === todayDay) && (month === todayMonth) && (year === todayYear)) { + todayClass = 'today'; + } else { + todayClass = ''; + } + + // use UTC function; see above for explanation. + if (isSelectedMonth && currentDay === selected.getUTCDate()) { + if (todayClass !== '') { + todayClass += " "; + } + todayClass += "selected"; + } + + var cell = quickElement('td', tableRow, '', 'class', todayClass); + var link = quickElement('a', cell, currentDay, 'href', '#'); + link.addEventListener('click', calendarMonth(year, month)); + currentDay++; + } + + // Draw blanks after end of month (optional, but makes for valid code) + while (tableRow.childNodes.length < 7) { + nonDayCell = quickElement('td', tableRow, ' '); + nonDayCell.className = "nonday"; + } + + calDiv.appendChild(calTable); + } + }; + + // Calendar -- A calendar instance + function Calendar(div_id, callback, selected) { + // div_id (string) is the ID of the element in which the calendar will + // be displayed + // callback (string) is the name of a JavaScript function that will be + // called with the parameters (year, month, day) when a day in the + // calendar is clicked + this.div_id = div_id; + this.callback = callback; + this.today = new Date(); + this.currentMonth = this.today.getMonth() + 1; + this.currentYear = this.today.getFullYear(); + if (typeof selected !== 'undefined') { + this.selected = selected; + } + } + Calendar.prototype = { + drawCurrent: function() { + CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected); + }, + drawDate: function(month, year, selected) { + this.currentMonth = month; + this.currentYear = year; + + if(selected) { + this.selected = selected; + } + + this.drawCurrent(); + }, + drawPreviousMonth: function() { + if (this.currentMonth === 1) { + this.currentMonth = 12; + this.currentYear--; + } + else { + this.currentMonth--; + } + this.drawCurrent(); + }, + drawNextMonth: function() { + if (this.currentMonth === 12) { + this.currentMonth = 1; + this.currentYear++; + } + else { + this.currentMonth++; + } + this.drawCurrent(); + }, + drawPreviousYear: function() { + this.currentYear--; + this.drawCurrent(); + }, + drawNextYear: function() { + this.currentYear++; + this.drawCurrent(); + } + }; + window.Calendar = Calendar; + window.CalendarNamespace = CalendarNamespace; +})(); diff --git a/static/admin/js/cancel.js b/static/admin/js/cancel.js new file mode 100644 index 00000000..8809ee77 --- /dev/null +++ b/static/admin/js/cancel.js @@ -0,0 +1,13 @@ +(function($) { + 'use strict'; + $(function() { + $('.cancel-link').on('click', function(e) { + e.preventDefault(); + if (window.location.search.indexOf('&_popup=1') === -1) { + window.history.back(); // Go back if not a popup. + } else { + window.close(); // Otherwise, close the popup. + } + }); + }); +})(django.jQuery); diff --git a/static/admin/js/change_form.js b/static/admin/js/change_form.js new file mode 100644 index 00000000..4797383b --- /dev/null +++ b/static/admin/js/change_form.js @@ -0,0 +1,20 @@ +/*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/ + +(function($) { + 'use strict'; + $(document).ready(function() { + var modelName = $('#django-admin-form-add-constants').data('modelName'); + $('body').on('click', '.add-another', function(e) { + e.preventDefault(); + var event = $.Event('django:add-another-related'); + $(this).trigger(event); + if (!event.isDefaultPrevented()) { + showAddAnotherPopup(this); + } + }); + + if (modelName) { + $('form#' + modelName + '_form :input:visible:enabled:first').focus(); + } + }); +})(django.jQuery); diff --git a/static/admin/js/collapse.js b/static/admin/js/collapse.js new file mode 100644 index 00000000..20e7030e --- /dev/null +++ b/static/admin/js/collapse.js @@ -0,0 +1,55 @@ +/*global gettext*/ +(function() { + 'use strict'; + var closestElem = function(elem, tagName) { + if (elem.nodeName === tagName.toUpperCase()) { + return elem; + } + if (elem.parentNode.nodeName === 'BODY') { + return null; + } + return elem.parentNode && closestElem(elem.parentNode, tagName); + }; + + window.addEventListener('load', function() { + // Add anchor tag for Show/Hide link + var fieldsets = document.querySelectorAll('fieldset.collapse'); + for (var i = 0; i < fieldsets.length; i++) { + var elem = fieldsets[i]; + // Don't hide if fields in this fieldset have errors + if (elem.querySelectorAll('div.errors').length === 0) { + elem.classList.add('collapsed'); + var h2 = elem.querySelector('h2'); + var link = document.createElement('a'); + link.setAttribute('id', 'fieldsetcollapser' + i); + link.setAttribute('class', 'collapse-toggle'); + link.setAttribute('href', '#'); + link.textContent = gettext('Show'); + h2.appendChild(document.createTextNode(' (')); + h2.appendChild(link); + h2.appendChild(document.createTextNode(')')); + } + } + // Add toggle to hide/show anchor tag + var toggleFunc = function(ev) { + if (ev.target.matches('.collapse-toggle')) { + ev.preventDefault(); + ev.stopPropagation(); + var fieldset = closestElem(ev.target, 'fieldset'); + if (fieldset.classList.contains('collapsed')) { + // Show + ev.target.textContent = gettext('Hide'); + fieldset.classList.remove('collapsed'); + } else { + // Hide + ev.target.textContent = gettext('Show'); + fieldset.classList.add('collapsed'); + } + } + }; + var inlineDivs = document.querySelectorAll('fieldset.module'); + for (i = 0; i < inlineDivs.length; i++) { + inlineDivs[i].addEventListener('click', toggleFunc); + } + }); +})(); diff --git a/static/admin/js/collapse.min.js b/static/admin/js/collapse.min.js new file mode 100644 index 00000000..9e16a21e --- /dev/null +++ b/static/admin/js/collapse.min.js @@ -0,0 +1,3 @@ +(function(){var e=function(b,a){return b.nodeName===a.toUpperCase()?b:"BODY"===b.parentNode.nodeName?null:b.parentNode&&e(b.parentNode,a)};window.addEventListener("load",function(){for(var b=document.querySelectorAll("fieldset.collapse"),a=0;a= 0) && parseFloat(navigator.appVersion); +var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]); + +// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]); +function quickElement() { + 'use strict'; + var obj = document.createElement(arguments[0]); + if (arguments[2]) { + var textNode = document.createTextNode(arguments[2]); + obj.appendChild(textNode); + } + var len = arguments.length; + for (var i = 3; i < len; i += 2) { + obj.setAttribute(arguments[i], arguments[i + 1]); + } + arguments[1].appendChild(obj); + return obj; +} + +// "a" is reference to an object +function removeChildren(a) { + 'use strict'; + while (a.hasChildNodes()) { + a.removeChild(a.lastChild); + } +} + +// ---------------------------------------------------------------------------- +// Find-position functions by PPK +// See https://www.quirksmode.org/js/findpos.html +// ---------------------------------------------------------------------------- +function findPosX(obj) { + 'use strict'; + var curleft = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft); + obj = obj.offsetParent; + } + // IE offsetParent does not include the top-level + if (isIE && obj.parentElement) { + curleft += obj.offsetLeft - obj.scrollLeft; + } + } else if (obj.x) { + curleft += obj.x; + } + return curleft; +} + +function findPosY(obj) { + 'use strict'; + var curtop = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop); + obj = obj.offsetParent; + } + // IE offsetParent does not include the top-level + if (isIE && obj.parentElement) { + curtop += obj.offsetTop - obj.scrollTop; + } + } else if (obj.y) { + curtop += obj.y; + } + return curtop; +} + +//----------------------------------------------------------------------------- +// Date object extensions +// ---------------------------------------------------------------------------- +(function() { + 'use strict'; + Date.prototype.getTwelveHours = function() { + return this.getHours() % 12 || 12; + }; + + Date.prototype.getTwoDigitMonth = function() { + return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1); + }; + + Date.prototype.getTwoDigitDate = function() { + return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); + }; + + Date.prototype.getTwoDigitTwelveHour = function() { + return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); + }; + + Date.prototype.getTwoDigitHour = function() { + return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); + }; + + Date.prototype.getTwoDigitMinute = function() { + return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); + }; + + Date.prototype.getTwoDigitSecond = function() { + return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); + }; + + Date.prototype.getFullMonthName = function() { + return typeof window.CalendarNamespace === "undefined" + ? this.getTwoDigitMonth() + : window.CalendarNamespace.monthsOfYear[this.getMonth()]; + }; + + Date.prototype.strftime = function(format) { + var fields = { + B: this.getFullMonthName(), + c: this.toString(), + d: this.getTwoDigitDate(), + H: this.getTwoDigitHour(), + I: this.getTwoDigitTwelveHour(), + m: this.getTwoDigitMonth(), + M: this.getTwoDigitMinute(), + p: (this.getHours() >= 12) ? 'PM' : 'AM', + S: this.getTwoDigitSecond(), + w: '0' + this.getDay(), + x: this.toLocaleDateString(), + X: this.toLocaleTimeString(), + y: ('' + this.getFullYear()).substr(2, 4), + Y: '' + this.getFullYear(), + '%': '%' + }; + var result = '', i = 0; + while (i < format.length) { + if (format.charAt(i) === '%') { + result = result + fields[format.charAt(i + 1)]; + ++i; + } + else { + result = result + format.charAt(i); + } + ++i; + } + return result; + }; + + // ---------------------------------------------------------------------------- + // String object extensions + // ---------------------------------------------------------------------------- + String.prototype.strptime = function(format) { + var split_format = format.split(/[.\-/]/); + var date = this.split(/[.\-/]/); + var i = 0; + var day, month, year; + while (i < split_format.length) { + switch (split_format[i]) { + case "%d": + day = date[i]; + break; + case "%m": + month = date[i] - 1; + break; + case "%Y": + year = date[i]; + break; + case "%y": + year = date[i]; + break; + } + ++i; + } + // Create Date object from UTC since the parsed value is supposed to be + // in UTC, not local time. Also, the calendar uses UTC functions for + // date extraction. + return new Date(Date.UTC(year, month, day)); + }; + +})(); diff --git a/static/admin/js/inlines.js b/static/admin/js/inlines.js new file mode 100644 index 00000000..ba8c9cd7 --- /dev/null +++ b/static/admin/js/inlines.js @@ -0,0 +1,298 @@ +/*global DateTimeShortcuts, SelectFilter*/ +/** + * Django admin inlines + * + * Based on jQuery Formset 1.1 + * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) + * @requires jQuery 1.2.6 or later + * + * Copyright (c) 2009, Stanislaus Madueke + * All rights reserved. + * + * Spiced up with Code from Zain Memon's GSoC project 2009 + * and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip. + * + * Licensed under the New BSD License + * See: https://opensource.org/licenses/bsd-license.php + */ +(function($) { + 'use strict'; + $.fn.formset = function(opts) { + var options = $.extend({}, $.fn.formset.defaults, opts); + var $this = $(this); + var $parent = $this.parent(); + var updateElementIndex = function(el, prefix, ndx) { + var id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))"); + var replacement = prefix + "-" + ndx; + if ($(el).prop("for")) { + $(el).prop("for", $(el).prop("for").replace(id_regex, replacement)); + } + if (el.id) { + el.id = el.id.replace(id_regex, replacement); + } + if (el.name) { + el.name = el.name.replace(id_regex, replacement); + } + }; + var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"); + var nextIndex = parseInt(totalForms.val(), 10); + var maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"); + // only show the add button if we are allowed to add more items, + // note that max_num = None translates to a blank string. + var showAddButton = maxForms.val() === '' || (maxForms.val() - totalForms.val()) > 0; + $this.each(function(i) { + $(this).not("." + options.emptyCssClass).addClass(options.formCssClass); + }); + if ($this.length && showAddButton) { + var addButton = options.addButton; + if (addButton === null) { + if ($this.prop("tagName") === "TR") { + // If forms are laid out as table rows, insert the + // "add" button in a new table row: + var numCols = this.eq(-1).children().length; + $parent.append('' + options.addText + ""); + addButton = $parent.find("tr:last a"); + } else { + // Otherwise, insert it immediately after the last form: + $this.filter(":last").after('"); + addButton = $this.filter(":last").next().find("a"); + } + } + addButton.on('click', function(e) { + e.preventDefault(); + var template = $("#" + options.prefix + "-empty"); + var row = template.clone(true); + row.removeClass(options.emptyCssClass) + .addClass(options.formCssClass) + .attr("id", options.prefix + "-" + nextIndex); + if (row.is("tr")) { + // If the forms are laid out in table rows, insert + // the remove button into the last table cell: + row.children(":last").append('"); + } else if (row.is("ul") || row.is("ol")) { + // If they're laid out as an ordered/unordered list, + // insert an
  • after the last list item: + row.append('
  • ' + options.deleteText + "
  • "); + } else { + // Otherwise, just insert the remove button as the + // last child element of the form's container: + row.children(":first").append('' + options.deleteText + ""); + } + row.find("*").each(function() { + updateElementIndex(this, options.prefix, totalForms.val()); + }); + // Insert the new form when it has been fully edited + row.insertBefore($(template)); + // Update number of total forms + $(totalForms).val(parseInt(totalForms.val(), 10) + 1); + nextIndex += 1; + // Hide add button in case we've hit the max, except we want to add infinitely + if ((maxForms.val() !== '') && (maxForms.val() - totalForms.val()) <= 0) { + addButton.parent().hide(); + } + // The delete button of each row triggers a bunch of other things + row.find("a." + options.deleteCssClass).on('click', function(e1) { + e1.preventDefault(); + // Remove the parent form containing this button: + row.remove(); + nextIndex -= 1; + // If a post-delete callback was provided, call it with the deleted form: + if (options.removed) { + options.removed(row); + } + $(document).trigger('formset:removed', [row, options.prefix]); + // Update the TOTAL_FORMS form count. + var forms = $("." + options.formCssClass); + $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); + // Show add button again once we drop below max + if ((maxForms.val() === '') || (maxForms.val() - forms.length) > 0) { + addButton.parent().show(); + } + // Also, update names and ids for all remaining form controls + // so they remain in sequence: + var i, formCount; + var updateElementCallback = function() { + updateElementIndex(this, options.prefix, i); + }; + for (i = 0, formCount = forms.length; i < formCount; i++) { + updateElementIndex($(forms).get(i), options.prefix, i); + $(forms.get(i)).find("*").each(updateElementCallback); + } + }); + // If a post-add callback was supplied, call it with the added form: + if (options.added) { + options.added(row); + } + $(document).trigger('formset:added', [row, options.prefix]); + }); + } + return this; + }; + + /* Setup plugin defaults */ + $.fn.formset.defaults = { + prefix: "form", // The form prefix for your django formset + addText: "add another", // Text for the add link + deleteText: "remove", // Text for the delete link + addCssClass: "add-row", // CSS class applied to the add link + deleteCssClass: "delete-row", // CSS class applied to the delete link + emptyCssClass: "empty-row", // CSS class applied to the empty row + formCssClass: "dynamic-form", // CSS class applied to each form in a formset + added: null, // Function called each time a new form is added + removed: null, // Function called each time a form is deleted + addButton: null // Existing add button to use + }; + + + // Tabular inlines --------------------------------------------------------- + $.fn.tabularFormset = function(selector, options) { + var $rows = $(this); + var alternatingRows = function(row) { + $(selector).not(".add-row").removeClass("row1 row2") + .filter(":even").addClass("row1").end() + .filter(":odd").addClass("row2"); + }; + + var reinitDateTimeShortCuts = function() { + // Reinitialize the calendar and clock widgets by force + if (typeof DateTimeShortcuts !== "undefined") { + $(".datetimeshortcuts").remove(); + DateTimeShortcuts.init(); + } + }; + + var updateSelectFilter = function() { + // If any SelectFilter widgets are a part of the new form, + // instantiate a new SelectFilter instance for it. + if (typeof SelectFilter !== 'undefined') { + $('.selectfilter').each(function(index, value) { + var namearr = value.name.split('-'); + SelectFilter.init(value.id, namearr[namearr.length - 1], false); + }); + $('.selectfilterstacked').each(function(index, value) { + var namearr = value.name.split('-'); + SelectFilter.init(value.id, namearr[namearr.length - 1], true); + }); + } + }; + + var initPrepopulatedFields = function(row) { + row.find('.prepopulated_field').each(function() { + var field = $(this), + input = field.find('input, select, textarea'), + dependency_list = input.data('dependency_list') || [], + dependencies = []; + $.each(dependency_list, function(i, field_name) { + dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); + }); + if (dependencies.length) { + input.prepopulate(dependencies, input.attr('maxlength')); + } + }); + }; + + $rows.formset({ + prefix: options.prefix, + addText: options.addText, + formCssClass: "dynamic-" + options.prefix, + deleteCssClass: "inline-deletelink", + deleteText: options.deleteText, + emptyCssClass: "empty-form", + removed: alternatingRows, + added: function(row) { + initPrepopulatedFields(row); + reinitDateTimeShortCuts(); + updateSelectFilter(); + alternatingRows(row); + }, + addButton: options.addButton + }); + + return $rows; + }; + + // Stacked inlines --------------------------------------------------------- + $.fn.stackedFormset = function(selector, options) { + var $rows = $(this); + var updateInlineLabel = function(row) { + $(selector).find(".inline_label").each(function(i) { + var count = i + 1; + $(this).html($(this).html().replace(/(#\d+)/g, "#" + count)); + }); + }; + + var reinitDateTimeShortCuts = function() { + // Reinitialize the calendar and clock widgets by force, yuck. + if (typeof DateTimeShortcuts !== "undefined") { + $(".datetimeshortcuts").remove(); + DateTimeShortcuts.init(); + } + }; + + var updateSelectFilter = function() { + // If any SelectFilter widgets were added, instantiate a new instance. + if (typeof SelectFilter !== "undefined") { + $(".selectfilter").each(function(index, value) { + var namearr = value.name.split('-'); + SelectFilter.init(value.id, namearr[namearr.length - 1], false); + }); + $(".selectfilterstacked").each(function(index, value) { + var namearr = value.name.split('-'); + SelectFilter.init(value.id, namearr[namearr.length - 1], true); + }); + } + }; + + var initPrepopulatedFields = function(row) { + row.find('.prepopulated_field').each(function() { + var field = $(this), + input = field.find('input, select, textarea'), + dependency_list = input.data('dependency_list') || [], + dependencies = []; + $.each(dependency_list, function(i, field_name) { + dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id')); + }); + if (dependencies.length) { + input.prepopulate(dependencies, input.attr('maxlength')); + } + }); + }; + + $rows.formset({ + prefix: options.prefix, + addText: options.addText, + formCssClass: "dynamic-" + options.prefix, + deleteCssClass: "inline-deletelink", + deleteText: options.deleteText, + emptyCssClass: "empty-form", + removed: updateInlineLabel, + added: function(row) { + initPrepopulatedFields(row); + reinitDateTimeShortCuts(); + updateSelectFilter(); + updateInlineLabel(row); + }, + addButton: options.addButton + }); + + return $rows; + }; + + $(document).ready(function() { + $(".js-inline-admin-formset").each(function() { + var data = $(this).data(), + inlineOptions = data.inlineFormset, + selector; + switch(data.inlineType) { + case "stacked": + selector = inlineOptions.name + "-group .inline-related"; + $(selector).stackedFormset(selector, inlineOptions.options); + break; + case "tabular": + selector = inlineOptions.name + "-group .tabular.inline-related tbody:first > tr"; + $(selector).tabularFormset(selector, inlineOptions.options); + break; + } + }); + }); +})(django.jQuery); diff --git a/static/admin/js/inlines.min.js b/static/admin/js/inlines.min.js new file mode 100644 index 00000000..0b818ca3 --- /dev/null +++ b/static/admin/js/inlines.min.js @@ -0,0 +1,10 @@ +(function(b){b.fn.formset=function(c){var a=b.extend({},b.fn.formset.defaults,c),d=b(this);c=d.parent();var h=function(a,e,f){var c=new RegExp("("+e+"-(\\d+|__prefix__))");e=e+"-"+f;b(a).prop("for")&&b(a).prop("for",b(a).prop("for").replace(c,e));a.id&&(a.id=a.id.replace(c,e));a.name&&(a.name=a.name.replace(c,e))},g=b("#id_"+a.prefix+"-TOTAL_FORMS").prop("autocomplete","off"),k=parseInt(g.val(),10),e=b("#id_"+a.prefix+"-MAX_NUM_FORMS").prop("autocomplete","off"),f=""===e.val()||0'+a.addText+""),m=c.find("tr:last a")):(d.filter(":last").after('"),m=d.filter(":last").next().find("a")));m.on("click",function(f){f.preventDefault();f=b("#"+a.prefix+"-empty"); +var c=f.clone(!0);c.removeClass(a.emptyCssClass).addClass(a.formCssClass).attr("id",a.prefix+"-"+k);c.is("tr")?c.children(":last").append('"):c.is("ul")||c.is("ol")?c.append('
  • '+a.deleteText+"
  • "):c.children(":first").append(''+a.deleteText+"");c.find("*").each(function(){h(this,a.prefix,g.val())});c.insertBefore(b(f)); +b(g).val(parseInt(g.val(),10)+1);k+=1;""!==e.val()&&0>=e.val()-g.val()&&m.parent().hide();c.find("a."+a.deleteCssClass).on("click",function(f){f.preventDefault();c.remove();--k;a.removed&&a.removed(c);b(document).trigger("formset:removed",[c,a.prefix]);f=b("."+a.formCssClass);b("#id_"+a.prefix+"-TOTAL_FORMS").val(f.length);(""===e.val()||0 tr",b(c).tabularFormset(c,a.options)}})})})(django.jQuery); diff --git a/static/admin/js/jquery.init.js b/static/admin/js/jquery.init.js new file mode 100644 index 00000000..f3ac1625 --- /dev/null +++ b/static/admin/js/jquery.init.js @@ -0,0 +1,8 @@ +/*global django:true, jQuery:false*/ +/* Puts the included jQuery into our own namespace using noConflict and passing + * it 'true'. This ensures that the included jQuery doesn't pollute the global + * namespace (i.e. this preserves pre-existing values for both window.$ and + * window.jQuery). + */ +var django = django || {}; +django.jQuery = jQuery.noConflict(true); diff --git a/static/admin/js/popup_response.js b/static/admin/js/popup_response.js new file mode 100644 index 00000000..b4a07e74 --- /dev/null +++ b/static/admin/js/popup_response.js @@ -0,0 +1,16 @@ +/*global opener */ +(function() { + 'use strict'; + var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); + switch(initData.action) { + case 'change': + opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value); + break; + case 'delete': + opener.dismissDeleteRelatedObjectPopup(window, initData.value); + break; + default: + opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj); + break; + } +})(); diff --git a/static/admin/js/prepopulate.js b/static/admin/js/prepopulate.js new file mode 100644 index 00000000..bef45a3a --- /dev/null +++ b/static/admin/js/prepopulate.js @@ -0,0 +1,42 @@ +/*global URLify*/ +(function($) { + 'use strict'; + $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { + /* + Depends on urlify.js + Populates a selected field with the values of the dependent fields, + URLifies and shortens the string. + dependencies - array of dependent fields ids + maxLength - maximum length of the URLify'd string + allowUnicode - Unicode support of the URLify'd string + */ + return this.each(function() { + var prepopulatedField = $(this); + + var populate = function() { + // Bail if the field's value has been changed by the user + if (prepopulatedField.data('_changed')) { + return; + } + + var values = []; + $.each(dependencies, function(i, field) { + field = $(field); + if (field.val().length > 0) { + values.push(field.val()); + } + }); + prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); + }; + + prepopulatedField.data('_changed', false); + prepopulatedField.on('change', function() { + prepopulatedField.data('_changed', true); + }); + + if (!prepopulatedField.val()) { + $(dependencies.join(',')).on('keyup change focus', populate); + } + }); + }; +})(django.jQuery); diff --git a/static/admin/js/prepopulate.min.js b/static/admin/js/prepopulate.min.js new file mode 100644 index 00000000..43c1b79e --- /dev/null +++ b/static/admin/js/prepopulate.min.js @@ -0,0 +1 @@ +(function(b){b.fn.prepopulate=function(d,f,g){return this.each(function(){var a=b(this),h=function(){if(!a.data("_changed")){var e=[];b.each(d,function(a,c){c=b(c);0 elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( 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; +} +/* 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.5.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 ); + }; + +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 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + 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" && !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 ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // 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() {}, + + 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 ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + 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; + }, + + // 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 flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // 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 = toType( obj ); + + if ( isFunction( obj ) || 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.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( 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(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = 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]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // 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 + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + 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" ) + }, + + rhtml = /HTML$/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-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + 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(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { 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 + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.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 ) { + 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 && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // 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 ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } 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 && + inDisabledFieldset( 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 ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * 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 + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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 ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* 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 ) { + + var input; + + // 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( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // 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( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + 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" ); + } + + // Support: Opera 10 - 11 only + // 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 + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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 + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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 ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + 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 + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ 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 ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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 += ""; + + /* eslint-disable max-len */ + + 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; + /* eslint-enable max-len */ + + }; + }, + + "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 || 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 ) { + // eslint-disable-next-line no-unused-expressions + 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 > length ? + 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 ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + 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; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( 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; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +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 ( 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 ( 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 ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return 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 = 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 ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( 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, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // 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.apply( 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 = 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 && 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 ( 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, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + 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, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].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, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + 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, + + // 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 ( toType( 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 ( !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; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +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[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ 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 ][ 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 ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = 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 = 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 || Array.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 documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +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. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + 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 = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + 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 = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( 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; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // 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, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +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 && 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, attached, 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 ( toType( 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; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +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 ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + 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 = Object.create( null ); + } + 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 ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ 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() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + 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 instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + 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.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "