Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gethugothemes/dot-hugo-documentation-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsomratpro <abdulmonnafsomrat@gmail.com>2021-10-31 07:31:58 +0300
committersomratpro <abdulmonnafsomrat@gmail.com>2021-10-31 07:31:58 +0300
commitd57b1322c5df6d4971e41ab860a0dc2ed73a87ec (patch)
tree1823159fcc7a39e55f960861ef58f33d01b8290f
parente31a93dbd364626483246043e718e6a48c8d3eca (diff)
merged
-rw-r--r--.gitignore18
-rw-r--r--LICENSE38
-rw-r--r--README.md176
-rw-r--r--archetypes/default.md12
-rw-r--r--assets/css/style.css1770
-rw-r--r--assets/js/script.js258
-rw-r--r--exampleSite/config.toml392
-rw-r--r--exampleSite/content/billing-pricing/_index.en.md40
-rw-r--r--exampleSite/content/billing-pricing/_index.fr.md40
-rw-r--r--exampleSite/content/billing-pricing/bill/_index.en.md140
-rw-r--r--exampleSite/content/billing-pricing/bill/_index.fr.md140
-rw-r--r--exampleSite/content/billing-pricing/manage/_index.en.md140
-rw-r--r--exampleSite/content/billing-pricing/manage/_index.fr.md140
-rw-r--r--exampleSite/content/billing-pricing/ownership/_index.en.md140
-rw-r--r--exampleSite/content/billing-pricing/ownership/_index.fr.md140
-rw-r--r--exampleSite/content/billing-pricing/payment/_index.en.md140
-rw-r--r--exampleSite/content/billing-pricing/payment/_index.fr.md140
-rw-r--r--exampleSite/content/billing-pricing/profile/_index.en.md140
-rw-r--r--exampleSite/content/billing-pricing/profile/_index.fr.md140
-rw-r--r--exampleSite/content/contact/_index.en.md10
-rw-r--r--exampleSite/content/contact/_index.fr.md10
-rw-r--r--exampleSite/content/faq/_index.en.md70
-rw-r--r--exampleSite/content/faq/_index.fr.md70
-rw-r--r--exampleSite/content/features/_index.en.md12
-rw-r--r--exampleSite/content/features/_index.fr.md12
-rw-r--r--exampleSite/content/features/linux/_index.en.md140
-rw-r--r--exampleSite/content/features/linux/_index.fr.md140
-rw-r--r--exampleSite/content/features/mac/_index.en.md140
-rw-r--r--exampleSite/content/features/mac/_index.fr.md140
-rw-r--r--exampleSite/content/features/routing/_index.en.md140
-rw-r--r--exampleSite/content/features/routing/_index.fr.md140
-rw-r--r--exampleSite/content/features/ubuntu/_index.en.md140
-rw-r--r--exampleSite/content/features/ubuntu/_index.fr.md140
-rw-r--r--exampleSite/content/features/windows/_index.en.md140
-rw-r--r--exampleSite/content/features/windows/_index.fr.md140
-rw-r--r--exampleSite/content/installation/_index.en.md12
-rw-r--r--exampleSite/content/installation/_index.fr.md12
-rw-r--r--exampleSite/content/installation/configuration/_index.en.md52
-rw-r--r--exampleSite/content/installation/configuration/_index.fr.md52
-rw-r--r--exampleSite/content/installation/customization/_index.en.md108
-rw-r--r--exampleSite/content/installation/customization/_index.fr.md108
-rw-r--r--exampleSite/content/installation/elements/_index.en.md386
-rw-r--r--exampleSite/content/installation/elements/_index.fr.md386
-rw-r--r--exampleSite/content/installation/install/_index.en.md148
-rw-r--r--exampleSite/content/installation/install/_index.fr.md148
-rw-r--r--exampleSite/content/installation/requirments/_index.en.md30
-rw-r--r--exampleSite/content/installation/requirments/_index.fr.md30
-rw-r--r--exampleSite/i18n/en.yaml8
-rw-r--r--exampleSite/i18n/fr.yaml8
-rw-r--r--layouts/_default/baseof.html46
-rw-r--r--layouts/_default/list.html8
-rw-r--r--layouts/_default/single.html8
-rw-r--r--layouts/contact/list.html48
-rw-r--r--layouts/faq/list.html38
-rw-r--r--layouts/index.html96
-rw-r--r--layouts/partials/banner.html76
-rw-r--r--layouts/partials/default.html208
-rw-r--r--layouts/partials/footer.html42
-rw-r--r--layouts/partials/head.html178
-rw-r--r--layouts/partials/navigation.html136
-rw-r--r--layouts/shortcodes/faq.html22
-rw-r--r--layouts/shortcodes/notice.html4
-rw-r--r--layouts/shortcodes/tab.html8
-rw-r--r--layouts/shortcodes/tabs.html10
-rw-r--r--static/plugins/bootstrap/bootstrap.min.css10
-rw-r--r--static/plugins/bootstrap/bootstrap.min.js22
-rw-r--r--static/plugins/jquery/jquery-1.12.4.js22016
-rw-r--r--static/plugins/match-height/jquery.matchHeight-min.js22
-rw-r--r--static/plugins/themify-icons/fonts/themify.svg722
-rw-r--r--static/plugins/themify-icons/themify-icons.css2868
-rw-r--r--theme.toml28
71 files changed, 16916 insertions, 16916 deletions
diff --git a/.gitignore b/.gitignore
index 8b35474..c56c44f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,10 @@
-Thumbs.db
-.DS_Store
-.dist
-.tmp
-.sass-cache
-npm-debug.log
-node_modules
-builds
-package-lock.json
+Thumbs.db
+.DS_Store
+.dist
+.tmp
+.sass-cache
+npm-debug.log
+node_modules
+builds
+package-lock.json
public \ No newline at end of file
diff --git a/LICENSE b/LICENSE
index db05159..8801a1a 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,20 +1,20 @@
-The MIT License (MIT)
-
-Copyright (c) 2020 GetHugoThemes
-
-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
+The MIT License (MIT)
+
+Copyright (c) 2020 GetHugoThemes
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/README.md b/README.md
index 6910f89..4d91b65 100644
--- a/README.md
+++ b/README.md
@@ -1,89 +1,89 @@
-<div align="center">
-
-<h1><a href="https://gethugothemes.com/products/hugo-documentation-theme/">Dot Hugo Documentation Theme [Version : 2.0]</a></h1>
-
-<p><a href="https://github.com/themefisher/dot-hugo-documentation-theme/stargazers"><img src="https://camo.githubusercontent.com/7d6b302902df5eaa1a880850777f6cbc089abc5b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub stars" data-canonical-src="https://img.shields.io/github/stars/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a>
-<a href="https://github.com/themefisher/dot-hugo-documentation-theme/issues"><img src="https://camo.githubusercontent.com/82ea79e787e3159369049285257d62b85e2c0d35/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub issues" data-canonical-src="https://img.shields.io/github/issues/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a>
-<a href="/themefisher/dot-hugo-documentation-theme/blob/master"><img src="https://camo.githubusercontent.com/5cb0da6a96f0f7b4861202b46486e3b36f813831/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d636c6f7365642d7261772f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e7376673f6d61784167653d32353932303030" alt="GitHub issues closed" data-canonical-src="https://img.shields.io/github/issues-closed-raw/themefisher/dot-hugo-documentation-theme.svg?maxAge=2592000" style="max-width:100%;"></a>
-<a href="https://github.com/themefisher/dot-hugo-documentation-theme/network"><img src="https://camo.githubusercontent.com/a740e4878301293eb179787617f3335fe6b7dbe6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub forks" data-canonical-src="https://img.shields.io/github/forks/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a></p>
-
-<img src="https://user-images.githubusercontent.com/37659754/54081086-cc7ce200-4328-11e9-9f7d-74d9b32fa68c.gif" alt="screenshot" width="100%">
-
-</div>
-
-Dot, a responsive and feature reach documentation theme ever build in hugo eco system . We have analysised a lot of documentation and knowledge base theme to come up with this design . The readability and the cleaness is also another key feature of this theme.
-
-
-### What's New in version 2.0
-This template is now in a new layout. You can create page with folder, and also gives required images in this folder. Multilangual is now more fun. No more bugs and issues. It's all like a new experience. Configuration of this theme is now more easier.
-
-**Version 2.0 comes with MIT Licence**
-
-## Table of Contents
-
-- [Demo](#demo)
-- [Installation](#installation)
-- [Main Features](#main-features)
-- [Reporting Issues](#reporting-issues)
-- [Technical Support or Questions](#technical-support-or-questions-(paid))
-- [More Hugo Themes](https://themefisher.com/hugo-themes/)
-
-## Demo
-
-| Elements | FAQ | Inner Page | Contact |
-|---|---|---|---|
-| ![Elements page](https://user-images.githubusercontent.com/37659754/54081094-e1f20c00-4328-11e9-90e8-eeda5e3cb427.png) | ![FAQ page](https://user-images.githubusercontent.com/37659754/54081095-e1f20c00-4328-11e9-8009-24987d98e2d0.png) | ![Inner page](https://user-images.githubusercontent.com/37659754/54081096-e28aa280-4328-11e9-97d2-6eb94da191ca.png) | ![Contact page](https://user-images.githubusercontent.com/37659754/54081093-e1597580-4328-11e9-981b-859b1a7e94d9.png) |
-
-**The images are only for demonstration purpose, Please don't use those images.**
-
-[Live Demo](http://demo.themefisher.com/dot-hugo/).
-
-## Installation
-
-Navigate to your themes folder in your Hugo site and use the following commands:
-
-```
-$ mkdir themes
-$ cd themes
-$ git clone git@github.com:themefisher/dot-hugo-documentation-theme.git
-```
-Or Check out [Full Documentation](https://docs.gethugothemes.com/dot/?ref=github).
-
-## Main features
-
-- Automatic Search
-- Search Suggestion
-- Syntax highlighting
-- Multilingual mode
-- Bootstrap 4 Powered
-- Google Analytics
-- Color Scheme
-- Next/Prev buttons in single post page
-- Contact Page , Faq Page
-- Buttons, Tip/Note/Info/Warning boxes, Expand
-- Responsive Ready
-
-## Reporting Issues or Contributing
-We use GitHub Issues as the official bug tracker for the Navigator Template. Please Search [existing issues](https://github.com/themefisher/dot-hugo-documentation-theme/issues). It’s possible someone has already reported the same problem.
-If your problem or idea is not addressed yet, [open a new issue](https://github.com/themefisher/dot-hugo-documentation-theme/issues)
-
-Contributions are welcome and we will review and consider pull requests.
-Primary goals are:
-- Keep it simple.
-- Keep minimal (or zero) default configuration.
-- Avoid interference with user-defined layouts.
-- Avoid using JS if it can be solved by CSS.
-
-## Technical Support or Questions (Paid)
-
-If you have questions or need help integrating the product please [contact us](mailto:mehedi@themefisher.com) instead of opening an issue.
-
-## Hire Us
-We are available for Hiring of your next HUGO project. Drop Us a mail [mehedi@themefisher.com](mailto:mehedi@themefisher.com)
-
-
-## Premium Themes
-
-| [![Mega-Bundle-HUGO](https://gethugothemes.com/wp-content/uploads/edd/2019/09/Mega-Bundle-HUGO.png)](https://themefisher.com/products/hugo-mega-bundle/) | [![GoDocs](https://gethugothemes.com/wp-content/uploads/edd/2020/02/Home-Page-2.png)](https://gethugothemes.com/products/godocs-hugo-documentation-theme/) | [![Academia](https://gethugothemes.com/wp-content/uploads/edd/2019/08/Academia.jpg)](https://gethugothemes.com/products/academia/) |
-|:---:|:---:|:---:|
+<div align="center">
+
+<h1><a href="https://gethugothemes.com/products/hugo-documentation-theme/">Dot Hugo Documentation Theme [Version : 2.0]</a></h1>
+
+<p><a href="https://github.com/themefisher/dot-hugo-documentation-theme/stargazers"><img src="https://camo.githubusercontent.com/7d6b302902df5eaa1a880850777f6cbc089abc5b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub stars" data-canonical-src="https://img.shields.io/github/stars/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a>
+<a href="https://github.com/themefisher/dot-hugo-documentation-theme/issues"><img src="https://camo.githubusercontent.com/82ea79e787e3159369049285257d62b85e2c0d35/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub issues" data-canonical-src="https://img.shields.io/github/issues/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a>
+<a href="/themefisher/dot-hugo-documentation-theme/blob/master"><img src="https://camo.githubusercontent.com/5cb0da6a96f0f7b4861202b46486e3b36f813831/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d636c6f7365642d7261772f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e7376673f6d61784167653d32353932303030" alt="GitHub issues closed" data-canonical-src="https://img.shields.io/github/issues-closed-raw/themefisher/dot-hugo-documentation-theme.svg?maxAge=2592000" style="max-width:100%;"></a>
+<a href="https://github.com/themefisher/dot-hugo-documentation-theme/network"><img src="https://camo.githubusercontent.com/a740e4878301293eb179787617f3335fe6b7dbe6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f7468656d656669736865722f646f742d6875676f2d646f63756d656e746174696f6e2d7468656d652e737667" alt="GitHub forks" data-canonical-src="https://img.shields.io/github/forks/themefisher/dot-hugo-documentation-theme.svg" style="max-width:100%;"></a></p>
+
+<img src="https://user-images.githubusercontent.com/37659754/54081086-cc7ce200-4328-11e9-9f7d-74d9b32fa68c.gif" alt="screenshot" width="100%">
+
+</div>
+
+Dot, a responsive and feature reach documentation theme ever build in hugo eco system . We have analysised a lot of documentation and knowledge base theme to come up with this design . The readability and the cleaness is also another key feature of this theme.
+
+
+### What's New in version 2.0
+This template is now in a new layout. You can create page with folder, and also gives required images in this folder. Multilangual is now more fun. No more bugs and issues. It's all like a new experience. Configuration of this theme is now more easier.
+
+**Version 2.0 comes with MIT Licence**
+
+## Table of Contents
+
+- [Demo](#demo)
+- [Installation](#installation)
+- [Main Features](#main-features)
+- [Reporting Issues](#reporting-issues)
+- [Technical Support or Questions](#technical-support-or-questions-(paid))
+- [More Hugo Themes](https://themefisher.com/hugo-themes/)
+
+## Demo
+
+| Elements | FAQ | Inner Page | Contact |
+|---|---|---|---|
+| ![Elements page](https://user-images.githubusercontent.com/37659754/54081094-e1f20c00-4328-11e9-90e8-eeda5e3cb427.png) | ![FAQ page](https://user-images.githubusercontent.com/37659754/54081095-e1f20c00-4328-11e9-8009-24987d98e2d0.png) | ![Inner page](https://user-images.githubusercontent.com/37659754/54081096-e28aa280-4328-11e9-97d2-6eb94da191ca.png) | ![Contact page](https://user-images.githubusercontent.com/37659754/54081093-e1597580-4328-11e9-981b-859b1a7e94d9.png) |
+
+**The images are only for demonstration purpose, Please don't use those images.**
+
+[Live Demo](http://demo.themefisher.com/dot-hugo/).
+
+## Installation
+
+Navigate to your themes folder in your Hugo site and use the following commands:
+
+```
+$ mkdir themes
+$ cd themes
+$ git clone git@github.com:themefisher/dot-hugo-documentation-theme.git
+```
+Or Check out [Full Documentation](https://docs.gethugothemes.com/dot/?ref=github).
+
+## Main features
+
+- Automatic Search
+- Search Suggestion
+- Syntax highlighting
+- Multilingual mode
+- Bootstrap 4 Powered
+- Google Analytics
+- Color Scheme
+- Next/Prev buttons in single post page
+- Contact Page , Faq Page
+- Buttons, Tip/Note/Info/Warning boxes, Expand
+- Responsive Ready
+
+## Reporting Issues or Contributing
+We use GitHub Issues as the official bug tracker for the Navigator Template. Please Search [existing issues](https://github.com/themefisher/dot-hugo-documentation-theme/issues). It’s possible someone has already reported the same problem.
+If your problem or idea is not addressed yet, [open a new issue](https://github.com/themefisher/dot-hugo-documentation-theme/issues)
+
+Contributions are welcome and we will review and consider pull requests.
+Primary goals are:
+- Keep it simple.
+- Keep minimal (or zero) default configuration.
+- Avoid interference with user-defined layouts.
+- Avoid using JS if it can be solved by CSS.
+
+## Technical Support or Questions (Paid)
+
+If you have questions or need help integrating the product please [contact us](mailto:mehedi@themefisher.com) instead of opening an issue.
+
+## Hire Us
+We are available for Hiring of your next HUGO project. Drop Us a mail [mehedi@themefisher.com](mailto:mehedi@themefisher.com)
+
+
+## Premium Themes
+
+| [![Mega-Bundle-HUGO](https://gethugothemes.com/wp-content/uploads/edd/2019/09/Mega-Bundle-HUGO.png)](https://themefisher.com/products/hugo-mega-bundle/) | [![GoDocs](https://gethugothemes.com/wp-content/uploads/edd/2020/02/Home-Page-2.png)](https://gethugothemes.com/products/godocs-hugo-documentation-theme/) | [![Academia](https://gethugothemes.com/wp-content/uploads/edd/2019/08/Academia.jpg)](https://gethugothemes.com/products/academia/) |
+|:---:|:---:|:---:|
| **Hugo Mega Bundle** | **GoDocs** | **Academia** | \ No newline at end of file
diff --git a/archetypes/default.md b/archetypes/default.md
index 04438ae..13d63ae 100644
--- a/archetypes/default.md
+++ b/archetypes/default.md
@@ -1,7 +1,7 @@
----
-title: "{{ replace .Name "-" " " | title }}"
-date: {{ .Date }}
-lastmod: {{ .Date }}
-weight: ""
-draft: true
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+lastmod: {{ .Date }}
+weight: ""
+draft: true
--- \ No newline at end of file
diff --git a/assets/css/style.css b/assets/css/style.css
index 222c48b..d69fdb2 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -1,886 +1,886 @@
-body {
- line-height: 1.5;
- font-family: var(--font-family), sans-serif;
- -webkit-font-smoothing: antialiased;
- font-size: 17px;
- color: var(--text-color);
- background-color: var(--body-color);
-}
-
-P {
- color: var(--text-color);
- font-size: 15px;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- color: var(--text-color-dark);
- font-family: var(--font-family), sans-serif;
- font-weight: 700;
- line-height: 1.2;
-}
-
-h1,
-.h1 {
- font-size: 45px;
-}
-
-h2,
-.h2 {
- font-size: 32px;
-}
-
-h3,
-.h3 {
- font-size: 26px;
-}
-
-h4,
-.h4 {
- font-size: 20px;
-}
-
-h5,
-.h5 {
- font-size: 18px;
-}
-
-h6,
-.h6 {
- font-size: 14px;
-}
-
-/* Button style */
-.btn {
- font-size: 14px;
- font-family: var(--font-family), sans-serif;
- text-transform: uppercase;
- padding: 16px 44px;
- border-radius: 0px;
- font-weight: 600;
- border: 0;
- position: relative;
- z-index: 1;
- transition: .2s ease;
-}
-
-.btn:focus {
- outline: 0;
- box-shadow: none !important;
-}
-
-.btn:active {
- box-shadow: none;
-}
-
-.btn-primary {
- background: var(--primary-color);
- color: var(--white-color);
-}
-
-.btn-primary:active {
- background: var(--primary-color);
-}
-
-.btn-primary:hover {
- background: var(--primary-color);
-}
-
-.btn-primary:not(:disabled):not(.disabled).active,
-.btn-primary:not(:disabled):not(.disabled):active,
-.show>.btn-primary.dropdown-toggle {
- color: var(--white-color);
- background-color: var(--primary-color);
- border-color: var(--primary-color);
-}
-
-.inline-button {
- line-height: .8rem !important;
- padding: 5px 8px !important;
- pointer-events: none;
- margin-top: -5px;
-}
-
-.overflow-hidden {
- overflow: hidden !important;
-}
-
-::-moz-selection {
- background: var(--primary-color);
- color: var(--white-color);
-}
-
-::selection {
- background: var(--primary-color);
- color: var(--white-color);
-}
-
-/* preloader */
-.preloader {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: var(--white-color);
- z-index: 999;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-ul {
- list-style-type: none;
- margin: 0px;
- padding-left: 0;
- font-size: 15px;
-}
-
-ol {
- padding-left: 20px;
- font-size: 15px;
-}
-
-img {
- vertical-align: middle;
- border: 0;
-}
-
-a,
-a:hover,
-a:focus {
- text-decoration: none;
- color: var(--primary-color);
-}
-
-a:hover,
-a:focus {
- color: var(--primary-color);
-}
-
-a,
-button,
-select {
- cursor: pointer;
- transition: .2s ease;
-}
-
-a:focus,
-button:focus,
-select:focus {
- outline: 0;
-}
-
-.slick-slide {
- outline: 0;
-}
-
-.section {
- padding-top: 80px;
- padding-bottom: 80px;
-}
-
-@media (max-width: 768px) {
- .section {
- padding-top: 60px;
- }
-}
-
-.section-sm {
- padding-top: 60px;
- padding-bottom: 60px;
-}
-
-@media (max-width: 768px) {
- .section-sm {
- padding-top: 40px;
- }
-}
-
-.section-title {
- margin-bottom: 40px;
-}
-
-.bg-cover {
- background-size: cover;
- background-position: center center;
- background-repeat: no-repeat;
-}
-
-.border-primary {
- border-color: #f2f2f2 !important;
-}
-
-pre {
- padding: 20px;
-}
-
-/* overlay */
-.overlay {
- position: relative;
-}
-
-.overlay::before {
- position: absolute;
- content: '';
- height: 100%;
- width: 100%;
- top: 0;
- left: 0;
- background: var(--primary-color);
- opacity: .8;
-}
-
-.outline-0 {
- outline: 0 !important;
-}
-
-.d-unset {
- display: unset !important;
-}
-
-.bg-primary {
- background: var(--primary-color) !important;
-}
-
-.bg-white {
- background-color: var(--white-color) !important;
-}
-
-.bg-light {
- background-color: var(--light-color) !important;
-}
-
-.text-primary {
- color: var(--primary-color) !important;
-}
-
-.text-color {
- color: var(--text-color) !important;
-}
-
-.text-dark {
- color: var(--text-color-dark) !important;
-}
-
-.text-white {
- color: var(--white-color) !important;
-}
-
-.top-50 {
- top: 50px;
-}
-
-.navbar {
- padding: 0;
-}
-
-@media (max-width: 768px) {
- .navbar {
- padding: 10px 0;
- }
-}
-
-.navbar-brand img {
- max-width: 100px;
- margin-bottom: 0;
-}
-
-.navbar .nav-item .nav-link {
- text-transform: uppercase;
- padding: 10px 15px !important;
- font-size: 15px;
-}
-
-.navbar .dropdown:hover .dropdown-menu {
- visibility: visible;
- opacity: 1;
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
-}
-
-.navbar .dropdown-menu {
- box-shadow: 0px 3px 9px 0px rgba(0, 0, 0, 0.12);
- padding: 15px 0px;
- border: 0;
- top: 40px;
- left: -35px;
- border-radius: 0;
- display: block;
- visibility: hidden;
- transition: .3s ease;
- opacity: 0;
- -webkit-transform: translateY(20px);
- transform: translateY(20px);
- background: var(--white-color);
-}
-
-@media (max-width: 768px) {
- .navbar .dropdown-menu {
- display: none;
- opacity: 1;
- visibility: visible;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- -webkit-transform-origin: unset;
- transform-origin: unset;
- }
-}
-
-.navbar .dropdown-menu.view {
- visibility: visible !important;
- opacity: 1;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- -webkit-transform-origin: top;
- transform-origin: top;
-}
-
-@media (max-width: 768px) {
- .navbar .dropdown-menu.view {
- display: block;
- }
-}
-
-.navbar .dropdown-menu.show {
- visibility: hidden;
-}
-
-@media (max-width: 768px) {
- .navbar .dropdown-menu.show {
- visibility: visible;
- display: block;
- }
-}
-
-.navbar .dropdown-item {
- position: relative;
- color: var(--text-color-dark);
- transition: .2s ease;
- font-family: var(--font-family), sans-serif;
-}
-
-@media (max-width: 768px) {
- .navbar .dropdown-item {
- text-align: center;
- }
-}
-
-.navbar .dropdown-item:hover {
- color: var(--primary-color);
- background: transparent;
-}
-
-.lang-list {
- background: var(--primary-color);
- color: var(--white-color);
-}
-
-.lang-list.dark {
- color: var(--text-color-dark);
- background: var(--white-color);
-}
-
-.banner {
- overflow: hidden;
-}
-
-.banner p {
- font-size: 20px;
- opacity: .8;
-}
-
-.banner .nav-link.text-dark {
- color: var(--white-color) !important;
-}
-
-.banner .nav-link.text-dark:hover {
- color: var(--white-color) !important;
-}
-
-.banner .navbar-brand {
- color: var(--white-color) !important;
-}
-
-/* search */
-
-#project-icon {
- float: left;
- height: 32px;
- width: 32px;
-}
-
-#project-description {
- margin: 0;
- padding: 0;
-}
-
-.ui-helper-hidden-accessible {
- display: none;
-}
-
-.ui-menu {
- background: var(--white-color);
- padding: 5px 20px 20px;
- right: 0 !important;
- max-height: 200px;
- overflow: hidden;
- border-radius: 0 0 25px 25px;
- z-index: 9999;
- box-shadow: 0px 13px 20px 0px rgba(0, 0, 0, .07)
-}
-
-
-@media (max-width: 575px) {
- .ui-menu {
- width: calc(100% - 30px) !important;
- }
-}
-
-@media (min-width: 576px) {
- .ui-menu {
- max-width: 510px !important;
- }
-}
-
-@media (min-width: 768px) {
- .ui-menu {
- max-width: 690px !important;
- }
-}
-
-@media (min-width: 992px) {
- .ui-menu {
- max-width: 610px !important;
- }
-}
-
-@media (min-width: 1200px) {
- .ui-menu {
- max-width: 730px !important;
- }
-}
-
-.ui-menu-item a {
- color: var(--text-color);
- padding: 8px 0;
- font-size: 15px;
-}
-
-.ui-menu-item a:hover {
- color: var(--primary-color);
-}
-
-.ui-menu-item:not(:last-child) {
- border-bottom: 1px solid #e8e8e8;
-}
-
-.ui-menu-item * {
- display: none;
-}
-
-.ui-menu-item .ui-corner-all {
- display: block;
-}
-
-
-/* /navigation */
-.form-control {
- height: 50px;
- border-radius: 25px;
- border: 0;
- padding: 0 20px;
-}
-
-.form-control:focus {
- border: 0;
- box-shadow: none !important;
-}
-
-textarea.form-control {
- height: 150px;
- padding: 20px;
-}
-
-.icon {
- font-size: 40px;
-}
-
-.shadow {
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.07) !important;
- transition: .3s ease;
-}
-
-.shadow-bottom {
- box-shadow: 0 1px 0 rgba(12, 13, 14, 0.1), 0 1px 6px rgba(59, 64, 69, 0.1);
-}
-
-.shadow:hover,
-.shadow:focus {
- box-shadow: 0 14px 25px rgba(0, 0, 0, 0.1) !important;
-}
-
-/* single page */
-
-.content * {
- margin-bottom: 20px;
-}
-
-.content img {
- max-width: 100%;
- height: auto;
- margin: 0 auto 15px;
- display: block;
- text-align: center;
-}
-
-.content ul {
- padding-left: 0;
- margin-bottom: 20px;
-}
-
-.content ul li {
- padding-left: 20px;
- position: relative;
-}
-
-.content ul li::before {
- position: absolute;
- content: '';
- height: 8px;
- width: 8px;
- border-radius: 50%;
- background: var(--primary-color);
- opacity: .3;
- left: 0;
- top: 8px;
-}
-
-.list-styled li {
- padding-left: 20px;
- position: relative;
-}
-
-.list-styled li::before {
- position: absolute;
- content: '';
- height: 8px;
- width: 8px;
- border-radius: 50%;
- background: var(--primary-color);
- opacity: .3;
- left: 0;
- top: 17px;
-}
-
-.post-meta {
- color: var(--text-color);
- font-style: italic;
- font-size: 14px;
-}
-
-blockquote {
- font-size: 20px !important;
- color: var(--text-color-dark);
- padding: 20px 40px;
- border-left: 2px solid var(--primary-color);
- margin: 40px 0;
- font-weight: bold;
- background: var(--light-color);
-}
-
-blockquote p {
- margin-bottom: 0 !important;
-}
-
-.pagination {
- justify-content: space-between;
-}
-
-.pagination a {
- color: var(--primary-color);
-}
-
-.pagination i {
- font-size: 15px;
- line-height: 1.8;
-}
-
-#accordion i {
- font-size: 14px;
- line-height: 2;
-}
-
-table {
- text-align: left;
- width: 100%;
- max-width: 100%;
- margin-bottom: 1rem;
- border: 1px solid #dee2e6;
-}
-
-table td,
-table th {
- padding: .75rem;
- vertical-align: top;
- border: 1px solid #dee2e6;
- margin-bottom: 0;
-}
-
-thead {
- background: #ececec;
- margin-bottom: 0;
-}
-
-tbody {
- background: #f8f8f8;
- margin-bottom: 0;
-}
-
-.notices {
- margin: 2rem 0;
- position: relative;
-}
-
-.notices p {
- padding: 10px;
-}
-
-.notices p::before {
- position: absolute;
- top: 2px;
- color: #fff;
- font-family: "themify";
- font-weight: 900;
- content: "\e717";
- left: 10px;
-}
-
-.notices.note p {
- border-top: 30px solid #6ab0de;
- background: #e7f2fa;
-}
-
-.notices.note p::after {
- content: 'Note';
- position: absolute;
- top: 2px;
- color: #fff;
- left: 2rem;
-}
-
-
-.notices.tip p {
- border-top: 30px solid #78C578;
- background: #E6F9E6;
-}
-
-.notices.tip p::after {
- content: 'Tip';
- position: absolute;
- top: 2px;
- color: #fff;
- left: 2rem;
-}
-
-.notices.info p {
- border-top: 30px solid #F0B37E;
- background: #FFF2DB;
-}
-
-.notices.info p::after {
- content: 'Info';
- position: absolute;
- top: 2px;
- color: #fff;
- left: 2rem;
-}
-
-
-.notices.warning p {
- border-top: 30px solid #E06F6C;
- background: #FAE2E2;
-}
-
-.notices.warning p::after {
- content: 'Warning';
- position: absolute;
- top: 2px;
- color: #fff;
- left: 2rem;
-}
-
-/* /single page */
-
-/* side list */
-.sidebar {
- background-color: var(--white-color);
- position: sticky;
- top: 50px;
- margin-bottom: 30px;
- padding: 40px 10px 20px 10px;
-}
-
-.sidelist {
- display: block;
-}
-
-li.sidelist>a {
- margin-left: 20px;
- margin-bottom: 10px;
- display: block;
- font-size: 20px;
-}
-
-li.sidelist li a {
- margin: 0;
-}
-
-.sidelist li.sidelist {
- display: block;
-}
-
-.sidelist li.sidelist.active a {
- color: var(--primary-color);
-}
-
-.sidelist li.sidelist.active::before {
- opacity: 1;
-}
-
-.page-list li a {
- display: none;
-}
-
-.page-list li ul a {
- display: block;
-}
-
-.sidelist li a {
- color: var(--text-color-dark);
- display: block;
- font-size: 15px;
- font-weight: 500;
- padding: 10px 0;
- line-height: 1.4;
-}
-
-p:empty,
-p a:empty {
- display: none !important;
-}
-
-pre {
- display: block;
- padding: 9.5px;
- margin: 10px 0px 10px;
-}
-
-code {
- margin-bottom: 0 !important;
- font-size: 100%;
-}
-
-.back-btn {
- position: relative;
-}
-
-.back-btn::before {
- position: absolute;
- font-family: 'themify';
- content: "\e6bc";
- font-size: 25px;
- height: 30px;
- width: 40px;
- background-color: var(--white-color);
- color: inherit;
- text-align: right;
- z-index: 1;
- left: -5px;
- top: -5px;
-}
-
-.ui-autocomplete-input {
- border-bottom: 1px solid rgb(212, 212, 212) !important;
-}
-
-.ui-autocomplete-input.active {
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
-}
-
-.search-icon {
- position: absolute;
- right: 20px;
- top: 18px;
- font-size: 14px;
-}
-
-i {
- transition: .2s ease;
-}
-
-a:hover i {
- color: var(--primary-color);
-}
-
-/* custom scrollbar */
-pre code::-webkit-scrollbar {
- height: 5px;
-}
-
-pre code::-webkit-scrollbar-track {
- background: #000000;
-}
-
-pre code::-webkit-scrollbar-thumb {
- background: #888;
-}
-
-/* content tabs */
-.code-tabs {
- border: 1px solid #dee2e6;
- overflow: hidden;
- margin: 20px 0px;
-}
-
-.code-tabs .tab-content {
- padding: 20px 15px;
- margin-bottom: 0;
-}
-
-.code-tabs .tab-content .tab-pane{
- margin-bottom: 0;
-}
-
-.code-tabs .nav-tabs {
- margin-bottom: 0;
-}
-
-.code-tabs .nav-tabs .nav-item {
- padding-left: 0;
- border-right: 1px solid #dee2e6;
-}
-
-.code-tabs .nav-tabs .nav-item .nav-link {
- text-decoration: none;
- font-weight: 500;
- border: 0;
- margin-bottom: 0;
-}
-
-.code-tabs .nav-tabs .nav-item::before {
- display: none;
-}
-
-.code-tabs .nav-tabs .nav-item.active {
- background: var(--primary-color);
-}
-
-.code-tabs .nav-tabs .nav-item.active .nav-link {
- color: var(--white-color);
+body {
+ line-height: 1.5;
+ font-family: var(--font-family), sans-serif;
+ -webkit-font-smoothing: antialiased;
+ font-size: 17px;
+ color: var(--text-color);
+ background-color: var(--body-color);
+}
+
+P {
+ color: var(--text-color);
+ font-size: 15px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: var(--text-color-dark);
+ font-family: var(--font-family), sans-serif;
+ font-weight: 700;
+ line-height: 1.2;
+}
+
+h1,
+.h1 {
+ font-size: 45px;
+}
+
+h2,
+.h2 {
+ font-size: 32px;
+}
+
+h3,
+.h3 {
+ font-size: 26px;
+}
+
+h4,
+.h4 {
+ font-size: 20px;
+}
+
+h5,
+.h5 {
+ font-size: 18px;
+}
+
+h6,
+.h6 {
+ font-size: 14px;
+}
+
+/* Button style */
+.btn {
+ font-size: 14px;
+ font-family: var(--font-family), sans-serif;
+ text-transform: uppercase;
+ padding: 16px 44px;
+ border-radius: 0px;
+ font-weight: 600;
+ border: 0;
+ position: relative;
+ z-index: 1;
+ transition: .2s ease;
+}
+
+.btn:focus {
+ outline: 0;
+ box-shadow: none !important;
+}
+
+.btn:active {
+ box-shadow: none;
+}
+
+.btn-primary {
+ background: var(--primary-color);
+ color: var(--white-color);
+}
+
+.btn-primary:active {
+ background: var(--primary-color);
+}
+
+.btn-primary:hover {
+ background: var(--primary-color);
+}
+
+.btn-primary:not(:disabled):not(.disabled).active,
+.btn-primary:not(:disabled):not(.disabled):active,
+.show>.btn-primary.dropdown-toggle {
+ color: var(--white-color);
+ background-color: var(--primary-color);
+ border-color: var(--primary-color);
+}
+
+.inline-button {
+ line-height: .8rem !important;
+ padding: 5px 8px !important;
+ pointer-events: none;
+ margin-top: -5px;
+}
+
+.overflow-hidden {
+ overflow: hidden !important;
+}
+
+::-moz-selection {
+ background: var(--primary-color);
+ color: var(--white-color);
+}
+
+::selection {
+ background: var(--primary-color);
+ color: var(--white-color);
+}
+
+/* preloader */
+.preloader {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: var(--white-color);
+ z-index: 999;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+ul {
+ list-style-type: none;
+ margin: 0px;
+ padding-left: 0;
+ font-size: 15px;
+}
+
+ol {
+ padding-left: 20px;
+ font-size: 15px;
+}
+
+img {
+ vertical-align: middle;
+ border: 0;
+}
+
+a,
+a:hover,
+a:focus {
+ text-decoration: none;
+ color: var(--primary-color);
+}
+
+a:hover,
+a:focus {
+ color: var(--primary-color);
+}
+
+a,
+button,
+select {
+ cursor: pointer;
+ transition: .2s ease;
+}
+
+a:focus,
+button:focus,
+select:focus {
+ outline: 0;
+}
+
+.slick-slide {
+ outline: 0;
+}
+
+.section {
+ padding-top: 80px;
+ padding-bottom: 80px;
+}
+
+@media (max-width: 768px) {
+ .section {
+ padding-top: 60px;
+ }
+}
+
+.section-sm {
+ padding-top: 60px;
+ padding-bottom: 60px;
+}
+
+@media (max-width: 768px) {
+ .section-sm {
+ padding-top: 40px;
+ }
+}
+
+.section-title {
+ margin-bottom: 40px;
+}
+
+.bg-cover {
+ background-size: cover;
+ background-position: center center;
+ background-repeat: no-repeat;
+}
+
+.border-primary {
+ border-color: #f2f2f2 !important;
+}
+
+pre {
+ padding: 20px;
+}
+
+/* overlay */
+.overlay {
+ position: relative;
+}
+
+.overlay::before {
+ position: absolute;
+ content: '';
+ height: 100%;
+ width: 100%;
+ top: 0;
+ left: 0;
+ background: var(--primary-color);
+ opacity: .8;
+}
+
+.outline-0 {
+ outline: 0 !important;
+}
+
+.d-unset {
+ display: unset !important;
+}
+
+.bg-primary {
+ background: var(--primary-color) !important;
+}
+
+.bg-white {
+ background-color: var(--white-color) !important;
+}
+
+.bg-light {
+ background-color: var(--light-color) !important;
+}
+
+.text-primary {
+ color: var(--primary-color) !important;
+}
+
+.text-color {
+ color: var(--text-color) !important;
+}
+
+.text-dark {
+ color: var(--text-color-dark) !important;
+}
+
+.text-white {
+ color: var(--white-color) !important;
+}
+
+.top-50 {
+ top: 50px;
+}
+
+.navbar {
+ padding: 0;
+}
+
+@media (max-width: 768px) {
+ .navbar {
+ padding: 10px 0;
+ }
+}
+
+.navbar-brand img {
+ max-width: 100px;
+ margin-bottom: 0;
+}
+
+.navbar .nav-item .nav-link {
+ text-transform: uppercase;
+ padding: 10px 15px !important;
+ font-size: 15px;
+}
+
+.navbar .dropdown:hover .dropdown-menu {
+ visibility: visible;
+ opacity: 1;
+ -webkit-transform: scaleX(1);
+ transform: scaleX(1);
+}
+
+.navbar .dropdown-menu {
+ box-shadow: 0px 3px 9px 0px rgba(0, 0, 0, 0.12);
+ padding: 15px 0px;
+ border: 0;
+ top: 40px;
+ left: -35px;
+ border-radius: 0;
+ display: block;
+ visibility: hidden;
+ transition: .3s ease;
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ background: var(--white-color);
+}
+
+@media (max-width: 768px) {
+ .navbar .dropdown-menu {
+ display: none;
+ opacity: 1;
+ visibility: visible;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transform-origin: unset;
+ transform-origin: unset;
+ }
+}
+
+.navbar .dropdown-menu.view {
+ visibility: visible !important;
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transform-origin: top;
+ transform-origin: top;
+}
+
+@media (max-width: 768px) {
+ .navbar .dropdown-menu.view {
+ display: block;
+ }
+}
+
+.navbar .dropdown-menu.show {
+ visibility: hidden;
+}
+
+@media (max-width: 768px) {
+ .navbar .dropdown-menu.show {
+ visibility: visible;
+ display: block;
+ }
+}
+
+.navbar .dropdown-item {
+ position: relative;
+ color: var(--text-color-dark);
+ transition: .2s ease;
+ font-family: var(--font-family), sans-serif;
+}
+
+@media (max-width: 768px) {
+ .navbar .dropdown-item {
+ text-align: center;
+ }
+}
+
+.navbar .dropdown-item:hover {
+ color: var(--primary-color);
+ background: transparent;
+}
+
+.lang-list {
+ background: var(--primary-color);
+ color: var(--white-color);
+}
+
+.lang-list.dark {
+ color: var(--text-color-dark);
+ background: var(--white-color);
+}
+
+.banner {
+ overflow: hidden;
+}
+
+.banner p {
+ font-size: 20px;
+ opacity: .8;
+}
+
+.banner .nav-link.text-dark {
+ color: var(--white-color) !important;
+}
+
+.banner .nav-link.text-dark:hover {
+ color: var(--white-color) !important;
+}
+
+.banner .navbar-brand {
+ color: var(--white-color) !important;
+}
+
+/* search */
+
+#project-icon {
+ float: left;
+ height: 32px;
+ width: 32px;
+}
+
+#project-description {
+ margin: 0;
+ padding: 0;
+}
+
+.ui-helper-hidden-accessible {
+ display: none;
+}
+
+.ui-menu {
+ background: var(--white-color);
+ padding: 5px 20px 20px;
+ right: 0 !important;
+ max-height: 200px;
+ overflow: hidden;
+ border-radius: 0 0 25px 25px;
+ z-index: 9999;
+ box-shadow: 0px 13px 20px 0px rgba(0, 0, 0, .07)
+}
+
+
+@media (max-width: 575px) {
+ .ui-menu {
+ width: calc(100% - 30px) !important;
+ }
+}
+
+@media (min-width: 576px) {
+ .ui-menu {
+ max-width: 510px !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .ui-menu {
+ max-width: 690px !important;
+ }
+}
+
+@media (min-width: 992px) {
+ .ui-menu {
+ max-width: 610px !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .ui-menu {
+ max-width: 730px !important;
+ }
+}
+
+.ui-menu-item a {
+ color: var(--text-color);
+ padding: 8px 0;
+ font-size: 15px;
+}
+
+.ui-menu-item a:hover {
+ color: var(--primary-color);
+}
+
+.ui-menu-item:not(:last-child) {
+ border-bottom: 1px solid #e8e8e8;
+}
+
+.ui-menu-item * {
+ display: none;
+}
+
+.ui-menu-item .ui-corner-all {
+ display: block;
+}
+
+
+/* /navigation */
+.form-control {
+ height: 50px;
+ border-radius: 25px;
+ border: 0;
+ padding: 0 20px;
+}
+
+.form-control:focus {
+ border: 0;
+ box-shadow: none !important;
+}
+
+textarea.form-control {
+ height: 150px;
+ padding: 20px;
+}
+
+.icon {
+ font-size: 40px;
+}
+
+.shadow {
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.07) !important;
+ transition: .3s ease;
+}
+
+.shadow-bottom {
+ box-shadow: 0 1px 0 rgba(12, 13, 14, 0.1), 0 1px 6px rgba(59, 64, 69, 0.1);
+}
+
+.shadow:hover,
+.shadow:focus {
+ box-shadow: 0 14px 25px rgba(0, 0, 0, 0.1) !important;
+}
+
+/* single page */
+
+.content * {
+ margin-bottom: 20px;
+}
+
+.content img {
+ max-width: 100%;
+ height: auto;
+ margin: 0 auto 15px;
+ display: block;
+ text-align: center;
+}
+
+.content ul {
+ padding-left: 0;
+ margin-bottom: 20px;
+}
+
+.content ul li {
+ padding-left: 20px;
+ position: relative;
+}
+
+.content ul li::before {
+ position: absolute;
+ content: '';
+ height: 8px;
+ width: 8px;
+ border-radius: 50%;
+ background: var(--primary-color);
+ opacity: .3;
+ left: 0;
+ top: 8px;
+}
+
+.list-styled li {
+ padding-left: 20px;
+ position: relative;
+}
+
+.list-styled li::before {
+ position: absolute;
+ content: '';
+ height: 8px;
+ width: 8px;
+ border-radius: 50%;
+ background: var(--primary-color);
+ opacity: .3;
+ left: 0;
+ top: 17px;
+}
+
+.post-meta {
+ color: var(--text-color);
+ font-style: italic;
+ font-size: 14px;
+}
+
+blockquote {
+ font-size: 20px !important;
+ color: var(--text-color-dark);
+ padding: 20px 40px;
+ border-left: 2px solid var(--primary-color);
+ margin: 40px 0;
+ font-weight: bold;
+ background: var(--light-color);
+}
+
+blockquote p {
+ margin-bottom: 0 !important;
+}
+
+.pagination {
+ justify-content: space-between;
+}
+
+.pagination a {
+ color: var(--primary-color);
+}
+
+.pagination i {
+ font-size: 15px;
+ line-height: 1.8;
+}
+
+#accordion i {
+ font-size: 14px;
+ line-height: 2;
+}
+
+table {
+ text-align: left;
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 1rem;
+ border: 1px solid #dee2e6;
+}
+
+table td,
+table th {
+ padding: .75rem;
+ vertical-align: top;
+ border: 1px solid #dee2e6;
+ margin-bottom: 0;
+}
+
+thead {
+ background: #ececec;
+ margin-bottom: 0;
+}
+
+tbody {
+ background: #f8f8f8;
+ margin-bottom: 0;
+}
+
+.notices {
+ margin: 2rem 0;
+ position: relative;
+}
+
+.notices p {
+ padding: 10px;
+}
+
+.notices p::before {
+ position: absolute;
+ top: 2px;
+ color: #fff;
+ font-family: "themify";
+ font-weight: 900;
+ content: "\e717";
+ left: 10px;
+}
+
+.notices.note p {
+ border-top: 30px solid #6ab0de;
+ background: #e7f2fa;
+}
+
+.notices.note p::after {
+ content: 'Note';
+ position: absolute;
+ top: 2px;
+ color: #fff;
+ left: 2rem;
+}
+
+
+.notices.tip p {
+ border-top: 30px solid #78C578;
+ background: #E6F9E6;
+}
+
+.notices.tip p::after {
+ content: 'Tip';
+ position: absolute;
+ top: 2px;
+ color: #fff;
+ left: 2rem;
+}
+
+.notices.info p {
+ border-top: 30px solid #F0B37E;
+ background: #FFF2DB;
+}
+
+.notices.info p::after {
+ content: 'Info';
+ position: absolute;
+ top: 2px;
+ color: #fff;
+ left: 2rem;
+}
+
+
+.notices.warning p {
+ border-top: 30px solid #E06F6C;
+ background: #FAE2E2;
+}
+
+.notices.warning p::after {
+ content: 'Warning';
+ position: absolute;
+ top: 2px;
+ color: #fff;
+ left: 2rem;
+}
+
+/* /single page */
+
+/* side list */
+.sidebar {
+ background-color: var(--white-color);
+ position: sticky;
+ top: 50px;
+ margin-bottom: 30px;
+ padding: 40px 10px 20px 10px;
+}
+
+.sidelist {
+ display: block;
+}
+
+li.sidelist>a {
+ margin-left: 20px;
+ margin-bottom: 10px;
+ display: block;
+ font-size: 20px;
+}
+
+li.sidelist li a {
+ margin: 0;
+}
+
+.sidelist li.sidelist {
+ display: block;
+}
+
+.sidelist li.sidelist.active a {
+ color: var(--primary-color);
+}
+
+.sidelist li.sidelist.active::before {
+ opacity: 1;
+}
+
+.page-list li a {
+ display: none;
+}
+
+.page-list li ul a {
+ display: block;
+}
+
+.sidelist li a {
+ color: var(--text-color-dark);
+ display: block;
+ font-size: 15px;
+ font-weight: 500;
+ padding: 10px 0;
+ line-height: 1.4;
+}
+
+p:empty,
+p a:empty {
+ display: none !important;
+}
+
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 10px 0px 10px;
+}
+
+code {
+ margin-bottom: 0 !important;
+ font-size: 100%;
+}
+
+.back-btn {
+ position: relative;
+}
+
+.back-btn::before {
+ position: absolute;
+ font-family: 'themify';
+ content: "\e6bc";
+ font-size: 25px;
+ height: 30px;
+ width: 40px;
+ background-color: var(--white-color);
+ color: inherit;
+ text-align: right;
+ z-index: 1;
+ left: -5px;
+ top: -5px;
+}
+
+.ui-autocomplete-input {
+ border-bottom: 1px solid rgb(212, 212, 212) !important;
+}
+
+.ui-autocomplete-input.active {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.search-icon {
+ position: absolute;
+ right: 20px;
+ top: 18px;
+ font-size: 14px;
+}
+
+i {
+ transition: .2s ease;
+}
+
+a:hover i {
+ color: var(--primary-color);
+}
+
+/* custom scrollbar */
+pre code::-webkit-scrollbar {
+ height: 5px;
+}
+
+pre code::-webkit-scrollbar-track {
+ background: #000000;
+}
+
+pre code::-webkit-scrollbar-thumb {
+ background: #888;
+}
+
+/* content tabs */
+.code-tabs {
+ border: 1px solid #dee2e6;
+ overflow: hidden;
+ margin: 20px 0px;
+}
+
+.code-tabs .tab-content {
+ padding: 20px 15px;
+ margin-bottom: 0;
+}
+
+.code-tabs .tab-content .tab-pane{
+ margin-bottom: 0;
+}
+
+.code-tabs .nav-tabs {
+ margin-bottom: 0;
+}
+
+.code-tabs .nav-tabs .nav-item {
+ padding-left: 0;
+ border-right: 1px solid #dee2e6;
+}
+
+.code-tabs .nav-tabs .nav-item .nav-link {
+ text-decoration: none;
+ font-weight: 500;
+ border: 0;
+ margin-bottom: 0;
+}
+
+.code-tabs .nav-tabs .nav-item::before {
+ display: none;
+}
+
+.code-tabs .nav-tabs .nav-item.active {
+ background: var(--primary-color);
+}
+
+.code-tabs .nav-tabs .nav-item.active .nav-link {
+ color: var(--white-color);
} \ No newline at end of file
diff --git a/assets/js/script.js b/assets/js/script.js
index e8e111e..7a04cbb 100644
--- a/assets/js/script.js
+++ b/assets/js/script.js
@@ -1,130 +1,130 @@
-(function ($) {
- 'use strict';
-
- // Background-images
- $('[data-background]').each(function () {
- $(this).css({
- 'background-image': 'url(' + $(this).data('background') + ')'
- });
- });
-
-
- // Accordions
- $('.collapse').on('shown.bs.collapse', function () {
- $(this).parent().find('.ti-plus').removeClass('ti-plus').addClass('ti-minus');
- }).on('hidden.bs.collapse', function () {
- $(this).parent().find('.ti-minus').removeClass('ti-minus').addClass('ti-plus');
- });
-
-
- // match height
- $(function () {
- $('.match-height').matchHeight({
- byRow: true,
- property: 'height',
- target: null,
- remove: false
- });
- });
-
- // Get Parameters from some url
- var getUrlParameter = function getUrlParameter(sPageURL) {
- var url = sPageURL.split('?');
- var obj = {};
- if (url.length == 2) {
- var sURLVariables = url[1].split('&'),
- sParameterName,
- i;
- for (i = 0; i < sURLVariables.length; i++) {
- sParameterName = sURLVariables[i].split('=');
- obj[sParameterName[0]] = sParameterName[1];
- }
- return obj;
- } else {
- return undefined;
- }
- };
-
- // Execute actions on images generated from Markdown pages
- var images = $(".content img").not(".inline");
- // Wrap image inside a featherlight (to get a full size view in a popup)
- images.wrap(function () {
- var image = $(this);
- if (!image.parent("a").length) {
- return "<a href='" + image[0].src + "' data-featherlight='image'></a>";
- }
- });
-
- // Change styles, depending on parameters set to the image
- images.each(function (index) {
- var image = $(this)
- var o = getUrlParameter(image[0].src);
- if (typeof o !== "undefined") {
- var h = o["height"];
- var w = o["width"];
- var c = o["classes"];
- image.css("width", function () {
- if (typeof w !== "undefined") {
- return w;
- } else {
- return "auto";
- }
- });
- image.css("height", function () {
- if (typeof h !== "undefined") {
- return h;
- } else {
- return "auto";
- }
- });
- if (typeof c !== "undefined") {
- var classes = c.split(',');
- for (i = 0; i < classes.length; i++) {
- image.addClass(classes[i]);
- }
- }
- }
- });
-
-
- // tab
- $('.tab-content').find('.tab-pane').each(function (idx, item) {
- var navTabs = $(this).closest('.code-tabs').find('.nav-tabs'),
- title = $(this).attr('title');
- navTabs.append('<li class="nav-item"><a class="nav-link" href="#">' + title + '</a></li>');
- });
-
- $('.code-tabs ul.nav-tabs').each(function () {
- $(this).find("li:first").addClass('active');
- })
-
- $('.code-tabs .tab-content').each(function () {
- $(this).find("div:first").addClass('active');
- });
-
- $('.nav-tabs a').click(function (e) {
- e.preventDefault();
- var tab = $(this).parent(),
- tabIndex = tab.index(),
- tabPanel = $(this).closest('.code-tabs'),
- tabPane = tabPanel.find('.tab-pane').eq(tabIndex);
- tabPanel.find('.active').removeClass('active');
- tab.addClass('active');
- tabPane.addClass('active');
- });
-
-
-
- // search
- $('#search').keyup(function () {
- if (this.value) {
- $(this).addClass('active')
- } else {
- $(this).removeClass('active')
- }
- })
- $('#search').focusout(function () {
- $(this).removeClass('active')
- })
-
+(function ($) {
+ 'use strict';
+
+ // Background-images
+ $('[data-background]').each(function () {
+ $(this).css({
+ 'background-image': 'url(' + $(this).data('background') + ')'
+ });
+ });
+
+
+ // Accordions
+ $('.collapse').on('shown.bs.collapse', function () {
+ $(this).parent().find('.ti-plus').removeClass('ti-plus').addClass('ti-minus');
+ }).on('hidden.bs.collapse', function () {
+ $(this).parent().find('.ti-minus').removeClass('ti-minus').addClass('ti-plus');
+ });
+
+
+ // match height
+ $(function () {
+ $('.match-height').matchHeight({
+ byRow: true,
+ property: 'height',
+ target: null,
+ remove: false
+ });
+ });
+
+ // Get Parameters from some url
+ var getUrlParameter = function getUrlParameter(sPageURL) {
+ var url = sPageURL.split('?');
+ var obj = {};
+ if (url.length == 2) {
+ var sURLVariables = url[1].split('&'),
+ sParameterName,
+ i;
+ for (i = 0; i < sURLVariables.length; i++) {
+ sParameterName = sURLVariables[i].split('=');
+ obj[sParameterName[0]] = sParameterName[1];
+ }
+ return obj;
+ } else {
+ return undefined;
+ }
+ };
+
+ // Execute actions on images generated from Markdown pages
+ var images = $(".content img").not(".inline");
+ // Wrap image inside a featherlight (to get a full size view in a popup)
+ images.wrap(function () {
+ var image = $(this);
+ if (!image.parent("a").length) {
+ return "<a href='" + image[0].src + "' data-featherlight='image'></a>";
+ }
+ });
+
+ // Change styles, depending on parameters set to the image
+ images.each(function (index) {
+ var image = $(this)
+ var o = getUrlParameter(image[0].src);
+ if (typeof o !== "undefined") {
+ var h = o["height"];
+ var w = o["width"];
+ var c = o["classes"];
+ image.css("width", function () {
+ if (typeof w !== "undefined") {
+ return w;
+ } else {
+ return "auto";
+ }
+ });
+ image.css("height", function () {
+ if (typeof h !== "undefined") {
+ return h;
+ } else {
+ return "auto";
+ }
+ });
+ if (typeof c !== "undefined") {
+ var classes = c.split(',');
+ for (i = 0; i < classes.length; i++) {
+ image.addClass(classes[i]);
+ }
+ }
+ }
+ });
+
+
+ // tab
+ $('.tab-content').find('.tab-pane').each(function (idx, item) {
+ var navTabs = $(this).closest('.code-tabs').find('.nav-tabs'),
+ title = $(this).attr('title');
+ navTabs.append('<li class="nav-item"><a class="nav-link" href="#">' + title + '</a></li>');
+ });
+
+ $('.code-tabs ul.nav-tabs').each(function () {
+ $(this).find("li:first").addClass('active');
+ })
+
+ $('.code-tabs .tab-content').each(function () {
+ $(this).find("div:first").addClass('active');
+ });
+
+ $('.nav-tabs a').click(function (e) {
+ e.preventDefault();
+ var tab = $(this).parent(),
+ tabIndex = tab.index(),
+ tabPanel = $(this).closest('.code-tabs'),
+ tabPane = tabPanel.find('.tab-pane').eq(tabIndex);
+ tabPanel.find('.active').removeClass('active');
+ tab.addClass('active');
+ tabPane.addClass('active');
+ });
+
+
+
+ // search
+ $('#search').keyup(function () {
+ if (this.value) {
+ $(this).addClass('active')
+ } else {
+ $(this).removeClass('active')
+ }
+ })
+ $('#search').focusout(function () {
+ $(this).removeClass('active')
+ })
+
})(jQuery); \ No newline at end of file
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index 0d284a2..96e977b 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -1,197 +1,197 @@
-################################# Default configuration ###################
-# provide your domain here
-baseURL = "https://examplesite.com/"
-# theme
-theme = "dot"
-# site title
-title = "Dot"
-# disable language
-disableLanguages = []
-# google analytics
-googleAnalytics = "" # paste your analytics ID here. (Ex: UA-123-45)
-# unsafe html
-[markup.goldmark.renderer]
-unsafe = true
-
-
-############################# Default Parameters ##########################
-[params]
-# logo is for all page
-logo = ""
-# logo white is for homepage logo, you can use colorful logo too...
-logo_white = ""
-# when logo is empty, it will shown your site title
-
-# OpenGraph / Twitter Card metadata
-description = "This is meta description"
-author = "Themefisher"
-image = "images/logo.png" # this image will be used as fallback if a page has no image of its own
-
-# customize color
-primary_color = "#02007e"
-body_color = "#f9f9f9"
-text_color = "#636363"
-text_color_dark = "#242738"
-white_color = "#ffffff"
-light_color = "#f8f9fa"
-
-# font family
-font_family = "lato" # Choose font family from : https://fonts.google.com/
-
-# contact form action
-contact_form_action = "#" # contact form works with : https://formspree.io
-
-
-############################## social links ##############################
-[[params.social]]
-icon = "ti-facebook" # themify icon pack : https://themify.me/themify-icons
-name = "Facebook"
-link = "#"
-
-[[params.social]]
-icon = "ti-twitter-alt" # themify icon pack : https://themify.me/themify-icons
-name = "Twitter"
-link = "#"
-
-[[params.social]]
-icon = "ti-github" # themify icon pack : https://themify.me/themify-icons
-name = "Github"
-link = "#"
-
-[[params.social]]
-icon = "ti-linkedin" # themify icon pack : https://themify.me/themify-icons
-name = "Linkedin"
-link = "#"
-
-################################ English Language ######################
-[Languages.en]
-languageName = "En"
-languageCode = "en-us"
-weight = 1
-copyright = "Copyright © 2020 a Hugo theme by [Gethugothemes](https://gethugothemes.com/)"
-
-# banner
-[Languages.en.params.banner]
-title = "Support Center & Knowledge base"
-subtitle = "Find advice and answers from our support team fast or get in touch"
-bg_image = "images/banner.jpg"
-placeholder = "Have a question? Just ask here or enter terms"
-
-# call to action
-[Languages.en.params.cta]
-enable = true
-title = "Didn't find an answer to your question?"
-content = "Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam."
-# call to action button
-[Languages.en.params.cta.button]
-enable = true
-label = "contact us"
-link = "contact"
-
-
-################## english navigation #################
-[[Languages.en.menu.main]]
-name = "Home"
-url = "/"
-weight = 1
-
-[[Languages.en.menu.main]]
-name = "Faq"
-url = "faq"
-weight = 2
-
-[[Languages.en.menu.main]]
-name = "contact"
-url = "contact"
-weight = 3
-
-# Dropdown menu
-[[Languages.en.menu.main]]
-weight = 4
-name = "docs"
-hasChildren = true
-
- [[Languages.en.menu.main]]
- parent = "docs"
- name = "Installation"
- url = "installation"
- weight = 1
-
- [[Languages.en.menu.main]]
- parent = "docs"
- name = "Billing and Pricing"
- url = "billing-pricing"
- weight = 2
-
- [[Languages.en.menu.main]]
- parent = "docs"
- name = "Features"
- url = "features"
- weight = 3
-
-
-################################### Franch Language ######################
-[Languages.fr]
-languageName = "Fr"
-languageCode = "fr-fr"
-weight = 2
-copyright = "Copyright © 2020 un thème Hugo par [Gethugothemes](https://gethugothemes.com/)"
-
-# banner
-[Languages.fr.params.banner]
-title = "Comment pouvons nous aider?"
-subtitle = "Trouvez rapidement des conseils et des réponses auprès de notre équipe d'assistance ou contactez-nous."
-bg_image = "images/banner.jpg"
-placeholder = "Avoir une question? Il suffit de demander ici ou de saisir les termes"
-
-# call to action
-[Languages.fr.params.cta]
-enable = true
-title = "Vous n'avez pas trouvé de réponse à votre question?"
-content = "Contactez-nous pour plus de détails sur les services supplémentaires et la tarification du travail personnalisé"
-# call to action button
-[Languages.fr.params.cta.button]
-enable = true
-label = "Contactez nous"
-link = "contact"
-
-
-################## french navigation #################
-[[Languages.fr.menu.main]]
-name = "Accueil"
-url = "/"
-weight = 1
-
-[[Languages.fr.menu.main]]
-name = "Faq"
-url = "faq"
-weight = 2
-
-[[Languages.fr.menu.main]]
-name = "contact"
-url = "contact"
-weight = 3
-
-# Dropdown menu
-[[Languages.fr.menu.main]]
-weight = 4
-name = "docs"
-hasChildren = true
-
- [[Languages.fr.menu.main]]
- parent = "docs"
- name = "Installation"
- url = "installation"
- weight = 1
-
- [[Languages.fr.menu.main]]
- parent = "docs"
- name = "Billing and Pricing"
- url = "billing-pricing"
- weight = 2
-
- [[Languages.fr.menu.main]]
- parent = "docs"
- name = "Features"
- url = "features"
+################################# Default configuration ###################
+# provide your domain here
+baseURL = "https://examplesite.com/"
+# theme
+theme = "dot"
+# site title
+title = "Dot"
+# disable language
+disableLanguages = []
+# google analytics
+googleAnalytics = "" # paste your analytics ID here. (Ex: UA-123-45)
+# unsafe html
+[markup.goldmark.renderer]
+unsafe = true
+
+
+############################# Default Parameters ##########################
+[params]
+# logo is for all page
+logo = ""
+# logo white is for homepage logo, you can use colorful logo too...
+logo_white = ""
+# when logo is empty, it will shown your site title
+
+# OpenGraph / Twitter Card metadata
+description = "This is meta description"
+author = "Themefisher"
+image = "images/logo.png" # this image will be used as fallback if a page has no image of its own
+
+# customize color
+primary_color = "#02007e"
+body_color = "#f9f9f9"
+text_color = "#636363"
+text_color_dark = "#242738"
+white_color = "#ffffff"
+light_color = "#f8f9fa"
+
+# font family
+font_family = "lato" # Choose font family from : https://fonts.google.com/
+
+# contact form action
+contact_form_action = "#" # contact form works with : https://formspree.io
+
+
+############################## social links ##############################
+[[params.social]]
+icon = "ti-facebook" # themify icon pack : https://themify.me/themify-icons
+name = "Facebook"
+link = "#"
+
+[[params.social]]
+icon = "ti-twitter-alt" # themify icon pack : https://themify.me/themify-icons
+name = "Twitter"
+link = "#"
+
+[[params.social]]
+icon = "ti-github" # themify icon pack : https://themify.me/themify-icons
+name = "Github"
+link = "#"
+
+[[params.social]]
+icon = "ti-linkedin" # themify icon pack : https://themify.me/themify-icons
+name = "Linkedin"
+link = "#"
+
+################################ English Language ######################
+[Languages.en]
+languageName = "En"
+languageCode = "en-us"
+weight = 1
+copyright = "Copyright © 2020 a Hugo theme by [Gethugothemes](https://gethugothemes.com/)"
+
+# banner
+[Languages.en.params.banner]
+title = "Support Center & Knowledge base"
+subtitle = "Find advice and answers from our support team fast or get in touch"
+bg_image = "images/banner.jpg"
+placeholder = "Have a question? Just ask here or enter terms"
+
+# call to action
+[Languages.en.params.cta]
+enable = true
+title = "Didn't find an answer to your question?"
+content = "Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam."
+# call to action button
+[Languages.en.params.cta.button]
+enable = true
+label = "contact us"
+link = "contact"
+
+
+################## english navigation #################
+[[Languages.en.menu.main]]
+name = "Home"
+url = "/"
+weight = 1
+
+[[Languages.en.menu.main]]
+name = "Faq"
+url = "faq"
+weight = 2
+
+[[Languages.en.menu.main]]
+name = "contact"
+url = "contact"
+weight = 3
+
+# Dropdown menu
+[[Languages.en.menu.main]]
+weight = 4
+name = "docs"
+hasChildren = true
+
+ [[Languages.en.menu.main]]
+ parent = "docs"
+ name = "Installation"
+ url = "installation"
+ weight = 1
+
+ [[Languages.en.menu.main]]
+ parent = "docs"
+ name = "Billing and Pricing"
+ url = "billing-pricing"
+ weight = 2
+
+ [[Languages.en.menu.main]]
+ parent = "docs"
+ name = "Features"
+ url = "features"
+ weight = 3
+
+
+################################### Franch Language ######################
+[Languages.fr]
+languageName = "Fr"
+languageCode = "fr-fr"
+weight = 2
+copyright = "Copyright © 2020 un thème Hugo par [Gethugothemes](https://gethugothemes.com/)"
+
+# banner
+[Languages.fr.params.banner]
+title = "Comment pouvons nous aider?"
+subtitle = "Trouvez rapidement des conseils et des réponses auprès de notre équipe d'assistance ou contactez-nous."
+bg_image = "images/banner.jpg"
+placeholder = "Avoir une question? Il suffit de demander ici ou de saisir les termes"
+
+# call to action
+[Languages.fr.params.cta]
+enable = true
+title = "Vous n'avez pas trouvé de réponse à votre question?"
+content = "Contactez-nous pour plus de détails sur les services supplémentaires et la tarification du travail personnalisé"
+# call to action button
+[Languages.fr.params.cta.button]
+enable = true
+label = "Contactez nous"
+link = "contact"
+
+
+################## french navigation #################
+[[Languages.fr.menu.main]]
+name = "Accueil"
+url = "/"
+weight = 1
+
+[[Languages.fr.menu.main]]
+name = "Faq"
+url = "faq"
+weight = 2
+
+[[Languages.fr.menu.main]]
+name = "contact"
+url = "contact"
+weight = 3
+
+# Dropdown menu
+[[Languages.fr.menu.main]]
+weight = 4
+name = "docs"
+hasChildren = true
+
+ [[Languages.fr.menu.main]]
+ parent = "docs"
+ name = "Installation"
+ url = "installation"
+ weight = 1
+
+ [[Languages.fr.menu.main]]
+ parent = "docs"
+ name = "Billing and Pricing"
+ url = "billing-pricing"
+ weight = 2
+
+ [[Languages.fr.menu.main]]
+ parent = "docs"
+ name = "Features"
+ url = "features"
weight = 3 \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/_index.en.md b/exampleSite/content/billing-pricing/_index.en.md
index e08937d..dbc9705 100644
--- a/exampleSite/content/billing-pricing/_index.en.md
+++ b/exampleSite/content/billing-pricing/_index.en.md
@@ -1,21 +1,21 @@
----
-title: "Billing & Pricing"
-date: 2018-12-28T11:02:05+06:00
-icon: "ti-credit-card"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
----
-
-Many businesses employ full-time pricing analysts or hire an analyst as a consultant for a particular project or concern.
-
-Pricing analysts look at industry standards, playing close attention to the pricing strategies of their competitors.
-
-They use mathematical analysis to track pricing trends in the marketplace using industry databases, catalogues and other industry sources. They study consumer habits to determine how much people are willing to pay for various products, and to look for patterns in consumer spending.
-
-They are also interested in the cost of production of various items, the amount of profit a company wants to make, and associated costs like marketing.
-
-They may be involved with the packaging and presentation of products, which can influence how much people are willing to pay, and they provide advice during the research and development phase to help create the most income for the company.
-
-They work with a variety of departments, including sales, product management, marketing and accounting, to ensure that their methods comply with company strategy and maximise profitability.
-
+---
+title: "Billing & Pricing"
+date: 2018-12-28T11:02:05+06:00
+icon: "ti-credit-card"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
+---
+
+Many businesses employ full-time pricing analysts or hire an analyst as a consultant for a particular project or concern.
+
+Pricing analysts look at industry standards, playing close attention to the pricing strategies of their competitors.
+
+They use mathematical analysis to track pricing trends in the marketplace using industry databases, catalogues and other industry sources. They study consumer habits to determine how much people are willing to pay for various products, and to look for patterns in consumer spending.
+
+They are also interested in the cost of production of various items, the amount of profit a company wants to make, and associated costs like marketing.
+
+They may be involved with the packaging and presentation of products, which can influence how much people are willing to pay, and they provide advice during the research and development phase to help create the most income for the company.
+
+They work with a variety of departments, including sales, product management, marketing and accounting, to ensure that their methods comply with company strategy and maximise profitability.
+
Other duties that are included under a pricing analyst's job title include maintaining price lists, contributing content for sales proposals, reviewing price quotes, generating pricing reports on sales revenue and preparing revenue forecasts and budgets for project managers. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/_index.fr.md b/exampleSite/content/billing-pricing/_index.fr.md
index e08937d..dbc9705 100644
--- a/exampleSite/content/billing-pricing/_index.fr.md
+++ b/exampleSite/content/billing-pricing/_index.fr.md
@@ -1,21 +1,21 @@
----
-title: "Billing & Pricing"
-date: 2018-12-28T11:02:05+06:00
-icon: "ti-credit-card"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
----
-
-Many businesses employ full-time pricing analysts or hire an analyst as a consultant for a particular project or concern.
-
-Pricing analysts look at industry standards, playing close attention to the pricing strategies of their competitors.
-
-They use mathematical analysis to track pricing trends in the marketplace using industry databases, catalogues and other industry sources. They study consumer habits to determine how much people are willing to pay for various products, and to look for patterns in consumer spending.
-
-They are also interested in the cost of production of various items, the amount of profit a company wants to make, and associated costs like marketing.
-
-They may be involved with the packaging and presentation of products, which can influence how much people are willing to pay, and they provide advice during the research and development phase to help create the most income for the company.
-
-They work with a variety of departments, including sales, product management, marketing and accounting, to ensure that their methods comply with company strategy and maximise profitability.
-
+---
+title: "Billing & Pricing"
+date: 2018-12-28T11:02:05+06:00
+icon: "ti-credit-card"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
+---
+
+Many businesses employ full-time pricing analysts or hire an analyst as a consultant for a particular project or concern.
+
+Pricing analysts look at industry standards, playing close attention to the pricing strategies of their competitors.
+
+They use mathematical analysis to track pricing trends in the marketplace using industry databases, catalogues and other industry sources. They study consumer habits to determine how much people are willing to pay for various products, and to look for patterns in consumer spending.
+
+They are also interested in the cost of production of various items, the amount of profit a company wants to make, and associated costs like marketing.
+
+They may be involved with the packaging and presentation of products, which can influence how much people are willing to pay, and they provide advice during the research and development phase to help create the most income for the company.
+
+They work with a variety of departments, including sales, product management, marketing and accounting, to ensure that their methods comply with company strategy and maximise profitability.
+
Other duties that are included under a pricing analyst's job title include maintaining price lists, contributing content for sales proposals, reviewing price quotes, generating pricing reports on sales revenue and preparing revenue forecasts and budgets for project managers. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/bill/_index.en.md b/exampleSite/content/billing-pricing/bill/_index.en.md
index 683fcfc..60b4427 100644
--- a/exampleSite/content/billing-pricing/bill/_index.en.md
+++ b/exampleSite/content/billing-pricing/bill/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "How to pay your bill"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: ["money","payment"]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "How to pay your bill"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: ["money","payment"]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/bill/_index.fr.md b/exampleSite/content/billing-pricing/bill/_index.fr.md
index 683fcfc..60b4427 100644
--- a/exampleSite/content/billing-pricing/bill/_index.fr.md
+++ b/exampleSite/content/billing-pricing/bill/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "How to pay your bill"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: ["money","payment"]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "How to pay your bill"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: ["money","payment"]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/manage/_index.en.md b/exampleSite/content/billing-pricing/manage/_index.en.md
index 07de344..043946e 100644
--- a/exampleSite/content/billing-pricing/manage/_index.en.md
+++ b/exampleSite/content/billing-pricing/manage/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Manage My Sprint account"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: ["handle"]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Manage My Sprint account"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: ["handle"]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/manage/_index.fr.md b/exampleSite/content/billing-pricing/manage/_index.fr.md
index 07de344..043946e 100644
--- a/exampleSite/content/billing-pricing/manage/_index.fr.md
+++ b/exampleSite/content/billing-pricing/manage/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Manage My Sprint account"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: ["handle"]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Manage My Sprint account"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: ["handle"]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/ownership/_index.en.md b/exampleSite/content/billing-pricing/ownership/_index.en.md
index d3d3884..8ee390c 100644
--- a/exampleSite/content/billing-pricing/ownership/_index.en.md
+++ b/exampleSite/content/billing-pricing/ownership/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Customer instructions for change of ownership"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Customer instructions for change of ownership"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/ownership/_index.fr.md b/exampleSite/content/billing-pricing/ownership/_index.fr.md
index d3d3884..8ee390c 100644
--- a/exampleSite/content/billing-pricing/ownership/_index.fr.md
+++ b/exampleSite/content/billing-pricing/ownership/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Customer instructions for change of ownership"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Customer instructions for change of ownership"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/payment/_index.en.md b/exampleSite/content/billing-pricing/payment/_index.en.md
index 7ba03bb..89b3b94 100644
--- a/exampleSite/content/billing-pricing/payment/_index.en.md
+++ b/exampleSite/content/billing-pricing/payment/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Payment arrangements"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Payment arrangements"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/payment/_index.fr.md b/exampleSite/content/billing-pricing/payment/_index.fr.md
index 7ba03bb..89b3b94 100644
--- a/exampleSite/content/billing-pricing/payment/_index.fr.md
+++ b/exampleSite/content/billing-pricing/payment/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Payment arrangements"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Payment arrangements"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/profile/_index.en.md b/exampleSite/content/billing-pricing/profile/_index.en.md
index 17e6ad8..8cbc335 100644
--- a/exampleSite/content/billing-pricing/profile/_index.en.md
+++ b/exampleSite/content/billing-pricing/profile/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Understand the different levels of profile"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 5
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Understand the different levels of profile"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 5
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/billing-pricing/profile/_index.fr.md b/exampleSite/content/billing-pricing/profile/_index.fr.md
index 17e6ad8..8cbc335 100644
--- a/exampleSite/content/billing-pricing/profile/_index.fr.md
+++ b/exampleSite/content/billing-pricing/profile/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Understand the different levels of profile"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 5
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Understand the different levels of profile"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 5
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/contact/_index.en.md b/exampleSite/content/contact/_index.en.md
index ec95307..9015b2f 100644
--- a/exampleSite/content/contact/_index.en.md
+++ b/exampleSite/content/contact/_index.en.md
@@ -1,6 +1,6 @@
----
-title: "Got Any Questions"
-draft: false
----
-
+---
+title: "Got Any Questions"
+draft: false
+---
+
Submit the form and confirm your email address at [Formspree](https://formspree.io/). \ No newline at end of file
diff --git a/exampleSite/content/contact/_index.fr.md b/exampleSite/content/contact/_index.fr.md
index cabba1a..28200d2 100644
--- a/exampleSite/content/contact/_index.fr.md
+++ b/exampleSite/content/contact/_index.fr.md
@@ -1,6 +1,6 @@
----
-title: "Vous avez des questions"
-draft: false
----
-
+---
+title: "Vous avez des questions"
+draft: false
+---
+
Envoyez le formulaire et confirmez votre adresse e-mail à l'adresse[Formspree](https://formspree.io/). \ No newline at end of file
diff --git a/exampleSite/content/faq/_index.en.md b/exampleSite/content/faq/_index.en.md
index 5f73bd5..7edcb89 100644
--- a/exampleSite/content/faq/_index.en.md
+++ b/exampleSite/content/faq/_index.en.md
@@ -1,36 +1,36 @@
----
-title: "Frequently Asked Questions"
-draft: false
----
-
-{{< faq "Will updates also be free?" >}}
-Lorem, [link](https://examplesite.com) _ipsum_ dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Discounts for students and Non Profit Organizations?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "I need something unique, Can you make it?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Is there any documentation and support?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Any refunds?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "What is a product key?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Where do I download the file to?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "What happens after I download?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+---
+title: "Frequently Asked Questions"
+draft: false
+---
+
+{{< faq "Will updates also be free?" >}}
+Lorem, [link](https://examplesite.com) _ipsum_ dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Discounts for students and Non Profit Organizations?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "I need something unique, Can you make it?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Is there any documentation and support?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Any refunds?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "What is a product key?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Where do I download the file to?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "What happens after I download?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
{{</ faq >}} \ No newline at end of file
diff --git a/exampleSite/content/faq/_index.fr.md b/exampleSite/content/faq/_index.fr.md
index dede5ff..4c1fae1 100644
--- a/exampleSite/content/faq/_index.fr.md
+++ b/exampleSite/content/faq/_index.fr.md
@@ -1,36 +1,36 @@
----
-title: "Questions fréquemment posées"
-draft: false
----
-
-{{< faq "Will updates also be free?" >}}
-Lorem, [link](https://examplesite.com) ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Discounts for students and Non Profit Organizations?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "I need something unique, Can you make it?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Is there any documentation and support?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Any refunds?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "What is a product key?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "Where do I download the file to?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
-{{</ faq >}}
-
-{{< faq "What happens after I download?" >}}
-Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+---
+title: "Questions fréquemment posées"
+draft: false
+---
+
+{{< faq "Will updates also be free?" >}}
+Lorem, [link](https://examplesite.com) ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Discounts for students and Non Profit Organizations?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "I need something unique, Can you make it?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Is there any documentation and support?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Any refunds?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "What is a product key?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "Where do I download the file to?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
+{{</ faq >}}
+
+{{< faq "What happens after I download?" >}}
+Lorem, ipsum dolor sit amet consectetur adipisicing elit. Cumque praesentium nisi officiis maiores quia sapiente totam omnis vel sequi corporis ipsa incidunt reprehenderit recusandae maxime perspiciatis iste placeat architecto, mollitia delectus [link](https://examplesite.com) ut ab quibusdam. Magnam cumque numquam tempore reprehenderit illo, unde cum omnis vel sed temporibus, repudiandae impedit nam ad enim porro, qui labore fugiat quod suscipit fuga necessitatibus. Perferendis, ipsum? Cum, reprehenderit. Sapiente atque quam vitae, magnam dolore consequatur temporibus harum odit ab id quo qui aspernatur aliquid officiis sit error asperiores eveniet quibusdam, accusantium enim recusandae quas ea est! Quaerat omnis, placeat vitae laboriosam doloremque recusandae mollitia minima!
{{</ faq >}} \ No newline at end of file
diff --git a/exampleSite/content/features/_index.en.md b/exampleSite/content/features/_index.en.md
index a27d9eb..fe2ee9f 100644
--- a/exampleSite/content/features/_index.en.md
+++ b/exampleSite/content/features/_index.en.md
@@ -1,7 +1,7 @@
----
-title: "Features"
-date: 2018-12-28T11:02:05+06:00
-icon: "ti-package"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
+---
+title: "Features"
+date: 2018-12-28T11:02:05+06:00
+icon: "ti-package"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
--- \ No newline at end of file
diff --git a/exampleSite/content/features/_index.fr.md b/exampleSite/content/features/_index.fr.md
index a27d9eb..fe2ee9f 100644
--- a/exampleSite/content/features/_index.fr.md
+++ b/exampleSite/content/features/_index.fr.md
@@ -1,7 +1,7 @@
----
-title: "Features"
-date: 2018-12-28T11:02:05+06:00
-icon: "ti-package"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
+---
+title: "Features"
+date: 2018-12-28T11:02:05+06:00
+icon: "ti-package"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
--- \ No newline at end of file
diff --git a/exampleSite/content/features/linux/_index.en.md b/exampleSite/content/features/linux/_index.en.md
index 79c29d6..1aee3ba 100644
--- a/exampleSite/content/features/linux/_index.en.md
+++ b/exampleSite/content/features/linux/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Linux"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Linux"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/linux/_index.fr.md b/exampleSite/content/features/linux/_index.fr.md
index 79c29d6..1aee3ba 100644
--- a/exampleSite/content/features/linux/_index.fr.md
+++ b/exampleSite/content/features/linux/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Linux"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Linux"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/mac/_index.en.md b/exampleSite/content/features/mac/_index.en.md
index 5ca1b9f..9b7c109 100644
--- a/exampleSite/content/features/mac/_index.en.md
+++ b/exampleSite/content/features/mac/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Mac OS"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Mac OS"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/mac/_index.fr.md b/exampleSite/content/features/mac/_index.fr.md
index 5ca1b9f..9b7c109 100644
--- a/exampleSite/content/features/mac/_index.fr.md
+++ b/exampleSite/content/features/mac/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Mac OS"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Mac OS"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/routing/_index.en.md b/exampleSite/content/features/routing/_index.en.md
index 88e4730..a9c21ca 100644
--- a/exampleSite/content/features/routing/_index.en.md
+++ b/exampleSite/content/features/routing/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Routing"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Routing"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/routing/_index.fr.md b/exampleSite/content/features/routing/_index.fr.md
index 88e4730..a9c21ca 100644
--- a/exampleSite/content/features/routing/_index.fr.md
+++ b/exampleSite/content/features/routing/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Routing"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Routing"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/ubuntu/_index.en.md b/exampleSite/content/features/ubuntu/_index.en.md
index 31812da..fc4506d 100644
--- a/exampleSite/content/features/ubuntu/_index.en.md
+++ b/exampleSite/content/features/ubuntu/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Ubuntu"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Ubuntu"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/ubuntu/_index.fr.md b/exampleSite/content/features/ubuntu/_index.fr.md
index 31812da..fc4506d 100644
--- a/exampleSite/content/features/ubuntu/_index.fr.md
+++ b/exampleSite/content/features/ubuntu/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Ubuntu"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Ubuntu"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/windows/_index.en.md b/exampleSite/content/features/windows/_index.en.md
index a57dcc0..5658866 100644
--- a/exampleSite/content/features/windows/_index.en.md
+++ b/exampleSite/content/features/windows/_index.en.md
@@ -1,71 +1,71 @@
----
-title: "Windows"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 5
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Windows"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 5
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/features/windows/_index.fr.md b/exampleSite/content/features/windows/_index.fr.md
index a57dcc0..5658866 100644
--- a/exampleSite/content/features/windows/_index.fr.md
+++ b/exampleSite/content/features/windows/_index.fr.md
@@ -1,71 +1,71 @@
----
-title: "Windows"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 5
-draft: false
-# search related keywords
-keywords: [""]
----
-
-Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
-
-{{< notice note >}}
- This is a simple note.
-{{</ notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{</ notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{</ notice >}}
-
-
-{{< tabs >}}
- {{< tab "first" >}}
- This is first tab
- {{</ tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{</ tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{</ tab >}}
-{{</ tabs >}}
-
-Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
-
-### Image Example
-
-Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
-
-![image example](img-1.jpg "image")
-
-Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
-
-### Example Of Code Block
-
-In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-```html
-<head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/assets/css/main.css">
- <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
- <script src="/assets/js/main.js"></script>
-</head>
-```
-
-### Text and Quote
-
-Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
-
-> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
-
+---
+title: "Windows"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 5
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.
+
+{{< notice note >}}
+ This is a simple note.
+{{</ notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{</ notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{</ notice >}}
+
+
+{{< tabs >}}
+ {{< tab "first" >}}
+ This is first tab
+ {{</ tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{</ tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{</ tab >}}
+{{</ tabs >}}
+
+Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.
+
+### Image Example
+
+Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.
+
+![image example](img-1.jpg "image")
+
+Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.
+
+### Example Of Code Block
+
+In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+```html
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="/assets/css/main.css">
+ <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+ <script src="/assets/js/main.js"></script>
+</head>
+```
+
+### Text and Quote
+
+Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.
+
+> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet
+
Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. \ No newline at end of file
diff --git a/exampleSite/content/installation/_index.en.md b/exampleSite/content/installation/_index.en.md
index 98742af..5d26cef 100644
--- a/exampleSite/content/installation/_index.en.md
+++ b/exampleSite/content/installation/_index.en.md
@@ -1,7 +1,7 @@
----
-title: "Installation"
-date: 2018-12-29T11:02:05+06:00
-icon: "ti-panel"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
+---
+title: "Installation"
+date: 2018-12-29T11:02:05+06:00
+icon: "ti-panel"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
--- \ No newline at end of file
diff --git a/exampleSite/content/installation/_index.fr.md b/exampleSite/content/installation/_index.fr.md
index 98742af..5d26cef 100644
--- a/exampleSite/content/installation/_index.fr.md
+++ b/exampleSite/content/installation/_index.fr.md
@@ -1,7 +1,7 @@
----
-title: "Installation"
-date: 2018-12-29T11:02:05+06:00
-icon: "ti-panel"
-description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
-type : "docs"
+---
+title: "Installation"
+date: 2018-12-29T11:02:05+06:00
+icon: "ti-panel"
+description: "Lorem ipsum dolor sit amet ipsum dolor sit amet ipsum dolor sit amet"
+type : "docs"
--- \ No newline at end of file
diff --git a/exampleSite/content/installation/configuration/_index.en.md b/exampleSite/content/installation/configuration/_index.en.md
index 0d1dbb3..4a5e15c 100644
--- a/exampleSite/content/installation/configuration/_index.en.md
+++ b/exampleSite/content/installation/configuration/_index.en.md
@@ -1,27 +1,27 @@
----
-title: "Configuration"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: [""]
----
-
-### Global site parameters
-
-On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Dot** lets you define the following parameters in your `config.toml` (here, values are default).
-
-Note that some of these parameters are explained in details in other sections of this documentation.
-
-```toml
-[params]
- # Prefix URL to edit current page.
- # Useful to give opportunity to people to create merge request for your doc.
- # See the config.toml file from this documentation site to have an example.
- # Javascript and CSS cache are automatically busted when new version of site is generated.
- # Order sections in menu by "weight"
- # Call to action is default enabled, if you want to disable it. just change the
- enable = false
- # You can change banner title and other text from the config file.
+---
+title: "Configuration"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+### Global site parameters
+
+On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Dot** lets you define the following parameters in your `config.toml` (here, values are default).
+
+Note that some of these parameters are explained in details in other sections of this documentation.
+
+```toml
+[params]
+ # Prefix URL to edit current page.
+ # Useful to give opportunity to people to create merge request for your doc.
+ # See the config.toml file from this documentation site to have an example.
+ # Javascript and CSS cache are automatically busted when new version of site is generated.
+ # Order sections in menu by "weight"
+ # Call to action is default enabled, if you want to disable it. just change the
+ enable = false
+ # You can change banner title and other text from the config file.
``` \ No newline at end of file
diff --git a/exampleSite/content/installation/configuration/_index.fr.md b/exampleSite/content/installation/configuration/_index.fr.md
index 0d1dbb3..4a5e15c 100644
--- a/exampleSite/content/installation/configuration/_index.fr.md
+++ b/exampleSite/content/installation/configuration/_index.fr.md
@@ -1,27 +1,27 @@
----
-title: "Configuration"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: [""]
----
-
-### Global site parameters
-
-On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Dot** lets you define the following parameters in your `config.toml` (here, values are default).
-
-Note that some of these parameters are explained in details in other sections of this documentation.
-
-```toml
-[params]
- # Prefix URL to edit current page.
- # Useful to give opportunity to people to create merge request for your doc.
- # See the config.toml file from this documentation site to have an example.
- # Javascript and CSS cache are automatically busted when new version of site is generated.
- # Order sections in menu by "weight"
- # Call to action is default enabled, if you want to disable it. just change the
- enable = false
- # You can change banner title and other text from the config file.
+---
+title: "Configuration"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+### Global site parameters
+
+On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Dot** lets you define the following parameters in your `config.toml` (here, values are default).
+
+Note that some of these parameters are explained in details in other sections of this documentation.
+
+```toml
+[params]
+ # Prefix URL to edit current page.
+ # Useful to give opportunity to people to create merge request for your doc.
+ # See the config.toml file from this documentation site to have an example.
+ # Javascript and CSS cache are automatically busted when new version of site is generated.
+ # Order sections in menu by "weight"
+ # Call to action is default enabled, if you want to disable it. just change the
+ enable = false
+ # You can change banner title and other text from the config file.
``` \ No newline at end of file
diff --git a/exampleSite/content/installation/customization/_index.en.md b/exampleSite/content/installation/customization/_index.en.md
index daa8112..8f9fb06 100644
--- a/exampleSite/content/installation/customization/_index.en.md
+++ b/exampleSite/content/installation/customization/_index.en.md
@@ -1,55 +1,55 @@
----
-title: "Customization"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-**Dot** has been built to be as configurable as possible.
-
-
-### Change the logo
-
-In `config.toml` you will find a logo variable. you can change your logo there.
-
-{{% notice tip %}}
-The size of the logo will adapt automatically
-{{% /notice %}}
-
-### Change the favicon
-
-If your favicon is a png, just drop off your image in your local `static/images/` folder and name it `favicon.png`
-
-If you need to change this default behavior, create a new file in `layouts/partials/` named `head.html`. Then write something like this:
-
-```html
-<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
-```
-
-### Change default colors
-
-**Dot** support change color. You can change the colors from `config.toml`. You can change the colors of the template as you want.
-
-
-```toml
-[params]
- # Change default color scheme with a color name or color code.
- primary_color = "#02007e"
- body_color = "#f9f9f9"
- text_color = "#636363"
- text_color_dark = "#242738"
- white_color = "#ffffff"
- light_color = "#f8f9fa"
-```
-
-### Change default Fonts
-
-
-```toml
-[params]
- # font family
- font_family = "lato" # Choose font family from : https://fonts.google.com/
+---
+title: "Customization"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+**Dot** has been built to be as configurable as possible.
+
+
+### Change the logo
+
+In `config.toml` you will find a logo variable. you can change your logo there.
+
+{{% notice tip %}}
+The size of the logo will adapt automatically
+{{% /notice %}}
+
+### Change the favicon
+
+If your favicon is a png, just drop off your image in your local `static/images/` folder and name it `favicon.png`
+
+If you need to change this default behavior, create a new file in `layouts/partials/` named `head.html`. Then write something like this:
+
+```html
+<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
+```
+
+### Change default colors
+
+**Dot** support change color. You can change the colors from `config.toml`. You can change the colors of the template as you want.
+
+
+```toml
+[params]
+ # Change default color scheme with a color name or color code.
+ primary_color = "#02007e"
+ body_color = "#f9f9f9"
+ text_color = "#636363"
+ text_color_dark = "#242738"
+ white_color = "#ffffff"
+ light_color = "#f8f9fa"
+```
+
+### Change default Fonts
+
+
+```toml
+[params]
+ # font family
+ font_family = "lato" # Choose font family from : https://fonts.google.com/
``` \ No newline at end of file
diff --git a/exampleSite/content/installation/customization/_index.fr.md b/exampleSite/content/installation/customization/_index.fr.md
index daa8112..8f9fb06 100644
--- a/exampleSite/content/installation/customization/_index.fr.md
+++ b/exampleSite/content/installation/customization/_index.fr.md
@@ -1,55 +1,55 @@
----
-title: "Customization"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 4
-draft: false
-# search related keywords
-keywords: [""]
----
-
-**Dot** has been built to be as configurable as possible.
-
-
-### Change the logo
-
-In `config.toml` you will find a logo variable. you can change your logo there.
-
-{{% notice tip %}}
-The size of the logo will adapt automatically
-{{% /notice %}}
-
-### Change the favicon
-
-If your favicon is a png, just drop off your image in your local `static/images/` folder and name it `favicon.png`
-
-If you need to change this default behavior, create a new file in `layouts/partials/` named `head.html`. Then write something like this:
-
-```html
-<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
-```
-
-### Change default colors
-
-**Dot** support change color. You can change the colors from `config.toml`. You can change the colors of the template as you want.
-
-
-```toml
-[params]
- # Change default color scheme with a color name or color code.
- primary_color = "#02007e"
- body_color = "#f9f9f9"
- text_color = "#636363"
- text_color_dark = "#242738"
- white_color = "#ffffff"
- light_color = "#f8f9fa"
-```
-
-### Change default Fonts
-
-
-```toml
-[params]
- # font family
- font_family = "lato" # Choose font family from : https://fonts.google.com/
+---
+title: "Customization"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 4
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+**Dot** has been built to be as configurable as possible.
+
+
+### Change the logo
+
+In `config.toml` you will find a logo variable. you can change your logo there.
+
+{{% notice tip %}}
+The size of the logo will adapt automatically
+{{% /notice %}}
+
+### Change the favicon
+
+If your favicon is a png, just drop off your image in your local `static/images/` folder and name it `favicon.png`
+
+If you need to change this default behavior, create a new file in `layouts/partials/` named `head.html`. Then write something like this:
+
+```html
+<link rel="shortcut icon" href="/images/favicon.png" type="image/x-icon" />
+```
+
+### Change default colors
+
+**Dot** support change color. You can change the colors from `config.toml`. You can change the colors of the template as you want.
+
+
+```toml
+[params]
+ # Change default color scheme with a color name or color code.
+ primary_color = "#02007e"
+ body_color = "#f9f9f9"
+ text_color = "#636363"
+ text_color_dark = "#242738"
+ white_color = "#ffffff"
+ light_color = "#f8f9fa"
+```
+
+### Change default Fonts
+
+
+```toml
+[params]
+ # font family
+ font_family = "lato" # Choose font family from : https://fonts.google.com/
``` \ No newline at end of file
diff --git a/exampleSite/content/installation/elements/_index.en.md b/exampleSite/content/installation/elements/_index.en.md
index eda0faf..a3a6997 100644
--- a/exampleSite/content/installation/elements/_index.en.md
+++ b/exampleSite/content/installation/elements/_index.en.md
@@ -1,194 +1,194 @@
----
-title: "Elements"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 5
-draft: false
-# search related keywords
-keywords: [""]
----
-
-# Heading 1
-## Heading 2
-### Heading 3
-#### Heading 4
-##### Heading 5
-###### Heading 6
-
-<hr>
-
-##### Emphasis
-
-Emphasis, aka italics, with *asterisks* or _underscores_.
-
-Strong emphasis, aka bold, with **asterisks** or __underscores__.
-
-Combined emphasis with **asterisks and _underscores_**.
-
-Strikethrough uses two tildes. ~~Scratch this.~~
-
-<hr>
-
-##### Link
-[I'm an inline-style link](https://www.google.com)
-
-[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
-
-[I'm a reference-style link][Arbitrary case-insensitive reference text]
-
-[I'm a relative reference to a repository file](../blob/master/LICENSE)
-
-[You can use numbers for reference-style link definitions][1]
-
-Or leave it empty and use the [link text itself].
-
-URLs and URLs in angle brackets will automatically get turned into links.
-http://www.example.com or <http://www.example.com> and sometimes
-example.com (but not on Github, for example).
-
-Some text to show that the reference links can follow later.
-
-[arbitrary case-insensitive reference text]: https://www.mozilla.org
-[1]: http://slashdot.org
-[link text itself]: http://www.reddit.com
-
-<hr>
-
-##### Paragraph
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.
-
-<hr>
-
-##### Ordered List
-
-1. List item
-2. List item
-3. List item
-4. List item
-5. List item
-
-<hr>
-
-##### Unordered List
-
-* List item
-* List item
-* List item
-* List item
-* List item
-
-<hr>
-
-#### Notice
-
-{{< notice note >}}
- This is a simple note.
-{{< /notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{< /notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{< /notice >}}
-
-{{< notice warning >}}
- This is a simple warning.
-{{< /notice >}}
-
-<hr>
-
-#### Tab
-
-{{< tabs >}}
-
- {{< tab "first" >}}
- This is first tab
- {{< /tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{< /tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{< /tab >}}
-
-{{</ tabs >}}
-
-<hr>
-
-##### Code and Syntax Highlighting
-
-Inline `code` has `back-ticks around` it.
-
-```javascript
-var s = "JavaScript syntax highlighting";
-alert(s);
-```
-
-```python
-s = "Python syntax highlighting"
-print s
-```
-
-```
-No language indicated, so no syntax highlighting.
-But let's throw in a <b>tag</b>.
-```
-
-<hr>
-
-##### Blockquote
-
-> This is a blockquote example.
-
-<hr>
-
-##### Inline HTML
-
-You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
-
-<dl>
- <dt>Definition list</dt>
- <dd>Is something people use sometimes.</dd>
-
- <dt>Markdown in HTML</dt>
- <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
-</dl>
-
-
-<hr>
-
-##### Tables
-
-Colons can be used to align columns.
-
-| Tables | Are | Cool |
-| ------------- |:-------------:| -----:|
-| col 3 is | right-aligned | $1600 |
-| col 2 is | centered | $12 |
-| zebra stripes | are neat | $1 |
-
-There must be at least 3 dashes separating each header cell.
-The outer pipes (|) are optional, and you don't need to make the
-raw Markdown line up prettily. You can also use inline Markdown.
-
-Markdown | Less | Pretty
---- | --- | ---
-*Still* | `renders` | **nicely**
-1 | 2 | 3
-
-<hr>
-
-##### Image
-
-![image](img-1.jpg)
-
-<hr>
-
-##### Youtube video
-
+---
+title: "Elements"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 5
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+# Heading 1
+## Heading 2
+### Heading 3
+#### Heading 4
+##### Heading 5
+###### Heading 6
+
+<hr>
+
+##### Emphasis
+
+Emphasis, aka italics, with *asterisks* or _underscores_.
+
+Strong emphasis, aka bold, with **asterisks** or __underscores__.
+
+Combined emphasis with **asterisks and _underscores_**.
+
+Strikethrough uses two tildes. ~~Scratch this.~~
+
+<hr>
+
+##### Link
+[I'm an inline-style link](https://www.google.com)
+
+[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
+
+[I'm a reference-style link][Arbitrary case-insensitive reference text]
+
+[I'm a relative reference to a repository file](../blob/master/LICENSE)
+
+[You can use numbers for reference-style link definitions][1]
+
+Or leave it empty and use the [link text itself].
+
+URLs and URLs in angle brackets will automatically get turned into links.
+http://www.example.com or <http://www.example.com> and sometimes
+example.com (but not on Github, for example).
+
+Some text to show that the reference links can follow later.
+
+[arbitrary case-insensitive reference text]: https://www.mozilla.org
+[1]: http://slashdot.org
+[link text itself]: http://www.reddit.com
+
+<hr>
+
+##### Paragraph
+
+Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.
+
+<hr>
+
+##### Ordered List
+
+1. List item
+2. List item
+3. List item
+4. List item
+5. List item
+
+<hr>
+
+##### Unordered List
+
+* List item
+* List item
+* List item
+* List item
+* List item
+
+<hr>
+
+#### Notice
+
+{{< notice note >}}
+ This is a simple note.
+{{< /notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{< /notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{< /notice >}}
+
+{{< notice warning >}}
+ This is a simple warning.
+{{< /notice >}}
+
+<hr>
+
+#### Tab
+
+{{< tabs >}}
+
+ {{< tab "first" >}}
+ This is first tab
+ {{< /tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{< /tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{< /tab >}}
+
+{{</ tabs >}}
+
+<hr>
+
+##### Code and Syntax Highlighting
+
+Inline `code` has `back-ticks around` it.
+
+```javascript
+var s = "JavaScript syntax highlighting";
+alert(s);
+```
+
+```python
+s = "Python syntax highlighting"
+print s
+```
+
+```
+No language indicated, so no syntax highlighting.
+But let's throw in a <b>tag</b>.
+```
+
+<hr>
+
+##### Blockquote
+
+> This is a blockquote example.
+
+<hr>
+
+##### Inline HTML
+
+You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
+
+<dl>
+ <dt>Definition list</dt>
+ <dd>Is something people use sometimes.</dd>
+
+ <dt>Markdown in HTML</dt>
+ <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
+</dl>
+
+
+<hr>
+
+##### Tables
+
+Colons can be used to align columns.
+
+| Tables | Are | Cool |
+| ------------- |:-------------:| -----:|
+| col 3 is | right-aligned | $1600 |
+| col 2 is | centered | $12 |
+| zebra stripes | are neat | $1 |
+
+There must be at least 3 dashes separating each header cell.
+The outer pipes (|) are optional, and you don't need to make the
+raw Markdown line up prettily. You can also use inline Markdown.
+
+Markdown | Less | Pretty
+--- | --- | ---
+*Still* | `renders` | **nicely**
+1 | 2 | 3
+
+<hr>
+
+##### Image
+
+![image](img-1.jpg)
+
+<hr>
+
+##### Youtube video
+
{{< youtube C0DPdy98e4c >}} \ No newline at end of file
diff --git a/exampleSite/content/installation/elements/_index.fr.md b/exampleSite/content/installation/elements/_index.fr.md
index 487946d..ecc1b46 100644
--- a/exampleSite/content/installation/elements/_index.fr.md
+++ b/exampleSite/content/installation/elements/_index.fr.md
@@ -1,194 +1,194 @@
----
-title: "Elements"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 3
-draft: false
-# search related keywords
-keywords: [""]
----
-
-# Heading 1
-## Heading 2
-### Heading 3
-#### Heading 4
-##### Heading 5
-###### Heading 6
-
-<hr>
-
-##### Emphasis
-
-Emphasis, aka italics, with *asterisks* or _underscores_.
-
-Strong emphasis, aka bold, with **asterisks** or __underscores__.
-
-Combined emphasis with **asterisks and _underscores_**.
-
-Strikethrough uses two tildes. ~~Scratch this.~~
-
-<hr>
-
-##### Link
-[I'm an inline-style link](https://www.google.com)
-
-[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
-
-[I'm a reference-style link][Arbitrary case-insensitive reference text]
-
-[I'm a relative reference to a repository file](../blob/master/LICENSE)
-
-[You can use numbers for reference-style link definitions][1]
-
-Or leave it empty and use the [link text itself].
-
-URLs and URLs in angle brackets will automatically get turned into links.
-http://www.example.com or <http://www.example.com> and sometimes
-example.com (but not on Github, for example).
-
-Some text to show that the reference links can follow later.
-
-[arbitrary case-insensitive reference text]: https://www.mozilla.org
-[1]: http://slashdot.org
-[link text itself]: http://www.reddit.com
-
-<hr>
-
-##### Paragraph
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.
-
-<hr>
-
-##### Ordered List
-
-1. List item
-2. List item
-3. List item
-4. List item
-5. List item
-
-<hr>
-
-##### Unordered List
-
-* List item
-* List item
-* List item
-* List item
-* List item
-
-<hr>
-
-#### Notice
-
-{{< notice note >}}
- This is a simple note.
-{{< /notice >}}
-
-{{< notice tip >}}
- This is a simple tip.
-{{< /notice >}}
-
-{{< notice info >}}
- This is a simple info.
-{{< /notice >}}
-
-{{< notice warning >}}
- This is a simple warning.
-{{< /notice >}}
-
-<hr>
-
-#### Tab
-
-{{< tabs >}}
-
- {{< tab "first" >}}
- This is first tab
- {{< /tab >}}
-
- {{< tab "second" >}}
- this is second tab
- {{< /tab >}}
-
- {{< tab "third" >}}
- this is third tab
- {{< /tab >}}
-
-{{</ tabs >}}
-
-<hr>
-
-##### Code and Syntax Highlighting
-
-Inline `code` has `back-ticks around` it.
-
-```javascript
-var s = "JavaScript syntax highlighting";
-alert(s);
-```
-
-```python
-s = "Python syntax highlighting"
-print s
-```
-
-```
-No language indicated, so no syntax highlighting.
-But let's throw in a <b>tag</b>.
-```
-
-<hr>
-
-##### Blockquote
-
-> This is a blockquote example.
-
-<hr>
-
-##### Inline HTML
-
-You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
-
-<dl>
- <dt>Definition list</dt>
- <dd>Is something people use sometimes.</dd>
-
- <dt>Markdown in HTML</dt>
- <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
-</dl>
-
-
-<hr>
-
-##### Tables
-
-Colons can be used to align columns.
-
-| Tables | Are | Cool |
-| ------------- |:-------------:| -----:|
-| col 3 is | right-aligned | $1600 |
-| col 2 is | centered | $12 |
-| zebra stripes | are neat | $1 |
-
-There must be at least 3 dashes separating each header cell.
-The outer pipes (|) are optional, and you don't need to make the
-raw Markdown line up prettily. You can also use inline Markdown.
-
-Markdown | Less | Pretty
---- | --- | ---
-*Still* | `renders` | **nicely**
-1 | 2 | 3
-
-<hr>
-
-##### Image
-
-![image](img-1.jpg)
-
-<hr>
-
-##### Youtube video
-
+---
+title: "Elements"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 3
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+# Heading 1
+## Heading 2
+### Heading 3
+#### Heading 4
+##### Heading 5
+###### Heading 6
+
+<hr>
+
+##### Emphasis
+
+Emphasis, aka italics, with *asterisks* or _underscores_.
+
+Strong emphasis, aka bold, with **asterisks** or __underscores__.
+
+Combined emphasis with **asterisks and _underscores_**.
+
+Strikethrough uses two tildes. ~~Scratch this.~~
+
+<hr>
+
+##### Link
+[I'm an inline-style link](https://www.google.com)
+
+[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
+
+[I'm a reference-style link][Arbitrary case-insensitive reference text]
+
+[I'm a relative reference to a repository file](../blob/master/LICENSE)
+
+[You can use numbers for reference-style link definitions][1]
+
+Or leave it empty and use the [link text itself].
+
+URLs and URLs in angle brackets will automatically get turned into links.
+http://www.example.com or <http://www.example.com> and sometimes
+example.com (but not on Github, for example).
+
+Some text to show that the reference links can follow later.
+
+[arbitrary case-insensitive reference text]: https://www.mozilla.org
+[1]: http://slashdot.org
+[link text itself]: http://www.reddit.com
+
+<hr>
+
+##### Paragraph
+
+Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.
+
+<hr>
+
+##### Ordered List
+
+1. List item
+2. List item
+3. List item
+4. List item
+5. List item
+
+<hr>
+
+##### Unordered List
+
+* List item
+* List item
+* List item
+* List item
+* List item
+
+<hr>
+
+#### Notice
+
+{{< notice note >}}
+ This is a simple note.
+{{< /notice >}}
+
+{{< notice tip >}}
+ This is a simple tip.
+{{< /notice >}}
+
+{{< notice info >}}
+ This is a simple info.
+{{< /notice >}}
+
+{{< notice warning >}}
+ This is a simple warning.
+{{< /notice >}}
+
+<hr>
+
+#### Tab
+
+{{< tabs >}}
+
+ {{< tab "first" >}}
+ This is first tab
+ {{< /tab >}}
+
+ {{< tab "second" >}}
+ this is second tab
+ {{< /tab >}}
+
+ {{< tab "third" >}}
+ this is third tab
+ {{< /tab >}}
+
+{{</ tabs >}}
+
+<hr>
+
+##### Code and Syntax Highlighting
+
+Inline `code` has `back-ticks around` it.
+
+```javascript
+var s = "JavaScript syntax highlighting";
+alert(s);
+```
+
+```python
+s = "Python syntax highlighting"
+print s
+```
+
+```
+No language indicated, so no syntax highlighting.
+But let's throw in a <b>tag</b>.
+```
+
+<hr>
+
+##### Blockquote
+
+> This is a blockquote example.
+
+<hr>
+
+##### Inline HTML
+
+You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
+
+<dl>
+ <dt>Definition list</dt>
+ <dd>Is something people use sometimes.</dd>
+
+ <dt>Markdown in HTML</dt>
+ <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
+</dl>
+
+
+<hr>
+
+##### Tables
+
+Colons can be used to align columns.
+
+| Tables | Are | Cool |
+| ------------- |:-------------:| -----:|
+| col 3 is | right-aligned | $1600 |
+| col 2 is | centered | $12 |
+| zebra stripes | are neat | $1 |
+
+There must be at least 3 dashes separating each header cell.
+The outer pipes (|) are optional, and you don't need to make the
+raw Markdown line up prettily. You can also use inline Markdown.
+
+Markdown | Less | Pretty
+--- | --- | ---
+*Still* | `renders` | **nicely**
+1 | 2 | 3
+
+<hr>
+
+##### Image
+
+![image](img-1.jpg)
+
+<hr>
+
+##### Youtube video
+
{{< youtube C0DPdy98e4c >}} \ No newline at end of file
diff --git a/exampleSite/content/installation/install/_index.en.md b/exampleSite/content/installation/install/_index.en.md
index 85d5215..95be478 100644
--- a/exampleSite/content/installation/install/_index.en.md
+++ b/exampleSite/content/installation/install/_index.en.md
@@ -1,75 +1,75 @@
----
-title: "Installation"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: ["induct", "instate"]
----
-
-The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you learn more about it by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/).
-
-### Create your project
-
-Hugo provides a `new` command to create a new website.
-
-```bash
-hugo new site <new_project>
-```
-
-### Install the theme
-
-Install the **Dot** theme by following [this documentation](https://gohugo.io/themes/installing/)
-
-This theme's repository is: https://github.com/themefisher/dot-hugo-documentation-theme.git
-
-Alternatively, you can [download the theme as .zip](https://github.com/themefisher/dot-hugo-documentation-theme/archive/master.zip) file and extract it in the `themes` directory
-
-Or you can check this video documentation for installing this template:
-{{< youtube Srt3lTmRxzQ >}}
-
-### Basic configuration
-
-When building the website, you can set a theme by using `--theme` option. However, we suggest you modify the configuration file (`config.toml`) and set the theme as the default.
-
-```toml
-# Change the default theme to be use when building the site with Hugo
-theme = "Dot"
-```
-
-
-### Create your first content pages
-
-Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter:
-
-```bash
-hugo new installation/first-content.md
-hugo new installation/second-content/_index.md
-```
-
-Feel free to edit thoses files by adding some sample content and replacing the `title` value in the beginning of the files.
-
-### Launching the website locally
-
-Launch by using the following command:
-
-```bash
-hugo serve
-```
-
-Go to `http://localhost:1313`
-
-### Build the website
-
-When your site is ready to deploy, run the following command:
-
-```bash
-hugo
-```
-
-A `public` folder will be generated, containing all static content and assets for your website. It can now be deployed on any web server.
-
-{{% notice info%}}
-This website can be automatically published and hosted with [Netlify](https://www.netlify.com/) (Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)). Alternatively, you can use [Github pages](https://gohugo.io/hosting-and-deployment/hosting-on-github/)
+---
+title: "Installation"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: ["induct", "instate"]
+---
+
+The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you learn more about it by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/).
+
+### Create your project
+
+Hugo provides a `new` command to create a new website.
+
+```bash
+hugo new site <new_project>
+```
+
+### Install the theme
+
+Install the **Dot** theme by following [this documentation](https://gohugo.io/themes/installing/)
+
+This theme's repository is: https://github.com/themefisher/dot-hugo-documentation-theme.git
+
+Alternatively, you can [download the theme as .zip](https://github.com/themefisher/dot-hugo-documentation-theme/archive/master.zip) file and extract it in the `themes` directory
+
+Or you can check this video documentation for installing this template:
+{{< youtube Srt3lTmRxzQ >}}
+
+### Basic configuration
+
+When building the website, you can set a theme by using `--theme` option. However, we suggest you modify the configuration file (`config.toml`) and set the theme as the default.
+
+```toml
+# Change the default theme to be use when building the site with Hugo
+theme = "Dot"
+```
+
+
+### Create your first content pages
+
+Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter:
+
+```bash
+hugo new installation/first-content.md
+hugo new installation/second-content/_index.md
+```
+
+Feel free to edit thoses files by adding some sample content and replacing the `title` value in the beginning of the files.
+
+### Launching the website locally
+
+Launch by using the following command:
+
+```bash
+hugo serve
+```
+
+Go to `http://localhost:1313`
+
+### Build the website
+
+When your site is ready to deploy, run the following command:
+
+```bash
+hugo
+```
+
+A `public` folder will be generated, containing all static content and assets for your website. It can now be deployed on any web server.
+
+{{% notice info%}}
+This website can be automatically published and hosted with [Netlify](https://www.netlify.com/) (Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)). Alternatively, you can use [Github pages](https://gohugo.io/hosting-and-deployment/hosting-on-github/)
{{% /notice %}} \ No newline at end of file
diff --git a/exampleSite/content/installation/install/_index.fr.md b/exampleSite/content/installation/install/_index.fr.md
index 85d5215..95be478 100644
--- a/exampleSite/content/installation/install/_index.fr.md
+++ b/exampleSite/content/installation/install/_index.fr.md
@@ -1,75 +1,75 @@
----
-title: "Installation"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 2
-draft: false
-# search related keywords
-keywords: ["induct", "instate"]
----
-
-The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you learn more about it by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/).
-
-### Create your project
-
-Hugo provides a `new` command to create a new website.
-
-```bash
-hugo new site <new_project>
-```
-
-### Install the theme
-
-Install the **Dot** theme by following [this documentation](https://gohugo.io/themes/installing/)
-
-This theme's repository is: https://github.com/themefisher/dot-hugo-documentation-theme.git
-
-Alternatively, you can [download the theme as .zip](https://github.com/themefisher/dot-hugo-documentation-theme/archive/master.zip) file and extract it in the `themes` directory
-
-Or you can check this video documentation for installing this template:
-{{< youtube Srt3lTmRxzQ >}}
-
-### Basic configuration
-
-When building the website, you can set a theme by using `--theme` option. However, we suggest you modify the configuration file (`config.toml`) and set the theme as the default.
-
-```toml
-# Change the default theme to be use when building the site with Hugo
-theme = "Dot"
-```
-
-
-### Create your first content pages
-
-Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter:
-
-```bash
-hugo new installation/first-content.md
-hugo new installation/second-content/_index.md
-```
-
-Feel free to edit thoses files by adding some sample content and replacing the `title` value in the beginning of the files.
-
-### Launching the website locally
-
-Launch by using the following command:
-
-```bash
-hugo serve
-```
-
-Go to `http://localhost:1313`
-
-### Build the website
-
-When your site is ready to deploy, run the following command:
-
-```bash
-hugo
-```
-
-A `public` folder will be generated, containing all static content and assets for your website. It can now be deployed on any web server.
-
-{{% notice info%}}
-This website can be automatically published and hosted with [Netlify](https://www.netlify.com/) (Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)). Alternatively, you can use [Github pages](https://gohugo.io/hosting-and-deployment/hosting-on-github/)
+---
+title: "Installation"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 2
+draft: false
+# search related keywords
+keywords: ["induct", "instate"]
+---
+
+The following steps are here to help you initialize your new website. If you don't know Hugo at all, we strongly suggest you learn more about it by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/).
+
+### Create your project
+
+Hugo provides a `new` command to create a new website.
+
+```bash
+hugo new site <new_project>
+```
+
+### Install the theme
+
+Install the **Dot** theme by following [this documentation](https://gohugo.io/themes/installing/)
+
+This theme's repository is: https://github.com/themefisher/dot-hugo-documentation-theme.git
+
+Alternatively, you can [download the theme as .zip](https://github.com/themefisher/dot-hugo-documentation-theme/archive/master.zip) file and extract it in the `themes` directory
+
+Or you can check this video documentation for installing this template:
+{{< youtube Srt3lTmRxzQ >}}
+
+### Basic configuration
+
+When building the website, you can set a theme by using `--theme` option. However, we suggest you modify the configuration file (`config.toml`) and set the theme as the default.
+
+```toml
+# Change the default theme to be use when building the site with Hugo
+theme = "Dot"
+```
+
+
+### Create your first content pages
+
+Then, create content pages inside the previously created chapter. Here are two ways to create content in the chapter:
+
+```bash
+hugo new installation/first-content.md
+hugo new installation/second-content/_index.md
+```
+
+Feel free to edit thoses files by adding some sample content and replacing the `title` value in the beginning of the files.
+
+### Launching the website locally
+
+Launch by using the following command:
+
+```bash
+hugo serve
+```
+
+Go to `http://localhost:1313`
+
+### Build the website
+
+When your site is ready to deploy, run the following command:
+
+```bash
+hugo
+```
+
+A `public` folder will be generated, containing all static content and assets for your website. It can now be deployed on any web server.
+
+{{% notice info%}}
+This website can be automatically published and hosted with [Netlify](https://www.netlify.com/) (Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)). Alternatively, you can use [Github pages](https://gohugo.io/hosting-and-deployment/hosting-on-github/)
{{% /notice %}} \ No newline at end of file
diff --git a/exampleSite/content/installation/requirments/_index.en.md b/exampleSite/content/installation/requirments/_index.en.md
index ebcba0d..2b55fac 100644
--- a/exampleSite/content/installation/requirments/_index.en.md
+++ b/exampleSite/content/installation/requirments/_index.en.md
@@ -1,16 +1,16 @@
----
-title: "Requirments"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-
-Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements.
-
-Just download latest version of [Hugo binary (> 0.53)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple.
-
+---
+title: "Requirments"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+
+Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements.
+
+Just download latest version of [Hugo binary (> 0.53)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple.
+
![image example](hugo.jpg "image") \ No newline at end of file
diff --git a/exampleSite/content/installation/requirments/_index.fr.md b/exampleSite/content/installation/requirments/_index.fr.md
index ebcba0d..2b55fac 100644
--- a/exampleSite/content/installation/requirments/_index.fr.md
+++ b/exampleSite/content/installation/requirments/_index.fr.md
@@ -1,16 +1,16 @@
----
-title: "Requirments"
-date: 2018-12-29T11:02:05+06:00
-lastmod: 2020-01-05T10:42:26+06:00
-weight: 1
-draft: false
-# search related keywords
-keywords: [""]
----
-
-
-Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements.
-
-Just download latest version of [Hugo binary (> 0.53)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple.
-
+---
+title: "Requirments"
+date: 2018-12-29T11:02:05+06:00
+lastmod: 2020-01-05T10:42:26+06:00
+weight: 1
+draft: false
+# search related keywords
+keywords: [""]
+---
+
+
+Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements.
+
+Just download latest version of [Hugo binary (> 0.53)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple.
+
![image example](hugo.jpg "image") \ No newline at end of file
diff --git a/exampleSite/i18n/en.yaml b/exampleSite/i18n/en.yaml
index dee1886..c9cae37 100644
--- a/exampleSite/i18n/en.yaml
+++ b/exampleSite/i18n/en.yaml
@@ -1,5 +1,5 @@
-- id: topics_title
- translation: Find your answer by subject
-
-- id: send
+- id: topics_title
+ translation: Find your answer by subject
+
+- id: send
translation: Send \ No newline at end of file
diff --git a/exampleSite/i18n/fr.yaml b/exampleSite/i18n/fr.yaml
index 2316f0d..a708c8b 100644
--- a/exampleSite/i18n/fr.yaml
+++ b/exampleSite/i18n/fr.yaml
@@ -1,5 +1,5 @@
-- id: topics_title
- translation: Trouvez votre réponse par sujet
-
-- id: send
+- id: topics_title
+ translation: Trouvez votre réponse par sujet
+
+- id: send
translation: Envoyer \ No newline at end of file
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 759ed91..56b3402 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,24 +1,24 @@
-<!DOCTYPE html>
-<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
- {{ partial "head.html" . }}
-
- <body>
- {{ if .IsHome }}
- {{ "<!-- header -->" | safeHTML }}
- <header class="banner {{if .Site.Params.banner.bg_image}}overlay bg-cover{{else}}bg-primary{{end}}" data-background="{{ .Site.Params.banner.bg_image | absURL }}">
- {{ partial "navigation.html" . }}
- {{ partialCached "banner.html" . }}
- </header>
- {{ "<!-- /header -->" | safeHTML }}
- {{ else }}
- {{ "<!-- header -->" | safeHTML }}
- <header class="shadow-bottom sticky-top bg-white">
- {{ partialCached "navigation.html" . }}
- </header>
- {{ "<!-- /header -->" | safeHTML }}
- {{ end }}
- {{ block "main" . }}{{ end }}
- {{ partialCached "footer.html" . }}
- </body>
-
+<!DOCTYPE html>
+<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
+ {{ partial "head.html" . }}
+
+ <body>
+ {{ if .IsHome }}
+ {{ "<!-- header -->" | safeHTML }}
+ <header class="banner {{if .Site.Params.banner.bg_image}}overlay bg-cover{{else}}bg-primary{{end}}" data-background="{{ .Site.Params.banner.bg_image | absURL }}">
+ {{ partial "navigation.html" . }}
+ {{ partialCached "banner.html" . }}
+ </header>
+ {{ "<!-- /header -->" | safeHTML }}
+ {{ else }}
+ {{ "<!-- header -->" | safeHTML }}
+ <header class="shadow-bottom sticky-top bg-white">
+ {{ partialCached "navigation.html" . }}
+ </header>
+ {{ "<!-- /header -->" | safeHTML }}
+ {{ end }}
+ {{ block "main" . }}{{ end }}
+ {{ partialCached "footer.html" . }}
+ </body>
+
</html> \ No newline at end of file
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index c23f62b..1d42806 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -1,5 +1,5 @@
-{{ define "main" }}
-
-{{ partial "default.html" . }}
-
+{{ define "main" }}
+
+{{ partial "default.html" . }}
+
{{ end }} \ No newline at end of file
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index c23f62b..1d42806 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,5 +1,5 @@
-{{ define "main" }}
-
-{{ partial "default.html" . }}
-
+{{ define "main" }}
+
+{{ partial "default.html" . }}
+
{{ end }} \ No newline at end of file
diff --git a/layouts/contact/list.html b/layouts/contact/list.html
index 9278c5c..c7eb134 100644
--- a/layouts/contact/list.html
+++ b/layouts/contact/list.html
@@ -1,25 +1,25 @@
-{{ define "main" }}
-
-{{ "<!-- contact -->" | safeHTML }}
-<section class="section">
- <div class="container">
- <div class="row">
- <div class="col-12">
- <h2 class="section-title text-primary">{{ .Title }}</h2>
- {{ .Content }}
- <form action="{{ .Site.Params.contact_form_action | safeURL }}" method="POST">
- <input type="text" id="name" name="name" placeholder="Name" class="form-control mb-4 shadow rounded-0">
- <input type="email" id="mail" name="mail" placeholder="Email" class="form-control mb-4 shadow rounded-0">
- <input type="text" id="subject" name="subject" placeholder="subject"
- class="form-control mb-4 shadow rounded-0">
- <textarea name="message" id="message" placeholder="Message"
- class="form-control mb-4 shadow rounded-0"></textarea>
- <button type="submit" value="send" class="btn btn-primary">{{ i18n "send" }}</button>
- </form>
- </div>
- </div>
- </div>
-</section>
-{{ "<!-- /contact -->" | safeHTML }}
-
+{{ define "main" }}
+
+{{ "<!-- contact -->" | safeHTML }}
+<section class="section">
+ <div class="container">
+ <div class="row">
+ <div class="col-12">
+ <h2 class="section-title text-primary">{{ .Title }}</h2>
+ {{ .Content }}
+ <form action="{{ .Site.Params.contact_form_action | safeURL }}" method="POST">
+ <input type="text" id="name" name="name" placeholder="Name" class="form-control mb-4 shadow rounded-0">
+ <input type="email" id="mail" name="mail" placeholder="Email" class="form-control mb-4 shadow rounded-0">
+ <input type="text" id="subject" name="subject" placeholder="subject"
+ class="form-control mb-4 shadow rounded-0">
+ <textarea name="message" id="message" placeholder="Message"
+ class="form-control mb-4 shadow rounded-0"></textarea>
+ <button type="submit" value="send" class="btn btn-primary">{{ i18n "send" }}</button>
+ </form>
+ </div>
+ </div>
+ </div>
+</section>
+{{ "<!-- /contact -->" | safeHTML }}
+
{{ end }} \ No newline at end of file
diff --git a/layouts/faq/list.html b/layouts/faq/list.html
index 75f5915..0dc7e33 100644
--- a/layouts/faq/list.html
+++ b/layouts/faq/list.html
@@ -1,20 +1,20 @@
-{{ define "main" }}
-
- {{ $data := index .Site.Data .Site.Language.Lang }}
- {{ "<!-- faq -->" | safeHTML }}
- <section class="section pb-0">
- <div class="container">
- <div class="row">
- <div class="col-12">
- <h2 class="section-title text-primary">{{ .Title }}</h2>
- {{ "<!-- accordion -->" | safeHTML }}
- <div id="accordion">
- {{ .Content }}
- </div>
- </div>
- </div>
- </div>
- </section>
- {{ "<!-- /faq -->" | safeHTML }}
-
+{{ define "main" }}
+
+ {{ $data := index .Site.Data .Site.Language.Lang }}
+ {{ "<!-- faq -->" | safeHTML }}
+ <section class="section pb-0">
+ <div class="container">
+ <div class="row">
+ <div class="col-12">
+ <h2 class="section-title text-primary">{{ .Title }}</h2>
+ {{ "<!-- accordion -->" | safeHTML }}
+ <div id="accordion">
+ {{ .Content }}
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+ {{ "<!-- /faq -->" | safeHTML }}
+
{{ end }} \ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
index 8b3973f..6bea09d 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,49 +1,49 @@
-{{ define "main" }}
-
- {{ "<!-- topics -->" | safeHTML }}
- <section class="section">
- <div class="container">
- <div class="row justify-content-center">
- <div class="col-12 text-center">
- <h2 class="section-title">{{ i18n "topics_title" | safeHTML }}</h2>
- </div>
- {{ "<!-- topic-item -->" | safeHTML }}
- {{ range (where .Site.Pages "Type" "docs") }}
- <div class="col-lg-4 col-sm-6 mb-4">
- <a href="{{ .Permalink }}" class="px-4 py-5 bg-white shadow text-center d-block match-height">
- {{ with .Params.icon}}<i class="{{.}} icon text-primary d-block mb-4"></i>{{end}}
- <h3 class="mb-3 mt-0">{{ .Title }}</h3>
- {{with .Params.description}}<p class="mb-0">{{. | markdownify}}</p>{{end}}
- </a>
- </div>
- {{ end }}
- </div>
- </div>
- </section>
- {{ "<!-- /topics -->" | safeHTML }}
-
- {{ if .Site.Params.cta.enable }}
- {{ with .Site.Params.cta }}
- {{ "<!-- call to action -->" | safeHTML }}
- <section>
- <div class="container">
- <div class="row">
- <div class="col-12">
- <div class="section px-3 bg-white shadow text-center">
- <h2 class="mb-4">{{ .title | markdownify }}</h2>
- <p class="mb-4">{{ .content | markdownify }}</p>
- {{ if .button.enable }}
- {{ with .button }}
- <a href="{{ .link | relLangURL }}" class="btn btn-primary">{{ .label }}</a>
- {{ end }}
- {{ end }}
- </div>
- </div>
- </div>
- </div>
- </section>
- {{ "<!-- /call to action -->" | safeHTML }}
- {{ end }}
- {{ end }}
-
+{{ define "main" }}
+
+ {{ "<!-- topics -->" | safeHTML }}
+ <section class="section">
+ <div class="container">
+ <div class="row justify-content-center">
+ <div class="col-12 text-center">
+ <h2 class="section-title">{{ i18n "topics_title" | safeHTML }}</h2>
+ </div>
+ {{ "<!-- topic-item -->" | safeHTML }}
+ {{ range (where .Site.Pages "Type" "docs") }}
+ <div class="col-lg-4 col-sm-6 mb-4">
+ <a href="{{ .Permalink }}" class="px-4 py-5 bg-white shadow text-center d-block match-height">
+ {{ with .Params.icon}}<i class="{{.}} icon text-primary d-block mb-4"></i>{{end}}
+ <h3 class="mb-3 mt-0">{{ .Title }}</h3>
+ {{with .Params.description}}<p class="mb-0">{{. | markdownify}}</p>{{end}}
+ </a>
+ </div>
+ {{ end }}
+ </div>
+ </div>
+ </section>
+ {{ "<!-- /topics -->" | safeHTML }}
+
+ {{ if .Site.Params.cta.enable }}
+ {{ with .Site.Params.cta }}
+ {{ "<!-- call to action -->" | safeHTML }}
+ <section>
+ <div class="container">
+ <div class="row">
+ <div class="col-12">
+ <div class="section px-3 bg-white shadow text-center">
+ <h2 class="mb-4">{{ .title | markdownify }}</h2>
+ <p class="mb-4">{{ .content | markdownify }}</p>
+ {{ if .button.enable }}
+ {{ with .button }}
+ <a href="{{ .link | relLangURL }}" class="btn btn-primary">{{ .label }}</a>
+ {{ end }}
+ {{ end }}
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+ {{ "<!-- /call to action -->" | safeHTML }}
+ {{ end }}
+ {{ end }}
+
{{ end }} \ No newline at end of file
diff --git a/layouts/partials/banner.html b/layouts/partials/banner.html
index 047d870..ddf07dd 100644
--- a/layouts/partials/banner.html
+++ b/layouts/partials/banner.html
@@ -1,39 +1,39 @@
-{{ "<!-- banner -->" | safeHTML }}
-<div class="container section">
- <div class="row">
- <div class="col-lg-8 text-center mx-auto">
- <h1 class="text-white mb-3">{{ .Site.Params.banner.title | markdownify }}</h1>
- <p class="text-white mb-4">{{ .Site.Params.banner.subtitle | markdownify }}</p>
- <div class="position-relative">
- <input id="search" class="form-control" placeholder="{{ .Site.Params.banner.placeholder }}">
- <i class="ti-search search-icon"></i>
- <!-- Javascript -->
- {{ $currentNode := . }}
- {{ $currentNode.Scratch.Set "pages" .Site.Pages }}
- {{ $pages := ($currentNode.Scratch.Get "pages") }}
- <script>
- $(function() {
- var projects = [
- {{ range $pages }}
- {
- value: "{{ .Title }}",
- label: "<p>{{.Plain}}</p>{{range.Params.Keywords}}<p>{{.}}</p>{{end}}",
- url:"{{ .Permalink }}"
- },
- {{ end }}
- ];
- $( "#search" ).autocomplete({
- source: projects
- })
- .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
- return $( "<li>" )
- .append( "<a href=" + item.url + " + \" &quot;\" + >" + item.value + "</a>" + item.label )
- .appendTo( ul );
- };
- });
- </script>
- </div>
- </div>
- </div>
-</div>
+{{ "<!-- banner -->" | safeHTML }}
+<div class="container section">
+ <div class="row">
+ <div class="col-lg-8 text-center mx-auto">
+ <h1 class="text-white mb-3">{{ .Site.Params.banner.title | markdownify }}</h1>
+ <p class="text-white mb-4">{{ .Site.Params.banner.subtitle | markdownify }}</p>
+ <div class="position-relative">
+ <input id="search" class="form-control" placeholder="{{ .Site.Params.banner.placeholder }}">
+ <i class="ti-search search-icon"></i>
+ <!-- Javascript -->
+ {{ $currentNode := . }}
+ {{ $currentNode.Scratch.Set "pages" .Site.Pages }}
+ {{ $pages := ($currentNode.Scratch.Get "pages") }}
+ <script>
+ $(function() {
+ var projects = [
+ {{ range $pages }}
+ {
+ value: "{{ .Title }}",
+ label: "<p>{{.Plain}}</p>{{range.Params.Keywords}}<p>{{.}}</p>{{end}}",
+ url:"{{ .Permalink }}"
+ },
+ {{ end }}
+ ];
+ $( "#search" ).autocomplete({
+ source: projects
+ })
+ .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
+ return $( "<li>" )
+ .append( "<a href=" + item.url + " + \" &quot;\" + >" + item.value + "</a>" + item.label )
+ .appendTo( ul );
+ };
+ });
+ </script>
+ </div>
+ </div>
+ </div>
+</div>
{{ "<!-- /banner -->" | safeHTML }} \ No newline at end of file
diff --git a/layouts/partials/default.html b/layouts/partials/default.html
index b60b3cb..f166c46 100644
--- a/layouts/partials/default.html
+++ b/layouts/partials/default.html
@@ -1,105 +1,105 @@
-{{ "<!-- details page -->" | safeHTML }}
-<section class="single section-sm pb-0">
- <div class="container">
- <div class="row">
- <div class="col-lg-3">
- <div class="sidebar">
- <a class="back-btn" href="{{ .Site.BaseURL | relLangURL }}" aria-label="back"></a>
- <ul class="list-styled">
- {{ $currentNode := . }}
- {{range .Site.Home.Sections.ByWeight}}
- {{ if eq .FirstSection $currentNode.FirstSection }}
- {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode}}
- {{ end }}
- {{ end }}
- </ul>
- </div>
- </div>
- <div class="col-lg-9">
- <div class="p-lg-5 p-4 bg-white">
- <h2 class="mb-5">{{ .Title }}</h2>
- {{ if .Content }}
- <div class="content">{{.Content}}</div>
- {{ else }}
- <div class="bg-light p-4">
- <ul class="page-list">
- {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode }}
- </ul>
- </div>
- {{ end }}
- <p class="post-meta border-bottom pb-3 mb-0 mt-3">Updated on {{ .Lastmod.Format "02 Jan 2006" }}</p>
- <nav class="pagination mt-3">
- <!-- Next prev page -->
- {{ $currentNode := . }}
- {{ template "menu-nextprev" dict "menu" .Site.Home "currentnode" $currentNode }}
- {{ define "menu-nextprev" }}
- {{$currentNode := .currentnode }}
- {{ if ne .menu.Params.hidden true}}
- {{if hasPrefix $currentNode.Permalink .menu.Permalink }}
- {{ $currentNode.Scratch.Set "NextPageOK" "OK" }}
- {{ $currentNode.Scratch.Set "prevPage" ($currentNode.Scratch.Get "prevPageTmp") }}
- {{else}}
- {{if eq ($currentNode.Scratch.Get "NextPageOK") "OK"}}
- {{ $currentNode.Scratch.Set "NextPageOK" nil }}
- {{ $currentNode.Scratch.Set "nextPage" .menu }}
- {{end}}
- {{end}}
- {{ $currentNode.Scratch.Set "prevPageTmp" .menu }}
-
- {{ $currentNode.Scratch.Set "pages" .menu.Pages }}
- {{ if .menu.IsHome}}
- {{ $currentNode.Scratch.Set "pages" .menu.Sections }}
- {{ else if .menu.Sections}}
- {{ $currentNode.Scratch.Set "pages" (.menu.Pages | union .menu.Sections) }}
- {{end}}
- {{ $pages := ($currentNode.Scratch.Get "pages") }}
-
- {{ range $pages.ByWeight }}
- {{ template "menu-nextprev" dict "menu" . "currentnode" $currentNode }}
- {{end}}
- {{ end }}
- {{ end }}
-
- {{with ($.Scratch.Get "prevPage")}}
- <a class="nav nav-prev" href="{{.Permalink }}" aria-label="Previous page" ><i class="ti-arrow-left mr-2"></i> <span class="d-none d-md-block">{{.Title}}</span></a>
- {{end}}
- {{with ($.Scratch.Get "nextPage")}}
- <a class="nav nav-next" href="{{.Permalink }}" aria-label="Previous page" > <span class="d-none d-md-block">{{.Title}}</span><i class="ti-arrow-right ml-2"></i></a>
- {{end}}
- </nav>
- </div>
- </div>
- </div>
- </div>
-</section>
-{{ "<!-- /details page -->" | safeHTML }}
-
-<!-- templates -->
-{{ define "section-tree-nav" }}
-{{ $showvisitedlinks := .showvisitedlinks }}
-{{ $currentNode := .currentnode }}
-{{with .sect}}
-{{safeHTML .Params.head}}
-{{ $fileUniqueID := "" }}
-{{ with .File }}{{ $fileUniqueID = .UniqueID }}{{ end }}
-{{ $currentNodeFileUniqueID := "" }}
-{{ with $currentNode.File }}{{ $currentNodeFileUniqueID = .UniqueID }}{{ end }}
-<li data-nav-id="{{.Permalink}}" title="{{.Title}}" class="sidelist
- {{if eq $fileUniqueID $currentNodeFileUniqueID}}active{{end}}">
- <a href="{{.Permalink}}">
- {{safeHTML .Params.Pre}}{{or .Params.menuTitle .LinkTitle .Title}}{{safeHTML .Params.Post}}
- </a>
- {{ $numberOfPages := (add (len .Pages) (len .Sections)) }}
- {{ if ne $numberOfPages 0 }}
- <ul>
- {{ range .Pages.ByWeight }}
- {{ if and .Params.hidden (not $.showhidden) }}
- {{else}}
- {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode }}
- {{end}}
- {{end}}
- </ul>
- {{ end }}
-</li>
-{{ end }}
+{{ "<!-- details page -->" | safeHTML }}
+<section class="single section-sm pb-0">
+ <div class="container">
+ <div class="row">
+ <div class="col-lg-3">
+ <div class="sidebar">
+ <a class="back-btn" href="{{ .Site.BaseURL | relLangURL }}" aria-label="back"></a>
+ <ul class="list-styled">
+ {{ $currentNode := . }}
+ {{range .Site.Home.Sections.ByWeight}}
+ {{ if eq .FirstSection $currentNode.FirstSection }}
+ {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode}}
+ {{ end }}
+ {{ end }}
+ </ul>
+ </div>
+ </div>
+ <div class="col-lg-9">
+ <div class="p-lg-5 p-4 bg-white">
+ <h2 class="mb-5">{{ .Title }}</h2>
+ {{ if .Content }}
+ <div class="content">{{.Content}}</div>
+ {{ else }}
+ <div class="bg-light p-4">
+ <ul class="page-list">
+ {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode }}
+ </ul>
+ </div>
+ {{ end }}
+ <p class="post-meta border-bottom pb-3 mb-0 mt-3">Updated on {{ .Lastmod.Format "02 Jan 2006" }}</p>
+ <nav class="pagination mt-3">
+ <!-- Next prev page -->
+ {{ $currentNode := . }}
+ {{ template "menu-nextprev" dict "menu" .Site.Home "currentnode" $currentNode }}
+ {{ define "menu-nextprev" }}
+ {{$currentNode := .currentnode }}
+ {{ if ne .menu.Params.hidden true}}
+ {{if hasPrefix $currentNode.Permalink .menu.Permalink }}
+ {{ $currentNode.Scratch.Set "NextPageOK" "OK" }}
+ {{ $currentNode.Scratch.Set "prevPage" ($currentNode.Scratch.Get "prevPageTmp") }}
+ {{else}}
+ {{if eq ($currentNode.Scratch.Get "NextPageOK") "OK"}}
+ {{ $currentNode.Scratch.Set "NextPageOK" nil }}
+ {{ $currentNode.Scratch.Set "nextPage" .menu }}
+ {{end}}
+ {{end}}
+ {{ $currentNode.Scratch.Set "prevPageTmp" .menu }}
+
+ {{ $currentNode.Scratch.Set "pages" .menu.Pages }}
+ {{ if .menu.IsHome}}
+ {{ $currentNode.Scratch.Set "pages" .menu.Sections }}
+ {{ else if .menu.Sections}}
+ {{ $currentNode.Scratch.Set "pages" (.menu.Pages | union .menu.Sections) }}
+ {{end}}
+ {{ $pages := ($currentNode.Scratch.Get "pages") }}
+
+ {{ range $pages.ByWeight }}
+ {{ template "menu-nextprev" dict "menu" . "currentnode" $currentNode }}
+ {{end}}
+ {{ end }}
+ {{ end }}
+
+ {{with ($.Scratch.Get "prevPage")}}
+ <a class="nav nav-prev" href="{{.Permalink }}" aria-label="Previous page" ><i class="ti-arrow-left mr-2"></i> <span class="d-none d-md-block">{{.Title}}</span></a>
+ {{end}}
+ {{with ($.Scratch.Get "nextPage")}}
+ <a class="nav nav-next" href="{{.Permalink }}" aria-label="Previous page" > <span class="d-none d-md-block">{{.Title}}</span><i class="ti-arrow-right ml-2"></i></a>
+ {{end}}
+ </nav>
+ </div>
+ </div>
+ </div>
+ </div>
+</section>
+{{ "<!-- /details page -->" | safeHTML }}
+
+<!-- templates -->
+{{ define "section-tree-nav" }}
+{{ $showvisitedlinks := .showvisitedlinks }}
+{{ $currentNode := .currentnode }}
+{{with .sect}}
+{{safeHTML .Params.head}}
+{{ $fileUniqueID := "" }}
+{{ with .File }}{{ $fileUniqueID = .UniqueID }}{{ end }}
+{{ $currentNodeFileUniqueID := "" }}
+{{ with $currentNode.File }}{{ $currentNodeFileUniqueID = .UniqueID }}{{ end }}
+<li data-nav-id="{{.Permalink}}" title="{{.Title}}" class="sidelist
+ {{if eq $fileUniqueID $currentNodeFileUniqueID}}active{{end}}">
+ <a href="{{.Permalink}}">
+ {{safeHTML .Params.Pre}}{{or .Params.menuTitle .LinkTitle .Title}}{{safeHTML .Params.Post}}
+ </a>
+ {{ $numberOfPages := (add (len .Pages) (len .Sections)) }}
+ {{ if ne $numberOfPages 0 }}
+ <ul>
+ {{ range .Pages.ByWeight }}
+ {{ if and .Params.hidden (not $.showhidden) }}
+ {{else}}
+ {{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode }}
+ {{end}}
+ {{end}}
+ </ul>
+ {{ end }}
+</li>
+{{ end }}
{{ end }} \ No newline at end of file
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 5f3d3ed..75f7e01 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -1,22 +1,22 @@
-{{ "<!-- footer -->" | safeHTML }}
-<footer class="section pb-4">
- <div class="container">
- <div class="row align-items-center">
- <div class="col-md-8 text-md-left text-center">
- <p class="mb-md-0 mb-4">{{ .Site.Params.copyright | markdownify }}</p>
- </div>
- <div class="col-md-4 text-md-right text-center">
- <ul class="list-inline">
- {{ range .Site.Params.social }}
- <li class="list-inline-item"><a class="text-color d-inline-block p-2" href="{{ .link | safeURL }}" aria-label="{{ .name }}"><i class="{{ .icon }}"></i></a></li>
- {{ end }}
- </ul>
- </div>
- </div>
- </div>
-</footer>
-{{ "<!-- /footer -->" | safeHTML }}
-
-{{ "<!-- Main Script -->" | safeHTML }}
-{{ $script := resources.Get "js/script.js" | minify}}
+{{ "<!-- footer -->" | safeHTML }}
+<footer class="section pb-4">
+ <div class="container">
+ <div class="row align-items-center">
+ <div class="col-md-8 text-md-left text-center">
+ <p class="mb-md-0 mb-4">{{ .Site.Params.copyright | markdownify }}</p>
+ </div>
+ <div class="col-md-4 text-md-right text-center">
+ <ul class="list-inline">
+ {{ range .Site.Params.social }}
+ <li class="list-inline-item"><a class="text-color d-inline-block p-2" href="{{ .link | safeURL }}" aria-label="{{ .name }}"><i class="{{ .icon }}"></i></a></li>
+ {{ end }}
+ </ul>
+ </div>
+ </div>
+ </div>
+</footer>
+{{ "<!-- /footer -->" | safeHTML }}
+
+{{ "<!-- Main Script -->" | safeHTML }}
+{{ $script := resources.Get "js/script.js" | minify}}
<script src="{{ $script.Permalink }}"></script> \ No newline at end of file
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index e3693d7..1a17d83 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -1,89 +1,89 @@
-<head>
- <meta charset="utf-8">
- <title>{{ .Title }}</title>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- {{ hugo.Generator }}
- <meta name="description" content="{{ .Title }} - {{ .Site.Title }} ">
-
- {{ "<!-- ** CSS Plugins Needed for the Project ** -->" | safeHTML }}
-
- {{ "<!-- Bootstrap -->" | safeHTML }}
- <link rel="stylesheet" href="{{ `plugins/bootstrap/bootstrap.min.css` | absURL }}">
-
- {{ "<!-- themefy-icon -->" | safeHTML }}
- <link rel="stylesheet" href="{{ `plugins/themify-icons/themify-icons.css` | absURL }}">
-
- {{ "<!--Favicon-->" | safeHTML }}
- <link rel="icon" href="{{ `images/favicon.png` | absURL }}" type="image/x-icon">
-
- {{ "<!-- fonts -->" | safeHTML }}
- <link href="https://fonts.googleapis.com/css?family={{replace .Site.Params.font_family ' ' '+' | title}}:300,400,700&display=swap" rel="stylesheet">
-
- <style>
- :root{
- --primary-color:{{ .Site.Params.primary_color }};
- --body-color:{{ .Site.Params.body_color }};
- --text-color:{{ .Site.Params.text_color }};
- --text-color-dark:{{ .Site.Params.text_color_dark }};
- --white-color:{{ .Site.Params.white_color }};
- --light-color:{{ .Site.Params.light_color }};
- --font-family:{{ replace .Site.Params.font_family ' ' '+' | title }};
- }
- </style>
-
-{{ "<!-- Main Stylesheet -->" | safeHTML }}
-{{ $css := resources.Get "css/style.css" | minify }}
-<link href="{{ $css.Permalink }}" rel="stylesheet" media="screen"/>
-
-{{ "<!-- ** JS Plugins Needed for the Project ** -->" | safeHTML }}
-
-{{ "<!-- jquiry -->" | safeHTML }}
-<script src="{{ `plugins/jquery/jquery-1.12.4.js` | absURL }}"></script>
-
-{{ "<!-- jquary ui -->" | safeHTML }}
-<script src="{{ `plugins/jquery/jquery-ui.js`| absURL }}"></script>
-
-{{ "<!-- Bootstrap JS -->" | safeHTML }}
-<script src="{{ `plugins/bootstrap/bootstrap.min.js` | absURL }}"></script>
-
-{{ "<!-- match-height JS -->" | safeHTML }}
-<script src="{{ `plugins/match-height/jquery.matchHeight-min.js` | absURL }}"></script>
-
-{{ template "_internal/google_analytics.html" . }}
-
-{{ if templates.Exists ( printf "partials/overrides/header.html" ) }}
- {{ partial "partials/overrides/header.html" . }}
-{{ else }}
- {{ "<!-- create /layouts/partials/overrides/header.html in your own theme or root directory to add your custom content here -->" | safeHTML }}
-{{ end }}
-
-
-<!-- Open Graph image and Twitter Card metadata -->
-{{ $image_path := .Params.image | default site.Params.image }}
-{{ $image_path_local := printf "static/%s" $image_path }}
-{{ $image_ext := trim (path.Ext $image_path | lower) "." }}
-{{ if fileExists $image_path_local }}
- <meta property="og:image" content="{{ $image_path | absURL }}" />
- {{ if ne $image_ext "svg" }}
- {{ with (imageConfig $image_path_local) }}
- {{ if (and (gt .Width 144) (gt .Height 144)) }}
- <meta name="twitter:image" content="{{ $image_path | absURL }}"/>
- <meta name="twitter:card" content="summary{{ if (and (gt .Width 300) (gt .Height 157) (not (eq .Width .Height))) }}_large_image{{ end }}">
- {{ end }}
- <meta property="og:image:width" content="{{ .Width }}">
- <meta property="og:image:height" content="{{ .Height }}">
- {{ end }}
- {{ end }}
- <meta property="og:image:type" content="image/{{ if eq $image_ext `svg` }}svg+xml{{ else }}{{ replaceRE `^jpg$` `jpeg` $image_ext }}{{ end }}">
-{{ end }}
-<meta name="twitter:title" content="{{ .Title }}"/>
-<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{ if .IsPage }}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}"/>
-{{ with site.Social.twitter }}<meta name="twitter:site" content="@{{ . }}"/>{{ end }}
-{{ range site.Authors }}
- {{ with .twitter }}<meta name="twitter:creator" content="@{{ . }}"/>{{ end }}
-{{ end }}
-
-{{ template "_internal/opengraph.html" . }}
-{{ template "_internal/twitter_cards.html" . }}
-
-</head>
+<head>
+ <meta charset="utf-8">
+ <title>{{ .Title }}</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ {{ hugo.Generator }}
+ <meta name="description" content="{{ .Title }} - {{ .Site.Title }} ">
+
+ {{ "<!-- ** CSS Plugins Needed for the Project ** -->" | safeHTML }}
+
+ {{ "<!-- Bootstrap -->" | safeHTML }}
+ <link rel="stylesheet" href="{{ `plugins/bootstrap/bootstrap.min.css` | absURL }}">
+
+ {{ "<!-- themefy-icon -->" | safeHTML }}
+ <link rel="stylesheet" href="{{ `plugins/themify-icons/themify-icons.css` | absURL }}">
+
+ {{ "<!--Favicon-->" | safeHTML }}
+ <link rel="icon" href="{{ `images/favicon.png` | absURL }}" type="image/x-icon">
+
+ {{ "<!-- fonts -->" | safeHTML }}
+ <link href="https://fonts.googleapis.com/css?family={{replace .Site.Params.font_family ' ' '+' | title}}:300,400,700&display=swap" rel="stylesheet">
+
+ <style>
+ :root{
+ --primary-color:{{ .Site.Params.primary_color }};
+ --body-color:{{ .Site.Params.body_color }};
+ --text-color:{{ .Site.Params.text_color }};
+ --text-color-dark:{{ .Site.Params.text_color_dark }};
+ --white-color:{{ .Site.Params.white_color }};
+ --light-color:{{ .Site.Params.light_color }};
+ --font-family:{{ replace .Site.Params.font_family ' ' '+' | title }};
+ }
+ </style>
+
+{{ "<!-- Main Stylesheet -->" | safeHTML }}
+{{ $css := resources.Get "css/style.css" | minify }}
+<link href="{{ $css.Permalink }}" rel="stylesheet" media="screen"/>
+
+{{ "<!-- ** JS Plugins Needed for the Project ** -->" | safeHTML }}
+
+{{ "<!-- jquiry -->" | safeHTML }}
+<script src="{{ `plugins/jquery/jquery-1.12.4.js` | absURL }}"></script>
+
+{{ "<!-- jquary ui -->" | safeHTML }}
+<script src="{{ `plugins/jquery/jquery-ui.js`| absURL }}"></script>
+
+{{ "<!-- Bootstrap JS -->" | safeHTML }}
+<script src="{{ `plugins/bootstrap/bootstrap.min.js` | absURL }}"></script>
+
+{{ "<!-- match-height JS -->" | safeHTML }}
+<script src="{{ `plugins/match-height/jquery.matchHeight-min.js` | absURL }}"></script>
+
+{{ template "_internal/google_analytics.html" . }}
+
+{{ if templates.Exists ( printf "partials/overrides/header.html" ) }}
+ {{ partial "partials/overrides/header.html" . }}
+{{ else }}
+ {{ "<!-- create /layouts/partials/overrides/header.html in your own theme or root directory to add your custom content here -->" | safeHTML }}
+{{ end }}
+
+
+<!-- Open Graph image and Twitter Card metadata -->
+{{ $image_path := .Params.image | default site.Params.image }}
+{{ $image_path_local := printf "static/%s" $image_path }}
+{{ $image_ext := trim (path.Ext $image_path | lower) "." }}
+{{ if fileExists $image_path_local }}
+ <meta property="og:image" content="{{ $image_path | absURL }}" />
+ {{ if ne $image_ext "svg" }}
+ {{ with (imageConfig $image_path_local) }}
+ {{ if (and (gt .Width 144) (gt .Height 144)) }}
+ <meta name="twitter:image" content="{{ $image_path | absURL }}"/>
+ <meta name="twitter:card" content="summary{{ if (and (gt .Width 300) (gt .Height 157) (not (eq .Width .Height))) }}_large_image{{ end }}">
+ {{ end }}
+ <meta property="og:image:width" content="{{ .Width }}">
+ <meta property="og:image:height" content="{{ .Height }}">
+ {{ end }}
+ {{ end }}
+ <meta property="og:image:type" content="image/{{ if eq $image_ext `svg` }}svg+xml{{ else }}{{ replaceRE `^jpg$` `jpeg` $image_ext }}{{ end }}">
+{{ end }}
+<meta name="twitter:title" content="{{ .Title }}"/>
+<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{ if .IsPage }}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}"/>
+{{ with site.Social.twitter }}<meta name="twitter:site" content="@{{ . }}"/>{{ end }}
+{{ range site.Authors }}
+ {{ with .twitter }}<meta name="twitter:creator" content="@{{ . }}"/>{{ end }}
+{{ end }}
+
+{{ template "_internal/opengraph.html" . }}
+{{ template "_internal/twitter_cards.html" . }}
+
+</head>
diff --git a/layouts/partials/navigation.html b/layouts/partials/navigation.html
index 01f03ee..d28e1b4 100644
--- a/layouts/partials/navigation.html
+++ b/layouts/partials/navigation.html
@@ -1,68 +1,68 @@
-<nav class="navbar navbar-expand-md {{ if .IsHome }}navbar-dark{{ else }}navbar-light{{ end }}">
- <div class="container">
- <a class="navbar-brand px-2" href="{{ site.BaseURL | relLangURL }}">
- {{ $logo:= site.Params.logo }}
- {{ $logoWhite:= site.Params.logo_white }}
- {{ if (or $logo $logoWhite) }}
- {{ if .IsHome }}
- <img class="img-fluid" src="{{if $logoWhite }}{{ $logoWhite | absURL }} {{ else }} {{ $logo | absURL }}{{ end }}"
- alt="{{ site.Title }}">
- {{ else }}
- <img class="img-fluid" src="{{ $logo | absURL }}" alt="{{ site.Title }}">
- {{ end }}
- {{ else }}
- {{ site.Title }}
- {{ end }}
- </a>
- <button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#navigation"
- aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
- </button>
-
- <div class="collapse navbar-collapse text-center" id="navigation">
- <ul class="navbar-nav ml-auto">
- {{ range site.Menus.main }}
- {{ if .HasChildren }}
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle text-dark" href="#" role="button" data-toggle="dropdown"
- aria-haspopup="true" aria-expanded="false">
- {{ .Name }}
- </a>
- <div class="dropdown-menu">
- {{ range .Children }}
- <a class="dropdown-item" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
- {{ end }}
- </div>
- </li>
- {{ else }}
- <li class="nav-item">
- <a class="nav-link text-dark" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
- </li>
- {{ end }}
- {{ end }}
- </ul>
- <!-- Language List -->
- {{- if site.IsMultiLingual }}
- <select class="lang-list {{ if not .IsHome }}dark{{ end }}" id="select-language"
- onchange="location = this.value;">
- {{ $siteLanguages := site.Languages}}
- {{ $pageLang := .Page.Lang}}
- {{ range .Page.AllTranslations }}
- {{ $translation := .}}
- {{ range $siteLanguages }}
- {{ if eq $translation.Lang .Lang }}
- {{ $selected := false }}
- {{ if eq $pageLang .Lang}}
- <option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}" selected>{{ .LanguageName }}
- </option>
- {{ else }}
- <option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}">{{ .LanguageName }}</option>
- {{ end }}
- {{ end }}
- {{ end }}
- {{ end }}
- </select>
- {{ end }}
- </div>
- </div>
-</nav>
+<nav class="navbar navbar-expand-md {{ if .IsHome }}navbar-dark{{ else }}navbar-light{{ end }}">
+ <div class="container">
+ <a class="navbar-brand px-2" href="{{ site.BaseURL | relLangURL }}">
+ {{ $logo:= site.Params.logo }}
+ {{ $logoWhite:= site.Params.logo_white }}
+ {{ if (or $logo $logoWhite) }}
+ {{ if .IsHome }}
+ <img class="img-fluid" src="{{if $logoWhite }}{{ $logoWhite | absURL }} {{ else }} {{ $logo | absURL }}{{ end }}"
+ alt="{{ site.Title }}">
+ {{ else }}
+ <img class="img-fluid" src="{{ $logo | absURL }}" alt="{{ site.Title }}">
+ {{ end }}
+ {{ else }}
+ {{ site.Title }}
+ {{ end }}
+ </a>
+ <button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#navigation"
+ aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+
+ <div class="collapse navbar-collapse text-center" id="navigation">
+ <ul class="navbar-nav ml-auto">
+ {{ range site.Menus.main }}
+ {{ if .HasChildren }}
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle text-dark" href="#" role="button" data-toggle="dropdown"
+ aria-haspopup="true" aria-expanded="false">
+ {{ .Name }}
+ </a>
+ <div class="dropdown-menu">
+ {{ range .Children }}
+ <a class="dropdown-item" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
+ {{ end }}
+ </div>
+ </li>
+ {{ else }}
+ <li class="nav-item">
+ <a class="nav-link text-dark" href="{{ .URL | absLangURL }}">{{ .Name }}</a>
+ </li>
+ {{ end }}
+ {{ end }}
+ </ul>
+ <!-- Language List -->
+ {{- if site.IsMultiLingual }}
+ <select class="lang-list {{ if not .IsHome }}dark{{ end }}" id="select-language"
+ onchange="location = this.value;">
+ {{ $siteLanguages := site.Languages}}
+ {{ $pageLang := .Page.Lang}}
+ {{ range .Page.AllTranslations }}
+ {{ $translation := .}}
+ {{ range $siteLanguages }}
+ {{ if eq $translation.Lang .Lang }}
+ {{ $selected := false }}
+ {{ if eq $pageLang .Lang}}
+ <option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}" selected>{{ .LanguageName }}
+ </option>
+ {{ else }}
+ <option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}">{{ .LanguageName }}</option>
+ {{ end }}
+ {{ end }}
+ {{ end }}
+ {{ end }}
+ </select>
+ {{ end }}
+ </div>
+ </div>
+</nav>
diff --git a/layouts/shortcodes/faq.html b/layouts/shortcodes/faq.html
index 204863d..8f493c7 100644
--- a/layouts/shortcodes/faq.html
+++ b/layouts/shortcodes/faq.html
@@ -1,12 +1,12 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-
-<div class="card mb-4 rounded-0 shadow border-0">
- <div class="card-header rounded-0 bg-white border p-0 border-0">
- <a class="card-link h4 d-flex tex-dark mb-0 py-3 px-4 justify-content-between" data-toggle="collapse" href="#{{ .Get 0 | sha1 }}">
- <span>{{ .Get 0 | markdownify }}</span> <i class="ti-plus text-primary text-right"></i>
- </a>
- </div>
- <div id="{{ .Get 0 | sha1 }}" class="collapse" data-parent="#accordion">
- <div class="card-body font-secondary text-color">{{ .Inner | markdownify }}</div>
- </div>
+{{ $_hugo_config := `{ "version": 1 }` }}
+
+<div class="card mb-4 rounded-0 shadow border-0">
+ <div class="card-header rounded-0 bg-white border p-0 border-0">
+ <a class="card-link h4 d-flex tex-dark mb-0 py-3 px-4 justify-content-between" data-toggle="collapse" href="#{{ .Get 0 | sha1 }}">
+ <span>{{ .Get 0 | markdownify }}</span> <i class="ti-plus text-primary text-right"></i>
+ </a>
+ </div>
+ <div id="{{ .Get 0 | sha1 }}" class="collapse" data-parent="#accordion">
+ <div class="card-body font-secondary text-color">{{ .Inner | markdownify }}</div>
+ </div>
</div> \ No newline at end of file
diff --git a/layouts/shortcodes/notice.html b/layouts/shortcodes/notice.html
index 0b03907..7282b74 100644
--- a/layouts/shortcodes/notice.html
+++ b/layouts/shortcodes/notice.html
@@ -1,3 +1,3 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-
+{{ $_hugo_config := `{ "version": 1 }` }}
+
<div class="notices {{ .Get 0 }}" {{ if len .Params | eq 2 }} id="{{ .Get 1 }}" {{ end }}><p>{{ .Inner | markdownify }}</p></div> \ No newline at end of file
diff --git a/layouts/shortcodes/tab.html b/layouts/shortcodes/tab.html
index 832a793..10d8af6 100644
--- a/layouts/shortcodes/tab.html
+++ b/layouts/shortcodes/tab.html
@@ -1,5 +1,5 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-
-<div class="tab-pane" title="{{ .Get 0 }}">
- {{ .Inner }}
+{{ $_hugo_config := `{ "version": 1 }` }}
+
+<div class="tab-pane" title="{{ .Get 0 }}">
+ {{ .Inner }}
</div> \ No newline at end of file
diff --git a/layouts/shortcodes/tabs.html b/layouts/shortcodes/tabs.html
index 76797fb..81b3d76 100644
--- a/layouts/shortcodes/tabs.html
+++ b/layouts/shortcodes/tabs.html
@@ -1,6 +1,6 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-
-<div class="code-tabs">
- <ul class="nav nav-tabs"></ul>
- <div class="tab-content">{{ .Inner }}</div>
+{{ $_hugo_config := `{ "version": 1 }` }}
+
+<div class="code-tabs">
+ <ul class="nav nav-tabs"></ul>
+ <div class="tab-content">{{ .Inner }}</div>
</div> \ No newline at end of file
diff --git a/static/plugins/bootstrap/bootstrap.min.css b/static/plugins/bootstrap/bootstrap.min.css
index 03d87f6..bd2948d 100644
--- a/static/plugins/bootstrap/bootstrap.min.css
+++ b/static/plugins/bootstrap/bootstrap.min.css
@@ -1,6 +1,6 @@
-/*!
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+/*!
+ * Bootstrap v4.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} \ No newline at end of file
diff --git a/static/plugins/bootstrap/bootstrap.min.js b/static/plugins/bootstrap/bootstrap.min.js
index c33fa70..0a5142b 100644
--- a/static/plugins/bootstrap/bootstrap.min.js
+++ b/static/plugins/bootstrap/bootstrap.min.js
@@ -1,12 +1,12 @@
-/*
- Copyright (C) Federico Zivolo 2018
- Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
- */(function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t() })(this, function () { 'use strict'; function e(e) { return e && '[object Function]' === {}.toString.call(e) } function t(e, t) { if (1 !== e.nodeType) return []; var o = getComputedStyle(e, null); return t ? o[t] : o } function o(e) { return 'HTML' === e.nodeName ? e : e.parentNode || e.host } function n(e) { if (!e) return document.body; switch (e.nodeName) { case 'HTML': case 'BODY': return e.ownerDocument.body; case '#document': return e.body; }var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY; return /(auto|scroll|overlay)/.test(r + s + p) ? e : n(o(e)) } function r(e) { return 11 === e ? re : 10 === e ? pe : re || pe } function p(e) { if (!e) return document.documentElement; for (var o = r(10) ? document.body : null, n = e.offsetParent; n === o && e.nextElementSibling;)n = (e = e.nextElementSibling).offsetParent; var i = n && n.nodeName; return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(n.nodeName) && 'static' === t(n, 'position') ? p(n) : n : e ? e.ownerDocument.documentElement : document.documentElement } function s(e) { var t = e.nodeName; return 'BODY' !== t && ('HTML' === t || p(e.firstElementChild) === e) } function d(e) { return null === e.parentNode ? e : d(e.parentNode) } function a(e, t) { if (!e || !e.nodeType || !t || !t.nodeType) return document.documentElement; var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, n = o ? e : t, i = o ? t : e, r = document.createRange(); r.setStart(n, 0), r.setEnd(i, 0); var l = r.commonAncestorContainer; if (e !== l && t !== l || n.contains(i)) return s(l) ? l : p(l); var f = d(e); return f.host ? a(f.host, t) : a(e, d(t).host) } function l(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top', o = 'top' === t ? 'scrollTop' : 'scrollLeft', n = e.nodeName; if ('BODY' === n || 'HTML' === n) { var i = e.ownerDocument.documentElement, r = e.ownerDocument.scrollingElement || i; return r[o] } return e[o] } function f(e, t) { var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], n = l(t, 'top'), i = l(t, 'left'), r = o ? -1 : 1; return e.top += n * r, e.bottom += n * r, e.left += i * r, e.right += i * r, e } function m(e, t) { var o = 'x' === t ? 'Left' : 'Top', n = 'Left' == o ? 'Right' : 'Bottom'; return parseFloat(e['border' + o + 'Width'], 10) + parseFloat(e['border' + n + 'Width'], 10) } function h(e, t, o, n) { return $(t['offset' + e], t['scroll' + e], o['client' + e], o['offset' + e], o['scroll' + e], r(10) ? o['offset' + e] + n['margin' + ('Height' === e ? 'Top' : 'Left')] + n['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0) } function c() { var e = document.body, t = document.documentElement, o = r(10) && getComputedStyle(t); return { height: h('Height', e, t, o), width: h('Width', e, t, o) } } function g(e) { return le({}, e, { right: e.left + e.width, bottom: e.top + e.height }) } function u(e) { var o = {}; try { if (r(10)) { o = e.getBoundingClientRect(); var n = l(e, 'top'), i = l(e, 'left'); o.top += n, o.left += i, o.bottom += n, o.right += i } else o = e.getBoundingClientRect() } catch (t) { } var p = { left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top }, s = 'HTML' === e.nodeName ? c() : {}, d = s.width || e.clientWidth || p.right - p.left, a = s.height || e.clientHeight || p.bottom - p.top, f = e.offsetWidth - d, h = e.offsetHeight - a; if (f || h) { var u = t(e); f -= m(u, 'x'), h -= m(u, 'y'), p.width -= f, p.height -= h } return g(p) } function b(e, o) { var i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], p = r(10), s = 'HTML' === o.nodeName, d = u(e), a = u(o), l = n(e), m = t(o), h = parseFloat(m.borderTopWidth, 10), c = parseFloat(m.borderLeftWidth, 10); i && 'HTML' === o.nodeName && (a.top = $(a.top, 0), a.left = $(a.left, 0)); var b = g({ top: d.top - a.top - h, left: d.left - a.left - c, width: d.width, height: d.height }); if (b.marginTop = 0, b.marginLeft = 0, !p && s) { var y = parseFloat(m.marginTop, 10), w = parseFloat(m.marginLeft, 10); b.top -= h - y, b.bottom -= h - y, b.left -= c - w, b.right -= c - w, b.marginTop = y, b.marginLeft = w } return (p && !i ? o.contains(l) : o === l && 'BODY' !== l.nodeName) && (b = f(b, o)), b } function y(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = e.ownerDocument.documentElement, n = b(e, o), i = $(o.clientWidth, window.innerWidth || 0), r = $(o.clientHeight, window.innerHeight || 0), p = t ? 0 : l(o), s = t ? 0 : l(o, 'left'), d = { top: p - n.top + n.marginTop, left: s - n.left + n.marginLeft, width: i, height: r }; return g(d) } function w(e) { var n = e.nodeName; return 'BODY' === n || 'HTML' === n ? !1 : 'fixed' === t(e, 'position') || w(o(e)) } function E(e) { if (!e || !e.parentElement || r()) return document.documentElement; for (var o = e.parentElement; o && 'none' === t(o, 'transform');)o = o.parentElement; return o || document.documentElement } function v(e, t, i, r) { var p = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], s = { top: 0, left: 0 }, d = p ? E(e) : a(e, t); if ('viewport' === r) s = y(d, p); else { var l; 'scrollParent' === r ? (l = n(o(t)), 'BODY' === l.nodeName && (l = e.ownerDocument.documentElement)) : 'window' === r ? l = e.ownerDocument.documentElement : l = r; var f = b(l, d, p); if ('HTML' === l.nodeName && !w(d)) { var m = c(), h = m.height, g = m.width; s.top += f.top - f.marginTop, s.bottom = h + f.top, s.left += f.left - f.marginLeft, s.right = g + f.left } else s = f } return s.left += i, s.top += i, s.right -= i, s.bottom -= i, s } function x(e) { var t = e.width, o = e.height; return t * o } function O(e, t, o, n, i) { var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; if (-1 === e.indexOf('auto')) return e; var p = v(o, n, r, i), s = { top: { width: p.width, height: t.top - p.top }, right: { width: p.right - t.right, height: p.height }, bottom: { width: p.width, height: p.bottom - t.bottom }, left: { width: t.left - p.left, height: p.height } }, d = Object.keys(s).map(function (e) { return le({ key: e }, s[e], { area: x(s[e]) }) }).sort(function (e, t) { return t.area - e.area }), a = d.filter(function (e) { var t = e.width, n = e.height; return t >= o.clientWidth && n >= o.clientHeight }), l = 0 < a.length ? a[0].key : d[0].key, f = e.split('-')[1]; return l + (f ? '-' + f : '') } function L(e, t, o) { var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, i = n ? E(t) : a(t, o); return b(o, i, n) } function S(e) { var t = getComputedStyle(e), o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), n = parseFloat(t.marginLeft) + parseFloat(t.marginRight), i = { width: e.offsetWidth + n, height: e.offsetHeight + o }; return i } function T(e) { var t = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; return e.replace(/left|right|bottom|top/g, function (e) { return t[e] }) } function C(e, t, o) { o = o.split('-')[0]; var n = S(e), i = { width: n.width, height: n.height }, r = -1 !== ['right', 'left'].indexOf(o), p = r ? 'top' : 'left', s = r ? 'left' : 'top', d = r ? 'height' : 'width', a = r ? 'width' : 'height'; return i[p] = t[p] + t[d] / 2 - n[d] / 2, i[s] = o === s ? t[s] - n[a] : t[T(s)], i } function D(e, t) { return Array.prototype.find ? e.find(t) : e.filter(t)[0] } function N(e, t, o) { if (Array.prototype.findIndex) return e.findIndex(function (e) { return e[t] === o }); var n = D(e, function (e) { return e[t] === o }); return e.indexOf(n) } function P(t, o, n) { var i = void 0 === n ? t : t.slice(0, N(t, 'name', n)); return i.forEach(function (t) { t['function'] && console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); var n = t['function'] || t.fn; t.enabled && e(n) && (o.offsets.popper = g(o.offsets.popper), o.offsets.reference = g(o.offsets.reference), o = n(o, t)) }), o } function k() { if (!this.state.isDestroyed) { var e = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }; e.offsets.reference = L(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = C(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute', e = P(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) } } function W(e, t) { return e.some(function (e) { var o = e.name, n = e.enabled; return n && o === t }) } function B(e) { for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length; n++) { var i = t[n], r = i ? '' + i + o : e; if ('undefined' != typeof document.body.style[r]) return r } return null } function H() { return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.position = '', this.popper.style.top = '', this.popper.style.left = '', this.popper.style.right = '', this.popper.style.bottom = '', this.popper.style.willChange = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this } function A(e) { var t = e.ownerDocument; return t ? t.defaultView : window } function M(e, t, o, i) { var r = 'BODY' === e.nodeName, p = r ? e.ownerDocument.defaultView : e; p.addEventListener(t, o, { passive: !0 }), r || M(n(p.parentNode), t, o, i), i.push(p) } function I(e, t, o, i) { o.updateBound = i, A(e).addEventListener('resize', o.updateBound, { passive: !0 }); var r = n(e); return M(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o } function F() { this.state.eventsEnabled || (this.state = I(this.reference, this.options, this.state, this.scheduleUpdate)) } function R(e, t) { return A(e).removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function (e) { e.removeEventListener('scroll', t.updateBound) }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t } function U() { this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = R(this.reference, this.state)) } function Y(e) { return '' !== e && !isNaN(parseFloat(e)) && isFinite(e) } function j(e, t) { Object.keys(t).forEach(function (o) { var n = ''; -1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && Y(t[o]) && (n = 'px'), e.style[o] = t[o] + n }) } function K(e, t) { Object.keys(t).forEach(function (o) { var n = t[o]; !1 === n ? e.removeAttribute(o) : e.setAttribute(o, t[o]) }) } function q(e, t, o) { var n = D(e, function (e) { var o = e.name; return o === t }), i = !!n && e.some(function (e) { return e.name === o && e.enabled && e.order < n.order }); if (!i) { var r = '`' + t + '`'; console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!') } return i } function G(e) { return 'end' === e ? 'start' : 'start' === e ? 'end' : e } function z(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = me.indexOf(e), n = me.slice(o + 1).concat(me.slice(0, o)); return t ? n.reverse() : n } function V(e, t, o, n) { var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +i[1], p = i[2]; if (!r) return e; if (0 === p.indexOf('%')) { var s; switch (p) { case '%p': s = o; break; case '%': case '%r': default: s = n; }var d = g(s); return d[t] / 100 * r } if ('vh' === p || 'vw' === p) { var a; return a = 'vh' === p ? $(document.documentElement.clientHeight, window.innerHeight || 0) : $(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r } return r } function _(e, t, o, n) { var i = [0, 0], r = -1 !== ['right', 'left'].indexOf(n), p = e.split(/(\+|\-)/).map(function (e) { return e.trim() }), s = p.indexOf(D(p, function (e) { return -1 !== e.search(/,|\s/) })); p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); var d = /\s*,\s*|\s+/, a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; return a = a.map(function (e, n) { var i = (1 === n ? !r : r) ? 'height' : 'width', p = !1; return e.reduce(function (e, t) { return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t) }, []).map(function (e) { return V(e, i, t, o) }) }), a.forEach(function (e, t) { e.forEach(function (o, n) { Y(o) && (i[t] += o * ('-' === e[n - 1] ? -1 : 1)) }) }), i } function X(e, t) { var o, n = t.offset, i = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = i.split('-')[0]; return o = Y(+n) ? [+n, 0] : _(n, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e } for (var J = Math.min, Q = Math.round, Z = Math.floor, $ = Math.max, ee = 'undefined' != typeof window && 'undefined' != typeof document, te = ['Edge', 'Trident', 'Firefox'], oe = 0, ne = 0; ne < te.length; ne += 1)if (ee && 0 <= navigator.userAgent.indexOf(te[ne])) { oe = 1; break } var i = ee && window.Promise, ie = i ? function (e) { var t = !1; return function () { t || (t = !0, window.Promise.resolve().then(function () { t = !1, e() })) } } : function (e) { var t = !1; return function () { t || (t = !0, setTimeout(function () { t = !1, e() }, oe)) } }, re = ee && !!(window.MSInputMethodContext && document.documentMode), pe = ee && /MSIE 10/.test(navigator.userAgent), se = function (e, t) { if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') }, de = function () { function e(e, t) { for (var o, n = 0; n < t.length; n++)o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } return function (t, o, n) { return o && e(t.prototype, o), n && e(t, n), t } }(), ae = function (e, t, o) { return t in e ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = o, e }, le = Object.assign || function (e) { for (var t, o = 1; o < arguments.length; o++)for (var n in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); return e }, fe = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'], me = fe.slice(3), he = { FLIP: 'flip', CLOCKWISE: 'clockwise', COUNTERCLOCKWISE: 'counterclockwise' }, ce = function () { function t(o, n) { var i = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; se(this, t), this.scheduleUpdate = function () { return requestAnimationFrame(i.update) }, this.update = ie(this.update.bind(this)), this.options = le({}, t.Defaults, r), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = o && o.jquery ? o[0] : o, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(le({}, t.Defaults.modifiers, r.modifiers)).forEach(function (e) { i.options.modifiers[e] = le({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}) }), this.modifiers = Object.keys(this.options.modifiers).map(function (e) { return le({ name: e }, i.options.modifiers[e]) }).sort(function (e, t) { return e.order - t.order }), this.modifiers.forEach(function (t) { t.enabled && e(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state) }), this.update(); var p = this.options.eventsEnabled; p && this.enableEventListeners(), this.state.eventsEnabled = p } return de(t, [{ key: 'update', value: function () { return k.call(this) } }, { key: 'destroy', value: function () { return H.call(this) } }, { key: 'enableEventListeners', value: function () { return F.call(this) } }, { key: 'disableEventListeners', value: function () { return U.call(this) } }]), t }(); return ce.Utils = ('undefined' == typeof window ? global : window).PopperUtils, ce.placements = fe, ce.Defaults = { placement: 'bottom', positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { }, onUpdate: function () { }, modifiers: { shift: { order: 100, enabled: !0, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = t.split('-')[1]; if (n) { var i = e.offsets, r = i.reference, p = i.popper, s = -1 !== ['bottom', 'top'].indexOf(o), d = s ? 'left' : 'top', a = s ? 'width' : 'height', l = { start: ae({}, d, r[d]), end: ae({}, d, r[d] + r[a] - p[a]) }; e.offsets.popper = le({}, p, l[n]) } return e } }, offset: { order: 200, enabled: !0, fn: X, offset: 0 }, preventOverflow: { order: 300, enabled: !0, fn: function (e, t) { var o = t.boundariesElement || p(e.instance.popper); e.instance.reference === o && (o = p(o)); var n = B('transform'), i = e.instance.popper.style, r = i.top, s = i.left, d = i[n]; i.top = '', i.left = '', i[n] = ''; var a = v(e.instance.popper, e.instance.reference, t.padding, o, e.positionFixed); i.top = r, i.left = s, i[n] = d, t.boundaries = a; var l = t.priority, f = e.offsets.popper, m = { primary: function (e) { var o = f[e]; return f[e] < a[e] && !t.escapeWithReference && (o = $(f[e], a[e])), ae({}, e, o) }, secondary: function (e) { var o = 'right' === e ? 'left' : 'top', n = f[o]; return f[e] > a[e] && !t.escapeWithReference && (n = J(f[o], a[e] - ('right' === e ? f.width : f.height))), ae({}, o, n) } }; return l.forEach(function (e) { var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary'; f = le({}, f, m[t](e)) }), e.offsets.popper = f, e }, priority: ['left', 'right', 'top', 'bottom'], padding: 5, boundariesElement: 'scrollParent' }, keepTogether: { order: 400, enabled: !0, fn: function (e) { var t = e.offsets, o = t.popper, n = t.reference, i = e.placement.split('-')[0], r = Z, p = -1 !== ['top', 'bottom'].indexOf(i), s = p ? 'right' : 'bottom', d = p ? 'left' : 'top', a = p ? 'width' : 'height'; return o[s] < r(n[d]) && (e.offsets.popper[d] = r(n[d]) - o[a]), o[d] > r(n[s]) && (e.offsets.popper[d] = r(n[s])), e } }, arrow: { order: 500, enabled: !0, fn: function (e, o) { var n; if (!q(e.instance.modifiers, 'arrow', 'keepTogether')) return e; var i = o.element; if ('string' == typeof i) { if (i = e.instance.popper.querySelector(i), !i) return e; } else if (!e.instance.popper.contains(i)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e; var r = e.placement.split('-')[0], p = e.offsets, s = p.popper, d = p.reference, a = -1 !== ['left', 'right'].indexOf(r), l = a ? 'height' : 'width', f = a ? 'Top' : 'Left', m = f.toLowerCase(), h = a ? 'left' : 'top', c = a ? 'bottom' : 'right', u = S(i)[l]; d[c] - u < s[m] && (e.offsets.popper[m] -= s[m] - (d[c] - u)), d[m] + u > s[c] && (e.offsets.popper[m] += d[m] + u - s[c]), e.offsets.popper = g(e.offsets.popper); var b = d[m] + d[l] / 2 - u / 2, y = t(e.instance.popper), w = parseFloat(y['margin' + f], 10), E = parseFloat(y['border' + f + 'Width'], 10), v = b - e.offsets.popper[m] - w - E; return v = $(J(s[l] - u, v), 0), e.arrowElement = i, e.offsets.arrow = (n = {}, ae(n, m, Q(v)), ae(n, h, ''), n), e }, element: '[x-arrow]' }, flip: { order: 600, enabled: !0, fn: function (e, t) { if (W(e.instance.modifiers, 'inner')) return e; if (e.flipped && e.placement === e.originalPlacement) return e; var o = v(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), n = e.placement.split('-')[0], i = T(n), r = e.placement.split('-')[1] || '', p = []; switch (t.behavior) { case he.FLIP: p = [n, i]; break; case he.CLOCKWISE: p = z(n); break; case he.COUNTERCLOCKWISE: p = z(n, !0); break; default: p = t.behavior; }return p.forEach(function (s, d) { if (n !== s || p.length === d + 1) return e; n = e.placement.split('-')[0], i = T(n); var a = e.offsets.popper, l = e.offsets.reference, f = Z, m = 'left' === n && f(a.right) > f(l.left) || 'right' === n && f(a.left) < f(l.right) || 'top' === n && f(a.bottom) > f(l.top) || 'bottom' === n && f(a.top) < f(l.bottom), h = f(a.left) < f(o.left), c = f(a.right) > f(o.right), g = f(a.top) < f(o.top), u = f(a.bottom) > f(o.bottom), b = 'left' === n && h || 'right' === n && c || 'top' === n && g || 'bottom' === n && u, y = -1 !== ['top', 'bottom'].indexOf(n), w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u); (m || b || w) && (e.flipped = !0, (m || b) && (n = p[d + 1]), w && (r = G(r)), e.placement = n + (r ? '-' + r : ''), e.offsets.popper = le({}, e.offsets.popper, C(e.instance.popper, e.offsets.reference, e.placement)), e = P(e.instance.modifiers, e, 'flip')) }), e }, behavior: 'flip', padding: 5, boundariesElement: 'viewport' }, inner: { order: 700, enabled: !1, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = e.offsets, i = n.popper, r = n.reference, p = -1 !== ['left', 'right'].indexOf(o), s = -1 === ['top', 'left'].indexOf(o); return i[p ? 'left' : 'top'] = r[o] - (s ? i[p ? 'width' : 'height'] : 0), e.placement = T(t), e.offsets.popper = g(i), e } }, hide: { order: 800, enabled: !0, fn: function (e) { if (!q(e.instance.modifiers, 'hide', 'preventOverflow')) return e; var t = e.offsets.reference, o = D(e.instance.modifiers, function (e) { return 'preventOverflow' === e.name }).boundaries; if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { if (!0 === e.hide) return e; e.hide = !0, e.attributes['x-out-of-boundaries'] = '' } else { if (!1 === e.hide) return e; e.hide = !1, e.attributes['x-out-of-boundaries'] = !1 } return e } }, computeStyle: { order: 850, enabled: !0, fn: function (e, t) { var o = t.x, n = t.y, i = e.offsets.popper, r = D(e.instance.modifiers, function (e) { return 'applyStyle' === e.name }).gpuAcceleration; void 0 !== r && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); var s, d, a = void 0 === r ? t.gpuAcceleration : r, l = p(e.instance.popper), f = u(l), m = { position: i.position }, h = { left: Z(i.left), top: Q(i.top), bottom: Q(i.bottom), right: Z(i.right) }, c = 'bottom' === o ? 'top' : 'bottom', g = 'right' === n ? 'left' : 'right', b = B('transform'); if (d = 'bottom' == c ? -f.height + h.bottom : h.top, s = 'right' == g ? -f.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[g] = 0, m.willChange = 'transform'; else { var y = 'bottom' == c ? -1 : 1, w = 'right' == g ? -1 : 1; m[c] = d * y, m[g] = s * w, m.willChange = c + ', ' + g } var E = { "x-placement": e.placement }; return e.attributes = le({}, E, e.attributes), e.styles = le({}, m, e.styles), e.arrowStyles = le({}, e.offsets.arrow, e.arrowStyles), e }, gpuAcceleration: !0, x: 'bottom', y: 'right' }, applyStyle: { order: 900, enabled: !0, fn: function (e) { return j(e.instance.popper, e.styles), K(e.instance.popper, e.attributes), e.arrowElement && Object.keys(e.arrowStyles).length && j(e.arrowElement, e.arrowStyles), e }, onLoad: function (e, t, o, n, i) { var r = L(i, t, e, o.positionFixed), p = O(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); return t.setAttribute('x-placement', p), j(t, { position: o.positionFixed ? 'fixed' : 'absolute' }), o }, gpuAcceleration: void 0 } } }, ce });
-//# sourceMappingURL=popper.min.js.map
-
-/*!
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
+/*
+ Copyright (C) Federico Zivolo 2018
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
+ */(function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t() })(this, function () { 'use strict'; function e(e) { return e && '[object Function]' === {}.toString.call(e) } function t(e, t) { if (1 !== e.nodeType) return []; var o = getComputedStyle(e, null); return t ? o[t] : o } function o(e) { return 'HTML' === e.nodeName ? e : e.parentNode || e.host } function n(e) { if (!e) return document.body; switch (e.nodeName) { case 'HTML': case 'BODY': return e.ownerDocument.body; case '#document': return e.body; }var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY; return /(auto|scroll|overlay)/.test(r + s + p) ? e : n(o(e)) } function r(e) { return 11 === e ? re : 10 === e ? pe : re || pe } function p(e) { if (!e) return document.documentElement; for (var o = r(10) ? document.body : null, n = e.offsetParent; n === o && e.nextElementSibling;)n = (e = e.nextElementSibling).offsetParent; var i = n && n.nodeName; return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(n.nodeName) && 'static' === t(n, 'position') ? p(n) : n : e ? e.ownerDocument.documentElement : document.documentElement } function s(e) { var t = e.nodeName; return 'BODY' !== t && ('HTML' === t || p(e.firstElementChild) === e) } function d(e) { return null === e.parentNode ? e : d(e.parentNode) } function a(e, t) { if (!e || !e.nodeType || !t || !t.nodeType) return document.documentElement; var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, n = o ? e : t, i = o ? t : e, r = document.createRange(); r.setStart(n, 0), r.setEnd(i, 0); var l = r.commonAncestorContainer; if (e !== l && t !== l || n.contains(i)) return s(l) ? l : p(l); var f = d(e); return f.host ? a(f.host, t) : a(e, d(t).host) } function l(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top', o = 'top' === t ? 'scrollTop' : 'scrollLeft', n = e.nodeName; if ('BODY' === n || 'HTML' === n) { var i = e.ownerDocument.documentElement, r = e.ownerDocument.scrollingElement || i; return r[o] } return e[o] } function f(e, t) { var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], n = l(t, 'top'), i = l(t, 'left'), r = o ? -1 : 1; return e.top += n * r, e.bottom += n * r, e.left += i * r, e.right += i * r, e } function m(e, t) { var o = 'x' === t ? 'Left' : 'Top', n = 'Left' == o ? 'Right' : 'Bottom'; return parseFloat(e['border' + o + 'Width'], 10) + parseFloat(e['border' + n + 'Width'], 10) } function h(e, t, o, n) { return $(t['offset' + e], t['scroll' + e], o['client' + e], o['offset' + e], o['scroll' + e], r(10) ? o['offset' + e] + n['margin' + ('Height' === e ? 'Top' : 'Left')] + n['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0) } function c() { var e = document.body, t = document.documentElement, o = r(10) && getComputedStyle(t); return { height: h('Height', e, t, o), width: h('Width', e, t, o) } } function g(e) { return le({}, e, { right: e.left + e.width, bottom: e.top + e.height }) } function u(e) { var o = {}; try { if (r(10)) { o = e.getBoundingClientRect(); var n = l(e, 'top'), i = l(e, 'left'); o.top += n, o.left += i, o.bottom += n, o.right += i } else o = e.getBoundingClientRect() } catch (t) { } var p = { left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top }, s = 'HTML' === e.nodeName ? c() : {}, d = s.width || e.clientWidth || p.right - p.left, a = s.height || e.clientHeight || p.bottom - p.top, f = e.offsetWidth - d, h = e.offsetHeight - a; if (f || h) { var u = t(e); f -= m(u, 'x'), h -= m(u, 'y'), p.width -= f, p.height -= h } return g(p) } function b(e, o) { var i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], p = r(10), s = 'HTML' === o.nodeName, d = u(e), a = u(o), l = n(e), m = t(o), h = parseFloat(m.borderTopWidth, 10), c = parseFloat(m.borderLeftWidth, 10); i && 'HTML' === o.nodeName && (a.top = $(a.top, 0), a.left = $(a.left, 0)); var b = g({ top: d.top - a.top - h, left: d.left - a.left - c, width: d.width, height: d.height }); if (b.marginTop = 0, b.marginLeft = 0, !p && s) { var y = parseFloat(m.marginTop, 10), w = parseFloat(m.marginLeft, 10); b.top -= h - y, b.bottom -= h - y, b.left -= c - w, b.right -= c - w, b.marginTop = y, b.marginLeft = w } return (p && !i ? o.contains(l) : o === l && 'BODY' !== l.nodeName) && (b = f(b, o)), b } function y(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = e.ownerDocument.documentElement, n = b(e, o), i = $(o.clientWidth, window.innerWidth || 0), r = $(o.clientHeight, window.innerHeight || 0), p = t ? 0 : l(o), s = t ? 0 : l(o, 'left'), d = { top: p - n.top + n.marginTop, left: s - n.left + n.marginLeft, width: i, height: r }; return g(d) } function w(e) { var n = e.nodeName; return 'BODY' === n || 'HTML' === n ? !1 : 'fixed' === t(e, 'position') || w(o(e)) } function E(e) { if (!e || !e.parentElement || r()) return document.documentElement; for (var o = e.parentElement; o && 'none' === t(o, 'transform');)o = o.parentElement; return o || document.documentElement } function v(e, t, i, r) { var p = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], s = { top: 0, left: 0 }, d = p ? E(e) : a(e, t); if ('viewport' === r) s = y(d, p); else { var l; 'scrollParent' === r ? (l = n(o(t)), 'BODY' === l.nodeName && (l = e.ownerDocument.documentElement)) : 'window' === r ? l = e.ownerDocument.documentElement : l = r; var f = b(l, d, p); if ('HTML' === l.nodeName && !w(d)) { var m = c(), h = m.height, g = m.width; s.top += f.top - f.marginTop, s.bottom = h + f.top, s.left += f.left - f.marginLeft, s.right = g + f.left } else s = f } return s.left += i, s.top += i, s.right -= i, s.bottom -= i, s } function x(e) { var t = e.width, o = e.height; return t * o } function O(e, t, o, n, i) { var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; if (-1 === e.indexOf('auto')) return e; var p = v(o, n, r, i), s = { top: { width: p.width, height: t.top - p.top }, right: { width: p.right - t.right, height: p.height }, bottom: { width: p.width, height: p.bottom - t.bottom }, left: { width: t.left - p.left, height: p.height } }, d = Object.keys(s).map(function (e) { return le({ key: e }, s[e], { area: x(s[e]) }) }).sort(function (e, t) { return t.area - e.area }), a = d.filter(function (e) { var t = e.width, n = e.height; return t >= o.clientWidth && n >= o.clientHeight }), l = 0 < a.length ? a[0].key : d[0].key, f = e.split('-')[1]; return l + (f ? '-' + f : '') } function L(e, t, o) { var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, i = n ? E(t) : a(t, o); return b(o, i, n) } function S(e) { var t = getComputedStyle(e), o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), n = parseFloat(t.marginLeft) + parseFloat(t.marginRight), i = { width: e.offsetWidth + n, height: e.offsetHeight + o }; return i } function T(e) { var t = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; return e.replace(/left|right|bottom|top/g, function (e) { return t[e] }) } function C(e, t, o) { o = o.split('-')[0]; var n = S(e), i = { width: n.width, height: n.height }, r = -1 !== ['right', 'left'].indexOf(o), p = r ? 'top' : 'left', s = r ? 'left' : 'top', d = r ? 'height' : 'width', a = r ? 'width' : 'height'; return i[p] = t[p] + t[d] / 2 - n[d] / 2, i[s] = o === s ? t[s] - n[a] : t[T(s)], i } function D(e, t) { return Array.prototype.find ? e.find(t) : e.filter(t)[0] } function N(e, t, o) { if (Array.prototype.findIndex) return e.findIndex(function (e) { return e[t] === o }); var n = D(e, function (e) { return e[t] === o }); return e.indexOf(n) } function P(t, o, n) { var i = void 0 === n ? t : t.slice(0, N(t, 'name', n)); return i.forEach(function (t) { t['function'] && console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); var n = t['function'] || t.fn; t.enabled && e(n) && (o.offsets.popper = g(o.offsets.popper), o.offsets.reference = g(o.offsets.reference), o = n(o, t)) }), o } function k() { if (!this.state.isDestroyed) { var e = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }; e.offsets.reference = L(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = C(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute', e = P(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) } } function W(e, t) { return e.some(function (e) { var o = e.name, n = e.enabled; return n && o === t }) } function B(e) { for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length; n++) { var i = t[n], r = i ? '' + i + o : e; if ('undefined' != typeof document.body.style[r]) return r } return null } function H() { return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.position = '', this.popper.style.top = '', this.popper.style.left = '', this.popper.style.right = '', this.popper.style.bottom = '', this.popper.style.willChange = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this } function A(e) { var t = e.ownerDocument; return t ? t.defaultView : window } function M(e, t, o, i) { var r = 'BODY' === e.nodeName, p = r ? e.ownerDocument.defaultView : e; p.addEventListener(t, o, { passive: !0 }), r || M(n(p.parentNode), t, o, i), i.push(p) } function I(e, t, o, i) { o.updateBound = i, A(e).addEventListener('resize', o.updateBound, { passive: !0 }); var r = n(e); return M(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o } function F() { this.state.eventsEnabled || (this.state = I(this.reference, this.options, this.state, this.scheduleUpdate)) } function R(e, t) { return A(e).removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function (e) { e.removeEventListener('scroll', t.updateBound) }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t } function U() { this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = R(this.reference, this.state)) } function Y(e) { return '' !== e && !isNaN(parseFloat(e)) && isFinite(e) } function j(e, t) { Object.keys(t).forEach(function (o) { var n = ''; -1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && Y(t[o]) && (n = 'px'), e.style[o] = t[o] + n }) } function K(e, t) { Object.keys(t).forEach(function (o) { var n = t[o]; !1 === n ? e.removeAttribute(o) : e.setAttribute(o, t[o]) }) } function q(e, t, o) { var n = D(e, function (e) { var o = e.name; return o === t }), i = !!n && e.some(function (e) { return e.name === o && e.enabled && e.order < n.order }); if (!i) { var r = '`' + t + '`'; console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!') } return i } function G(e) { return 'end' === e ? 'start' : 'start' === e ? 'end' : e } function z(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = me.indexOf(e), n = me.slice(o + 1).concat(me.slice(0, o)); return t ? n.reverse() : n } function V(e, t, o, n) { var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +i[1], p = i[2]; if (!r) return e; if (0 === p.indexOf('%')) { var s; switch (p) { case '%p': s = o; break; case '%': case '%r': default: s = n; }var d = g(s); return d[t] / 100 * r } if ('vh' === p || 'vw' === p) { var a; return a = 'vh' === p ? $(document.documentElement.clientHeight, window.innerHeight || 0) : $(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r } return r } function _(e, t, o, n) { var i = [0, 0], r = -1 !== ['right', 'left'].indexOf(n), p = e.split(/(\+|\-)/).map(function (e) { return e.trim() }), s = p.indexOf(D(p, function (e) { return -1 !== e.search(/,|\s/) })); p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); var d = /\s*,\s*|\s+/, a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; return a = a.map(function (e, n) { var i = (1 === n ? !r : r) ? 'height' : 'width', p = !1; return e.reduce(function (e, t) { return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t) }, []).map(function (e) { return V(e, i, t, o) }) }), a.forEach(function (e, t) { e.forEach(function (o, n) { Y(o) && (i[t] += o * ('-' === e[n - 1] ? -1 : 1)) }) }), i } function X(e, t) { var o, n = t.offset, i = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = i.split('-')[0]; return o = Y(+n) ? [+n, 0] : _(n, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e } for (var J = Math.min, Q = Math.round, Z = Math.floor, $ = Math.max, ee = 'undefined' != typeof window && 'undefined' != typeof document, te = ['Edge', 'Trident', 'Firefox'], oe = 0, ne = 0; ne < te.length; ne += 1)if (ee && 0 <= navigator.userAgent.indexOf(te[ne])) { oe = 1; break } var i = ee && window.Promise, ie = i ? function (e) { var t = !1; return function () { t || (t = !0, window.Promise.resolve().then(function () { t = !1, e() })) } } : function (e) { var t = !1; return function () { t || (t = !0, setTimeout(function () { t = !1, e() }, oe)) } }, re = ee && !!(window.MSInputMethodContext && document.documentMode), pe = ee && /MSIE 10/.test(navigator.userAgent), se = function (e, t) { if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') }, de = function () { function e(e, t) { for (var o, n = 0; n < t.length; n++)o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } return function (t, o, n) { return o && e(t.prototype, o), n && e(t, n), t } }(), ae = function (e, t, o) { return t in e ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = o, e }, le = Object.assign || function (e) { for (var t, o = 1; o < arguments.length; o++)for (var n in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); return e }, fe = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'], me = fe.slice(3), he = { FLIP: 'flip', CLOCKWISE: 'clockwise', COUNTERCLOCKWISE: 'counterclockwise' }, ce = function () { function t(o, n) { var i = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; se(this, t), this.scheduleUpdate = function () { return requestAnimationFrame(i.update) }, this.update = ie(this.update.bind(this)), this.options = le({}, t.Defaults, r), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = o && o.jquery ? o[0] : o, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(le({}, t.Defaults.modifiers, r.modifiers)).forEach(function (e) { i.options.modifiers[e] = le({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}) }), this.modifiers = Object.keys(this.options.modifiers).map(function (e) { return le({ name: e }, i.options.modifiers[e]) }).sort(function (e, t) { return e.order - t.order }), this.modifiers.forEach(function (t) { t.enabled && e(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state) }), this.update(); var p = this.options.eventsEnabled; p && this.enableEventListeners(), this.state.eventsEnabled = p } return de(t, [{ key: 'update', value: function () { return k.call(this) } }, { key: 'destroy', value: function () { return H.call(this) } }, { key: 'enableEventListeners', value: function () { return F.call(this) } }, { key: 'disableEventListeners', value: function () { return U.call(this) } }]), t }(); return ce.Utils = ('undefined' == typeof window ? global : window).PopperUtils, ce.placements = fe, ce.Defaults = { placement: 'bottom', positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { }, onUpdate: function () { }, modifiers: { shift: { order: 100, enabled: !0, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = t.split('-')[1]; if (n) { var i = e.offsets, r = i.reference, p = i.popper, s = -1 !== ['bottom', 'top'].indexOf(o), d = s ? 'left' : 'top', a = s ? 'width' : 'height', l = { start: ae({}, d, r[d]), end: ae({}, d, r[d] + r[a] - p[a]) }; e.offsets.popper = le({}, p, l[n]) } return e } }, offset: { order: 200, enabled: !0, fn: X, offset: 0 }, preventOverflow: { order: 300, enabled: !0, fn: function (e, t) { var o = t.boundariesElement || p(e.instance.popper); e.instance.reference === o && (o = p(o)); var n = B('transform'), i = e.instance.popper.style, r = i.top, s = i.left, d = i[n]; i.top = '', i.left = '', i[n] = ''; var a = v(e.instance.popper, e.instance.reference, t.padding, o, e.positionFixed); i.top = r, i.left = s, i[n] = d, t.boundaries = a; var l = t.priority, f = e.offsets.popper, m = { primary: function (e) { var o = f[e]; return f[e] < a[e] && !t.escapeWithReference && (o = $(f[e], a[e])), ae({}, e, o) }, secondary: function (e) { var o = 'right' === e ? 'left' : 'top', n = f[o]; return f[e] > a[e] && !t.escapeWithReference && (n = J(f[o], a[e] - ('right' === e ? f.width : f.height))), ae({}, o, n) } }; return l.forEach(function (e) { var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary'; f = le({}, f, m[t](e)) }), e.offsets.popper = f, e }, priority: ['left', 'right', 'top', 'bottom'], padding: 5, boundariesElement: 'scrollParent' }, keepTogether: { order: 400, enabled: !0, fn: function (e) { var t = e.offsets, o = t.popper, n = t.reference, i = e.placement.split('-')[0], r = Z, p = -1 !== ['top', 'bottom'].indexOf(i), s = p ? 'right' : 'bottom', d = p ? 'left' : 'top', a = p ? 'width' : 'height'; return o[s] < r(n[d]) && (e.offsets.popper[d] = r(n[d]) - o[a]), o[d] > r(n[s]) && (e.offsets.popper[d] = r(n[s])), e } }, arrow: { order: 500, enabled: !0, fn: function (e, o) { var n; if (!q(e.instance.modifiers, 'arrow', 'keepTogether')) return e; var i = o.element; if ('string' == typeof i) { if (i = e.instance.popper.querySelector(i), !i) return e; } else if (!e.instance.popper.contains(i)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e; var r = e.placement.split('-')[0], p = e.offsets, s = p.popper, d = p.reference, a = -1 !== ['left', 'right'].indexOf(r), l = a ? 'height' : 'width', f = a ? 'Top' : 'Left', m = f.toLowerCase(), h = a ? 'left' : 'top', c = a ? 'bottom' : 'right', u = S(i)[l]; d[c] - u < s[m] && (e.offsets.popper[m] -= s[m] - (d[c] - u)), d[m] + u > s[c] && (e.offsets.popper[m] += d[m] + u - s[c]), e.offsets.popper = g(e.offsets.popper); var b = d[m] + d[l] / 2 - u / 2, y = t(e.instance.popper), w = parseFloat(y['margin' + f], 10), E = parseFloat(y['border' + f + 'Width'], 10), v = b - e.offsets.popper[m] - w - E; return v = $(J(s[l] - u, v), 0), e.arrowElement = i, e.offsets.arrow = (n = {}, ae(n, m, Q(v)), ae(n, h, ''), n), e }, element: '[x-arrow]' }, flip: { order: 600, enabled: !0, fn: function (e, t) { if (W(e.instance.modifiers, 'inner')) return e; if (e.flipped && e.placement === e.originalPlacement) return e; var o = v(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), n = e.placement.split('-')[0], i = T(n), r = e.placement.split('-')[1] || '', p = []; switch (t.behavior) { case he.FLIP: p = [n, i]; break; case he.CLOCKWISE: p = z(n); break; case he.COUNTERCLOCKWISE: p = z(n, !0); break; default: p = t.behavior; }return p.forEach(function (s, d) { if (n !== s || p.length === d + 1) return e; n = e.placement.split('-')[0], i = T(n); var a = e.offsets.popper, l = e.offsets.reference, f = Z, m = 'left' === n && f(a.right) > f(l.left) || 'right' === n && f(a.left) < f(l.right) || 'top' === n && f(a.bottom) > f(l.top) || 'bottom' === n && f(a.top) < f(l.bottom), h = f(a.left) < f(o.left), c = f(a.right) > f(o.right), g = f(a.top) < f(o.top), u = f(a.bottom) > f(o.bottom), b = 'left' === n && h || 'right' === n && c || 'top' === n && g || 'bottom' === n && u, y = -1 !== ['top', 'bottom'].indexOf(n), w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u); (m || b || w) && (e.flipped = !0, (m || b) && (n = p[d + 1]), w && (r = G(r)), e.placement = n + (r ? '-' + r : ''), e.offsets.popper = le({}, e.offsets.popper, C(e.instance.popper, e.offsets.reference, e.placement)), e = P(e.instance.modifiers, e, 'flip')) }), e }, behavior: 'flip', padding: 5, boundariesElement: 'viewport' }, inner: { order: 700, enabled: !1, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = e.offsets, i = n.popper, r = n.reference, p = -1 !== ['left', 'right'].indexOf(o), s = -1 === ['top', 'left'].indexOf(o); return i[p ? 'left' : 'top'] = r[o] - (s ? i[p ? 'width' : 'height'] : 0), e.placement = T(t), e.offsets.popper = g(i), e } }, hide: { order: 800, enabled: !0, fn: function (e) { if (!q(e.instance.modifiers, 'hide', 'preventOverflow')) return e; var t = e.offsets.reference, o = D(e.instance.modifiers, function (e) { return 'preventOverflow' === e.name }).boundaries; if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { if (!0 === e.hide) return e; e.hide = !0, e.attributes['x-out-of-boundaries'] = '' } else { if (!1 === e.hide) return e; e.hide = !1, e.attributes['x-out-of-boundaries'] = !1 } return e } }, computeStyle: { order: 850, enabled: !0, fn: function (e, t) { var o = t.x, n = t.y, i = e.offsets.popper, r = D(e.instance.modifiers, function (e) { return 'applyStyle' === e.name }).gpuAcceleration; void 0 !== r && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); var s, d, a = void 0 === r ? t.gpuAcceleration : r, l = p(e.instance.popper), f = u(l), m = { position: i.position }, h = { left: Z(i.left), top: Q(i.top), bottom: Q(i.bottom), right: Z(i.right) }, c = 'bottom' === o ? 'top' : 'bottom', g = 'right' === n ? 'left' : 'right', b = B('transform'); if (d = 'bottom' == c ? -f.height + h.bottom : h.top, s = 'right' == g ? -f.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[g] = 0, m.willChange = 'transform'; else { var y = 'bottom' == c ? -1 : 1, w = 'right' == g ? -1 : 1; m[c] = d * y, m[g] = s * w, m.willChange = c + ', ' + g } var E = { "x-placement": e.placement }; return e.attributes = le({}, E, e.attributes), e.styles = le({}, m, e.styles), e.arrowStyles = le({}, e.offsets.arrow, e.arrowStyles), e }, gpuAcceleration: !0, x: 'bottom', y: 'right' }, applyStyle: { order: 900, enabled: !0, fn: function (e) { return j(e.instance.popper, e.styles), K(e.instance.popper, e.attributes), e.arrowElement && Object.keys(e.arrowStyles).length && j(e.arrowElement, e.arrowStyles), e }, onLoad: function (e, t, o, n, i) { var r = L(i, t, e, o.positionFixed), p = O(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); return t.setAttribute('x-placement', p), j(t, { position: o.positionFixed ? 'fixed' : 'absolute' }), o }, gpuAcceleration: void 0 } } }, ce });
+//# sourceMappingURL=popper.min.js.map
+
+/*!
+ * Bootstrap v4.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e(t.bootstrap = {}, t.jQuery, t.Popper) }(this, function (t, e, c) { "use strict"; function i(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) } } function o(t, e, n) { return e && i(t.prototype, e), n && i(t, n), t } function h(r) { for (var t = 1; t < arguments.length; t++) { var s = null != arguments[t] ? arguments[t] : {}, e = Object.keys(s); "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(s).filter(function (t) { return Object.getOwnPropertyDescriptor(s, t).enumerable }))), e.forEach(function (t) { var e, n, i; e = r, i = s[n = t], n in e ? Object.defineProperty(e, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = i }) } return r } e = e && e.hasOwnProperty("default") ? e.default : e, c = c && c.hasOwnProperty("default") ? c.default : c; var r, n, s, a, l, u, f, d, _, g, m, p, v, E, y, T, C, I, A, D, b, S, w, N, O, k, P, L, j, R, H, W, M, x, U, K, F, V, Q, B, Y, G, q, z, X, J, Z, $, tt, et, nt, it, rt, st, ot, at, lt, ht, ct, ut, ft, dt, _t, gt, mt, pt, vt, Et, yt, Tt, Ct, It, At, Dt, bt, St, wt, Nt, Ot, kt, Pt, Lt, jt, Rt, Ht, Wt, Mt, xt, Ut, Kt, Ft, Vt, Qt, Bt, Yt, Gt, qt, zt, Xt, Jt, Zt, $t, te, ee, ne, ie, re, se, oe, ae, le, he, ce, ue, fe, de, _e, ge, me, pe, ve, Ee, ye, Te, Ce, Ie, Ae, De, be, Se, we, Ne, Oe, ke, Pe, Le, je, Re, He, We, Me, xe, Ue, Ke, Fe, Ve, Qe, Be, Ye, Ge, qe, ze, Xe, Je, Ze, $e, tn, en, nn, rn, sn, on, an, ln, hn, cn, un, fn, dn, _n, gn, mn, pn, vn, En, yn, Tn, Cn = function (i) { var e = "transitionend"; function t(t) { var e = this, n = !1; return i(this).one(l.TRANSITION_END, function () { n = !0 }), setTimeout(function () { n || l.triggerTransitionEnd(e) }, t), this } var l = { TRANSITION_END: "bsTransitionEnd", getUID: function (t) { for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); return t }, getSelectorFromElement: function (t) { var e = t.getAttribute("data-target"); e && "#" !== e || (e = t.getAttribute("href") || ""); try { return 0 < i(document).find(e).length ? e : null } catch (t) { return null } }, getTransitionDurationFromElement: function (t) { if (!t) return 0; var e = i(t).css("transition-duration"); return parseFloat(e) ? (e = e.split(",")[0], 1e3 * parseFloat(e)) : 0 }, reflow: function (t) { return t.offsetHeight }, triggerTransitionEnd: function (t) { i(t).trigger(e) }, supportsTransitionEnd: function () { return Boolean(e) }, isElement: function (t) { return (t[0] || t).nodeType }, typeCheckConfig: function (t, e, n) { for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) { var r = n[i], s = e[i], o = s && l.isElement(s) ? "element" : (a = s, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()); if (!new RegExp(r).test(o)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + o + '" but expected type "' + r + '".') } var a } }; return i.fn.emulateTransitionEnd = t, i.event.special[l.TRANSITION_END] = { bindType: e, delegateType: e, handle: function (t) { if (i(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }, l }(e), In = (n = "alert", a = "." + (s = "bs.alert"), l = (r = e).fn[n], u = { CLOSE: "close" + a, CLOSED: "closed" + a, CLICK_DATA_API: "click" + a + ".data-api" }, f = "alert", d = "fade", _ = "show", g = function () { function i(t) { this._element = t } var t = i.prototype; return t.close = function (t) { var e = this._element; t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) }, t.dispose = function () { r.removeData(this._element, s), this._element = null }, t._getRootElement = function (t) { var e = Cn.getSelectorFromElement(t), n = !1; return e && (n = r(e)[0]), n || (n = r(t).closest("." + f)[0]), n }, t._triggerCloseEvent = function (t) { var e = r.Event(u.CLOSE); return r(t).trigger(e), e }, t._removeElement = function (e) { var n = this; if (r(e).removeClass(_), r(e).hasClass(d)) { var t = Cn.getTransitionDurationFromElement(e); r(e).one(Cn.TRANSITION_END, function (t) { return n._destroyElement(e, t) }).emulateTransitionEnd(t) } else this._destroyElement(e) }, t._destroyElement = function (t) { r(t).detach().trigger(u.CLOSED).remove() }, i._jQueryInterface = function (n) { return this.each(function () { var t = r(this), e = t.data(s); e || (e = new i(this), t.data(s, e)), "close" === n && e[n](this) }) }, i._handleDismiss = function (e) { return function (t) { t && t.preventDefault(), e.close(this) } }, o(i, null, [{ key: "VERSION", get: function () { return "4.1.1" } }]), i }(), r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', g._handleDismiss(new g)), r.fn[n] = g._jQueryInterface, r.fn[n].Constructor = g, r.fn[n].noConflict = function () { return r.fn[n] = l, g._jQueryInterface }, g), An = (p = "button", E = "." + (v = "bs.button"), y = ".data-api", T = (m = e).fn[p], C = "active", I = "btn", D = '[data-toggle^="button"]', b = '[data-toggle="buttons"]', S = "input", w = ".active", N = ".btn", O = { CLICK_DATA_API: "click" + E + y, FOCUS_BLUR_DATA_API: (A = "focus") + E + y + " blur" + E + y }, k = function () { function n(t) { this._element = t } var t = n.prototype; return t.toggle = function () { var t = !0, e = !0, n = m(this._element).closest(b)[0]; if (n) { var i = m(this._element).find(S)[0]; if (i) { if ("radio" === i.type) if (i.checked && m(this._element).hasClass(C)) t = !1; else { var r = m(n).find(w)[0]; r && m(r).removeClass(C) } if (t) { if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return; i.checked = !m(this._element).hasClass(C), m(i).trigger("change") } i.focus(), e = !1 } } e && this._element.setAttribute("aria-pressed", !m(this._element).hasClass(C)), t && m(this._element).toggleClass(C) }, t.dispose = function () { m.removeData(this._element, v), this._element = null }, n._jQueryInterface = function (e) { return this.each(function () { var t = m(this).data(v); t || (t = new n(this), m(this).data(v, t)), "toggle" === e && t[e]() }) }, o(n, null, [{ key: "VERSION", get: function () { return "4.1.1" } }]), n }(), m(document).on(O.CLICK_DATA_API, D, function (t) { t.preventDefault(); var e = t.target; m(e).hasClass(I) || (e = m(e).closest(N)), k._jQueryInterface.call(m(e), "toggle") }).on(O.FOCUS_BLUR_DATA_API, D, function (t) { var e = m(t.target).closest(N)[0]; m(e).toggleClass(A, /^focus(in)?$/.test(t.type)) }), m.fn[p] = k._jQueryInterface, m.fn[p].Constructor = k, m.fn[p].noConflict = function () { return m.fn[p] = T, k._jQueryInterface }, k), Dn = (L = "carousel", R = "." + (j = "bs.carousel"), H = ".data-api", W = (P = e).fn[L], M = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0 }, x = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean" }, U = "next", K = "prev", F = "left", V = "right", Q = { SLIDE: "slide" + R, SLID: "slid" + R, KEYDOWN: "keydown" + R, MOUSEENTER: "mouseenter" + R, MOUSELEAVE: "mouseleave" + R, TOUCHEND: "touchend" + R, LOAD_DATA_API: "load" + R + H, CLICK_DATA_API: "click" + R + H }, B = "carousel", Y = "active", G = "slide", q = "carousel-item-right", z = "carousel-item-left", X = "carousel-item-next", J = "carousel-item-prev", Z = { ACTIVE: ".active", ACTIVE_ITEM: ".active.carousel-item", ITEM: ".carousel-item", NEXT_PREV: ".carousel-item-next, .carousel-item-prev", INDICATORS: ".carousel-indicators", DATA_SLIDE: "[data-slide], [data-slide-to]", DATA_RIDE: '[data-ride="carousel"]' }, $ = function () { function s(t, e) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(e), this._element = P(t)[0], this._indicatorsElement = P(this._element).find(Z.INDICATORS)[0], this._addEventListeners() } var t = s.prototype; return t.next = function () { this._isSliding || this._slide(U) }, t.nextWhenVisible = function () { !document.hidden && P(this._element).is(":visible") && "hidden" !== P(this._element).css("visibility") && this.next() }, t.prev = function () { this._isSliding || this._slide(K) }, t.pause = function (t) { t || (this._isPaused = !0), P(this._element).find(Z.NEXT_PREV)[0] && (Cn.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, t.cycle = function (t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, t.to = function (t) { var e = this; this._activeElement = P(this._element).find(Z.ACTIVE_ITEM)[0]; var n = this._getItemIndex(this._activeElement); if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) P(this._element).one(Q.SLID, function () { return e.to(t) }); else { if (n === t) return this.pause(), void this.cycle(); var i = n < t ? U : K; this._slide(i, this._items[t]) } }, t.dispose = function () { P(this._element).off(R), P.removeData(this._element, j), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, t._getConfig = function (t) { return t = h({}, M, t), Cn.typeCheckConfig(L, t, x), t }, t._addEventListeners = function () { var e = this; this._config.keyboard && P(this._element).on(Q.KEYDOWN, function (t) { return e._keydown(t) }), "hover" === this._config.pause && (P(this._element).on(Q.MOUSEENTER, function (t) { return e.pause(t) }).on(Q.MOUSELEAVE, function (t) { return e.cycle(t) }), "ontouchstart" in document.documentElement && P(this._element).on(Q.TOUCHEND, function () { e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) { return e.cycle(t) }, 500 + e._config.interval) })) }, t._keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { case 37: t.preventDefault(), this.prev(); break; case 39: t.preventDefault(), this.next() } }, t._getItemIndex = function (t) { return this._items = P.makeArray(P(t).parent().find(Z.ITEM)), this._items.indexOf(t) }, t._getItemByDirection = function (t, e) { var n = t === U, i = t === K, r = this._getItemIndex(e), s = this._items.length - 1; if ((i && 0 === r || n && r === s) && !this._config.wrap) return e; var o = (r + (t === K ? -1 : 1)) % this._items.length; return -1 === o ? this._items[this._items.length - 1] : this._items[o] }, t._triggerSlideEvent = function (t, e) { var n = this._getItemIndex(t), i = this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]), r = P.Event(Q.SLIDE, { relatedTarget: t, direction: e, from: i, to: n }); return P(this._element).trigger(r), r }, t._setActiveIndicatorElement = function (t) { if (this._indicatorsElement) { P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y); var e = this._indicatorsElement.children[this._getItemIndex(t)]; e && P(e).addClass(Y) } }, t._slide = function (t, e) { var n, i, r, s = this, o = P(this._element).find(Z.ACTIVE_ITEM)[0], a = this._getItemIndex(o), l = e || o && this._getItemByDirection(t, o), h = this._getItemIndex(l), c = Boolean(this._interval); if (t === U ? (n = z, i = X, r = F) : (n = q, i = J, r = V), l && P(l).hasClass(Y)) this._isSliding = !1; else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && o && l) { this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(l); var u = P.Event(Q.SLID, { relatedTarget: l, direction: r, from: a, to: h }); if (P(this._element).hasClass(G)) { P(l).addClass(i), Cn.reflow(l), P(o).addClass(n), P(l).addClass(n); var f = Cn.getTransitionDurationFromElement(o); P(o).one(Cn.TRANSITION_END, function () { P(l).removeClass(n + " " + i).addClass(Y), P(o).removeClass(Y + " " + i + " " + n), s._isSliding = !1, setTimeout(function () { return P(s._element).trigger(u) }, 0) }).emulateTransitionEnd(f) } else P(o).removeClass(Y), P(l).addClass(Y), this._isSliding = !1, P(this._element).trigger(u); c && this.cycle() } }, s._jQueryInterface = function (i) { return this.each(function () { var t = P(this).data(j), e = h({}, M, P(this).data()); "object" == typeof i && (e = h({}, e, i)); var n = "string" == typeof i ? i : e.slide; if (t || (t = new s(this, e), P(this).data(j, t)), "number" == typeof i) t.to(i); else if ("string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } else e.interval && (t.pause(), t.cycle()) }) }, s._dataApiClickHandler = function (t) { var e = Cn.getSelectorFromElement(this); if (e) { var n = P(e)[0]; if (n && P(n).hasClass(B)) { var i = h({}, P(n).data(), P(this).data()), r = this.getAttribute("data-slide-to"); r && (i.interval = !1), s._jQueryInterface.call(P(n), i), r && P(n).data(j).to(r), t.preventDefault() } } }, o(s, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return M } }]), s }(), P(document).on(Q.CLICK_DATA_API, Z.DATA_SLIDE, $._dataApiClickHandler), P(window).on(Q.LOAD_DATA_API, function () { P(Z.DATA_RIDE).each(function () { var t = P(this); $._jQueryInterface.call(t, t.data()) }) }), P.fn[L] = $._jQueryInterface, P.fn[L].Constructor = $, P.fn[L].noConflict = function () { return P.fn[L] = W, $._jQueryInterface }, $), bn = (et = "collapse", it = "." + (nt = "bs.collapse"), rt = (tt = e).fn[et], st = { toggle: !0, parent: "" }, ot = { toggle: "boolean", parent: "(string|element)" }, at = { SHOW: "show" + it, SHOWN: "shown" + it, HIDE: "hide" + it, HIDDEN: "hidden" + it, CLICK_DATA_API: "click" + it + ".data-api" }, lt = "show", ht = "collapse", ct = "collapsing", ut = "collapsed", ft = "width", dt = "height", _t = { ACTIVES: ".show, .collapsing", DATA_TOGGLE: '[data-toggle="collapse"]' }, gt = function () { function a(t, e) { this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = tt.makeArray(tt('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]')); for (var n = tt(_t.DATA_TOGGLE), i = 0; i < n.length; i++) { var r = n[i], s = Cn.getSelectorFromElement(r); null !== s && 0 < tt(s).filter(t).length && (this._selector = s, this._triggerArray.push(r)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var t = a.prototype; return t.toggle = function () { tt(this._element).hasClass(lt) ? this.hide() : this.show() }, t.show = function () { var t, e, n = this; if (!this._isTransitioning && !tt(this._element).hasClass(lt) && (this._parent && 0 === (t = tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="' + this._config.parent + '"]'))).length && (t = null), !(t && (e = tt(t).not(this._selector).data(nt)) && e._isTransitioning))) { var i = tt.Event(at.SHOW); if (tt(this._element).trigger(i), !i.isDefaultPrevented()) { t && (a._jQueryInterface.call(tt(t).not(this._selector), "hide"), e || tt(t).data(nt, null)); var r = this._getDimension(); tt(this._element).removeClass(ht).addClass(ct), (this._element.style[r] = 0) < this._triggerArray.length && tt(this._triggerArray).removeClass(ut).attr("aria-expanded", !0), this.setTransitioning(!0); var s = "scroll" + (r[0].toUpperCase() + r.slice(1)), o = Cn.getTransitionDurationFromElement(this._element); tt(this._element).one(Cn.TRANSITION_END, function () { tt(n._element).removeClass(ct).addClass(ht).addClass(lt), n._element.style[r] = "", n.setTransitioning(!1), tt(n._element).trigger(at.SHOWN) }).emulateTransitionEnd(o), this._element.style[r] = this._element[s] + "px" } } }, t.hide = function () { var t = this; if (!this._isTransitioning && tt(this._element).hasClass(lt)) { var e = tt.Event(at.HIDE); if (tt(this._element).trigger(e), !e.isDefaultPrevented()) { var n = this._getDimension(); if (this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", Cn.reflow(this._element), tt(this._element).addClass(ct).removeClass(ht).removeClass(lt), 0 < this._triggerArray.length) for (var i = 0; i < this._triggerArray.length; i++) { var r = this._triggerArray[i], s = Cn.getSelectorFromElement(r); if (null !== s) tt(s).hasClass(lt) || tt(r).addClass(ut).attr("aria-expanded", !1) } this.setTransitioning(!0); this._element.style[n] = ""; var o = Cn.getTransitionDurationFromElement(this._element); tt(this._element).one(Cn.TRANSITION_END, function () { t.setTransitioning(!1), tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN) }).emulateTransitionEnd(o) } } }, t.setTransitioning = function (t) { this._isTransitioning = t }, t.dispose = function () { tt.removeData(this._element, nt), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, t._getConfig = function (t) { return (t = h({}, st, t)).toggle = Boolean(t.toggle), Cn.typeCheckConfig(et, t, ot), t }, t._getDimension = function () { return tt(this._element).hasClass(ft) ? ft : dt }, t._getParent = function () { var n = this, t = null; Cn.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = tt(this._config.parent)[0]; var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; return tt(t).find(e).each(function (t, e) { n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e]) }), t }, t._addAriaAndCollapsedClass = function (t, e) { if (t) { var n = tt(t).hasClass(lt); 0 < e.length && tt(e).toggleClass(ut, !n).attr("aria-expanded", n) } }, a._getTargetFromElement = function (t) { var e = Cn.getSelectorFromElement(t); return e ? tt(e)[0] : null }, a._jQueryInterface = function (i) { return this.each(function () { var t = tt(this), e = t.data(nt), n = h({}, st, t.data(), "object" == typeof i && i ? i : {}); if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(nt, e)), "string" == typeof i) { if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"'); e[i]() } }) }, o(a, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return st } }]), a }(), tt(document).on(at.CLICK_DATA_API, _t.DATA_TOGGLE, function (t) { "A" === t.currentTarget.tagName && t.preventDefault(); var n = tt(this), e = Cn.getSelectorFromElement(this); tt(e).each(function () { var t = tt(this), e = t.data(nt) ? "toggle" : n.data(); gt._jQueryInterface.call(t, e) }) }), tt.fn[et] = gt._jQueryInterface, tt.fn[et].Constructor = gt, tt.fn[et].noConflict = function () { return tt.fn[et] = rt, gt._jQueryInterface }, gt), Sn = (pt = "dropdown", Et = "." + (vt = "bs.dropdown"), yt = ".data-api", Tt = (mt = e).fn[pt], Ct = new RegExp("38|40|27"), It = { HIDE: "hide" + Et, HIDDEN: "hidden" + Et, SHOW: "show" + Et, SHOWN: "shown" + Et, CLICK: "click" + Et, CLICK_DATA_API: "click" + Et + yt, KEYDOWN_DATA_API: "keydown" + Et + yt, KEYUP_DATA_API: "keyup" + Et + yt }, At = "disabled", Dt = "show", bt = "dropup", St = "dropright", wt = "dropleft", Nt = "dropdown-menu-right", Ot = "position-static", kt = '[data-toggle="dropdown"]', Pt = ".dropdown form", Lt = ".dropdown-menu", jt = ".navbar-nav", Rt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Ht = "top-start", Wt = "top-end", Mt = "bottom-start", xt = "bottom-end", Ut = "right-start", Kt = "left-start", Ft = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic" }, Vt = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string" }, Qt = function () { function l(t, e) { this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var t = l.prototype; return t.toggle = function () { if (!this._element.disabled && !mt(this._element).hasClass(At)) { var t = l._getParentFromElement(this._element), e = mt(this._menu).hasClass(Dt); if (l._clearMenus(), !e) { var n = { relatedTarget: this._element }, i = mt.Event(It.SHOW, n); if (mt(t).trigger(i), !i.isDefaultPrevented()) { if (!this._inNavbar) { if ("undefined" == typeof c) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)"); var r = this._element; "parent" === this._config.reference ? r = t : Cn.isElement(this._config.reference) && (r = this._config.reference, "undefined" != typeof this._config.reference.jquery && (r = this._config.reference[0])), "scrollParent" !== this._config.boundary && mt(t).addClass(Ot), this._popper = new c(r, this._menu, this._getPopperConfig()) } "ontouchstart" in document.documentElement && 0 === mt(t).closest(jt).length && mt(document.body).children().on("mouseover", null, mt.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), mt(this._menu).toggleClass(Dt), mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN, n)) } } } }, t.dispose = function () { mt.removeData(this._element, vt), mt(this._element).off(Et), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) }, t.update = function () { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, t._addEventListeners = function () { var e = this; mt(this._element).on(It.CLICK, function (t) { t.preventDefault(), t.stopPropagation(), e.toggle() }) }, t._getConfig = function (t) { return t = h({}, this.constructor.Default, mt(this._element).data(), t), Cn.typeCheckConfig(pt, t, this.constructor.DefaultType), t }, t._getMenuElement = function () { if (!this._menu) { var t = l._getParentFromElement(this._element); this._menu = mt(t).find(Lt)[0] } return this._menu }, t._getPlacement = function () { var t = mt(this._element).parent(), e = Mt; return t.hasClass(bt) ? (e = Ht, mt(this._menu).hasClass(Nt) && (e = Wt)) : t.hasClass(St) ? e = Ut : t.hasClass(wt) ? e = Kt : mt(this._menu).hasClass(Nt) && (e = xt), e }, t._detectNavbar = function () { return 0 < mt(this._element).closest(".navbar").length }, t._getPopperConfig = function () { var e = this, t = {}; "function" == typeof this._config.offset ? t.fn = function (t) { return t.offsets = h({}, t.offsets, e._config.offset(t.offsets) || {}), t } : t.offset = this._config.offset; var n = { placement: this._getPlacement(), modifiers: { offset: t, flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (n.modifiers.applyStyle = { enabled: !1 }), n }, l._jQueryInterface = function (e) { return this.each(function () { var t = mt(this).data(vt); if (t || (t = new l(this, "object" == typeof e ? e : null), mt(this).data(vt, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, l._clearMenus = function (t) { if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) for (var e = mt.makeArray(mt(kt)), n = 0; n < e.length; n++) { var i = l._getParentFromElement(e[n]), r = mt(e[n]).data(vt), s = { relatedTarget: e[n] }; if (r) { var o = r._menu; if (mt(i).hasClass(Dt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && mt.contains(i, t.target))) { var a = mt.Event(It.HIDE, s); mt(i).trigger(a), a.isDefaultPrevented() || ("ontouchstart" in document.documentElement && mt(document.body).children().off("mouseover", null, mt.noop), e[n].setAttribute("aria-expanded", "false"), mt(o).removeClass(Dt), mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN, s))) } } } }, l._getParentFromElement = function (t) { var e, n = Cn.getSelectorFromElement(t); return n && (e = mt(n)[0]), e || t.parentNode }, l._dataApiKeydownHandler = function (t) { if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || mt(t.target).closest(Lt).length)) : Ct.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !mt(this).hasClass(At))) { var e = l._getParentFromElement(this), n = mt(e).hasClass(Dt); if ((n || 27 === t.which && 32 === t.which) && (!n || 27 !== t.which && 32 !== t.which)) { var i = mt(e).find(Rt).get(); if (0 !== i.length) { var r = i.indexOf(t.target); 38 === t.which && 0 < r && r-- , 40 === t.which && r < i.length - 1 && r++ , r < 0 && (r = 0), i[r].focus() } } else { if (27 === t.which) { var s = mt(e).find(kt)[0]; mt(s).trigger("focus") } mt(this).trigger("click") } } }, o(l, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return Ft } }, { key: "DefaultType", get: function () { return Vt } }]), l }(), mt(document).on(It.KEYDOWN_DATA_API, kt, Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API, Lt, Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API + " " + It.KEYUP_DATA_API, Qt._clearMenus).on(It.CLICK_DATA_API, kt, function (t) { t.preventDefault(), t.stopPropagation(), Qt._jQueryInterface.call(mt(this), "toggle") }).on(It.CLICK_DATA_API, Pt, function (t) { t.stopPropagation() }), mt.fn[pt] = Qt._jQueryInterface, mt.fn[pt].Constructor = Qt, mt.fn[pt].noConflict = function () { return mt.fn[pt] = Tt, Qt._jQueryInterface }, Qt), wn = (Yt = "modal", qt = "." + (Gt = "bs.modal"), zt = (Bt = e).fn[Yt], Xt = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, Jt = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, Zt = { HIDE: "hide" + qt, HIDDEN: "hidden" + qt, SHOW: "show" + qt, SHOWN: "shown" + qt, FOCUSIN: "focusin" + qt, RESIZE: "resize" + qt, CLICK_DISMISS: "click.dismiss" + qt, KEYDOWN_DISMISS: "keydown.dismiss" + qt, MOUSEUP_DISMISS: "mouseup.dismiss" + qt, MOUSEDOWN_DISMISS: "mousedown.dismiss" + qt, CLICK_DATA_API: "click" + qt + ".data-api" }, $t = "modal-scrollbar-measure", te = "modal-backdrop", ee = "modal-open", ne = "fade", ie = "show", re = { DIALOG: ".modal-dialog", DATA_TOGGLE: '[data-toggle="modal"]', DATA_DISMISS: '[data-dismiss="modal"]', FIXED_CONTENT: ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", STICKY_CONTENT: ".sticky-top", NAVBAR_TOGGLER: ".navbar-toggler" }, se = function () { function r(t, e) { this._config = this._getConfig(e), this._element = t, this._dialog = Bt(t).find(re.DIALOG)[0], this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._scrollbarWidth = 0 } var t = r.prototype; return t.toggle = function (t) { return this._isShown ? this.hide() : this.show(t) }, t.show = function (t) { var e = this; if (!this._isTransitioning && !this._isShown) { Bt(this._element).hasClass(ne) && (this._isTransitioning = !0); var n = Bt.Event(Zt.SHOW, { relatedTarget: t }); Bt(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), Bt(document.body).addClass(ee), this._setEscapeEvent(), this._setResizeEvent(), Bt(this._element).on(Zt.CLICK_DISMISS, re.DATA_DISMISS, function (t) { return e.hide(t) }), Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS, function () { Bt(e._element).one(Zt.MOUSEUP_DISMISS, function (t) { Bt(t.target).is(e._element) && (e._ignoreBackdropClick = !0) }) }), this._showBackdrop(function () { return e._showElement(t) })) } }, t.hide = function (t) { var e = this; if (t && t.preventDefault(), !this._isTransitioning && this._isShown) { var n = Bt.Event(Zt.HIDE); if (Bt(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) { this._isShown = !1; var i = Bt(this._element).hasClass(ne); if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), Bt(document).off(Zt.FOCUSIN), Bt(this._element).removeClass(ie), Bt(this._element).off(Zt.CLICK_DISMISS), Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS), i) { var r = Cn.getTransitionDurationFromElement(this._element); Bt(this._element).one(Cn.TRANSITION_END, function (t) { return e._hideModal(t) }).emulateTransitionEnd(r) } else this._hideModal() } } }, t.dispose = function () { Bt.removeData(this._element, Gt), Bt(window, document, this._element, this._backdrop).off(qt), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null }, t.handleUpdate = function () { this._adjustDialog() }, t._getConfig = function (t) { return t = h({}, Xt, t), Cn.typeCheckConfig(Yt, t, Jt), t }, t._showElement = function (t) { var e = this, n = Bt(this._element).hasClass(ne); this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.scrollTop = 0, n && Cn.reflow(this._element), Bt(this._element).addClass(ie), this._config.focus && this._enforceFocus(); var i = Bt.Event(Zt.SHOWN, { relatedTarget: t }), r = function () { e._config.focus && e._element.focus(), e._isTransitioning = !1, Bt(e._element).trigger(i) }; if (n) { var s = Cn.getTransitionDurationFromElement(this._element); Bt(this._dialog).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) } else r() }, t._enforceFocus = function () { var e = this; Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN, function (t) { document !== t.target && e._element !== t.target && 0 === Bt(e._element).has(t.target).length && e._element.focus() }) }, t._setEscapeEvent = function () { var e = this; this._isShown && this._config.keyboard ? Bt(this._element).on(Zt.KEYDOWN_DISMISS, function (t) { 27 === t.which && (t.preventDefault(), e.hide()) }) : this._isShown || Bt(this._element).off(Zt.KEYDOWN_DISMISS) }, t._setResizeEvent = function () { var e = this; this._isShown ? Bt(window).on(Zt.RESIZE, function (t) { return e.handleUpdate(t) }) : Bt(window).off(Zt.RESIZE) }, t._hideModal = function () { var t = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function () { Bt(document.body).removeClass(ee), t._resetAdjustments(), t._resetScrollbar(), Bt(t._element).trigger(Zt.HIDDEN) }) }, t._removeBackdrop = function () { this._backdrop && (Bt(this._backdrop).remove(), this._backdrop = null) }, t._showBackdrop = function (t) { var e = this, n = Bt(this._element).hasClass(ne) ? ne : ""; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement("div"), this._backdrop.className = te, n && Bt(this._backdrop).addClass(n), Bt(this._backdrop).appendTo(document.body), Bt(this._element).on(Zt.CLICK_DISMISS, function (t) { e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide()) }), n && Cn.reflow(this._backdrop), Bt(this._backdrop).addClass(ie), !t) return; if (!n) return void t(); var i = Cn.getTransitionDurationFromElement(this._backdrop); Bt(this._backdrop).one(Cn.TRANSITION_END, t).emulateTransitionEnd(i) } else if (!this._isShown && this._backdrop) { Bt(this._backdrop).removeClass(ie); var r = function () { e._removeBackdrop(), t && t() }; if (Bt(this._element).hasClass(ne)) { var s = Cn.getTransitionDurationFromElement(this._backdrop); Bt(this._backdrop).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) } else r() } else t && t() }, t._adjustDialog = function () { var t = this._element.scrollHeight > document.documentElement.clientHeight; !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, t._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, t._checkScrollbar = function () { var t = document.body.getBoundingClientRect(); this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, t._setScrollbar = function () { var r = this; if (this._isBodyOverflowing) { Bt(re.FIXED_CONTENT).each(function (t, e) { var n = Bt(e)[0].style.paddingRight, i = Bt(e).css("padding-right"); Bt(e).data("padding-right", n).css("padding-right", parseFloat(i) + r._scrollbarWidth + "px") }), Bt(re.STICKY_CONTENT).each(function (t, e) { var n = Bt(e)[0].style.marginRight, i = Bt(e).css("margin-right"); Bt(e).data("margin-right", n).css("margin-right", parseFloat(i) - r._scrollbarWidth + "px") }), Bt(re.NAVBAR_TOGGLER).each(function (t, e) { var n = Bt(e)[0].style.marginRight, i = Bt(e).css("margin-right"); Bt(e).data("margin-right", n).css("margin-right", parseFloat(i) + r._scrollbarWidth + "px") }); var t = document.body.style.paddingRight, e = Bt(document.body).css("padding-right"); Bt(document.body).data("padding-right", t).css("padding-right", parseFloat(e) + this._scrollbarWidth + "px") } }, t._resetScrollbar = function () { Bt(re.FIXED_CONTENT).each(function (t, e) { var n = Bt(e).data("padding-right"); "undefined" != typeof n && Bt(e).css("padding-right", n).removeData("padding-right") }), Bt(re.STICKY_CONTENT + ", " + re.NAVBAR_TOGGLER).each(function (t, e) { var n = Bt(e).data("margin-right"); "undefined" != typeof n && Bt(e).css("margin-right", n).removeData("margin-right") }); var t = Bt(document.body).data("padding-right"); "undefined" != typeof t && Bt(document.body).css("padding-right", t).removeData("padding-right") }, t._getScrollbarWidth = function () { var t = document.createElement("div"); t.className = $t, document.body.appendChild(t); var e = t.getBoundingClientRect().width - t.clientWidth; return document.body.removeChild(t), e }, r._jQueryInterface = function (n, i) { return this.each(function () { var t = Bt(this).data(Gt), e = h({}, Xt, Bt(this).data(), "object" == typeof n && n ? n : {}); if (t || (t = new r(this, e), Bt(this).data(Gt, t)), "string" == typeof n) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n](i) } else e.show && t.show(i) }) }, o(r, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return Xt } }]), r }(), Bt(document).on(Zt.CLICK_DATA_API, re.DATA_TOGGLE, function (t) { var e, n = this, i = Cn.getSelectorFromElement(this); i && (e = Bt(i)[0]); var r = Bt(e).data(Gt) ? "toggle" : h({}, Bt(e).data(), Bt(this).data()); "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); var s = Bt(e).one(Zt.SHOW, function (t) { t.isDefaultPrevented() || s.one(Zt.HIDDEN, function () { Bt(n).is(":visible") && n.focus() }) }); se._jQueryInterface.call(Bt(e), r, this) }), Bt.fn[Yt] = se._jQueryInterface, Bt.fn[Yt].Constructor = se, Bt.fn[Yt].noConflict = function () { return Bt.fn[Yt] = zt, se._jQueryInterface }, se), Nn = (ae = "tooltip", he = "." + (le = "bs.tooltip"), ce = (oe = e).fn[ae], ue = "bs-tooltip", fe = new RegExp("(^|\\s)" + ue + "\\S+", "g"), ge = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !(_e = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }), selector: !(de = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)" }), placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent" }, pe = "out", ve = { HIDE: "hide" + he, HIDDEN: "hidden" + he, SHOW: (me = "show") + he, SHOWN: "shown" + he, INSERTED: "inserted" + he, CLICK: "click" + he, FOCUSIN: "focusin" + he, FOCUSOUT: "focusout" + he, MOUSEENTER: "mouseenter" + he, MOUSELEAVE: "mouseleave" + he }, Ee = "fade", ye = "show", Te = ".tooltip-inner", Ce = ".arrow", Ie = "hover", Ae = "focus", De = "click", be = "manual", Se = function () { function i(t, e) { if ("undefined" == typeof c) throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)"); this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() } var t = i.prototype; return t.enable = function () { this._isEnabled = !0 }, t.disable = function () { this._isEnabled = !1 }, t.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, t.toggle = function (t) { if (this._isEnabled) if (t) { var e = this.constructor.DATA_KEY, n = oe(t.currentTarget).data(e); n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), oe(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) } else { if (oe(this.getTipElement()).hasClass(ye)) return void this._leave(null, this); this._enter(null, this) } }, t.dispose = function () { clearTimeout(this._timeout), oe.removeData(this.element, this.constructor.DATA_KEY), oe(this.element).off(this.constructor.EVENT_KEY), oe(this.element).closest(".modal").off("hide.bs.modal"), this.tip && oe(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, t.show = function () { var e = this; if ("none" === oe(this.element).css("display")) throw new Error("Please use show on visible elements"); var t = oe.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { oe(this.element).trigger(t); var n = oe.contains(this.element.ownerDocument.documentElement, this.element); if (t.isDefaultPrevented() || !n) return; var i = this.getTipElement(), r = Cn.getUID(this.constructor.NAME); i.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && oe(i).addClass(Ee); var s = "function" == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement, o = this._getAttachment(s); this.addAttachmentClass(o); var a = !1 === this.config.container ? document.body : oe(this.config.container); oe(i).data(this.constructor.DATA_KEY, this), oe.contains(this.element.ownerDocument.documentElement, this.tip) || oe(i).appendTo(a), oe(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new c(this.element, i, { placement: o, modifiers: { offset: { offset: this.config.offset }, flip: { behavior: this.config.fallbackPlacement }, arrow: { element: Ce }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) }, onUpdate: function (t) { e._handlePopperPlacementChange(t) } }), oe(i).addClass(ye), "ontouchstart" in document.documentElement && oe(document.body).children().on("mouseover", null, oe.noop); var l = function () { e.config.animation && e._fixTransition(); var t = e._hoverState; e._hoverState = null, oe(e.element).trigger(e.constructor.Event.SHOWN), t === pe && e._leave(null, e) }; if (oe(this.tip).hasClass(Ee)) { var h = Cn.getTransitionDurationFromElement(this.tip); oe(this.tip).one(Cn.TRANSITION_END, l).emulateTransitionEnd(h) } else l() } }, t.hide = function (t) { var e = this, n = this.getTipElement(), i = oe.Event(this.constructor.Event.HIDE), r = function () { e._hoverState !== me && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), oe(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t() }; if (oe(this.element).trigger(i), !i.isDefaultPrevented()) { if (oe(n).removeClass(ye), "ontouchstart" in document.documentElement && oe(document.body).children().off("mouseover", null, oe.noop), this._activeTrigger[De] = !1, this._activeTrigger[Ae] = !1, this._activeTrigger[Ie] = !1, oe(this.tip).hasClass(Ee)) { var s = Cn.getTransitionDurationFromElement(n); oe(n).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) } else r(); this._hoverState = "" } }, t.update = function () { null !== this._popper && this._popper.scheduleUpdate() }, t.isWithContent = function () { return Boolean(this.getTitle()) }, t.addAttachmentClass = function (t) { oe(this.getTipElement()).addClass(ue + "-" + t) }, t.getTipElement = function () { return this.tip = this.tip || oe(this.config.template)[0], this.tip }, t.setContent = function () { var t = oe(this.getTipElement()); this.setElementContent(t.find(Te), this.getTitle()), t.removeClass(Ee + " " + ye) }, t.setElementContent = function (t, e) { var n = this.config.html; "object" == typeof e && (e.nodeType || e.jquery) ? n ? oe(e).parent().is(t) || t.empty().append(e) : t.text(oe(e).text()) : t[n ? "html" : "text"](e) }, t.getTitle = function () { var t = this.element.getAttribute("data-original-title"); return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t }, t._getAttachment = function (t) { return _e[t.toUpperCase()] }, t._setListeners = function () { var i = this; this.config.trigger.split(" ").forEach(function (t) { if ("click" === t) oe(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { return i.toggle(t) }); else if (t !== be) { var e = t === Ie ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, n = t === Ie ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT; oe(i.element).on(e, i.config.selector, function (t) { return i._enter(t) }).on(n, i.config.selector, function (t) { return i._leave(t) }) } oe(i.element).closest(".modal").on("hide.bs.modal", function () { return i.hide() }) }), this.config.selector ? this.config = h({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, t._fixTitle = function () { var t = typeof this.element.getAttribute("data-original-title"); (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) }, t._enter = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || oe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), oe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Ae : Ie] = !0), oe(e.getTipElement()).hasClass(ye) || e._hoverState === me ? e._hoverState = me : (clearTimeout(e._timeout), e._hoverState = me, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () { e._hoverState === me && e.show() }, e.config.delay.show) : e.show()) }, t._leave = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || oe(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), oe(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Ae : Ie] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = pe, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () { e._hoverState === pe && e.hide() }, e.config.delay.hide) : e.hide()) }, t._isWithActiveTrigger = function () { for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1 }, t._getConfig = function (t) { return "number" == typeof (t = h({}, this.constructor.Default, oe(this.element).data(), "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), Cn.typeCheckConfig(ae, t, this.constructor.DefaultType), t }, t._getDelegateConfig = function () { var t = {}; if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); return t }, t._cleanTipClass = function () { var t = oe(this.getTipElement()), e = t.attr("class").match(fe); null !== e && 0 < e.length && t.removeClass(e.join("")) }, t._handlePopperPlacementChange = function (t) { this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) }, t._fixTransition = function () { var t = this.getTipElement(), e = this.config.animation; null === t.getAttribute("x-placement") && (oe(t).removeClass(Ee), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) }, i._jQueryInterface = function (n) { return this.each(function () { var t = oe(this).data(le), e = "object" == typeof n && n; if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), oe(this).data(le, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, o(i, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return ge } }, { key: "NAME", get: function () { return ae } }, { key: "DATA_KEY", get: function () { return le } }, { key: "Event", get: function () { return ve } }, { key: "EVENT_KEY", get: function () { return he } }, { key: "DefaultType", get: function () { return de } }]), i }(), oe.fn[ae] = Se._jQueryInterface, oe.fn[ae].Constructor = Se, oe.fn[ae].noConflict = function () { return oe.fn[ae] = ce, Se._jQueryInterface }, Se), On = (Ne = "popover", ke = "." + (Oe = "bs.popover"), Pe = (we = e).fn[Ne], Le = "bs-popover", je = new RegExp("(^|\\s)" + Le + "\\S+", "g"), Re = h({}, Nn.Default, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' }), He = h({}, Nn.DefaultType, { content: "(string|element|function)" }), We = "fade", xe = ".popover-header", Ue = ".popover-body", Ke = { HIDE: "hide" + ke, HIDDEN: "hidden" + ke, SHOW: (Me = "show") + ke, SHOWN: "shown" + ke, INSERTED: "inserted" + ke, CLICK: "click" + ke, FOCUSIN: "focusin" + ke, FOCUSOUT: "focusout" + ke, MOUSEENTER: "mouseenter" + ke, MOUSELEAVE: "mouseleave" + ke }, Fe = function (t) { var e, n; function i() { return t.apply(this, arguments) || this } n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n; var r = i.prototype; return r.isWithContent = function () { return this.getTitle() || this._getContent() }, r.addAttachmentClass = function (t) { we(this.getTipElement()).addClass(Le + "-" + t) }, r.getTipElement = function () { return this.tip = this.tip || we(this.config.template)[0], this.tip }, r.setContent = function () { var t = we(this.getTipElement()); this.setElementContent(t.find(xe), this.getTitle()); var e = this._getContent(); "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(Ue), e), t.removeClass(We + " " + Me) }, r._getContent = function () { return this.element.getAttribute("data-content") || this.config.content }, r._cleanTipClass = function () { var t = we(this.getTipElement()), e = t.attr("class").match(je); null !== e && 0 < e.length && t.removeClass(e.join("")) }, i._jQueryInterface = function (n) { return this.each(function () { var t = we(this).data(Oe), e = "object" == typeof n ? n : null; if ((t || !/destroy|hide/.test(n)) && (t || (t = new i(this, e), we(this).data(Oe, t)), "string" == typeof n)) { if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"'); t[n]() } }) }, o(i, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return Re } }, { key: "NAME", get: function () { return Ne } }, { key: "DATA_KEY", get: function () { return Oe } }, { key: "Event", get: function () { return Ke } }, { key: "EVENT_KEY", get: function () { return ke } }, { key: "DefaultType", get: function () { return He } }]), i }(Nn), we.fn[Ne] = Fe._jQueryInterface, we.fn[Ne].Constructor = Fe, we.fn[Ne].noConflict = function () { return we.fn[Ne] = Pe, Fe._jQueryInterface }, Fe), kn = (Qe = "scrollspy", Ye = "." + (Be = "bs.scrollspy"), Ge = (Ve = e).fn[Qe], qe = { offset: 10, method: "auto", target: "" }, ze = { offset: "number", method: "string", target: "(string|element)" }, Xe = { ACTIVATE: "activate" + Ye, SCROLL: "scroll" + Ye, LOAD_DATA_API: "load" + Ye + ".data-api" }, Je = "dropdown-item", Ze = "active", $e = { DATA_SPY: '[data-spy="scroll"]', ACTIVE: ".active", NAV_LIST_GROUP: ".nav, .list-group", NAV_LINKS: ".nav-link", NAV_ITEMS: ".nav-item", LIST_ITEMS: ".list-group-item", DROPDOWN: ".dropdown", DROPDOWN_ITEMS: ".dropdown-item", DROPDOWN_TOGGLE: ".dropdown-toggle" }, tn = "offset", en = "position", nn = function () { function n(t, e) { var n = this; this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + $e.NAV_LINKS + "," + this._config.target + " " + $e.LIST_ITEMS + "," + this._config.target + " " + $e.DROPDOWN_ITEMS, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, Ve(this._scrollElement).on(Xe.SCROLL, function (t) { return n._process(t) }), this.refresh(), this._process() } var t = n.prototype; return t.refresh = function () { var e = this, t = this._scrollElement === this._scrollElement.window ? tn : en, r = "auto" === this._config.method ? t : this._config.method, s = r === en ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), Ve.makeArray(Ve(this._selector)).map(function (t) { var e, n = Cn.getSelectorFromElement(t); if (n && (e = Ve(n)[0]), e) { var i = e.getBoundingClientRect(); if (i.width || i.height) return [Ve(e)[r]().top + s, n] } return null }).filter(function (t) { return t }).sort(function (t, e) { return t[0] - e[0] }).forEach(function (t) { e._offsets.push(t[0]), e._targets.push(t[1]) }) }, t.dispose = function () { Ve.removeData(this._element, Be), Ve(this._scrollElement).off(Ye), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, t._getConfig = function (t) { if ("string" != typeof (t = h({}, qe, "object" == typeof t && t ? t : {})).target) { var e = Ve(t.target).attr("id"); e || (e = Cn.getUID(Qe), Ve(t.target).attr("id", e)), t.target = "#" + e } return Cn.typeCheckConfig(Qe, t, ze), t }, t._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, t._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, t._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, t._process = function () { var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), n = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), n <= t) { var i = this._targets[this._targets.length - 1]; this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); for (var r = this._offsets.length; r--;) { this._activeTarget !== this._targets[r] && t >= this._offsets[r] && ("undefined" == typeof this._offsets[r + 1] || t < this._offsets[r + 1]) && this._activate(this._targets[r]) } } }, t._activate = function (e) { this._activeTarget = e, this._clear(); var t = this._selector.split(","); t = t.map(function (t) { return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' }); var n = Ve(t.join(",")); n.hasClass(Je) ? (n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze), n.addClass(Ze)) : (n.addClass(Ze), n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS + ", " + $e.LIST_ITEMS).addClass(Ze), n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)), Ve(this._scrollElement).trigger(Xe.ACTIVATE, { relatedTarget: e }) }, t._clear = function () { Ve(this._selector).filter($e.ACTIVE).removeClass(Ze) }, n._jQueryInterface = function (e) { return this.each(function () { var t = Ve(this).data(Be); if (t || (t = new n(this, "object" == typeof e && e), Ve(this).data(Be, t)), "string" == typeof e) { if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, o(n, null, [{ key: "VERSION", get: function () { return "4.1.1" } }, { key: "Default", get: function () { return qe } }]), n }(), Ve(window).on(Xe.LOAD_DATA_API, function () { for (var t = Ve.makeArray(Ve($e.DATA_SPY)), e = t.length; e--;) { var n = Ve(t[e]); nn._jQueryInterface.call(n, n.data()) } }), Ve.fn[Qe] = nn._jQueryInterface, Ve.fn[Qe].Constructor = nn, Ve.fn[Qe].noConflict = function () { return Ve.fn[Qe] = Ge, nn._jQueryInterface }, nn), Pn = (on = "." + (sn = "bs.tab"), an = (rn = e).fn.tab, ln = { HIDE: "hide" + on, HIDDEN: "hidden" + on, SHOW: "show" + on, SHOWN: "shown" + on, CLICK_DATA_API: "click" + on + ".data-api" }, hn = "dropdown-menu", cn = "active", un = "disabled", fn = "fade", dn = "show", _n = ".dropdown", gn = ".nav, .list-group", mn = ".active", pn = "> li > .active", vn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', En = ".dropdown-toggle", yn = "> .dropdown-menu .active", Tn = function () { function i(t) { this._element = t } var t = i.prototype; return t.show = function () { var n = this; if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && rn(this._element).hasClass(cn) || rn(this._element).hasClass(un))) { var t, i, e = rn(this._element).closest(gn)[0], r = Cn.getSelectorFromElement(this._element); if (e) { var s = "UL" === e.nodeName ? pn : mn; i = (i = rn.makeArray(rn(e).find(s)))[i.length - 1] } var o = rn.Event(ln.HIDE, { relatedTarget: this._element }), a = rn.Event(ln.SHOW, { relatedTarget: i }); if (i && rn(i).trigger(o), rn(this._element).trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented()) { r && (t = rn(r)[0]), this._activate(this._element, e); var l = function () { var t = rn.Event(ln.HIDDEN, { relatedTarget: n._element }), e = rn.Event(ln.SHOWN, { relatedTarget: i }); rn(i).trigger(t), rn(n._element).trigger(e) }; t ? this._activate(t, t.parentNode, l) : l() } } }, t.dispose = function () { rn.removeData(this._element, sn), this._element = null }, t._activate = function (t, e, n) { var i = this, r = ("UL" === e.nodeName ? rn(e).find(pn) : rn(e).children(mn))[0], s = n && r && rn(r).hasClass(fn), o = function () { return i._transitionComplete(t, r, n) }; if (r && s) { var a = Cn.getTransitionDurationFromElement(r); rn(r).one(Cn.TRANSITION_END, o).emulateTransitionEnd(a) } else o() }, t._transitionComplete = function (t, e, n) { if (e) { rn(e).removeClass(dn + " " + cn); var i = rn(e.parentNode).find(yn)[0]; i && rn(i).removeClass(cn), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) } if (rn(t).addClass(cn), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), Cn.reflow(t), rn(t).addClass(dn), t.parentNode && rn(t.parentNode).hasClass(hn)) { var r = rn(t).closest(_n)[0]; r && rn(r).find(En).addClass(cn), t.setAttribute("aria-expanded", !0) } n && n() }, i._jQueryInterface = function (n) { return this.each(function () { var t = rn(this), e = t.data(sn); if (e || (e = new i(this), t.data(sn, e)), "string" == typeof n) { if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"'); e[n]() } }) }, o(i, null, [{ key: "VERSION", get: function () { return "4.1.1" } }]), i }(), rn(document).on(ln.CLICK_DATA_API, vn, function (t) { t.preventDefault(), Tn._jQueryInterface.call(rn(this), "show") }), rn.fn.tab = Tn._jQueryInterface, rn.fn.tab.Constructor = Tn, rn.fn.tab.noConflict = function () { return rn.fn.tab = an, Tn._jQueryInterface }, Tn); !function (t) { if ("undefined" == typeof t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var e = t.fn.jquery.split(" ")[0].split("."); if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || 4 <= e[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") }(e), t.Util = Cn, t.Alert = In, t.Button = An, t.Carousel = Dn, t.Collapse = bn, t.Dropdown = Sn, t.Modal = wn, t.Popover = On, t.Scrollspy = kn, t.Tab = Pn, t.Tooltip = Nn, Object.defineProperty(t, "__esModule", { value: !0 }) }); \ No newline at end of file
diff --git a/static/plugins/jquery/jquery-1.12.4.js b/static/plugins/jquery/jquery-1.12.4.js
index edfdd04..9d72b72 100644
--- a/static/plugins/jquery/jquery-1.12.4.js
+++ b/static/plugins/jquery/jquery-1.12.4.js
@@ -1,11008 +1,11008 @@
-/*!
- * jQuery JavaScript Library v1.12.4
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2016-05-20T17:17Z
- */
-
-(function( global, factory ) {
-
- if ( typeof module === "object" && typeof module.exports === "object" ) {
- // For CommonJS and CommonJS-like environments where a proper `window`
- // is present, execute the factory and get jQuery.
- // For environments that do not have a `window` with a `document`
- // (such as Node.js), expose a factory as module.exports.
- // This accentuates the need for the creation of a real `window`.
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info.
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
-
-// Pass this if window is not defined yet
-}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
-
-// Support: Firefox 18+
-// Can't be in strict mode, several libs including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-//"use strict";
-var deletedIds = [];
-
-var document = window.document;
-
-var slice = deletedIds.slice;
-
-var concat = deletedIds.concat;
-
-var push = deletedIds.push;
-
-var indexOf = deletedIds.indexOf;
-
-var class2type = {};
-
-var toString = class2type.toString;
-
-var hasOwn = class2type.hasOwnProperty;
-
-var support = {};
-
-
-
-var
- version = "1.12.4",
-
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
-
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
-
- // Support: Android<4.1, IE<9
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- };
-
-jQuery.fn = jQuery.prototype = {
-
- // The current version of jQuery being used
- jquery: version,
-
- constructor: jQuery,
-
- // Start with an empty selector
- selector: "",
-
- // 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 num != null ?
-
- // Return just the one element from the set
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
-
- // Return all the elements in a clean array
- slice.call( this );
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
-
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
- ret.context = this.context;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- each: function( callback ) {
- return jQuery.each( this, callback );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map( this, function( elem, i ) {
- return callback.call( elem, i, elem );
- } ) );
- },
-
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
-
- first: function() {
- return this.eq( 0 );
- },
-
- last: function() {
- return this.eq( -1 );
- },
-
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
- },
-
- end: function() {
- return this.prevObject || this.constructor();
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: deletedIds.sort,
- splice: deletedIds.splice
-};
-
-jQuery.extend = jQuery.fn.extend = function() {
- var src, copyIsArray, copy, name, options, clone,
- target = arguments[ 0 ] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
-
- // skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
- target = {};
- }
-
- // extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
-
- for ( ; i < length; i++ ) {
-
- // Only deal with non-null/undefined values
- if ( ( options = arguments[ i ] ) != null ) {
-
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
-
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
- ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
-
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray( src ) ? src : [];
-
- } else {
- clone = src && jQuery.isPlainObject( src ) ? src : {};
- }
-
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
-
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
-
-jQuery.extend( {
-
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
-
- // Assume jQuery is ready without the ready module
- isReady: true,
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- noop: function() {},
-
- // See test/unit/core.js for details concerning isFunction.
- // Since version 1.3, DOM methods and functions like alert
- // aren't supported. They return false on IE (#2968).
- isFunction: function( obj ) {
- return jQuery.type( obj ) === "function";
- },
-
- isArray: Array.isArray || function( obj ) {
- return jQuery.type( obj ) === "array";
- },
-
- isWindow: function( obj ) {
- /* jshint eqeqeq: false */
- return obj != null && obj == obj.window;
- },
-
- isNumeric: function( obj ) {
-
- // parseFloat NaNs numeric-cast false positives (null|true|false|"")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- // adding 1 corrects loss of precision from parseFloat (#15100)
- var realStringObj = obj && obj.toString();
- return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
- },
-
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
-
- isPlainObject: function( obj ) {
- var key;
-
- // Must be an Object.
- // Because of IE, we also have to check the presence of the constructor property.
- // Make sure that DOM nodes and window objects don't pass through, as well
- if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- try {
-
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !hasOwn.call( obj, "constructor" ) &&
- !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
- return false;
- }
- } catch ( e ) {
-
- // IE8,9 Will throw exceptions on certain host objects #9897
- return false;
- }
-
- // Support: IE<9
- // Handle iteration over inherited properties before own properties.
- if ( !support.ownFirst ) {
- for ( key in obj ) {
- return hasOwn.call( obj, key );
- }
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
- for ( key in obj ) {}
-
- return key === undefined || hasOwn.call( obj, key );
- },
-
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call( obj ) ] || "object" :
- typeof obj;
- },
-
- // Workarounds based on findings by Jim Driscoll
- // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
- globalEval: function( data ) {
- if ( data && jQuery.trim( data ) ) {
-
- // We use execScript on Internet Explorer
- // We use an anonymous function so that context is window
- // rather than jQuery in Firefox
- ( window.execScript || function( data ) {
- window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation
- } )( data );
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
-
- each: function( obj, callback ) {
- var length, i = 0;
-
- if ( isArrayLike( obj ) ) {
- length = obj.length;
- for ( ; i < length; i++ ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- }
-
- return obj;
- },
-
- // Support: Android<4.1, IE<9
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
-
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
-
- if ( arr != null ) {
- if ( isArrayLike( Object( arr ) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, arr, i ) {
- var len;
-
- if ( arr ) {
- if ( indexOf ) {
- return indexOf.call( arr, elem, i );
- }
-
- len = arr.length;
- i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
- for ( ; i < len; i++ ) {
-
- // Skip accessing in sparse arrays
- if ( i in arr && arr[ i ] === elem ) {
- return i;
- }
- }
- }
-
- return -1;
- },
-
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
-
- while ( j < len ) {
- first[ i++ ] = second[ j++ ];
- }
-
- // Support: IE<9
- // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
- if ( len !== len ) {
- while ( second[ j ] !== undefined ) {
- first[ i++ ] = second[ j++ ];
- }
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
-
- return matches;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var length, value,
- i = 0,
- ret = [];
-
- // Go through the array, translating each of the items to their new values
- if ( isArrayLike( elems ) ) {
- length = elems.length;
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
-
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
-
- // A global GUID counter for objects
- guid: 1,
-
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var args, proxy, tmp;
-
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
-
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
-
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
- return proxy;
- },
-
- now: function() {
- return +( new Date() );
- },
-
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
-} );
-
-// JSHint would error on this code due to the Symbol not being defined in ES5.
-// Defining this global in .jshintrc would create a danger of using the global
-// unguarded in another place, it seems safer to just disable JSHint for these
-// three lines.
-/* jshint ignore: start */
-if ( typeof Symbol === "function" ) {
- jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ];
-}
-/* jshint ignore: end */
-
-// 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: iOS 8.2 (not reproducible in simulator)
- // `in` check used to prevent JIT error (gh-2145)
- // hasOwn isn't used here due to false negatives
- // regarding Nodelist length in IE
- var length = !!obj && "length" in obj && obj.length,
- type = jQuery.type( obj );
-
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-var Sizzle =
-/*!
- * Sizzle CSS Selector Engine v2.2.1
- * http://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2015-10-17
- */
-(function( window ) {
-
-var i,
- support,
- Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
- outermostContext,
- sortInput,
- hasDuplicate,
-
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsHTML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
-
- // Instance-specific data
- expando = "sizzle" + 1 * new Date(),
- preferredDoc = window.document,
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- }
- return 0;
- },
-
- // General-purpose constants
- MAX_NEGATIVE = 1 << 31,
-
- // Instance methods
- hasOwn = ({}).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- push_native = arr.push,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf as it's faster than native
- // http://jsperf.com/thor-indexof-vs-for/5
- indexOf = function( list, elem ) {
- var i = 0,
- len = list.length;
- for ( ; i < len; i++ ) {
- if ( list[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
- // Regular expressions
-
- // http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
-
- // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
- attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
- // Operator (capture 2)
- "*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
- "*\\]",
-
- pseudos = ":(" + identifier + ")(?:\\((" +
- // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
- // 1. quoted (capture 3; capture 4 or capture 5)
- "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
- // 2. simple (capture 6)
- "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
- // 3. anything else (capture 2)
- ".*" +
- ")\\)|)",
-
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rwhitespace = new RegExp( whitespace + "+", "g" ),
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
-
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
-
- matchExpr = {
- "ID": new RegExp( "^#(" + identifier + ")" ),
- "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
- "TAG": new RegExp( "^(" + identifier + "|[*])" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
- // For use in libraries implementing .is()
- // We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
- },
-
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
-
- rnative = /^[^{]+\{\s*\[native \w/,
-
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
- rsibling = /[+~]/,
- rescape = /'|\\/g,
-
- // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
- funescape = function( _, escaped, escapedWhitespace ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- // Support: Firefox<24
- // Workaround erroneous numeric interpretation of +"0x"
- return high !== high || escapedWhitespace ?
- escaped :
- high < 0 ?
- // BMP codepoint
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- },
-
- // Used for iframes
- // See setDocument()
- // Removing the function wrapper causes a "Permission Denied"
- // error in IE
- unloadHandler = function() {
- setDocument();
- };
-
-// Optimize for push.apply( _, NodeList )
-try {
- push.apply(
- (arr = slice.call( preferredDoc.childNodes )),
- preferredDoc.childNodes
- );
- // Support: Android<4.0
- // Detect silently failing push.apply
- arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
- push = { apply: arr.length ?
-
- // Leverage slice if possible
- function( target, els ) {
- push_native.apply( target, slice.call(els) );
- } :
-
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
- // Can't trust NodeList.length
- while ( (target[j++] = els[i++]) ) {}
- target.length = j - 1;
- }
- };
-}
-
-function Sizzle( selector, context, results, seed ) {
- var m, i, elem, nid, nidselect, match, groups, newSelector,
- newContext = context && context.ownerDocument,
-
- // nodeType defaults to 9, since context defaults to document
- nodeType = context ? context.nodeType : 9;
-
- results = results || [];
-
- // Return early from calls with invalid selector or context
- if ( typeof selector !== "string" || !selector ||
- nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
-
- return results;
- }
-
- // Try to shortcut find operations (as opposed to filters) in HTML documents
- if ( !seed ) {
-
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
- context = context || document;
-
- if ( documentIsHTML ) {
-
- // If the selector is sufficiently simple, try using a "get*By*" DOM method
- // (excepting DocumentFragment context, where the methods don't exist)
- if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
-
- // ID selector
- if ( (m = match[1]) ) {
-
- // Document context
- if ( nodeType === 9 ) {
- if ( (elem = context.getElementById( m )) ) {
-
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
-
- // Element context
- } else {
-
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( newContext && (elem = newContext.getElementById( m )) &&
- contains( context, elem ) &&
- elem.id === m ) {
-
- results.push( elem );
- return results;
- }
- }
-
- // Type selector
- } else if ( match[2] ) {
- push.apply( results, context.getElementsByTagName( selector ) );
- return results;
-
- // Class selector
- } else if ( (m = match[3]) && support.getElementsByClassName &&
- context.getElementsByClassName ) {
-
- push.apply( results, context.getElementsByClassName( m ) );
- return results;
- }
- }
-
- // Take advantage of querySelectorAll
- if ( support.qsa &&
- !compilerCache[ selector + " " ] &&
- (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-
- if ( nodeType !== 1 ) {
- newContext = context;
- newSelector = selector;
-
- // qSA looks outside Element context, which is not what we want
- // Thanks to Andrew Dupont for this workaround technique
- // Support: IE <=8
- // Exclude object elements
- } else if ( context.nodeName.toLowerCase() !== "object" ) {
-
- // Capture the context ID, setting it first if necessary
- if ( (nid = context.getAttribute( "id" )) ) {
- nid = nid.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", (nid = expando) );
- }
-
- // Prefix every selector in the list
- groups = tokenize( selector );
- i = groups.length;
- nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
- while ( i-- ) {
- groups[i] = nidselect + " " + toSelector( groups[i] );
- }
- newSelector = groups.join( "," );
-
- // Expand context for sibling selectors
- newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
- context;
- }
-
- if ( newSelector ) {
- try {
- push.apply( results,
- newContext.querySelectorAll( newSelector )
- );
- return results;
- } catch ( qsaError ) {
- } finally {
- if ( nid === expando ) {
- context.removeAttribute( "id" );
- }
- }
- }
- }
- }
- }
-
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {function(string, object)} Returns the Object data after storing it on itself with
- * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- * deleting the oldest entry
- */
-function createCache() {
- var keys = [];
-
- function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
- if ( keys.push( key + " " ) > Expr.cacheLength ) {
- // Only keep the most recent entries
- delete cache[ keys.shift() ];
- }
- return (cache[ key + " " ] = value);
- }
- return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
- fn[ expando ] = true;
- return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
- var div = document.createElement("div");
-
- try {
- return !!fn( div );
- } catch (e) {
- return false;
- } finally {
- // Remove from its parent by default
- if ( div.parentNode ) {
- div.parentNode.removeChild( div );
- }
- // release memory in IE
- div = 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 &&
- ( ~b.sourceIndex || MAX_NEGATIVE ) -
- ( ~a.sourceIndex || MAX_NEGATIVE );
-
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
-
- // Check if b follows a
- if ( cur ) {
- while ( (cur = cur.nextSibling) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
-
- return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @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 positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
-
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
-}
-
-/**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
-function testContext( context ) {
- return context && typeof context.getElementsByTagName !== "undefined" && context;
-}
-
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare, parent,
- doc = node ? node.ownerDocument || node : preferredDoc;
-
- // Return early if doc is invalid or already selected
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
-
- // Update global variables
- document = doc;
- docElem = document.documentElement;
- documentIsHTML = !isXML( document );
-
- // Support: IE 9-11, Edge
- // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
- if ( (parent = document.defaultView) && parent.top !== parent ) {
- // Support: IE 11
- if ( parent.addEventListener ) {
- parent.addEventListener( "unload", unloadHandler, false );
-
- // Support: IE 9 - 10 only
- } else if ( parent.attachEvent ) {
- parent.attachEvent( "onunload", unloadHandler );
- }
- }
-
- /* Attributes
- ---------------------------------------------------------------------- */
-
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties
- // (excepting IE8 booleans)
- support.attributes = assert(function( div ) {
- div.className = "i";
- return !div.getAttribute("className");
- });
-
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
-
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert(function( div ) {
- div.appendChild( document.createComment("") );
- return !div.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 programatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert(function( div ) {
- docElem.appendChild( div ).id = expando;
- return !document.getElementsByName || !document.getElementsByName( expando ).length;
- });
-
- // ID find and filter
- if ( support.getById ) {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
- var m = context.getElementById( id );
- return m ? [ m ] : [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- } else {
- // Support: IE6/7
- // getElementById is not reliable as a find shortcut
- delete Expr.find["ID"];
-
- 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;
- };
- };
- }
-
- // 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 http://bugs.jquery.com/ticket/13378
- rbuggyQSA = [];
-
- if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
- "<select id='" + expando + "-\r\\' msallowcapture=''>" +
- "<option selected=''></option></select>";
-
- // 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
- // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( div.querySelectorAll("[msallowcapture^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
-
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !div.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 ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push("~=");
- }
-
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
-
- // Support: Safari 8+, iOS 8+
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibing-combinator selector` fails
- if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push(".#.+[+~]");
- }
- });
-
- assert(function( div ) {
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = document.createElement("input");
- input.setAttribute( "type", "hidden" );
- div.appendChild( input ).setAttribute( "name", "D" );
-
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( div.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 ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Opera 10-11 does not throw on post-comma invalid pseudos
- div.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
-
- if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
-
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( div, "div" );
-
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( div, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
-
- rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
-
- // Element contains another
- // Purposefully self-exclusive
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ));
- } :
- function( a, b ) {
- if ( b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
-
- /* Sorting
- ---------------------------------------------------------------------- */
-
- // Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
-
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
-
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
-
- // Otherwise we know they are disconnected
- 1;
-
- // Disconnected nodes
- if ( compare & 1 ||
- (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
- // Choose the first element that is related to our preferred document
- if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
- return -1;
- }
- if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
- return 1;
- }
-
- // Maintain original order
- return sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
- }
-
- return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
-
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
- return a === document ? -1 :
- b === document ? 1 :
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
-
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
-
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( (cur = cur.parentNode) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( (cur = cur.parentNode) ) {
- bp.unshift( cur );
- }
-
- // Walk down the tree looking for a discrepancy
- while ( ap[i] === bp[i] ) {
- i++;
- }
-
- return i ?
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[i], bp[i] ) :
-
- // Otherwise nodes in our document sort first
- ap[i] === preferredDoc ? -1 :
- bp[i] === preferredDoc ? 1 :
- 0;
- };
-
- return document;
-};
-
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
-
- if ( support.matchesSelector && documentIsHTML &&
- !compilerCache[ expr + " " ] &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
-
- try {
- var ret = matches.call( elem, expr );
-
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch (e) {}
- }
-
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
- // Set document vars if needed
- if ( ( context.ownerDocument || context ) !== document ) {
- setDocument( context );
- }
- return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, !documentIsHTML ) :
- undefined;
-
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- (val = elem.getAttributeNode(name)) && val.specified ?
- val.value :
- null;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
-
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- while ( (elem = results[i++]) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
-
- return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
- // If no nodeType, this is expected to be an array
- while ( (node = elem[i++]) ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
-
- return ret;
-};
-
-Expr = Sizzle.selectors = {
-
- // Can be adjusted by the user
- cacheLength: 50,
-
- createPseudo: markFunction,
-
- match: matchExpr,
-
- attrHandle: {},
-
- find: {},
-
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
-
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( runescape, funescape );
-
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
-
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
-
- return match.slice( 0, 4 );
- },
-
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 what (child|of-type)
- 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 4 xn-component of xn+y argument ([+-]?\d*n|)
- 5 sign of xn-component
- 6 x of xn-component
- 7 sign of y-component
- 8 y of y-component
- */
- match[1] = match[1].toLowerCase();
-
- if ( match[1].slice( 0, 3 ) === "nth" ) {
- // nth-* requires argument
- if ( !match[3] ) {
- Sizzle.error( match[0] );
- }
-
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
- match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
- // other types prohibit arguments
- } else if ( match[3] ) {
- Sizzle.error( match[0] );
- }
-
- return match;
- },
-
- "PSEUDO": function( match ) {
- var excess,
- unquoted = !match[6] && match[2];
-
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
-
- // Accept quoted arguments as-is
- if ( match[3] ) {
- match[2] = match[4] || match[5] || "";
-
- // Strip excess characters from unquoted arguments
- } else if ( unquoted && rpseudo.test( unquoted ) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
- // excess is a negative index
- match[0] = match[0].slice( 0, excess );
- match[2] = unquoted.slice( 0, excess );
- }
-
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
-
- filter: {
-
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
- return nodeNameSelector === "*" ?
- function() { return true; } :
- function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
-
- "CLASS": function( className ) {
- var pattern = classCache[ className + " " ];
-
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
- });
- },
-
- "ATTR": function( name, operator, check ) {
- return function( elem ) {
- var result = Sizzle.attr( elem, name );
-
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
-
- result += "";
-
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.slice( -check.length ) === check :
- operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
- false;
- };
- },
-
- "CHILD": function( type, what, argument, first, last ) {
- var simple = type.slice( 0, 3 ) !== "nth",
- forward = type.slice( -4 ) !== "last",
- ofType = what === "of-type";
-
- return first === 1 && last === 0 ?
-
- // Shortcut for :nth-*(n)
- function( elem ) {
- return !!elem.parentNode;
- } :
-
- function( elem, context, xml ) {
- var cache, uniqueCache, outerCache, node, nodeIndex, start,
- dir = simple !== forward ? "nextSibling" : "previousSibling",
- parent = elem.parentNode,
- name = ofType && elem.nodeName.toLowerCase(),
- useCache = !xml && !ofType,
- diff = false;
-
- if ( parent ) {
-
- // :(first|last|only)-(child|of-type)
- if ( simple ) {
- while ( dir ) {
- node = elem;
- while ( (node = node[ dir ]) ) {
- if ( ofType ?
- node.nodeName.toLowerCase() === name :
- node.nodeType === 1 ) {
-
- return false;
- }
- }
- // Reverse direction for :only-* (if we haven't yet done so)
- start = dir = type === "only" && !start && "nextSibling";
- }
- return true;
- }
-
- start = [ forward ? parent.firstChild : parent.lastChild ];
-
- // non-xml :nth-child(...) stores cache data on `parent`
- if ( forward && useCache ) {
-
- // Seek `elem` from a previously-cached index
-
- // ...in a gzip-friendly way
- node = parent;
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- cache = uniqueCache[ type ] || [];
- nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
- diff = nodeIndex && cache[ 2 ];
- node = nodeIndex && parent.childNodes[ nodeIndex ];
-
- while ( (node = ++nodeIndex && node && node[ dir ] ||
-
- // Fallback to seeking `elem` from the start
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- // When found, cache indexes on `parent` and break
- if ( node.nodeType === 1 && ++diff && node === elem ) {
- uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
- break;
- }
- }
-
- } else {
- // Use previously-cached element index if available
- if ( useCache ) {
- // ...in a gzip-friendly way
- node = elem;
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- cache = uniqueCache[ type ] || [];
- nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
- diff = nodeIndex;
- }
-
- // xml :nth-child(...)
- // or :nth-last-child(...) or :nth(-last)?-of-type(...)
- if ( diff === false ) {
- // Use the same loop as above to seek `elem` from the start
- while ( (node = ++nodeIndex && node && node[ dir ] ||
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- if ( ( ofType ?
- node.nodeName.toLowerCase() === name :
- node.nodeType === 1 ) &&
- ++diff ) {
-
- // Cache the index of each encountered element
- if ( useCache ) {
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- uniqueCache[ type ] = [ dirruns, diff ];
- }
-
- if ( node === elem ) {
- break;
- }
- }
- }
- }
- }
-
- // Incorporate the offset, then check against cycle size
- diff -= last;
- return diff === first || ( diff % first === 0 && diff / first >= 0 );
- }
- };
- },
-
- "PSEUDO": function( pseudo, argument ) {
- // pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
- // Remember that setFilters inherits from pseudos
- var args,
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
-
- // The user may use createPseudo to indicate that
- // arguments are needed to create the filter function
- // just as Sizzle does
- if ( fn[ expando ] ) {
- return fn( argument );
- }
-
- // But maintain support for old signatures
- if ( fn.length > 1 ) {
- args = [ pseudo, pseudo, "", argument ];
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
- markFunction(function( seed, matches ) {
- var idx,
- matched = fn( seed, argument ),
- i = matched.length;
- while ( i-- ) {
- idx = indexOf( seed, matched[i] );
- seed[ idx ] = !( matches[ idx ] = matched[i] );
- }
- }) :
- function( elem ) {
- return fn( elem, 0, args );
- };
- }
-
- return fn;
- }
- },
-
- pseudos: {
- // Potentially complex pseudos
- "not": markFunction(function( selector ) {
- // Trim the selector passed to compile
- // to avoid treating leading and trailing
- // spaces as combinators
- var input = [],
- results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
-
- return matcher[ expando ] ?
- markFunction(function( seed, matches, context, xml ) {
- var elem,
- unmatched = matcher( seed, null, xml, [] ),
- i = seed.length;
-
- // Match elements unmatched by `matcher`
- while ( i-- ) {
- if ( (elem = unmatched[i]) ) {
- seed[i] = !(matches[i] = elem);
- }
- }
- }) :
- function( elem, context, xml ) {
- input[0] = elem;
- matcher( input, null, xml, results );
- // Don't keep the element (issue #299)
- input[0] = null;
- return !results.pop();
- };
- }),
-
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
-
- "contains": markFunction(function( text ) {
- text = text.replace( runescape, funescape );
- return function( elem ) {
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
- };
- }),
-
- // "Whether an element is represented by a :lang() selector
- // is based solely on the element's language value
- // being equal to the identifier C,
- // or beginning with the identifier C immediately followed by "-".
- // The matching of C against the element's language value is performed case-insensitively.
- // The identifier C does not have to be a valid language name."
- // http://www.w3.org/TR/selectors/#lang-pseudo
- "lang": markFunction( function( lang ) {
- // lang value must be a valid identifier
- if ( !ridentifier.test(lang || "") ) {
- Sizzle.error( "unsupported lang: " + lang );
- }
- lang = lang.replace( runescape, funescape ).toLowerCase();
- return function( elem ) {
- var elemLang;
- do {
- if ( (elemLang = documentIsHTML ?
- elem.lang :
- elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
- elemLang = elemLang.toLowerCase();
- return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
- }
- } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
- return false;
- };
- }),
-
- // Miscellaneous
- "target": function( elem ) {
- var hash = window.location && window.location.hash;
- return hash && hash.slice( 1 ) === elem.id;
- },
-
- "root": function( elem ) {
- return elem === docElem;
- },
-
- "focus": function( elem ) {
- return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
- },
-
- // Boolean properties
- "enabled": function( elem ) {
- return elem.disabled === false;
- },
-
- "disabled": function( elem ) {
- return elem.disabled === true;
- },
-
- "checked": function( elem ) {
- // In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
- },
-
- "selected": function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
-
- return elem.selected === true;
- },
-
- // Contents
- "empty": function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
- // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
- // but not by others (comment: 8; processing instruction: 7; etc.)
- // nodeType < 6 works because attributes (2) do not appear as children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- if ( elem.nodeType < 6 ) {
- return false;
- }
- }
- return true;
- },
-
- "parent": function( elem ) {
- return !Expr.pseudos["empty"]( elem );
- },
-
- // Element/input types
- "header": function( elem ) {
- return rheader.test( elem.nodeName );
- },
-
- "input": function( elem ) {
- return rinputs.test( elem.nodeName );
- },
-
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
- },
-
- "text": function( elem ) {
- var attr;
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
-
- // Support: IE<8
- // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
- },
-
- // Position-in-collection
- "first": createPositionalPseudo(function() {
- return [ 0 ];
- }),
-
- "last": createPositionalPseudo(function( matchIndexes, length ) {
- return [ length - 1 ];
- }),
-
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
- return [ argument < 0 ? argument + length : argument ];
- }),
-
- "even": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 0;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "odd": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 1;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; --i >= 0; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; ++i < length; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- })
- }
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Add button/input type pseudos
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
- Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
- Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
- var matched, match, tokens, type,
- soFar, groups, preFilters,
- cached = tokenCache[ selector + " " ];
-
- if ( cached ) {
- return parseOnly ? 0 : cached.slice( 0 );
- }
-
- soFar = selector;
- groups = [];
- preFilters = Expr.preFilter;
-
- while ( soFar ) {
-
- // Comma and first run
- if ( !matched || (match = rcomma.exec( soFar )) ) {
- if ( match ) {
- // Don't consume trailing commas as valid
- soFar = soFar.slice( match[0].length ) || soFar;
- }
- groups.push( (tokens = []) );
- }
-
- matched = false;
-
- // Combinators
- if ( (match = rcombinators.exec( soFar )) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- // Cast descendant combinators to space
- type: match[0].replace( rtrim, " " )
- });
- soFar = soFar.slice( matched.length );
- }
-
- // Filters
- for ( type in Expr.filter ) {
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
- (match = preFilters[ type ]( match ))) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- type: type,
- matches: match
- });
- soFar = soFar.slice( matched.length );
- }
- }
-
- if ( !matched ) {
- break;
- }
- }
-
- // Return the length of the invalid excess
- // if we're just parsing
- // Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-};
-
-function toSelector( tokens ) {
- var i = 0,
- len = tokens.length,
- selector = "";
- for ( ; i < len; i++ ) {
- selector += tokens[i].value;
- }
- return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
- var dir = combinator.dir,
- checkNonElements = base && dir === "parentNode",
- doneName = done++;
-
- return combinator.first ?
- // Check against closest ancestor/preceding element
- function( elem, context, xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- return matcher( elem, context, xml );
- }
- }
- } :
-
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- var 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 ( (oldCache = uniqueCache[ dir ]) &&
- 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[ dir ] = newCache;
-
- // A match means we're done; a fail means we have to keep checking
- if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
- return true;
- }
- }
- }
- }
- }
- };
-}
-
-function elementMatcher( matchers ) {
- return matchers.length > 1 ?
- function( elem, context, xml ) {
- var i = matchers.length;
- while ( i-- ) {
- if ( !matchers[i]( elem, context, xml ) ) {
- return false;
- }
- }
- return true;
- } :
- matchers[0];
-}
-
-function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
-}
-
-function condense( unmatched, map, filter, context, xml ) {
- var elem,
- newUnmatched = [],
- i = 0,
- len = unmatched.length,
- mapped = map != null;
-
- for ( ; i < len; i++ ) {
- if ( (elem = unmatched[i]) ) {
- if ( !filter || filter( elem, context, xml ) ) {
- newUnmatched.push( elem );
- if ( mapped ) {
- map.push( i );
- }
- }
- }
- }
-
- return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
- if ( postFilter && !postFilter[ expando ] ) {
- postFilter = setMatcher( postFilter );
- }
- if ( postFinder && !postFinder[ expando ] ) {
- postFinder = setMatcher( postFinder, postSelector );
- }
- return markFunction(function( seed, results, context, xml ) {
- var temp, i, elem,
- preMap = [],
- postMap = [],
- preexisting = results.length,
-
- // Get initial elements from seed or context
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
- // Prefilter to get matcher input, preserving a map for seed-results synchronization
- matcherIn = preFilter && ( seed || !selector ) ?
- condense( elems, preMap, preFilter, context, xml ) :
- elems,
-
- matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
- // ...intermediate processing is necessary
- [] :
-
- // ...otherwise use results directly
- results :
- matcherIn;
-
- // Find primary matches
- if ( matcher ) {
- matcher( matcherIn, matcherOut, context, xml );
- }
-
- // Apply postFilter
- if ( postFilter ) {
- temp = condense( matcherOut, postMap );
- postFilter( temp, [], context, xml );
-
- // Un-match failing elements by moving them back to matcherIn
- i = temp.length;
- while ( i-- ) {
- if ( (elem = temp[i]) ) {
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
- }
- }
- }
-
- if ( seed ) {
- if ( postFinder || preFilter ) {
- if ( postFinder ) {
- // Get the final matcherOut by condensing this intermediate into postFinder contexts
- temp = [];
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) ) {
- // Restore matcherIn since elem is not yet a final match
- temp.push( (matcherIn[i] = elem) );
- }
- }
- postFinder( null, (matcherOut = []), temp, xml );
- }
-
- // Move matched elements from seed to results to keep them synchronized
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) &&
- (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
-
- seed[temp] = !(results[temp] = elem);
- }
- }
- }
-
- // Add elements to results, through postFinder if defined
- } else {
- matcherOut = condense(
- matcherOut === results ?
- matcherOut.splice( preexisting, matcherOut.length ) :
- matcherOut
- );
- if ( postFinder ) {
- postFinder( null, results, matcherOut, xml );
- } else {
- push.apply( results, matcherOut );
- }
- }
- });
-}
-
-function matcherFromTokens( tokens ) {
- var checkContext, matcher, j,
- len = tokens.length,
- leadingRelative = Expr.relative[ tokens[0].type ],
- implicitRelative = leadingRelative || Expr.relative[" "],
- i = leadingRelative ? 1 : 0,
-
- // The foundational matcher ensures that elements are reachable from top-level context(s)
- matchContext = addCombinator( function( elem ) {
- return elem === checkContext;
- }, implicitRelative, true ),
- matchAnyContext = addCombinator( function( elem ) {
- return indexOf( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- // Avoid hanging onto element (issue #299)
- checkContext = null;
- return ret;
- } ];
-
- for ( ; i < len; i++ ) {
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
- matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
- } else {
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
- // Return special upon seeing a positional matcher
- if ( matcher[ expando ] ) {
- // Find the next relative operator (if any) for proper handling
- j = ++i;
- for ( ; j < len; j++ ) {
- if ( Expr.relative[ tokens[j].type ] ) {
- break;
- }
- }
- return setMatcher(
- i > 1 && elementMatcher( matchers ),
- i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
- ).replace( rtrim, "$1" ),
- matcher,
- i < j && matcherFromTokens( tokens.slice( i, j ) ),
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
- j < len && toSelector( tokens )
- );
- }
- matchers.push( matcher );
- }
- }
-
- return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
- var bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, outermost ) {
- var elem, j, matcher,
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- setMatched = [],
- contextBackup = outermostContext,
- // We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
- // Use integer dirruns iff this is the outermost matcher
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
- len = elems.length;
-
- if ( outermost ) {
- outermostContext = context === document || context || outermost;
- }
-
- // Add elements passing elementMatchers directly to results
- // Support: IE<9, Safari
- // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
- for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- j = 0;
- if ( !context && elem.ownerDocument !== document ) {
- setDocument( elem );
- xml = !documentIsHTML;
- }
- while ( (matcher = elementMatchers[j++]) ) {
- if ( matcher( elem, context || document, xml) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- }
- }
-
- // Track unmatched elements for set filters
- if ( bySet ) {
- // They will have gone through all possible matchers
- if ( (elem = !matcher && elem) ) {
- matchedCount--;
- }
-
- // Lengthen the array for every element, matched or not
- if ( seed ) {
- unmatched.push( elem );
- }
- }
- }
-
- // `i` is now the count of elements visited above, and adding it to `matchedCount`
- // makes the latter nonnegative.
- matchedCount += i;
-
- // Apply set filters to unmatched elements
- // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
- // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
- // no element matchers and no seed.
- // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
- // case, which will result in a "00" `matchedCount` that differs from `i` but is also
- // numerically zero.
- if ( bySet && i !== matchedCount ) {
- j = 0;
- while ( (matcher = setMatchers[j++]) ) {
- matcher( unmatched, setMatched, context, xml );
- }
-
- if ( seed ) {
- // Reintegrate element matches to eliminate the need for sorting
- if ( matchedCount > 0 ) {
- while ( i-- ) {
- if ( !(unmatched[i] || setMatched[i]) ) {
- setMatched[i] = pop.call( results );
- }
- }
- }
-
- // Discard index placeholder values to get only actual matches
- setMatched = condense( setMatched );
- }
-
- // Add matches to results
- push.apply( results, setMatched );
-
- // Seedless set matches succeeding multiple successful matchers stipulate sorting
- if ( outermost && !seed && setMatched.length > 0 &&
- ( matchedCount + setMatchers.length ) > 1 ) {
-
- Sizzle.uniqueSort( results );
- }
- }
-
- // Override manipulation of globals by nested matchers
- if ( outermost ) {
- dirruns = dirrunsUnique;
- outermostContext = contextBackup;
- }
-
- return unmatched;
- };
-
- return bySet ?
- markFunction( superMatcher ) :
- superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
- var i,
- setMatchers = [],
- elementMatchers = [],
- cached = compilerCache[ selector + " " ];
-
- if ( !cached ) {
- // Generate a function of recursive functions that can be used to check each element
- if ( !match ) {
- match = tokenize( selector );
- }
- i = match.length;
- while ( i-- ) {
- cached = matcherFromTokens( match[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
-
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-
- // Save selector and tokenization
- cached.selector = selector;
- }
- return cached;
-};
-
-/**
- * A low-level selection function that works with Sizzle's compiled
- * selector functions
- * @param {String|Function} selector A selector or a pre-compiled
- * selector function built with Sizzle.compile
- * @param {Element} context
- * @param {Array} [results]
- * @param {Array} [seed] A set of elements to match against
- */
-select = Sizzle.select = function( selector, context, results, seed ) {
- var i, tokens, token, type, find,
- compiled = typeof selector === "function" && selector,
- match = !seed && tokenize( (selector = compiled.selector || selector) );
-
- results = results || [];
-
- // Try to minimize operations if there is only one selector in the list and no seed
- // (the latter of which guarantees us context)
- if ( match.length === 1 ) {
-
- // Reduce context if the leading compound selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- support.getById && 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( div1 ) {
- // Should return 1, but returns 4 (following)
- return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( div ) {
- div.innerHTML = "<a href='#'></a>";
- return div.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( div ) {
- div.innerHTML = "<input/>";
- div.firstChild.setAttribute( "value", "" );
- return div.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( div ) {
- return div.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;
-jQuery.expr[ ":" ] = jQuery.expr.pseudos;
-jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-
-var dir = function( elem, dir, until ) {
- var matched = [],
- truncate = until !== undefined;
-
- while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
- if ( elem.nodeType === 1 ) {
- if ( truncate && jQuery( elem ).is( until ) ) {
- break;
- }
- matched.push( elem );
- }
- }
- return matched;
-};
-
-
-var siblings = function( n, elem ) {
- var matched = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- matched.push( n );
- }
- }
-
- return matched;
-};
-
-
-var rneedsContext = jQuery.expr.match.needsContext;
-
-var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
-
-
-
-var risSimple = /^.[^:#\[\.,]*$/;
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep( elements, function( elem, i ) {
- /* jshint -W018 */
- return !!qualifier.call( elem, i, elem ) !== not;
- } );
-
- }
-
- if ( qualifier.nodeType ) {
- return jQuery.grep( elements, function( elem ) {
- return ( elem === qualifier ) !== not;
- } );
-
- }
-
- if ( typeof qualifier === "string" ) {
- if ( risSimple.test( qualifier ) ) {
- return jQuery.filter( qualifier, elements, not );
- }
-
- qualifier = jQuery.filter( qualifier, elements );
- }
-
- return jQuery.grep( elements, function( elem ) {
- return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not;
- } );
-}
-
-jQuery.filter = function( expr, elems, not ) {
- var elem = elems[ 0 ];
-
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 && elem.nodeType === 1 ?
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
- return elem.nodeType === 1;
- } ) );
-};
-
-jQuery.fn.extend( {
- find: function( selector ) {
- var i,
- ret = [],
- self = this,
- len = self.length;
-
- 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;
- }
- }
- } ) );
- }
-
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, self[ i ], ret );
- }
-
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = this.selector ? this.selector + " " + selector : selector;
- return 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 <tag> to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
- init = jQuery.fn.init = function( selector, context, root ) {
- var match, elem;
-
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
-
- // 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.charAt( 0 ) === "<" &&
- selector.charAt( selector.length - 1 ) === ">" &&
- selector.length >= 3 ) {
-
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
-
- } else {
- match = rquickExpr.exec( selector );
- }
-
- // Match html or make sure no context is specified for #id
- if ( match && ( match[ 1 ] || !context ) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[ 1 ] ) {
- context = context instanceof jQuery ? context[ 0 ] : context;
-
- // scripts is true for back-compat
- // Intentionally let the error be thrown if parseHTML is not present
- jQuery.merge( this, jQuery.parseHTML(
- match[ 1 ],
- context && context.nodeType ? context.ownerDocument || context : document,
- true
- ) );
-
- // HANDLE: $(html, props)
- if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
- for ( match in context ) {
-
- // Properties of context are called as methods if possible
- if ( jQuery.isFunction( this[ match ] ) ) {
- this[ match ]( context[ match ] );
-
- // ...and otherwise set as attributes
- } else {
- this.attr( match, context[ match ] );
- }
- }
- }
-
- return this;
-
- // HANDLE: $(#id)
- } else {
- elem = document.getElementById( match[ 2 ] );
-
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
-
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id !== match[ 2 ] ) {
- return rootjQuery.find( selector );
- }
-
- // Otherwise, we inject the element directly into the jQuery object
- this.length = 1;
- this[ 0 ] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || 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.context = this[ 0 ] = selector;
- this.length = 1;
- return this;
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return typeof root.ready !== "undefined" ?
- root.ready( selector ) :
-
- // Execute immediately if ready is not present
- selector( jQuery );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- 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 i,
- targets = jQuery( target, this ),
- len = targets.length;
-
- return this.filter( function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( this, targets[ i ] ) ) {
- return true;
- }
- }
- } );
- },
-
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- matched = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( ; i < l; i++ ) {
- for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
-
- // Always skip document fragments
- if ( cur.nodeType < 11 && ( pos ?
- pos.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 matched set of elements
- index: function( elem ) {
-
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
- }
-
- // index in selector
- if ( typeof elem === "string" ) {
- return jQuery.inArray( this[ 0 ], jQuery( elem ) );
- }
-
- // Locate the position of the desired element
- return jQuery.inArray(
-
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[ 0 ] : elem, this );
- },
-
- add: function( selector, context ) {
- 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 ) {
- do {
- cur = cur[ dir ];
- } while ( cur && cur.nodeType !== 1 );
-
- return cur;
-}
-
-jQuery.each( {
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return siblings( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return siblings( elem.firstChild );
- },
- contents: function( elem ) {
- return jQuery.nodeName( elem, "iframe" ) ?
- elem.contentDocument || elem.contentWindow.document :
- jQuery.merge( [], elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var ret = jQuery.map( this, fn, until );
-
- if ( name.slice( -5 ) !== "Until" ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- ret = jQuery.filter( selector, ret );
- }
-
- if ( this.length > 1 ) {
-
- // Remove duplicates
- if ( !guaranteedUnique[ name ] ) {
- ret = jQuery.uniqueSort( ret );
- }
-
- // Reverse order for parents* and prev-derivatives
- if ( rparentsprev.test( name ) ) {
- ret = ret.reverse();
- }
- }
-
- return this.pushStack( ret );
- };
-} );
-var rnotwhite = ( /\S+/g );
-
-
-
-// Convert String-formatted options into Object-formatted ones
-function createOptions( options ) {
- var object = {};
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
- object[ flag ] = true;
- } );
- return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- * options: an optional list of space-separated options that will change how
- * the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
- // Convert options from String-formatted to Object-formatted if needed
- // (we check in cache first)
- options = typeof options === "string" ?
- createOptions( options ) :
- jQuery.extend( {}, options );
-
- var // Flag to know if list is currently firing
- firing,
-
- // Last fire value for non-forgettable lists
- memory,
-
- // Flag to know if list was already fired
- fired,
-
- // Flag to prevent firing
- locked,
-
- // Actual callback list
- list = [],
-
- // Queue of execution data for repeatable lists
- queue = [],
-
- // Index of currently firing callback (modified by add/remove as needed)
- firingIndex = -1,
-
- // Fire callbacks
- fire = function() {
-
- // Enforce single-firing
- locked = options.once;
-
- // Execute callbacks for all pending executions,
- // respecting firingIndex overrides and runtime changes
- fired = firing = true;
- for ( ; queue.length; firingIndex = -1 ) {
- memory = queue.shift();
- while ( ++firingIndex < list.length ) {
-
- // Run callback and check for early termination
- if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
- options.stopOnFalse ) {
-
- // Jump to end and forget the data so .add doesn't re-fire
- firingIndex = list.length;
- memory = false;
- }
- }
- }
-
- // Forget the data if we're done with it
- if ( !options.memory ) {
- memory = false;
- }
-
- firing = false;
-
- // Clean up if we're done firing for good
- if ( locked ) {
-
- // Keep an empty list if we have data for future add calls
- if ( memory ) {
- list = [];
-
- // Otherwise, this object is spent
- } else {
- list = "";
- }
- }
- },
-
- // Actual Callbacks object
- self = {
-
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
-
- // If we have memory from a past run, we should fire after adding
- if ( memory && !firing ) {
- firingIndex = list.length - 1;
- queue.push( memory );
- }
-
- ( function add( args ) {
- jQuery.each( args, function( _, arg ) {
- if ( jQuery.isFunction( arg ) ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
-
- // Inspect recursively
- add( arg );
- }
- } );
- } )( arguments );
-
- if ( memory && !firing ) {
- fire();
- }
- }
- return this;
- },
-
- // Remove a callback from the list
- remove: function() {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
-
- // Handle firing indexes
- if ( index <= firingIndex ) {
- firingIndex--;
- }
- }
- } );
- return this;
- },
-
- // Check if a given callback is in the list.
- // If no argument is given, return whether or not list has callbacks attached.
- has: function( fn ) {
- return fn ?
- jQuery.inArray( fn, list ) > -1 :
- list.length > 0;
- },
-
- // Remove all callbacks from the list
- empty: function() {
- if ( list ) {
- list = [];
- }
- return this;
- },
-
- // Disable .fire and .add
- // Abort any current/pending executions
- // Clear all callbacks and values
- disable: function() {
- locked = queue = [];
- list = memory = "";
- return this;
- },
- disabled: function() {
- return !list;
- },
-
- // Disable .fire
- // Also disable .add unless we have memory (since it would have no effect)
- // Abort any pending executions
- lock: function() {
- locked = true;
- if ( !memory ) {
- self.disable();
- }
- 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;
-};
-
-
-jQuery.extend( {
-
- Deferred: function( func ) {
- var tuples = [
-
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred( function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
-
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[ 1 ] ]( function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .progress( newDefer.notify )
- .done( newDefer.resolve )
- .fail( newDefer.reject );
- } else {
- newDefer[ tuple[ 0 ] + "With" ](
- this === promise ? newDefer.promise() : this,
- fn ? [ returned ] : arguments
- );
- }
- } );
- } );
- fns = null;
- } ).promise();
- },
-
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- return obj != null ? jQuery.extend( obj, promise ) : promise;
- }
- },
- deferred = {};
-
- // Keep pipe for back-compat
- promise.pipe = promise.then;
-
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
-
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[ 1 ] ] = list.add;
-
- // Handle state
- if ( stateString ) {
- list.add( function() {
-
- // state = [ resolved | rejected ]
- state = stateString;
-
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
-
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[ 0 ] ] = function() {
- deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
- } );
-
- // Make the deferred a promise
- promise.promise( deferred );
-
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
-
- // All done!
- return deferred;
- },
-
- // Deferred helper
- when: function( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = slice.call( arguments ),
- length = resolveValues.length,
-
- // the count of uncompleted subordinates
- remaining = length !== 1 ||
- ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
- // the master Deferred.
- // If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
- if ( values === progressValues ) {
- deferred.notifyWith( contexts, values );
-
- } else if ( !( --remaining ) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
-
- progressValues, progressContexts, resolveContexts;
-
- // add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .progress( updateFunc( i, progressContexts, progressValues ) )
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject );
- } else {
- --remaining;
- }
- }
- }
-
- // if we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
-
- return deferred.promise();
- }
-} );
-
-
-// The deferred used on DOM ready
-var readyList;
-
-jQuery.fn.ready = function( fn ) {
-
- // Add the callback
- jQuery.ready.promise().done( fn );
-
- return this;
-};
-
-jQuery.extend( {
-
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
-
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // Handle when the DOM is ready
- ready: function( wait ) {
-
- // Abort if there are pending holds or we're already ready
- if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
- return;
- }
-
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
-
- // If there are functions bound, to execute
- readyList.resolveWith( document, [ jQuery ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.triggerHandler ) {
- jQuery( document ).triggerHandler( "ready" );
- jQuery( document ).off( "ready" );
- }
- }
-} );
-
-/**
- * Clean-up method for dom ready events
- */
-function detach() {
- if ( document.addEventListener ) {
- document.removeEventListener( "DOMContentLoaded", completed );
- window.removeEventListener( "load", completed );
-
- } else {
- document.detachEvent( "onreadystatechange", completed );
- window.detachEvent( "onload", completed );
- }
-}
-
-/**
- * The ready event handler and self cleanup method
- */
-function completed() {
-
- // readyState === "complete" is good enough for us to call the dom ready in oldIE
- if ( document.addEventListener ||
- window.event.type === "load" ||
- document.readyState === "complete" ) {
-
- detach();
- jQuery.ready();
- }
-}
-
-jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
-
- readyList = jQuery.Deferred();
-
- // Catch cases where $(document).ready() is called
- // after the browser event has already occurred.
- // Support: IE6-10
- // 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 );
-
- // Standards-based browsers support DOMContentLoaded
- } else if ( document.addEventListener ) {
-
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed );
-
- // If IE event model is used
- } else {
-
- // Ensure firing before onload, maybe late but safe also for iframes
- document.attachEvent( "onreadystatechange", completed );
-
- // A fallback to window.onload, that will always work
- window.attachEvent( "onload", completed );
-
- // If IE and not a frame
- // continually check to see if the document is ready
- var top = false;
-
- try {
- top = window.frameElement == null && document.documentElement;
- } catch ( e ) {}
-
- if ( top && top.doScroll ) {
- ( function doScrollCheck() {
- if ( !jQuery.isReady ) {
-
- try {
-
- // Use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- top.doScroll( "left" );
- } catch ( e ) {
- return window.setTimeout( doScrollCheck, 50 );
- }
-
- // detach all dom ready events
- detach();
-
- // and execute any waiting functions
- jQuery.ready();
- }
- } )();
- }
- }
- }
- return readyList.promise( obj );
-};
-
-// Kick off the DOM ready check even if the user does not
-jQuery.ready.promise();
-
-
-
-
-// Support: IE<9
-// Iteration over object's inherited properties before its own
-var i;
-for ( i in jQuery( support ) ) {
- break;
-}
-support.ownFirst = i === "0";
-
-// Note: most support tests are defined in their respective modules.
-// false until the test is run
-support.inlineBlockNeedsLayout = false;
-
-// Execute ASAP in case we need to set body.style.zoom
-jQuery( function() {
-
- // Minified: var a,b,c,d
- var val, div, body, container;
-
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body || !body.style ) {
-
- // Return for frameset docs that don't have a body
- return;
- }
-
- // Setup
- div = document.createElement( "div" );
- container = document.createElement( "div" );
- container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
- body.appendChild( container ).appendChild( div );
-
- if ( typeof div.style.zoom !== "undefined" ) {
-
- // Support: IE<8
- // Check if natively block-level elements act like inline-block
- // elements when setting their display to 'inline' and giving
- // them layout
- div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
-
- support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
- if ( val ) {
-
- // Prevent IE 6 from affecting layout for positioned elements #11048
- // Prevent IE from shrinking the body in IE 7 mode #12869
- // Support: IE<8
- body.style.zoom = 1;
- }
- }
-
- body.removeChild( container );
-} );
-
-
-( function() {
- var div = document.createElement( "div" );
-
- // Support: IE<9
- support.deleteExpando = true;
- try {
- delete div.test;
- } catch ( e ) {
- support.deleteExpando = false;
- }
-
- // Null elements to avoid leaks in IE.
- div = null;
-} )();
-var acceptData = function( elem ) {
- var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
- nodeType = +elem.nodeType || 1;
-
- // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
- return nodeType !== 1 && nodeType !== 9 ?
- false :
-
- // Nodes accept data unless otherwise specified; rejection can be conditional
- !noData || noData !== true && elem.getAttribute( "classid" ) === noData;
-};
-
-
-
-
-var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- rmultiDash = /([A-Z])/g;
-
-function dataAttr( elem, key, data ) {
-
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
-
- var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
-
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch ( e ) {}
-
- // Make sure we set the data so it isn't changed later
- jQuery.data( elem, key, data );
-
- } else {
- data = undefined;
- }
- }
-
- return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
- var name;
- for ( name in obj ) {
-
- // if the public data object is empty, the private is still empty
- if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
- continue;
- }
- if ( name !== "toJSON" ) {
- return false;
- }
- }
-
- return true;
-}
-
-function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
- if ( !acceptData( elem ) ) {
- return;
- }
-
- var ret, thisCache,
- internalKey = jQuery.expando,
-
- // We have to handle DOM nodes and JS objects differently because IE6-7
- // can't GC object references properly across the DOM-JS boundary
- isNode = elem.nodeType,
-
- // Only DOM nodes need the global jQuery cache; JS object data is
- // attached directly to the object so GC can occur automatically
- cache = isNode ? jQuery.cache : elem,
-
- // Only defining an ID for JS objects if its cache already exists allows
- // the code to shortcut on the same path as a DOM node with no cache
- id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
-
- // Avoid doing any more work than we need to when trying to get data on an
- // object that has no data at all
- if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
- data === undefined && typeof name === "string" ) {
- return;
- }
-
- if ( !id ) {
-
- // Only DOM nodes need a new unique ID for each element since their data
- // ends up in the global cache
- if ( isNode ) {
- id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
- } else {
- id = internalKey;
- }
- }
-
- if ( !cache[ id ] ) {
-
- // Avoid exposing jQuery metadata on plain JS objects when the object
- // is serialized using JSON.stringify
- cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
- }
-
- // An object can be passed to jQuery.data instead of a key/value pair; this gets
- // shallow copied over onto the existing cache
- if ( typeof name === "object" || typeof name === "function" ) {
- if ( pvt ) {
- cache[ id ] = jQuery.extend( cache[ id ], name );
- } else {
- cache[ id ].data = jQuery.extend( cache[ id ].data, name );
- }
- }
-
- thisCache = cache[ id ];
-
- // jQuery data() is stored in a separate object inside the object's internal data
- // cache in order to avoid key collisions between internal data and user-defined
- // data.
- if ( !pvt ) {
- if ( !thisCache.data ) {
- thisCache.data = {};
- }
-
- thisCache = thisCache.data;
- }
-
- if ( data !== undefined ) {
- thisCache[ jQuery.camelCase( name ) ] = data;
- }
-
- // Check for both converted-to-camel and non-converted data property names
- // If a data property was specified
- if ( typeof name === "string" ) {
-
- // First Try to find as-is property data
- ret = thisCache[ name ];
-
- // Test for null|undefined property data
- if ( ret == null ) {
-
- // Try to find the camelCased property
- ret = thisCache[ jQuery.camelCase( name ) ];
- }
- } else {
- ret = thisCache;
- }
-
- return ret;
-}
-
-function internalRemoveData( elem, name, pvt ) {
- if ( !acceptData( elem ) ) {
- return;
- }
-
- var thisCache, i,
- isNode = elem.nodeType,
-
- // See jQuery.data for more information
- cache = isNode ? jQuery.cache : elem,
- id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
- // If there is already no cache entry for this object, there is no
- // purpose in continuing
- if ( !cache[ id ] ) {
- return;
- }
-
- if ( name ) {
-
- thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
- if ( thisCache ) {
-
- // Support array or space separated string names for data keys
- if ( !jQuery.isArray( name ) ) {
-
- // try the string as a key before any manipulation
- if ( name in thisCache ) {
- name = [ name ];
- } else {
-
- // split the camel cased version by spaces unless a key with the spaces exists
- name = jQuery.camelCase( name );
- if ( name in thisCache ) {
- name = [ name ];
- } else {
- name = name.split( " " );
- }
- }
- } else {
-
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = name.concat( jQuery.map( name, jQuery.camelCase ) );
- }
-
- i = name.length;
- while ( i-- ) {
- delete thisCache[ name[ i ] ];
- }
-
- // If there is no data left in the cache, we want to continue
- // and let the cache object itself get destroyed
- if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
- return;
- }
- }
- }
-
- // See jQuery.data for more information
- if ( !pvt ) {
- delete cache[ id ].data;
-
- // Don't destroy the parent cache unless the internal data object
- // had been the only thing left in it
- if ( !isEmptyDataObject( cache[ id ] ) ) {
- return;
- }
- }
-
- // Destroy the cache
- if ( isNode ) {
- jQuery.cleanData( [ elem ], true );
-
- // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
- /* jshint eqeqeq: false */
- } else if ( support.deleteExpando || cache != cache.window ) {
- /* jshint eqeqeq: true */
- delete cache[ id ];
-
- // When all else fails, undefined
- } else {
- cache[ id ] = undefined;
- }
-}
-
-jQuery.extend( {
- cache: {},
-
- // The following elements (space-suffixed to avoid Object.prototype collisions)
- // throw uncatchable exceptions if you attempt to set expando properties
- noData: {
- "applet ": true,
- "embed ": true,
-
- // ...but Flash objects (which have this classid) *can* handle expandos
- "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- },
-
- hasData: function( elem ) {
- elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
- return !!elem && !isEmptyDataObject( elem );
- },
-
- data: function( elem, name, data ) {
- return internalData( elem, name, data );
- },
-
- removeData: function( elem, name ) {
- return internalRemoveData( elem, name );
- },
-
- // For internal use only.
- _data: function( elem, name, data ) {
- return internalData( elem, name, data, true );
- },
-
- _removeData: function( elem, name ) {
- return internalRemoveData( elem, name, true );
- }
-} );
-
-jQuery.fn.extend( {
- data: function( key, value ) {
- var i, name, data,
- elem = this[ 0 ],
- attrs = elem && elem.attributes;
-
- // Special expections of .data basically thwart jQuery.access,
- // so implement the relevant behavior ourselves
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = jQuery.data( elem );
-
- if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
- i = attrs.length;
- while ( i-- ) {
-
- // Support: IE11+
- // The attrs elements can be null (#14894)
- if ( attrs[ i ] ) {
- name = attrs[ i ].name;
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.slice( 5 ) );
- dataAttr( elem, name, data[ name ] );
- }
- }
- }
- jQuery._data( elem, "parsedAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each( function() {
- jQuery.data( this, key );
- } );
- }
-
- return arguments.length > 1 ?
-
- // Sets one value
- this.each( function() {
- jQuery.data( this, key, value );
- } ) :
-
- // Gets one value
- // Try to fetch any internally stored data first
- elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
- },
-
- removeData: function( key ) {
- return this.each( function() {
- jQuery.removeData( this, key );
- } );
- }
-} );
-
-
-jQuery.extend( {
- queue: function( elem, type, data ) {
- var queue;
-
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = jQuery._data( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray( data ) ) {
- queue = jQuery._data( elem, type, jQuery.makeArray( data ) );
- } else {
- queue.push( data );
- }
- }
- return queue || [];
- }
- },
-
- dequeue: function( elem, type ) {
- type = type || "fx";
-
- var queue = jQuery.queue( elem, type ),
- startLength = queue.length,
- fn = queue.shift(),
- hooks = jQuery._queueHooks( elem, type ),
- next = function() {
- jQuery.dequeue( elem, type );
- };
-
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- startLength--;
- }
-
- if ( fn ) {
-
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
-
- // clear up the last queue stop function
- delete hooks.stop;
- fn.call( elem, next, hooks );
- }
-
- if ( !startLength && hooks ) {
- hooks.empty.fire();
- }
- },
-
- // not intended for public consumption - generates a queueHooks object,
- // or returns the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return jQuery._data( elem, key ) || jQuery._data( elem, key, {
- empty: jQuery.Callbacks( "once memory" ).add( function() {
- jQuery._removeData( elem, type + "queue" );
- jQuery._removeData( elem, key );
- } )
- } );
- }
-} );
-
-jQuery.fn.extend( {
- queue: function( type, data ) {
- var setter = 2;
-
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
-
- if ( arguments.length < setter ) {
- return jQuery.queue( this[ 0 ], type );
- }
-
- return data === undefined ?
- this :
- this.each( function() {
- var queue = jQuery.queue( this, type, data );
-
- // ensure a hooks for this queue
- jQuery._queueHooks( this, type );
-
- if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- } );
- },
- dequeue: function( type ) {
- return this.each( function() {
- jQuery.dequeue( this, type );
- } );
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
-
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, obj ) {
- var tmp,
- count = 1,
- defer = jQuery.Deferred(),
- elements = this,
- i = this.length,
- resolve = function() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- };
-
- if ( typeof type !== "string" ) {
- obj = type;
- type = undefined;
- }
- type = type || "fx";
-
- while ( i-- ) {
- tmp = jQuery._data( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
-} );
-
-
-( function() {
- var shrinkWrapBlocksVal;
-
- support.shrinkWrapBlocks = function() {
- if ( shrinkWrapBlocksVal != null ) {
- return shrinkWrapBlocksVal;
- }
-
- // Will be changed later if needed.
- shrinkWrapBlocksVal = false;
-
- // Minified: var b,c,d
- var div, body, container;
-
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body || !body.style ) {
-
- // Test fired too early or in an unsupported environment, exit.
- return;
- }
-
- // Setup
- div = document.createElement( "div" );
- container = document.createElement( "div" );
- container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
- body.appendChild( container ).appendChild( div );
-
- // Support: IE6
- // Check if elements with layout shrink-wrap their children
- if ( typeof div.style.zoom !== "undefined" ) {
-
- // Reset CSS: box-sizing; display; margin; border
- div.style.cssText =
-
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
- "box-sizing:content-box;display:block;margin:0;border:0;" +
- "padding:1px;width:1px;zoom:1";
- div.appendChild( document.createElement( "div" ) ).style.width = "5px";
- shrinkWrapBlocksVal = div.offsetWidth !== 3;
- }
-
- body.removeChild( container );
-
- return shrinkWrapBlocksVal;
- };
-
-} )();
-var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
-
-var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
-
-
-var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
-
-var isHidden = function( elem, el ) {
-
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" ||
- !jQuery.contains( elem.ownerDocument, elem );
- };
-
-
-
-function adjustCSS( elem, prop, valueParts, tween ) {
- var adjusted,
- scale = 1,
- maxIterations = 20,
- currentValue = tween ?
- function() { return tween.cur(); } :
- function() { return jQuery.css( elem, prop, "" ); },
- initial = currentValue(),
- unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
-
- // Starting value computation is required for potential unit mismatches
- initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
- rcssNum.exec( jQuery.css( elem, prop ) );
-
- if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
-
- // Trust units reported by jQuery.css
- unit = unit || initialInUnit[ 3 ];
-
- // Make sure we update the tween properties later on
- valueParts = valueParts || [];
-
- // Iteratively approximate from a nonzero starting point
- initialInUnit = +initial || 1;
-
- do {
-
- // If previous iteration zeroed out, double until we get *something*.
- // Use string for doubling so we don't accidentally see scale as unchanged below
- scale = scale || ".5";
-
- // Adjust and apply
- initialInUnit = initialInUnit / scale;
- jQuery.style( elem, prop, initialInUnit + unit );
-
- // Update scale, tolerating zero or NaN from tween.cur()
- // Break the loop if scale is unchanged or perfect, or if we've just had enough.
- } while (
- scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
- );
- }
-
- if ( valueParts ) {
- initialInUnit = +initialInUnit || +initial || 0;
-
- // Apply relative offset (+=/-=) if specified
- adjusted = valueParts[ 1 ] ?
- initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
- +valueParts[ 2 ];
- if ( tween ) {
- tween.unit = unit;
- tween.start = initialInUnit;
- tween.end = adjusted;
- }
- }
- return adjusted;
-}
-
-
-// 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,
- length = elems.length,
- bulk = key == null;
-
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- access( elems, fn, i, key[ i ], true, emptyGet, raw );
- }
-
- // Sets one value
- } else if ( value !== undefined ) {
- chainable = true;
-
- if ( !jQuery.isFunction( value ) ) {
- raw = true;
- }
-
- if ( bulk ) {
-
- // Bulk operations run against the entire set
- if ( raw ) {
- fn.call( elems, value );
- fn = null;
-
- // ...except when executing function values
- } else {
- bulk = fn;
- fn = function( elem, key, value ) {
- return bulk.call( jQuery( elem ), value );
- };
- }
- }
-
- if ( fn ) {
- for ( ; i < length; i++ ) {
- fn(
- elems[ i ],
- key,
- raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) )
- );
- }
- }
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- length ? fn( elems[ 0 ], key ) : emptyGet;
-};
-var rcheckableType = ( /^(?:checkbox|radio)$/i );
-
-var rtagName = ( /<([\w:-]+)/ );
-
-var rscriptType = ( /^$|\/(?:java|ecma)script/i );
-
-var rleadingWhitespace = ( /^\s+/ );
-
-var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
- "details|dialog|figcaption|figure|footer|header|hgroup|main|" +
- "mark|meter|nav|output|picture|progress|section|summary|template|time|video";
-
-
-
-function createSafeFragment( document ) {
- var list = nodeNames.split( "|" ),
- safeFrag = document.createDocumentFragment();
-
- if ( safeFrag.createElement ) {
- while ( list.length ) {
- safeFrag.createElement(
- list.pop()
- );
- }
- }
- return safeFrag;
-}
-
-
-( function() {
- var div = document.createElement( "div" ),
- fragment = document.createDocumentFragment(),
- input = document.createElement( "input" );
-
- // Setup
- div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
-
- // IE strips leading whitespace when .innerHTML is used
- support.leadingWhitespace = div.firstChild.nodeType === 3;
-
- // Make sure that tbody elements aren't automatically inserted
- // IE will insert them into empty tables
- support.tbody = !div.getElementsByTagName( "tbody" ).length;
-
- // Make sure that link elements get serialized correctly by innerHTML
- // This requires a wrapper element in IE
- support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;
-
- // Makes sure cloning an html5 element does not cause problems
- // Where outerHTML is undefined, this still works
- support.html5Clone =
- document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>";
-
- // Check if a disconnected checkbox will retain its checked
- // value of true after appended to the DOM (IE6/7)
- input.type = "checkbox";
- input.checked = true;
- fragment.appendChild( input );
- support.appendChecked = input.checked;
-
- // Make sure textarea (and checkbox) defaultValue is properly cloned
- // Support: IE6-IE11+
- div.innerHTML = "<textarea>x</textarea>";
- support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-
- // #11217 - WebKit loses check when the name is after the checked attribute
- fragment.appendChild( div );
-
- // Support: Windows Web Apps (WWA)
- // `name` and `type` must use .setAttribute for WWA (#14901)
- input = document.createElement( "input" );
- input.setAttribute( "type", "radio" );
- input.setAttribute( "checked", "checked" );
- input.setAttribute( "name", "t" );
-
- div.appendChild( input );
-
- // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
- // old WebKit doesn't clone checked state correctly in fragments
- support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Support: IE<9
- // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+
- support.noCloneEvent = !!div.addEventListener;
-
- // Support: IE<9
- // Since attributes and properties are the same in IE,
- // cleanData must set properties to undefined rather than use removeAttribute
- div[ jQuery.expando ] = 1;
- support.attributes = !div.getAttribute( jQuery.expando );
-} )();
-
-
-// We have to close these tags to support XHTML (#13200)
-var wrapMap = {
- option: [ 1, "<select multiple='multiple'>", "</select>" ],
- legend: [ 1, "<fieldset>", "</fieldset>" ],
- area: [ 1, "<map>", "</map>" ],
-
- // Support: IE8
- param: [ 1, "<object>", "</object>" ],
- thead: [ 1, "<table>", "</table>" ],
- tr: [ 2, "<table><tbody>", "</tbody></table>" ],
- col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
- td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-
- // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
- // unless wrapped in a div with non-breaking characters in front of it.
- _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
-};
-
-// Support: IE8-IE9
-wrapMap.optgroup = wrapMap.option;
-
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-
-function getAll( context, tag ) {
- var elems, elem,
- i = 0,
- found = typeof context.getElementsByTagName !== "undefined" ?
- context.getElementsByTagName( tag || "*" ) :
- typeof context.querySelectorAll !== "undefined" ?
- context.querySelectorAll( tag || "*" ) :
- undefined;
-
- if ( !found ) {
- for ( found = [], elems = context.childNodes || context;
- ( elem = elems[ i ] ) != null;
- i++
- ) {
- if ( !tag || jQuery.nodeName( elem, tag ) ) {
- found.push( elem );
- } else {
- jQuery.merge( found, getAll( elem, tag ) );
- }
- }
- }
-
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
- jQuery.merge( [ context ], found ) :
- found;
-}
-
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
- var elem,
- i = 0;
- for ( ; ( elem = elems[ i ] ) != null; i++ ) {
- jQuery._data(
- elem,
- "globalEval",
- !refElements || jQuery._data( refElements[ i ], "globalEval" )
- );
- }
-}
-
-
-var rhtml = /<|&#?\w+;/,
- rtbody = /<tbody/i;
-
-function fixDefaultChecked( elem ) {
- if ( rcheckableType.test( elem.type ) ) {
- elem.defaultChecked = elem.checked;
- }
-}
-
-function buildFragment( elems, context, scripts, selection, ignored ) {
- var j, elem, contains,
- tmp, tag, tbody, wrap,
- l = elems.length,
-
- // Ensure a safe fragment
- safe = createSafeFragment( context ),
-
- nodes = [],
- i = 0;
-
- for ( ; i < l; i++ ) {
- elem = elems[ i ];
-
- if ( elem || elem === 0 ) {
-
- // Add nodes directly
- if ( jQuery.type( elem ) === "object" ) {
- jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
-
- // Convert non-html into a text node
- } else if ( !rhtml.test( elem ) ) {
- nodes.push( context.createTextNode( elem ) );
-
- // Convert html into DOM nodes
- } else {
- tmp = tmp || safe.appendChild( context.createElement( "div" ) );
-
- // Deserialize a standard representation
- tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
- wrap = wrapMap[ tag ] || wrapMap._default;
-
- tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
-
- // Descend through wrappers to the right content
- j = wrap[ 0 ];
- while ( j-- ) {
- tmp = tmp.lastChild;
- }
-
- // Manually add leading whitespace removed by IE
- if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
- nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) );
- }
-
- // Remove IE's autoinserted <tbody> from table fragments
- if ( !support.tbody ) {
-
- // String was a <table>, *may* have spurious <tbody>
- elem = tag === "table" && !rtbody.test( elem ) ?
- tmp.firstChild :
-
- // String was a bare <thead> or <tfoot>
- wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ?
- tmp :
- 0;
-
- j = elem && elem.childNodes.length;
- while ( j-- ) {
- if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) &&
- !tbody.childNodes.length ) {
-
- elem.removeChild( tbody );
- }
- }
- }
-
- jQuery.merge( nodes, tmp.childNodes );
-
- // Fix #12392 for WebKit and IE > 9
- tmp.textContent = "";
-
- // Fix #12392 for oldIE
- while ( tmp.firstChild ) {
- tmp.removeChild( tmp.firstChild );
- }
-
- // Remember the top-level container for proper cleanup
- tmp = safe.lastChild;
- }
- }
- }
-
- // Fix #11356: Clear elements from fragment
- if ( tmp ) {
- safe.removeChild( tmp );
- }
-
- // Reset defaultChecked for any radios and checkboxes
- // about to be appended to the DOM in IE 6/7 (#8060)
- if ( !support.appendChecked ) {
- jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
- }
-
- i = 0;
- while ( ( elem = nodes[ i++ ] ) ) {
-
- // Skip elements already in the context collection (trac-4087)
- if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
- if ( ignored ) {
- ignored.push( elem );
- }
-
- continue;
- }
-
- contains = jQuery.contains( elem.ownerDocument, elem );
-
- // Append to fragment
- tmp = getAll( safe.appendChild( elem ), "script" );
-
- // Preserve script evaluation history
- if ( contains ) {
- setGlobalEval( tmp );
- }
-
- // Capture executables
- if ( scripts ) {
- j = 0;
- while ( ( elem = tmp[ j++ ] ) ) {
- if ( rscriptType.test( elem.type || "" ) ) {
- scripts.push( elem );
- }
- }
- }
- }
-
- tmp = null;
-
- return safe;
-}
-
-
-( function() {
- var i, eventName,
- div = document.createElement( "div" );
-
- // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)
- for ( i in { submit: true, change: true, focusin: true } ) {
- eventName = "on" + i;
-
- if ( !( support[ i ] = eventName in window ) ) {
-
- // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
- div.setAttribute( eventName, "t" );
- support[ i ] = div.attributes[ eventName ].expando === false;
- }
- }
-
- // Null elements to avoid leaks in IE.
- div = null;
-} )();
-
-
-var rformElems = /^(?:input|select|textarea)$/i,
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
-
-function returnTrue() {
- return true;
-}
-
-function returnFalse() {
- return false;
-}
-
-// Support: IE9
-// See #13393 for more info
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
-function on( elem, types, selector, data, fn, one ) {
- var origFn, type;
-
- // Types can be a map of types/handlers
- if ( typeof types === "object" ) {
-
- // ( types-Object, selector, data )
- if ( typeof selector !== "string" ) {
-
- // ( types-Object, data )
- data = data || selector;
- selector = undefined;
- }
- for ( type in types ) {
- on( elem, type, selector, data, types[ type ], one );
- }
- return elem;
- }
-
- if ( data == null && fn == null ) {
-
- // ( types, fn )
- fn = selector;
- data = selector = undefined;
- } else if ( fn == null ) {
- if ( typeof selector === "string" ) {
-
- // ( types, selector, fn )
- fn = data;
- data = undefined;
- } else {
-
- // ( types, data, fn )
- fn = data;
- data = selector;
- selector = undefined;
- }
- }
- if ( fn === false ) {
- fn = returnFalse;
- } else if ( !fn ) {
- return elem;
- }
-
- if ( one === 1 ) {
- origFn = fn;
- fn = function( event ) {
-
- // Can use an empty set, since event contains the info
- jQuery().off( event );
- return origFn.apply( this, arguments );
- };
-
- // Use same guid so caller can remove using origFn
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
- }
- return elem.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- } );
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
- global: {},
-
- add: function( elem, types, handler, data, selector ) {
- var tmp, events, t, handleObjIn,
- special, eventHandle, handleObj,
- handlers, type, namespaces, origType,
- elemData = jQuery._data( elem );
-
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
- if ( !elemData ) {
- return;
- }
-
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
-
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
-
- // Init the element's event structure and main handler, if this is the first
- if ( !( events = elemData.events ) ) {
- events = elemData.events = {};
- }
- if ( !( eventHandle = elemData.handle ) ) {
- eventHandle = elemData.handle = function( e ) {
-
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== "undefined" &&
- ( !e || jQuery.event.triggered !== e.type ) ?
- jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
- undefined;
- };
-
- // Add elem as a property of the handle fn to prevent a memory leak
- // with IE non-native events
- eventHandle.elem = elem;
- }
-
- // Handle multiple events separated by a space
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // There *must* be a type, no attaching namespace-only handlers
- if ( !type ) {
- continue;
- }
-
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
-
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
-
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
-
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend( {
- type: type,
- origType: origType,
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
- namespace: namespaces.join( "." )
- }, handleObjIn );
-
- // Init the event handler queue if we're the first
- if ( !( handlers = events[ type ] ) ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
-
- // Only use addEventListener/attachEvent if the special events handler returns false
- if ( !special.setup ||
- special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-
- // Bind the global event handler to the element
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle, false );
-
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + type, eventHandle );
- }
- }
- }
-
- if ( special.add ) {
- special.add.call( elem, handleObj );
-
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
-
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
-
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
-
- // Nullify elem to prevent memory leaks in IE
- elem = null;
- },
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
- var j, handleObj, tmp,
- origCount, t, events,
- special, handlers, type,
- namespaces, origType,
- elemData = jQuery.hasData( elem ) && jQuery._data( elem );
-
- if ( !elemData || !( events = elemData.events ) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
-
- special = jQuery.event.special[ type ] || {};
- type = ( selector ? special.delegateType : special.bindType ) || type;
- handlers = events[ type ] || [];
- tmp = tmp[ 2 ] &&
- new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
-
- // Remove matching events
- origCount = j = handlers.length;
- while ( j-- ) {
- handleObj = handlers[ j ];
-
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector ||
- selector === "**" && handleObj.selector ) ) {
- handlers.splice( j, 1 );
-
- if ( handleObj.selector ) {
- handlers.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
-
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( origCount && !handlers.length ) {
- if ( !special.teardown ||
- special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
-
- jQuery.removeEvent( elem, type, elemData.handle );
- }
-
- delete events[ type ];
- }
- }
-
- // Remove the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- delete elemData.handle;
-
- // removeData also checks for emptiness and clears the expando if empty
- // so use it instead of delete
- jQuery._removeData( elem, "events" );
- }
- },
-
- trigger: function( event, data, elem, onlyHandlers ) {
- var handle, ontype, cur,
- bubbleType, special, tmp, i,
- eventPath = [ elem || document ],
- type = hasOwn.call( event, "type" ) ? event.type : event,
- namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
-
- cur = tmp = elem = elem || document;
-
- // Don't do events on text and comment nodes
- if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
- return;
- }
-
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
- return;
- }
-
- if ( type.indexOf( "." ) > -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 && !jQuery.isWindow( elem ) ) {
-
- bubbleType = special.delegateType || type;
- if ( !rfocusMorph.test( bubbleType + type ) ) {
- cur = cur.parentNode;
- }
- for ( ; cur; cur = cur.parentNode ) {
- eventPath.push( cur );
- tmp = cur;
- }
-
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
- if ( tmp === ( elem.ownerDocument || document ) ) {
- eventPath.push( tmp.defaultView || tmp.parentWindow || window );
- }
- }
-
- // Fire handlers on the event path
- i = 0;
- while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
-
- event.type = i > 1 ?
- bubbleType :
- special.bindType || type;
-
- // jQuery handler
- handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] &&
- jQuery._data( cur, "handle" );
-
- if ( handle ) {
- handle.apply( cur, data );
- }
-
- // Native handler
- handle = ontype && cur[ ontype ];
- if ( handle && 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 name as the event.
- // Can't use an .isFunction() check here because IE6/7 fails that test.
- // Don't do default actions on window, that's where global variables be (#6170)
- if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
-
- // Don't re-trigger an onFOO event when we call its FOO() method
- tmp = elem[ ontype ];
-
- if ( tmp ) {
- elem[ ontype ] = null;
- }
-
- // Prevent re-triggering of the same event, since we already bubbled it above
- jQuery.event.triggered = type;
- try {
- elem[ type ]();
- } catch ( e ) {
-
- // IE<9 dies on focus/blur to hidden element (#1486,#12518)
- // only reproducible on winXP IE8 native, not IE9 in IE8 mode
- }
- jQuery.event.triggered = undefined;
-
- if ( tmp ) {
- elem[ ontype ] = tmp;
- }
- }
- }
- }
-
- return event.result;
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
-
- var i, j, ret, matched, handleObj,
- handlerQueue = [],
- args = slice.call( arguments ),
- handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
- special = jQuery.event.special[ event.type ] || {};
-
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[ 0 ] = event;
- event.delegateTarget = this;
-
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
-
- // Determine handlers
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
- // Run delegates first; they may want to stop propagation beneath us
- i = 0;
- while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
- event.currentTarget = matched.elem;
-
- j = 0;
- while ( ( handleObj = matched.handlers[ j++ ] ) &&
- !event.isImmediatePropagationStopped() ) {
-
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
- // a subset or equal to those in the bound event (both can have no namespace).
- if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
-
- event.handleObj = handleObj;
- event.data = handleObj.data;
-
- ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
- handleObj.handler ).apply( matched.elem, args );
-
- if ( ret !== undefined ) {
- if ( ( event.result = ret ) === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
-
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
-
- return event.result;
- },
-
- handlers: function( event, handlers ) {
- var i, matches, sel, handleObj,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
-
- // Support (at least): Chrome, IE9
- // Find delegate handlers
- // Black-hole SVG <use> instance trees (#13180)
- //
- // Support: Firefox<=42+
- // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
- if ( delegateCount && cur.nodeType &&
- ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
-
- /* jshint eqeqeq: false */
- for ( ; cur != this; cur = cur.parentNode || this ) {
- /* jshint eqeqeq: true */
-
- // Don't check non-elements (#13208)
- // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
- if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
- matches = [];
- for ( i = 0; i < delegateCount; i++ ) {
- handleObj = handlers[ i ];
-
- // Don't conflict with Object.prototype properties (#13203)
- sel = handleObj.selector + " ";
-
- if ( matches[ sel ] === undefined ) {
- matches[ sel ] = handleObj.needsContext ?
- jQuery( sel, this ).index( cur ) > -1 :
- jQuery.find( sel, this, null, [ cur ] ).length;
- }
- if ( matches[ sel ] ) {
- matches.push( handleObj );
- }
- }
- if ( matches.length ) {
- handlerQueue.push( { elem: cur, handlers: matches } );
- }
- }
- }
- }
-
- // Add the remaining (directly-bound) handlers
- if ( delegateCount < handlers.length ) {
- handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
- }
-
- return handlerQueue;
- },
-
- fix: function( event ) {
- if ( event[ jQuery.expando ] ) {
- return event;
- }
-
- // Create a writable copy of the event object and normalize some properties
- var i, prop, copy,
- type = event.type,
- originalEvent = event,
- fixHook = this.fixHooks[ type ];
-
- if ( !fixHook ) {
- this.fixHooks[ type ] = fixHook =
- rmouseEvent.test( type ) ? this.mouseHooks :
- rkeyEvent.test( type ) ? this.keyHooks :
- {};
- }
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
- event = new jQuery.Event( originalEvent );
-
- i = copy.length;
- while ( i-- ) {
- prop = copy[ i ];
- event[ prop ] = originalEvent[ prop ];
- }
-
- // Support: IE<9
- // Fix target property (#1925)
- if ( !event.target ) {
- event.target = originalEvent.srcElement || document;
- }
-
- // Support: Safari 6-8+
- // Target should not be a text node (#504, #13143)
- if ( event.target.nodeType === 3 ) {
- event.target = event.target.parentNode;
- }
-
- // Support: IE<9
- // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
- event.metaKey = !!event.metaKey;
-
- return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
- },
-
- // Includes some event props shared by KeyEvent and MouseEvent
- props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
- "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
-
- fixHooks: {},
-
- keyHooks: {
- props: "char charCode key keyCode".split( " " ),
- filter: function( event, original ) {
-
- // Add which for key events
- if ( event.which == null ) {
- event.which = original.charCode != null ? original.charCode : original.keyCode;
- }
-
- return event;
- }
- },
-
- mouseHooks: {
- props: ( "button buttons clientX clientY fromElement offsetX offsetY " +
- "pageX pageY screenX screenY toElement" ).split( " " ),
- filter: function( event, original ) {
- var body, eventDoc, doc,
- button = original.button,
- fromElement = original.fromElement;
-
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && original.clientX != null ) {
- eventDoc = event.target.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
-
- event.pageX = original.clientX +
- ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
- ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- event.pageY = original.clientY +
- ( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
- ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
-
- // Add relatedTarget, if necessary
- if ( !event.relatedTarget && fromElement ) {
- event.relatedTarget = fromElement === event.target ?
- original.toElement :
- fromElement;
- }
-
- // Add which for click: 1 === left; 2 === middle; 3 === right
- // Note: button is not normalized, so don't use it
- if ( !event.which && button !== undefined ) {
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
- }
-
- return event;
- }
- },
-
- special: {
- load: {
-
- // Prevent triggered image.load events from bubbling to window.load
- noBubble: true
- },
- focus: {
-
- // Fire native event if possible so blur/focus sequence is correct
- trigger: function() {
- if ( this !== safeActiveElement() && this.focus ) {
- try {
- this.focus();
- return false;
- } catch ( e ) {
-
- // Support: IE<9
- // If we error on focus to hidden element (#1486, #12518),
- // let .trigger() run the handlers
- }
- }
- },
- delegateType: "focusin"
- },
- blur: {
- trigger: function() {
- if ( this === safeActiveElement() && this.blur ) {
- this.blur();
- return false;
- }
- },
- delegateType: "focusout"
- },
- click: {
-
- // For checkbox, fire native event so checked state will be right
- trigger: function() {
- if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
- this.click();
- return false;
- }
- },
-
- // For cross-browser consistency, don't fire native .click() on links
- _default: function( event ) {
- return jQuery.nodeName( event.target, "a" );
- }
- },
-
- beforeunload: {
- postDispatch: function( event ) {
-
- // Support: Firefox 20+
- // Firefox doesn't alert rounded-0 if the returnValue field is not set.
- if ( event.result !== undefined && event.originalEvent ) {
- event.originalEvent.returnValue = event.result;
- }
- }
- }
- },
-
- // Piggyback on a donor event to simulate a different one
- simulate: function( type, elem, event ) {
- var e = jQuery.extend(
- new jQuery.Event(),
- event,
- {
- type: type,
- isSimulated: true
-
- // Previously, `originalEvent: {}` was set here, so stopPropagation call
- // would not be triggered on donor event, since in our own
- // jQuery.event.stopPropagation function we had a check for existence of
- // originalEvent.stopPropagation method, so, consequently it would be a noop.
- //
- // Guard for simulated events was moved to jQuery.event.stopPropagation function
- // since `originalEvent` should point to the original event for the
- // constancy with other events and for more focused logic
- }
- );
-
- jQuery.event.trigger( e, null, elem );
-
- if ( e.isDefaultPrevented() ) {
- event.preventDefault();
- }
- }
-};
-
-jQuery.removeEvent = document.removeEventListener ?
- function( elem, type, handle ) {
-
- // This "if" is needed for plain objects
- if ( elem.removeEventListener ) {
- elem.removeEventListener( type, handle );
- }
- } :
- function( elem, type, handle ) {
- var name = "on" + type;
-
- if ( elem.detachEvent ) {
-
- // #8545, #7054, preventing memory leaks for custom events in IE6-8
- // detachEvent needed property on element, by name of that event,
- // to properly expose it to GC
- if ( typeof elem[ name ] === "undefined" ) {
- elem[ name ] = null;
- }
-
- elem.detachEvent( name, handle );
- }
- };
-
-jQuery.Event = function( src, props ) {
-
- // Allow instantiation without the 'new' keyword
- if ( !( this instanceof jQuery.Event ) ) {
- return new jQuery.Event( src, props );
- }
-
- // Event object
- if ( src && src.type ) {
- this.originalEvent = src;
- this.type = src.type;
-
- // Events bubbling up the document may have been marked as prevented
- // by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = src.defaultPrevented ||
- src.defaultPrevented === undefined &&
-
- // Support: IE < 9, Android < 4.0
- src.returnValue === false ?
- returnTrue :
- returnFalse;
-
- // Event type
- } else {
- this.type = src;
- }
-
- // Put explicitly provided properties onto the event object
- if ( props ) {
- jQuery.extend( this, props );
- }
-
- // Create a timestamp if incoming event doesn't have one
- this.timeStamp = src && src.timeStamp || jQuery.now();
-
- // Mark it as fixed
- this[ jQuery.expando ] = true;
-};
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
- constructor: jQuery.Event,
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse,
-
- preventDefault: function() {
- var e = this.originalEvent;
-
- this.isDefaultPrevented = returnTrue;
- if ( !e ) {
- return;
- }
-
- // If preventDefault exists, run it on the original event
- if ( e.preventDefault ) {
- e.preventDefault();
-
- // Support: IE
- // Otherwise set the returnValue property of the original event to false
- } else {
- e.returnValue = false;
- }
- },
- stopPropagation: function() {
- var e = this.originalEvent;
-
- this.isPropagationStopped = returnTrue;
-
- if ( !e || this.isSimulated ) {
- return;
- }
-
- // If stopPropagation exists, run it on the original event
- if ( e.stopPropagation ) {
- e.stopPropagation();
- }
-
- // Support: IE
- // Set the cancelBubble property of the original event to true
- e.cancelBubble = true;
- },
- stopImmediatePropagation: function() {
- var e = this.originalEvent;
-
- this.isImmediatePropagationStopped = returnTrue;
-
- if ( e && e.stopImmediatePropagation ) {
- e.stopImmediatePropagation();
- }
-
- this.stopPropagation();
- }
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-// 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://code.google.com/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;
- }
- };
-} );
-
-// IE submit delegation
-if ( !support.submit ) {
-
- jQuery.event.special.submit = {
- setup: function() {
-
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Lazy-add a submit handler when a descendant form may potentially be submitted
- jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
-
- // Node name check avoids a VML-related crash in IE (#9807)
- var elem = e.target,
- form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ?
-
- // Support: IE <=8
- // We use jQuery.prop instead of elem.form
- // to allow fixing the IE8 delegated submit issue (gh-2332)
- // by 3rd party polyfills/workarounds.
- jQuery.prop( elem, "form" ) :
- undefined;
-
- if ( form && !jQuery._data( form, "submit" ) ) {
- jQuery.event.add( form, "submit._submit", function( event ) {
- event._submitBubble = true;
- } );
- jQuery._data( form, "submit", true );
- }
- } );
-
- // return undefined since we don't need an event listener
- },
-
- postDispatch: function( event ) {
-
- // If form was submitted by the user, bubble the event up the tree
- if ( event._submitBubble ) {
- delete event._submitBubble;
- if ( this.parentNode && !event.isTrigger ) {
- jQuery.event.simulate( "submit", this.parentNode, event );
- }
- }
- },
-
- teardown: function() {
-
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
- jQuery.event.remove( this, "._submit" );
- }
- };
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !support.change ) {
-
- jQuery.event.special.change = {
-
- setup: function() {
-
- if ( rformElems.test( this.nodeName ) ) {
-
- // IE doesn't fire change on a check/radio until blur; trigger it on click
- // after a propertychange. Eat the blur-change in special.change.handle.
- // This still fires onchange a second time for check/radio after blur.
- if ( this.type === "checkbox" || this.type === "radio" ) {
- jQuery.event.add( this, "propertychange._change", function( event ) {
- if ( event.originalEvent.propertyName === "checked" ) {
- this._justChanged = true;
- }
- } );
- jQuery.event.add( this, "click._change", function( event ) {
- if ( this._justChanged && !event.isTrigger ) {
- this._justChanged = false;
- }
-
- // Allow triggered, simulated change events (#11500)
- jQuery.event.simulate( "change", this, event );
- } );
- }
- return false;
- }
-
- // Delegated event; lazy-add a change handler on descendant inputs
- jQuery.event.add( this, "beforeactivate._change", function( e ) {
- var elem = e.target;
-
- if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) {
- jQuery.event.add( elem, "change._change", function( event ) {
- if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
- jQuery.event.simulate( "change", this.parentNode, event );
- }
- } );
- jQuery._data( elem, "change", true );
- }
- } );
- },
-
- handle: function( event ) {
- var elem = event.target;
-
- // Swallow native change events from checkbox/radio, we already triggered them above
- if ( this !== elem || event.isSimulated || event.isTrigger ||
- ( elem.type !== "radio" && elem.type !== "checkbox" ) ) {
-
- return event.handleObj.handler.apply( this, arguments );
- }
- },
-
- teardown: function() {
- jQuery.event.remove( this, "._change" );
-
- return !rformElems.test( this.nodeName );
- }
- };
-}
-
-// Support: Firefox
-// Firefox doesn't have focus(in | out) events
-// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
-//
-// Support: Chrome, Safari
-// 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://code.google.com/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() {
- var doc = this.ownerDocument || this,
- attaches = jQuery._data( doc, fix );
-
- if ( !attaches ) {
- doc.addEventListener( orig, handler, true );
- }
- jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
- },
- teardown: function() {
- var doc = this.ownerDocument || this,
- attaches = jQuery._data( doc, fix ) - 1;
-
- if ( !attaches ) {
- doc.removeEventListener( orig, handler, true );
- jQuery._removeData( doc, fix );
- } else {
- jQuery._data( doc, fix, attaches );
- }
- }
- };
- } );
-}
-
-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 );
- } );
- },
-
- trigger: function( type, data ) {
- return this.each( function() {
- jQuery.event.trigger( type, data, this );
- } );
- },
- triggerHandler: function( type, data ) {
- var elem = this[ 0 ];
- if ( elem ) {
- return jQuery.event.trigger( type, data, elem, true );
- }
- }
-} );
-
-
-var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
- rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
- rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
-
- // Support: IE 10-11, Edge 10240+
- // In IE/Edge using regex groups here causes severe slowdowns.
- // See https://connect.microsoft.com/IE/feedback/details/1736512/
- rnoInnerhtml = /<script|<style|<link/i,
-
- // checked="checked" or checked
- rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
- rscriptTypeMasked = /^true\/(.*)/,
- rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
- safeFragment = createSafeFragment( document ),
- fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) );
-
-// Support: IE<8
-// Manipulating tables requires a tbody
-function manipulationTarget( elem, content ) {
- return jQuery.nodeName( elem, "table" ) &&
- jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
-
- elem.getElementsByTagName( "tbody" )[ 0 ] ||
- elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
- elem;
-}
-
-// Replace/restore the type attribute of script elements for safe DOM manipulation
-function disableScript( elem ) {
- elem.type = ( jQuery.find.attr( elem, "type" ) !== null ) + "/" + elem.type;
- return elem;
-}
-function restoreScript( elem ) {
- var match = rscriptTypeMasked.exec( elem.type );
- if ( match ) {
- elem.type = match[ 1 ];
- } else {
- elem.removeAttribute( "type" );
- }
- return elem;
-}
-
-function cloneCopyEvent( src, dest ) {
- if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
- return;
- }
-
- var type, i, l,
- oldData = jQuery._data( src ),
- curData = jQuery._data( dest, oldData ),
- events = oldData.events;
-
- if ( events ) {
- delete curData.handle;
- curData.events = {};
-
- for ( type in events ) {
- for ( i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ] );
- }
- }
- }
-
- // make the cloned public data object a copy from the original
- if ( curData.data ) {
- curData.data = jQuery.extend( {}, curData.data );
- }
-}
-
-function fixCloneNodeIssues( src, dest ) {
- var nodeName, e, data;
-
- // We do not need to do anything for non-Elements
- if ( dest.nodeType !== 1 ) {
- return;
- }
-
- nodeName = dest.nodeName.toLowerCase();
-
- // IE6-8 copies events bound via attachEvent when using cloneNode.
- if ( !support.noCloneEvent && dest[ jQuery.expando ] ) {
- data = jQuery._data( dest );
-
- for ( e in data.events ) {
- jQuery.removeEvent( dest, e, data.handle );
- }
-
- // Event data gets referenced instead of copied if the expando gets copied too
- dest.removeAttribute( jQuery.expando );
- }
-
- // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
- if ( nodeName === "script" && dest.text !== src.text ) {
- disableScript( dest ).text = src.text;
- restoreScript( dest );
-
- // IE6-10 improperly clones children of object elements using classid.
- // IE10 throws NoModificationAllowedError if parent is null, #12132.
- } else if ( nodeName === "object" ) {
- if ( dest.parentNode ) {
- dest.outerHTML = src.outerHTML;
- }
-
- // This path appears unavoidable for IE9. When cloning an object
- // element in IE9, the outerHTML strategy above is not sufficient.
- // If the src has innerHTML and the destination does not,
- // copy the src.innerHTML into the dest.innerHTML. #10324
- if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) {
- dest.innerHTML = src.innerHTML;
- }
-
- } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
-
- // IE6-8 fails to persist the checked state of a cloned checkbox
- // or radio button. Worse, IE6-7 fail to give the cloned element
- // a checked appearance if the defaultChecked value isn't also set
-
- dest.defaultChecked = dest.checked = src.checked;
-
- // IE6-7 get confused and end up setting the value of a cloned
- // checkbox/radio button to an empty string instead of "on"
- if ( dest.value !== src.value ) {
- dest.value = src.value;
- }
-
- // IE6-8 fails to return the selected option to the default selected
- // state when cloning options
- } else if ( nodeName === "option" ) {
- dest.defaultSelected = dest.selected = src.defaultSelected;
-
- // IE6-8 fails to set the defaultValue to the correct value when
- // cloning other types of input fields
- } else if ( nodeName === "input" || nodeName === "textarea" ) {
- dest.defaultValue = src.defaultValue;
- }
-}
-
-function domManip( collection, args, callback, ignored ) {
-
- // Flatten any nested arrays
- args = concat.apply( [], args );
-
- var first, node, hasScripts,
- scripts, doc, fragment,
- i = 0,
- l = collection.length,
- iNoClone = l - 1,
- value = args[ 0 ],
- isFunction = jQuery.isFunction( value );
-
- // We can't cloneNode fragments that contain checked, in WebKit
- if ( isFunction ||
- ( l > 1 && typeof value === "string" &&
- !support.checkClone && rchecked.test( value ) ) ) {
- return collection.each( function( index ) {
- var self = collection.eq( index );
- if ( isFunction ) {
- 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.1, PhantomJS<2
- // 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 || "" ) &&
- !jQuery._data( node, "globalEval" ) &&
- jQuery.contains( doc, node ) ) {
-
- if ( node.src ) {
-
- // Optional AJAX dependency, but won't run scripts if not present
- if ( jQuery._evalUrl ) {
- jQuery._evalUrl( node.src );
- }
- } else {
- jQuery.globalEval(
- ( node.text || node.textContent || node.innerHTML || "" )
- .replace( rcleanScript, "" )
- );
- }
- }
- }
- }
-
- // Fix #11809: Avoid leaking memory
- fragment = first = null;
- }
- }
-
- return collection;
-}
-
-function remove( elem, selector, keepData ) {
- var node,
- elems = selector ? jQuery.filter( selector, elem ) : elem,
- i = 0;
-
- for ( ; ( node = elems[ i ] ) != null; i++ ) {
-
- if ( !keepData && node.nodeType === 1 ) {
- jQuery.cleanData( getAll( node ) );
- }
-
- if ( node.parentNode ) {
- if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
- setGlobalEval( getAll( node, "script" ) );
- }
- node.parentNode.removeChild( node );
- }
- }
-
- return elem;
-}
-
-jQuery.extend( {
- htmlPrefilter: function( html ) {
- return html.replace( rxhtmlTag, "<$1></$2>" );
- },
-
- clone: function( elem, dataAndEvents, deepDataAndEvents ) {
- var destElements, node, clone, i, srcElements,
- inPage = jQuery.contains( elem.ownerDocument, elem );
-
- if ( support.html5Clone || jQuery.isXMLDoc( elem ) ||
- !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
-
- clone = elem.cloneNode( true );
-
- // IE<=8 does not properly clone detached, unknown element nodes
- } else {
- fragmentDiv.innerHTML = elem.outerHTML;
- fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
- }
-
- if ( ( !support.noCloneEvent || !support.noCloneChecked ) &&
- ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) {
-
- // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
- destElements = getAll( clone );
- srcElements = getAll( elem );
-
- // Fix all IE cloning issues
- for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) {
-
- // Ensure that the destination node is not null; Fixes #9587
- if ( destElements[ i ] ) {
- fixCloneNodeIssues( node, destElements[ i ] );
- }
- }
- }
-
- // Copy the events from the original to the clone
- if ( dataAndEvents ) {
- if ( deepDataAndEvents ) {
- srcElements = srcElements || getAll( elem );
- destElements = destElements || getAll( clone );
-
- for ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) {
- cloneCopyEvent( node, destElements[ i ] );
- }
- } else {
- cloneCopyEvent( elem, clone );
- }
- }
-
- // Preserve script evaluation history
- destElements = getAll( clone, "script" );
- if ( destElements.length > 0 ) {
- setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
- }
-
- destElements = srcElements = node = null;
-
- // Return the cloned set
- return clone;
- },
-
- cleanData: function( elems, /* internal */ forceAcceptData ) {
- var elem, type, id, data,
- i = 0,
- internalKey = jQuery.expando,
- cache = jQuery.cache,
- attributes = support.attributes,
- special = jQuery.event.special;
-
- for ( ; ( elem = elems[ i ] ) != null; i++ ) {
- if ( forceAcceptData || acceptData( elem ) ) {
-
- id = elem[ internalKey ];
- data = id && cache[ id ];
-
- if ( data ) {
- if ( data.events ) {
- for ( type in data.events ) {
- if ( special[ type ] ) {
- jQuery.event.remove( elem, type );
-
- // This is a shortcut to avoid jQuery.event.remove's overhead
- } else {
- jQuery.removeEvent( elem, type, data.handle );
- }
- }
- }
-
- // Remove cache only if it was not already removed by jQuery.event.remove
- if ( cache[ id ] ) {
-
- delete cache[ id ];
-
- // Support: IE<9
- // IE does not allow us to delete expando properties from nodes
- // IE creates expando attributes along with the property
- // IE does not have a removeAttribute function on Document nodes
- if ( !attributes && typeof elem.removeAttribute !== "undefined" ) {
- elem.removeAttribute( internalKey );
-
- // Webkit & Blink performance suffers when deleting properties
- // from DOM nodes, so set to undefined instead
- // https://code.google.com/p/chromium/issues/detail?id=378607
- } else {
- elem[ internalKey ] = undefined;
- }
-
- deletedIds.push( id );
- }
- }
- }
- }
- }
-} );
-
-jQuery.fn.extend( {
-
- // Keep domManip exposed until 3.0 (gh-2225)
- domManip: domManip,
-
- 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().append(
- ( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( 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++ ) {
-
- // Remove element nodes and prevent memory leaks
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem, false ) );
- }
-
- // Remove any remaining nodes
- while ( elem.firstChild ) {
- elem.removeChild( elem.firstChild );
- }
-
- // If this is a select, ensure that it displays empty (#12336)
- // Support: IE<9
- if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
- elem.options.length = 0;
- }
- }
-
- return this;
- },
-
- clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
- deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
- return this.map( function() {
- return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
- } );
- },
-
- html: function( value ) {
- return access( this, function( value ) {
- var elem = this[ 0 ] || {},
- i = 0,
- l = this.length;
-
- if ( value === undefined ) {
- return elem.nodeType === 1 ?
- elem.innerHTML.replace( rinlinejQuery, "" ) :
- undefined;
- }
-
- // See if we can take a shortcut and just use innerHTML
- if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
- ( support.htmlSerialize || !rnoshimcache.test( value ) ) &&
- ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
- !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
-
- value = jQuery.htmlPrefilter( value );
-
- try {
- for ( ; i < l; i++ ) {
-
- // Remove element nodes and prevent memory leaks
- elem = this[ i ] || {};
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem, false ) );
- elem.innerHTML = value;
- }
- }
-
- elem = 0;
-
- // If using innerHTML throws an exception, use the fallback method
- } catch ( e ) {}
- }
-
- if ( elem ) {
- this.empty().append( value );
- }
- }, null, value, arguments.length );
- },
-
- replaceWith: function() {
- 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,
- i = 0,
- ret = [],
- insert = jQuery( selector ),
- last = insert.length - 1;
-
- for ( ; i <= last; i++ ) {
- elems = i === last ? this : this.clone( true );
- jQuery( insert[ i ] )[ original ]( elems );
-
- // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
- push.apply( ret, elems.get() );
- }
-
- return this.pushStack( ret );
- };
-} );
-
-
-var iframe,
- elemdisplay = {
-
- // Support: Firefox
- // We have to pre-define these values for FF (#10227)
- HTML: "block",
- BODY: "block"
- };
-
-/**
- * Retrieve the actual display of a element
- * @param {String} name nodeName of the element
- * @param {Object} doc Document object
- */
-
-// Called only from within defaultDisplay
-function actualDisplay( name, doc ) {
- var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
-
- display = jQuery.css( elem[ 0 ], "display" );
-
- // We don't have any data stored on the element,
- // so use "detach" method as fast way to get rid of the element
- elem.detach();
-
- return display;
-}
-
-/**
- * Try to determine the default display value of an element
- * @param {String} nodeName
- */
-function defaultDisplay( nodeName ) {
- var doc = document,
- display = elemdisplay[ nodeName ];
-
- if ( !display ) {
- display = actualDisplay( nodeName, doc );
-
- // If the simple way fails, read from inside an iframe
- if ( display === "none" || !display ) {
-
- // Use the already-created iframe if possible
- iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
- .appendTo( doc.documentElement );
-
- // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
- doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;
-
- // Support: IE
- doc.write();
- doc.close();
-
- display = actualDisplay( nodeName, doc );
- iframe.detach();
- }
-
- // Store the correct default display
- elemdisplay[ nodeName ] = display;
- }
-
- return display;
-}
-var rmargin = ( /^margin/ );
-
-var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
-
-var swap = function( elem, options, callback, args ) {
- var ret, name,
- old = {};
-
- // Remember the old values, and insert the new ones
- for ( name in options ) {
- old[ name ] = elem.style[ name ];
- elem.style[ name ] = options[ name ];
- }
-
- ret = callback.apply( elem, args || [] );
-
- // Revert the old values
- for ( name in options ) {
- elem.style[ name ] = old[ name ];
- }
-
- return ret;
-};
-
-
-var documentElement = document.documentElement;
-
-
-
-( function() {
- var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal,
- reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal,
- container = document.createElement( "div" ),
- div = document.createElement( "div" );
-
- // Finish early in limited (non-browser) environments
- if ( !div.style ) {
- return;
- }
-
- div.style.cssText = "float:left;opacity:.5";
-
- // Support: IE<9
- // Make sure that element opacity exists (as opposed to filter)
- support.opacity = div.style.opacity === "0.5";
-
- // Verify style float existence
- // (IE uses styleFloat instead of cssFloat)
- support.cssFloat = !!div.style.cssFloat;
-
- div.style.backgroundClip = "content-box";
- div.cloneNode( true ).style.backgroundClip = "";
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
- container = document.createElement( "div" );
- container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
- "padding:0;margin-top:1px;position:absolute";
- div.innerHTML = "";
- container.appendChild( div );
-
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" ||
- div.style.WebkitBoxSizing === "";
-
- jQuery.extend( support, {
- reliableHiddenOffsets: function() {
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return reliableHiddenOffsetsVal;
- },
-
- boxSizingReliable: function() {
-
- // We're checking for pixelPositionVal here instead of boxSizingReliableVal
- // since that compresses better and they're computed together anyway.
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return boxSizingReliableVal;
- },
-
- pixelMarginRight: function() {
-
- // Support: Android 4.0-4.3
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return pixelMarginRightVal;
- },
-
- pixelPosition: function() {
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return pixelPositionVal;
- },
-
- reliableMarginRight: function() {
-
- // Support: Android 2.3
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return reliableMarginRightVal;
- },
-
- reliableMarginLeft: function() {
-
- // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
- if ( pixelPositionVal == null ) {
- computeStyleTests();
- }
- return reliableMarginLeftVal;
- }
- } );
-
- function computeStyleTests() {
- var contents, divStyle,
- documentElement = document.documentElement;
-
- // Setup
- documentElement.appendChild( container );
-
- div.style.cssText =
-
- // Support: Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:border-box;box-sizing:border-box;" +
- "position:relative;display:block;" +
- "margin:auto;border:1px;padding:1px;" +
- "top:1%;width:50%";
-
- // Support: IE<9
- // Assume reasonable values in the absence of getComputedStyle
- pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false;
- pixelMarginRightVal = reliableMarginRightVal = true;
-
- // Check for getComputedStyle so that this code is not run in IE<9.
- if ( window.getComputedStyle ) {
- divStyle = window.getComputedStyle( div );
- pixelPositionVal = ( divStyle || {} ).top !== "1%";
- reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px";
- boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px";
-
- // Support: Android 4.0 - 4.3 only
- // Some styles come back with percentage values, even though they shouldn't
- div.style.marginRight = "50%";
- pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px";
-
- // Support: Android 2.3 only
- // Div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container (#3333)
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- contents = div.appendChild( document.createElement( "div" ) );
-
- // Reset CSS: box-sizing; display; margin; border; padding
- contents.style.cssText = div.style.cssText =
-
- // Support: Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
- "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
- contents.style.marginRight = contents.style.width = "0";
- div.style.width = "1px";
-
- reliableMarginRightVal =
- !parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight );
-
- div.removeChild( contents );
- }
-
- // Support: IE6-8
- // First check that getClientRects works as expected
- // Check if table cells still have offsetWidth/Height when they are set
- // to display:none and there are still other visible table cells in a
- // table row; if so, offsetWidth/Height are not reliable for use when
- // determining if an element has been hidden directly using
- // display:none (it is still safe to use offsets if a parent element is
- // hidden; don safety goggles and see bug #4512 for more information).
- div.style.display = "none";
- reliableHiddenOffsetsVal = div.getClientRects().length === 0;
- if ( reliableHiddenOffsetsVal ) {
- div.style.display = "";
- div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
- div.childNodes[ 0 ].style.borderCollapse = "separate";
- contents = div.getElementsByTagName( "td" );
- contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
- reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
- if ( reliableHiddenOffsetsVal ) {
- contents[ 0 ].style.display = "";
- contents[ 1 ].style.display = "none";
- reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
- }
- }
-
- // Teardown
- documentElement.removeChild( container );
- }
-
-} )();
-
-
-var getStyles, curCSS,
- rposition = /^(top|right|bottom|left)$/;
-
-if ( window.getComputedStyle ) {
- getStyles = function( elem ) {
-
- // Support: IE<=11+, 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 );
- };
-
- curCSS = function( elem, name, computed ) {
- var width, minWidth, maxWidth, ret,
- style = elem.style;
-
- computed = computed || getStyles( elem );
-
- // getPropertyValue is only needed for .css('filter') in IE9, see #12537
- ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
-
- // Support: Opera 12.1x only
- // Fall back to style even without computed
- // computed is undefined for elems on document fragments
- if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
- ret = jQuery.style( elem, name );
- }
-
- if ( computed ) {
-
- // A tribute to the "awesome hack by Dean Edwards"
- // Chrome < 17 and Safari 5.0 uses "computed value"
- // instead of "used value" for margin-right
- // Safari 5.1.7 (at least) returns percentage for a larger set of values,
- // but width seems to be reliably pixels
- // this is against the CSSOM draft spec:
- // http://dev.w3.org/csswg/cssom/#resolved-values
- if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
-
- // Remember the original values
- width = style.width;
- minWidth = style.minWidth;
- maxWidth = style.maxWidth;
-
- // Put in the new values to get a computed value out
- style.minWidth = style.maxWidth = style.width = ret;
- ret = computed.width;
-
- // Revert the changed values
- style.width = width;
- style.minWidth = minWidth;
- style.maxWidth = maxWidth;
- }
- }
-
- // Support: IE
- // IE returns zIndex value as an integer.
- return ret === undefined ?
- ret :
- ret + "";
- };
-} else if ( documentElement.currentStyle ) {
- getStyles = function( elem ) {
- return elem.currentStyle;
- };
-
- curCSS = function( elem, name, computed ) {
- var left, rs, rsLeft, ret,
- style = elem.style;
-
- computed = computed || getStyles( elem );
- ret = computed ? computed[ name ] : undefined;
-
- // Avoid setting ret to empty string here
- // so we don't default to auto
- if ( ret == null && style && style[ name ] ) {
- ret = style[ name ];
- }
-
- // From the awesome hack by Dean Edwards
- // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
- // If we're not dealing with a regular pixel number
- // but a number that has a weird ending, we need to convert it to pixels
- // but not position css attributes, as those are
- // proportional to the parent element instead
- // and we can't measure the parent instead because it
- // might trigger a "stacking dolls" problem
- if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
-
- // Remember the original values
- left = style.left;
- rs = elem.runtimeStyle;
- rsLeft = rs && rs.left;
-
- // Put in the new values to get a computed value out
- if ( rsLeft ) {
- rs.left = elem.currentStyle.left;
- }
- style.left = name === "fontSize" ? "1em" : ret;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- if ( rsLeft ) {
- rs.left = rsLeft;
- }
- }
-
- // Support: IE
- // IE returns zIndex value as an integer.
- return ret === undefined ?
- ret :
- ret + "" || "auto";
- };
-}
-
-
-
-
-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
-
- ralpha = /alpha\([^)]*\)/i,
- ropacity = /opacity\s*=\s*([^)]*)/i,
-
- // 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]).+)/,
- rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
-
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
- cssNormalTransform = {
- letterSpacing: "0",
- fontWeight: "400"
- },
-
- cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
- emptyStyle = document.createElement( "div" ).style;
-
-
-// return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( name ) {
-
- // shortcut for names that are not vendor prefixed
- if ( name in emptyStyle ) {
- return name;
- }
-
- // check for vendor prefixed names
- var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ),
- i = cssPrefixes.length;
-
- while ( i-- ) {
- name = cssPrefixes[ i ] + capName;
- if ( name in emptyStyle ) {
- return name;
- }
- }
-}
-
-function showHide( elements, show ) {
- var display, elem, hidden,
- values = [],
- index = 0,
- length = elements.length;
-
- for ( ; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
-
- values[ index ] = jQuery._data( elem, "olddisplay" );
- display = elem.style.display;
- if ( show ) {
-
- // Reset the inline display of this element to learn if it is
- // being hidden by cascaded rules or not
- if ( !values[ index ] && display === "none" ) {
- elem.style.display = "";
- }
-
- // Set elements which have been overridden with display: none
- // in a stylesheet to whatever the default browser style is
- // for such an element
- if ( elem.style.display === "" && isHidden( elem ) ) {
- values[ index ] =
- jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) );
- }
- } else {
- hidden = isHidden( elem );
-
- if ( display && display !== "none" || !hidden ) {
- jQuery._data(
- elem,
- "olddisplay",
- hidden ? display : jQuery.css( elem, "display" )
- );
- }
- }
- }
-
- // Set the display of most of the elements in a second loop
- // to avoid the constant reflow
- for ( index = 0; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
- if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
- elem.style.display = show ? values[ index ] || "" : "none";
- }
- }
-
- return elements;
-}
-
-function setPositiveNumber( elem, value, subtract ) {
- var matches = rnumsplit.exec( value );
- return matches ?
-
- // Guard against undefined "subtract", e.g., when used as in cssHooks
- Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
- value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
- var i = extra === ( isBorderBox ? "border" : "content" ) ?
-
- // If we already have the right measurement, avoid augmentation
- 4 :
-
- // Otherwise initialize for horizontal or vertical properties
- name === "width" ? 1 : 0,
-
- val = 0;
-
- for ( ; i < 4; i += 2 ) {
-
- // both box models exclude margin, so add it if we want it
- if ( extra === "margin" ) {
- val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
- }
-
- if ( isBorderBox ) {
-
- // border-box includes padding, so remove it if we want content
- if ( extra === "content" ) {
- val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
- }
-
- // at this point, extra isn't border nor margin, so remove border
- if ( extra !== "margin" ) {
- val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- } else {
-
- // at this point, extra isn't content, so add padding
- val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-
- // at this point, extra isn't content nor padding, so add border
- if ( extra !== "padding" ) {
- val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- }
- }
-
- return val;
-}
-
-function getWidthOrHeight( elem, name, extra ) {
-
- // Start with offset property, which is equivalent to the border-box value
- var valueIsBorderBox = true,
- val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
- styles = getStyles( elem ),
- isBorderBox = support.boxSizing &&
- jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
- // some non-html elements return undefined for offsetWidth, so check for null/undefined
- // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
- // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
- if ( val <= 0 || val == null ) {
-
- // Fall back to computed then uncomputed css if necessary
- val = curCSS( elem, name, styles );
- if ( val < 0 || val == null ) {
- val = elem.style[ name ];
- }
-
- // Computed unit is not pixels. Stop here and return.
- if ( rnumnonpx.test( val ) ) {
- return val;
- }
-
- // we need the check for style in case a browser which returns unreliable values
- // for getComputedStyle silently falls back to the reliable elem.style
- valueIsBorderBox = isBorderBox &&
- ( support.boxSizingReliable() || val === elem.style[ name ] );
-
- // Normalize "", auto, and prepare for extra
- val = parseFloat( val ) || 0;
- }
-
- // use the active box-sizing model to add/subtract irrelevant styles
- return ( val +
- augmentWidthOrHeight(
- elem,
- name,
- extra || ( isBorderBox ? "border" : "content" ),
- valueIsBorderBox,
- styles
- )
- ) + "px";
-}
-
-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,
- "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: {
-
- // normalize float css property
- "float": support.cssFloat ? "cssFloat" : "styleFloat"
- },
-
- // Get and set the style property on a DOM Node
- style: function( elem, name, value, extra ) {
-
- // Don't set styles on text and comment nodes
- if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
- return;
- }
-
- // Make sure that we're working with the right name
- var ret, type, hooks,
- origName = jQuery.camelCase( name ),
- style = elem.style;
-
- name = jQuery.cssProps[ origName ] ||
- ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
-
- // gets hook for the prefixed version
- // followed by the unprefixed version
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
- // Check if we're setting a value
- if ( value !== undefined ) {
- type = typeof value;
-
- // Convert "+=" 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. See: #7116
- if ( value == null || value !== value ) {
- return;
- }
-
- // If a number was passed in, add the unit (except for certain CSS properties)
- if ( type === "number" ) {
- value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
- }
-
- // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
- // but it would mean to define eight
- // (for every problematic property) identical functions
- if ( !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 ) {
-
- // Support: IE
- // Swallow errors from 'invalid' CSS values (#5509)
- try {
- style[ name ] = value;
- } catch ( e ) {}
- }
-
- } else {
-
- // If a hook was provided get the non-computed value from there
- if ( hooks && "get" in hooks &&
- ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
-
- return ret;
- }
-
- // Otherwise just get the value from the style object
- return style[ name ];
- }
- },
-
- css: function( elem, name, extra, styles ) {
- var num, val, hooks,
- origName = jQuery.camelCase( name );
-
- // Make sure that we're working with the right name
- name = jQuery.cssProps[ origName ] ||
- ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
-
- // gets hook for the prefixed version
- // followed by the unprefixed version
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
- // If a hook was provided get the computed value from there
- if ( hooks && "get" in hooks ) {
- val = hooks.get( elem, true, extra );
- }
-
- // Otherwise, if a way to get the computed value exists, use that
- if ( val === undefined ) {
- val = curCSS( elem, name, styles );
- }
-
- //convert "normal" to computed value
- if ( val === "normal" && name in cssNormalTransform ) {
- val = cssNormalTransform[ name ];
- }
-
- // Return, converting to number if forced or a qualifier was provided and val looks numeric
- if ( extra === "" || extra ) {
- num = parseFloat( val );
- return extra === true || isFinite( num ) ? num || 0 : val;
- }
- return val;
- }
-} );
-
-jQuery.each( [ "height", "width" ], function( i, name ) {
- jQuery.cssHooks[ name ] = {
- get: function( elem, computed, extra ) {
- if ( computed ) {
-
- // certain elements can have dimension info if we invisibly show them
- // however, it must have a current display style that would benefit from this
- return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
- elem.offsetWidth === 0 ?
- swap( elem, cssShow, function() {
- return getWidthOrHeight( elem, name, extra );
- } ) :
- getWidthOrHeight( elem, name, extra );
- }
- },
-
- set: function( elem, value, extra ) {
- var styles = extra && getStyles( elem );
- return setPositiveNumber( elem, value, extra ?
- augmentWidthOrHeight(
- elem,
- name,
- extra,
- support.boxSizing &&
- jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
- styles
- ) : 0
- );
- }
- };
-} );
-
-if ( !support.opacity ) {
- jQuery.cssHooks.opacity = {
- get: function( elem, computed ) {
-
- // IE uses filters for opacity
- return ropacity.test( ( computed && elem.currentStyle ?
- elem.currentStyle.filter :
- elem.style.filter ) || "" ) ?
- ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
- computed ? "1" : "";
- },
-
- set: function( elem, value ) {
- var style = elem.style,
- currentStyle = elem.currentStyle,
- opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
- filter = currentStyle && currentStyle.filter || style.filter || "";
-
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- style.zoom = 1;
-
- // if setting opacity to 1, and no other filters exist -
- // attempt to remove filter attribute #6652
- // if value === "", then remove inline opacity #12685
- if ( ( value >= 1 || value === "" ) &&
- jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
- style.removeAttribute ) {
-
- // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
- // if "filter:" is present at all, clearType is disabled, we want to avoid this
- // style.removeAttribute is IE Only, but so apparently is this code path...
- style.removeAttribute( "filter" );
-
- // if there is no filter style applied in a css rule
- // or unset inline opacity, we are done
- if ( value === "" || currentStyle && !currentStyle.filter ) {
- return;
- }
- }
-
- // otherwise, set new filter values
- style.filter = ralpha.test( filter ) ?
- filter.replace( ralpha, opacity ) :
- filter + " " + opacity;
- }
- };
-}
-
-jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
- function( elem, computed ) {
- if ( computed ) {
- return swap( elem, { "display": "inline-block" },
- curCSS, [ elem, "marginRight" ] );
- }
- }
-);
-
-jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
- function( elem, computed ) {
- if ( computed ) {
- return (
- parseFloat( curCSS( elem, "marginLeft" ) ) ||
-
- // Support: IE<=11+
- // Running getBoundingClientRect on a disconnected node in IE throws an error
- // Support: IE8 only
- // getClientRects() errors on disconnected elems
- ( jQuery.contains( elem.ownerDocument, elem ) ?
- elem.getBoundingClientRect().left -
- swap( elem, { marginLeft: 0 }, function() {
- return elem.getBoundingClientRect().left;
- } ) :
- 0
- )
- ) + "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 ( !rmargin.test( prefix ) ) {
- 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 ( jQuery.isArray( name ) ) {
- styles = getStyles( elem );
- len = name.length;
-
- for ( ; i < len; i++ ) {
- map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
- }
-
- return map;
- }
-
- return value !== undefined ?
- jQuery.style( elem, name, value ) :
- jQuery.css( elem, name );
- }, name, value, arguments.length > 1 );
- },
- show: function() {
- return showHide( this, true );
- },
- hide: function() {
- return showHide( this );
- },
- toggle: function( state ) {
- if ( typeof state === "boolean" ) {
- return state ? this.show() : this.hide();
- }
-
- return this.each( function() {
- if ( isHidden( this ) ) {
- jQuery( this ).show();
- } else {
- jQuery( this ).hide();
- }
- } );
- }
-} );
-
-
-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
- // so, 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 its
- // 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 &&
- ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
- jQuery.cssHooks[ tween.prop ] ) ) {
- jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
- } else {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
- }
-};
-
-// Support: IE <=9
-// 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, timerId,
- rfxtypes = /^(?:toggle|show|hide)$/,
- rrun = /queueHooks$/;
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
- window.setTimeout( function() {
- fxNow = undefined;
- } );
- return ( fxNow = jQuery.now() );
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
- var which,
- attrs = { height: type },
- i = 0;
-
- // if we include width, step value is 1 to do all cssExpand values,
- // if we don't include width, 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 ) {
- /* jshint validthis: true */
- var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
- anim = this,
- orig = {},
- style = elem.style,
- hidden = elem.nodeType && isHidden( elem ),
- dataShow = jQuery._data( elem, "fxshow" );
-
- // handle queue: false promises
- 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() {
-
- // doing this makes sure that the complete handler will be called
- // before this completes
- anim.always( function() {
- hooks.unqueued--;
- if ( !jQuery.queue( elem, "fx" ).length ) {
- hooks.empty.fire();
- }
- } );
- } );
- }
-
- // height/width overflow pass
- if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
-
- // Make sure that nothing sneaks out
- // Record all 3 overflow attributes because IE does not
- // change the overflow attribute when overflowX and
- // overflowY are set to the same value
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
-
- // Set display property to inline-block for height/width
- // animations on inline elements that are having width/height animated
- display = jQuery.css( elem, "display" );
-
- // Test default display if display is currently "none"
- checkDisplay = display === "none" ?
- jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
-
- if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
-
- // inline-level elements accept inline-block;
- // block-level elements need to be inline with layout
- if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
- style.display = "inline-block";
- } else {
- style.zoom = 1;
- }
- }
- }
-
- if ( opts.overflow ) {
- style.overflow = "hidden";
- if ( !support.shrinkWrapBlocks() ) {
- anim.always( function() {
- style.overflow = opts.overflow[ 0 ];
- style.overflowX = opts.overflow[ 1 ];
- style.overflowY = opts.overflow[ 2 ];
- } );
- }
- }
-
- // show/hide pass
- for ( prop in props ) {
- value = props[ prop ];
- if ( rfxtypes.exec( value ) ) {
- delete props[ prop ];
- toggle = toggle || value === "toggle";
- if ( value === ( hidden ? "hide" : "show" ) ) {
-
- // If there is dataShow left over from a stopped hide or show
- // and we are going to proceed with show, we should pretend to be hidden
- if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
- hidden = true;
- } else {
- continue;
- }
- }
- orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
-
- // Any non-fx value stops us from restoring the original display value
- } else {
- display = undefined;
- }
- }
-
- if ( !jQuery.isEmptyObject( orig ) ) {
- if ( dataShow ) {
- if ( "hidden" in dataShow ) {
- hidden = dataShow.hidden;
- }
- } else {
- dataShow = jQuery._data( elem, "fxshow", {} );
- }
-
- // store state if its toggle - enables .stop().toggle() to "reverse"
- if ( toggle ) {
- dataShow.hidden = !hidden;
- }
- if ( hidden ) {
- jQuery( elem ).show();
- } else {
- anim.done( function() {
- jQuery( elem ).hide();
- } );
- }
- anim.done( function() {
- var prop;
- jQuery._removeData( elem, "fxshow" );
- for ( prop in orig ) {
- jQuery.style( elem, prop, orig[ prop ] );
- }
- } );
- for ( prop in orig ) {
- tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
-
- if ( !( prop in dataShow ) ) {
- dataShow[ prop ] = tween.start;
- if ( hidden ) {
- tween.end = tween.start;
- tween.start = prop === "width" || prop === "height" ? 1 : 0;
- }
- }
- }
-
- // If this is a noop like .hide().hide(), restore an overwritten display value
- } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
- style.display = display;
- }
-}
-
-function propFilter( props, specialEasing ) {
- var index, name, easing, value, hooks;
-
- // camelCase, specialEasing and expand cssHook pass
- for ( index in props ) {
- name = jQuery.camelCase( index );
- easing = specialEasing[ name ];
- value = props[ index ];
- if ( jQuery.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 wont overwrite keys already present.
- // also - reusing 'index' from above 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
- // 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 ( percent < 1 && length ) {
- return remaining;
- } else {
- 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 ( jQuery.isFunction( result.stop ) ) {
- jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
- jQuery.proxy( result.stop, result );
- }
- return result;
- }
- }
-
- jQuery.map( props, createTween, animation );
-
- if ( jQuery.isFunction( animation.opts.start ) ) {
- animation.opts.start.call( elem, animation );
- }
-
- jQuery.fx.timer(
- jQuery.extend( tick, {
- elem: elem,
- anim: animation,
- queue: animation.opts.queue
- } )
- );
-
- // attach callbacks from options
- return animation.progress( animation.opts.progress )
- .done( animation.opts.done, animation.opts.complete )
- .fail( animation.opts.fail )
- .always( animation.opts.always );
-}
-
-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 ( jQuery.isFunction( props ) ) {
- callback = props;
- props = [ "*" ];
- } else {
- props = props.match( rnotwhite );
- }
-
- 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 ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
- };
-
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
- opt.duration in jQuery.fx.speeds ?
- jQuery.fx.speeds[ 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 ( jQuery.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( isHidden ).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 || jQuery._data( 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 && type !== false ) {
- this.queue( type || "fx", [] );
- }
-
- return this.each( function() {
- var dequeue = true,
- index = type != null && type + "queueHooks",
- timers = jQuery.timers,
- data = jQuery._data( 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 = jQuery._data( 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,
- timers = jQuery.timers,
- i = 0;
-
- fxNow = jQuery.now();
-
- for ( ; i < timers.length; i++ ) {
- timer = timers[ i ];
-
- // Checks the timer has not already been removed
- 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 );
- if ( timer() ) {
- jQuery.fx.start();
- } else {
- jQuery.timers.pop();
- }
-};
-
-jQuery.fx.interval = 13;
-
-jQuery.fx.start = function() {
- if ( !timerId ) {
- timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
- }
-};
-
-jQuery.fx.stop = function() {
- window.clearInterval( timerId );
- timerId = null;
-};
-
-jQuery.fx.speeds = {
- slow: 600,
- fast: 200,
-
- // Default speed
- _default: 400
-};
-
-
-// Based off of the plugin by Clint Helfers, with permission.
-// http://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 a,
- input = document.createElement( "input" ),
- div = document.createElement( "div" ),
- select = document.createElement( "select" ),
- opt = select.appendChild( document.createElement( "option" ) );
-
- // Setup
- div = document.createElement( "div" );
- div.setAttribute( "className", "t" );
- div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
- a = div.getElementsByTagName( "a" )[ 0 ];
-
- // Support: Windows Web Apps (WWA)
- // `type` must use .setAttribute for WWA (#14901)
- input.setAttribute( "type", "checkbox" );
- div.appendChild( input );
-
- a = div.getElementsByTagName( "a" )[ 0 ];
-
- // First batch of tests.
- a.style.cssText = "top:1px";
-
- // Test setAttribute on camelCase class.
- // If it works, we need attrFixes when doing get/setAttribute (ie6/7)
- support.getSetAttribute = div.className !== "t";
-
- // Get the style information from getAttribute
- // (IE uses .cssText instead)
- support.style = /top/.test( a.getAttribute( "style" ) );
-
- // Make sure that URLs aren't manipulated
- // (IE normalizes it by default)
- support.hrefNormalized = a.getAttribute( "href" ) === "/a";
-
- // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
- support.checkOn = !!input.value;
-
- // Make sure that a selected-by-default option has a working selected property.
- // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
- support.optSelected = opt.selected;
-
- // Tests for enctype support on a form (#6743)
- support.enctype = !!document.createElement( "form" ).enctype;
-
- // Make sure that the options inside disabled selects aren't marked as disabled
- // (WebKit marks them as disabled)
- select.disabled = true;
- support.optDisabled = !opt.disabled;
-
- // Support: IE8 only
- // Check if we can trust getAttribute("value")
- input = document.createElement( "input" );
- input.setAttribute( "value", "" );
- support.input = input.getAttribute( "value" ) === "";
-
- // Check if an input maintains its value after becoming a radio
- input.value = "t";
- input.setAttribute( "type", "radio" );
- support.radioValue = input.value === "t";
-} )();
-
-
-var rreturn = /\r/g,
- rspaces = /[\x20\t\r\n\f]+/g;
-
-jQuery.fn.extend( {
- val: function( value ) {
- var hooks, ret, isFunction,
- elem = this[ 0 ];
-
- if ( !arguments.length ) {
- if ( elem ) {
- hooks = jQuery.valHooks[ elem.type ] ||
- jQuery.valHooks[ elem.nodeName.toLowerCase() ];
-
- if (
- hooks &&
- "get" in hooks &&
- ( ret = hooks.get( elem, "value" ) ) !== undefined
- ) {
- return ret;
- }
-
- ret = elem.value;
-
- return typeof ret === "string" ?
-
- // handle most common string cases
- ret.replace( rreturn, "" ) :
-
- // handle cases where value is null/undef or number
- ret == null ? "" : ret;
- }
-
- return;
- }
-
- isFunction = jQuery.isFunction( value );
-
- return this.each( function( i ) {
- var val;
-
- if ( this.nodeType !== 1 ) {
- return;
- }
-
- if ( isFunction ) {
- 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 ( jQuery.isArray( val ) ) {
- val = jQuery.map( val, function( value ) {
- return value == null ? "" : value + "";
- } );
- }
-
- hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
-
- // If set returns undefined, fall back to normal setting
- if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
- this.value = val;
- }
- } );
- }
-} );
-
-jQuery.extend( {
- valHooks: {
- option: {
- get: function( elem ) {
- var val = jQuery.find.attr( elem, "value" );
- return val != null ?
- val :
-
- // Support: IE10-11+
- // option.text throws exceptions (#14686, #14858)
- // Strip and collapse whitespace
- // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
- jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
- }
- },
- select: {
- get: function( elem ) {
- var value, option,
- options = elem.options,
- index = elem.selectedIndex,
- one = elem.type === "select-one" || index < 0,
- values = one ? null : [],
- max = one ? index + 1 : options.length,
- i = index < 0 ?
- max :
- one ? index : 0;
-
- // Loop through all the selected options
- for ( ; i < max; i++ ) {
- option = options[ i ];
-
- // oldIE doesn't update selected after form reset (#2551)
- if ( ( option.selected || i === index ) &&
-
- // Don't return options that are disabled or in a disabled optgroup
- ( support.optDisabled ?
- !option.disabled :
- option.getAttribute( "disabled" ) === null ) &&
- ( !option.parentNode.disabled ||
- !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
-
- // Get the specific value for the option
- value = jQuery( option ).val();
-
- // We don't need an array for one selects
- if ( one ) {
- return value;
- }
-
- // Multi-Selects return an array
- values.push( value );
- }
- }
-
- return values;
- },
-
- set: function( elem, value ) {
- var optionSet, option,
- options = elem.options,
- values = jQuery.makeArray( value ),
- i = options.length;
-
- while ( i-- ) {
- option = options[ i ];
-
- if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) {
-
- // Support: IE6
- // When new option element is added to select box we need to
- // force reflow of newly added node in order to workaround delay
- // of initialization properties
- try {
- option.selected = optionSet = true;
-
- } catch ( _ ) {
-
- // Will be executed only in IE6
- option.scrollHeight;
- }
-
- } else {
- option.selected = false;
- }
- }
-
- // Force browsers to behave consistently when non-matching value is set
- if ( !optionSet ) {
- elem.selectedIndex = -1;
- }
-
- return options;
- }
- }
- }
-} );
-
-// Radios and checkboxes getter/setter
-jQuery.each( [ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = {
- set: function( elem, value ) {
- if ( jQuery.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;
- };
- }
-} );
-
-
-
-
-var nodeHook, boolHook,
- attrHandle = jQuery.expr.attrHandle,
- ruseDefault = /^(?:checked|selected)$/i,
- getSetAttribute = support.getSetAttribute,
- getSetInput = support.input;
-
-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 );
- }
-
- // All attributes are lowercase
- // Grab necessary hook if one is defined
- if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
- name = name.toLowerCase();
- hooks = jQuery.attrHooks[ name ] ||
- ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
- }
-
- 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" &&
- jQuery.nodeName( elem, "input" ) ) {
-
- // Setting the type on a radio button after the value resets the value in IE8-9
- // Reset value to default in case type is set after value during creation
- var val = elem.value;
- elem.setAttribute( "type", value );
- if ( val ) {
- elem.value = val;
- }
- return value;
- }
- }
- }
- },
-
- removeAttr: function( elem, value ) {
- var name, propName,
- i = 0,
- attrNames = value && value.match( rnotwhite );
-
- if ( attrNames && elem.nodeType === 1 ) {
- while ( ( name = attrNames[ i++ ] ) ) {
- propName = jQuery.propFix[ name ] || name;
-
- // Boolean attributes get special treatment (#10870)
- if ( jQuery.expr.match.bool.test( name ) ) {
-
- // Set corresponding property to false
- if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
- elem[ propName ] = false;
-
- // Support: IE<9
- // Also clear defaultChecked/defaultSelected (if appropriate)
- } else {
- elem[ jQuery.camelCase( "default-" + name ) ] =
- elem[ propName ] = false;
- }
-
- // See #9699 for explanation of this approach (setting first, then removal)
- } else {
- jQuery.attr( elem, name, "" );
- }
-
- elem.removeAttribute( getSetAttribute ? name : propName );
- }
- }
- }
-} );
-
-// 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 if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
-
- // IE<8 needs the *property* name
- elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
-
- } else {
-
- // Support: IE<9
- // Use defaultChecked and defaultSelected for oldIE
- elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
- }
- return name;
- }
-};
-
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
- var getter = attrHandle[ name ] || jQuery.find.attr;
-
- if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
- attrHandle[ name ] = function( elem, name, isXML ) {
- var ret, handle;
- if ( !isXML ) {
-
- // Avoid an infinite loop by temporarily removing this function from the getter
- handle = attrHandle[ name ];
- attrHandle[ name ] = ret;
- ret = getter( elem, name, isXML ) != null ?
- name.toLowerCase() :
- null;
- attrHandle[ name ] = handle;
- }
- return ret;
- };
- } else {
- attrHandle[ name ] = function( elem, name, isXML ) {
- if ( !isXML ) {
- return elem[ jQuery.camelCase( "default-" + name ) ] ?
- name.toLowerCase() :
- null;
- }
- };
- }
-} );
-
-// fix oldIE attroperties
-if ( !getSetInput || !getSetAttribute ) {
- jQuery.attrHooks.value = {
- set: function( elem, value, name ) {
- if ( jQuery.nodeName( elem, "input" ) ) {
-
- // Does not return so that setAttribute is also used
- elem.defaultValue = value;
- } else {
-
- // Use nodeHook if defined (#1954); otherwise setAttribute is fine
- return nodeHook && nodeHook.set( elem, value, name );
- }
- }
- };
-}
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
- // Use this for any attribute in IE6/7
- // This fixes almost every IE6/7 issue
- nodeHook = {
- set: function( elem, value, name ) {
-
- // Set the existing or create a new attribute node
- var ret = elem.getAttributeNode( name );
- if ( !ret ) {
- elem.setAttributeNode(
- ( ret = elem.ownerDocument.createAttribute( name ) )
- );
- }
-
- ret.value = value += "";
-
- // Break association with cloned elements by also using setAttribute (#9646)
- if ( name === "value" || value === elem.getAttribute( name ) ) {
- return value;
- }
- }
- };
-
- // Some attributes are constructed with empty-string values when not defined
- attrHandle.id = attrHandle.name = attrHandle.coords =
- function( elem, name, isXML ) {
- var ret;
- if ( !isXML ) {
- return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ?
- ret.value :
- null;
- }
- };
-
- // Fixing value retrieval on a button requires this module
- jQuery.valHooks.button = {
- get: function( elem, name ) {
- var ret = elem.getAttributeNode( name );
- if ( ret && ret.specified ) {
- return ret.value;
- }
- },
- set: nodeHook.set
- };
-
- // Set contenteditable to false on removals(#10429)
- // Setting to empty string throws an error as an invalid value
- jQuery.attrHooks.contenteditable = {
- set: function( elem, value, name ) {
- nodeHook.set( elem, value === "" ? false : value, name );
- }
- };
-
- // Set width and height to auto instead of 0 on empty string( Bug #8150 )
- // This is for removals
- jQuery.each( [ "width", "height" ], function( i, name ) {
- jQuery.attrHooks[ name ] = {
- set: function( elem, value ) {
- if ( value === "" ) {
- elem.setAttribute( name, "auto" );
- return value;
- }
- }
- };
- } );
-}
-
-if ( !support.style ) {
- jQuery.attrHooks.style = {
- get: function( elem ) {
-
- // Return undefined in the case of empty string
- // Note: IE uppercases css property names, but if we were to .toLowerCase()
- // .cssText, that would destroy case sensitivity in URL's, like in "background"
- return elem.style.cssText || undefined;
- },
- set: function( elem, value ) {
- return ( elem.style.cssText = value + "" );
- }
- };
-}
-
-
-
-
-var rfocusable = /^(?:input|select|textarea|button|object)$/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 ) {
- name = jQuery.propFix[ name ] || name;
- return this.each( function() {
-
- // try/catch handles cases where IE balks (such as removing a property on window)
- try {
- this[ name ] = undefined;
- delete this[ name ];
- } catch ( e ) {}
- } );
- }
-} );
-
-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 ) {
-
- // elem.tabIndex doesn't always return the
- // correct value when it hasn't been explicitly set
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
- // Use proper attribute retrieval(#12072)
- var tabindex = jQuery.find.attr( elem, "tabindex" );
-
- return tabindex ?
- parseInt( tabindex, 10 ) :
- rfocusable.test( elem.nodeName ) ||
- rclickable.test( elem.nodeName ) && elem.href ?
- 0 :
- -1;
- }
- }
- },
-
- propFix: {
- "for": "htmlFor",
- "class": "className"
- }
-} );
-
-// Some attributes require a special call on IE
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !support.hrefNormalized ) {
-
- // href/src property should get the full normalized URL (#10299/#12915)
- jQuery.each( [ "href", "src" ], function( i, name ) {
- jQuery.propHooks[ name ] = {
- get: function( elem ) {
- return elem.getAttribute( name, 4 );
- }
- };
- } );
-}
-
-// Support: Safari, IE9+
-// 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
-if ( !support.optSelected ) {
- jQuery.propHooks.selected = {
- get: function( elem ) {
- var parent = elem.parentNode;
-
- if ( parent ) {
- parent.selectedIndex;
-
- // Make sure that it also works with optgroups, see #5701
- if ( parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- }
- return null;
- },
- set: function( elem ) {
- 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;
-} );
-
-// IE6/7 call enctype encoding
-if ( !support.enctype ) {
- jQuery.propFix.enctype = "encoding";
-}
-
-
-
-
-var rclass = /[\t\r\n\f]/g;
-
-function getClass( elem ) {
- return jQuery.attr( elem, "class" ) || "";
-}
-
-jQuery.fn.extend( {
- addClass: function( value ) {
- var classes, elem, cur, curValue, clazz, j, finalValue,
- i = 0;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each( function( j ) {
- jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
- } );
- }
-
- if ( typeof value === "string" && value ) {
- classes = value.match( rnotwhite ) || [];
-
- while ( ( elem = this[ i++ ] ) ) {
- curValue = getClass( elem );
- cur = elem.nodeType === 1 &&
- ( " " + curValue + " " ).replace( rclass, " " );
-
- if ( cur ) {
- j = 0;
- while ( ( clazz = classes[ j++ ] ) ) {
- if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
- cur += clazz + " ";
- }
- }
-
- // only assign if different to avoid unneeded rendering.
- finalValue = jQuery.trim( cur );
- if ( curValue !== finalValue ) {
- jQuery.attr( elem, "class", finalValue );
- }
- }
- }
- }
-
- return this;
- },
-
- removeClass: function( value ) {
- var classes, elem, cur, curValue, clazz, j, finalValue,
- i = 0;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each( function( j ) {
- jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
- } );
- }
-
- if ( !arguments.length ) {
- return this.attr( "class", "" );
- }
-
- if ( typeof value === "string" && value ) {
- classes = value.match( rnotwhite ) || [];
-
- while ( ( elem = this[ i++ ] ) ) {
- curValue = getClass( elem );
-
- // This expression is here for better compressibility (see addClass)
- cur = elem.nodeType === 1 &&
- ( " " + curValue + " " ).replace( rclass, " " );
-
- 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 = jQuery.trim( cur );
- if ( curValue !== finalValue ) {
- jQuery.attr( elem, "class", finalValue );
- }
- }
- }
- }
-
- return this;
- },
-
- toggleClass: function( value, stateVal ) {
- var type = typeof value;
-
- if ( typeof stateVal === "boolean" && type === "string" ) {
- return stateVal ? this.addClass( value ) : this.removeClass( value );
- }
-
- if ( jQuery.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 ( type === "string" ) {
-
- // Toggle individual class names
- i = 0;
- self = jQuery( this );
- classNames = value.match( rnotwhite ) || [];
-
- 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
- jQuery._data( 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.
- jQuery.attr( this, "class",
- className || value === false ?
- "" :
- jQuery._data( this, "__className__" ) || ""
- );
- }
- } );
- },
-
- hasClass: function( selector ) {
- var className, elem,
- i = 0;
-
- className = " " + selector + " ";
- while ( ( elem = this[ i++ ] ) ) {
- if ( elem.nodeType === 1 &&
- ( " " + getClass( elem ) + " " ).replace( rclass, " " )
- .indexOf( className ) > -1
- ) {
- return true;
- }
- }
-
- return false;
- }
-} );
-
-
-
-
-// Return jQuery for attributes-only inclusion
-
-
-jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
- "change select submit keydown keypress keyup error contextmenu" ).split( " " ),
- function( i, name ) {
-
- // Handle event binding
- jQuery.fn[ name ] = function( data, fn ) {
- return arguments.length > 0 ?
- this.on( name, null, data, fn ) :
- this.trigger( name );
- };
-} );
-
-jQuery.fn.extend( {
- hover: function( fnOver, fnOut ) {
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
- }
-} );
-
-
-var location = window.location;
-
-var nonce = jQuery.now();
-
-var rquery = ( /\?/ );
-
-
-
-var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
-
-jQuery.parseJSON = function( data ) {
-
- // Attempt to parse using the native JSON parser first
- if ( window.JSON && window.JSON.parse ) {
-
- // Support: Android 2.3
- // Workaround failure to string-cast null input
- return window.JSON.parse( data + "" );
- }
-
- var requireNonComma,
- depth = null,
- str = jQuery.trim( data + "" );
-
- // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains
- // after removing valid tokens
- return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {
-
- // Force termination if we see a misplaced comma
- if ( requireNonComma && comma ) {
- depth = 0;
- }
-
- // Perform no more replacements after returning to outermost depth
- if ( depth === 0 ) {
- return token;
- }
-
- // Commas must not follow "[", "{", or ","
- requireNonComma = open || comma;
-
- // Determine new depth
- // array/object open ("[" or "{"): depth += true - false (increment)
- // array/object close ("]" or "}"): depth += false - true (decrement)
- // other cases ("," or primitive): depth += true - true (numeric cast)
- depth += !close - !open;
-
- // Remove this token
- return "";
- } ) ) ?
- ( Function( "return " + str ) )() :
- jQuery.error( "Invalid JSON: " + data );
-};
-
-
-// Cross-browser xml parsing
-jQuery.parseXML = function( data ) {
- var xml, tmp;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- try {
- if ( window.DOMParser ) { // Standard
- tmp = new window.DOMParser();
- xml = tmp.parseFromString( data, "text/xml" );
- } else { // IE
- xml = new window.ActiveXObject( "Microsoft.XMLDOM" );
- xml.async = "false";
- xml.loadXML( data );
- }
- } catch ( e ) {
- xml = undefined;
- }
- if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
- jQuery.error( "Invalid XML: " + data );
- }
- return xml;
-};
-
-
-var
- rhash = /#.*$/,
- rts = /([?&])_=[^&]*/,
-
- // IE leaves an \r character at EOL
- rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
-
- // #7653, #8125, #8152: local protocol detection
- rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
- rnoContent = /^(?:GET|HEAD)$/,
- rprotocol = /^\/\//,
- rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
-
- /* 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( "*" ),
-
- // Document location
- ajaxLocation = location.href,
-
- // Segment location into parts
- ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// 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( rnotwhite ) || [];
-
- if ( jQuery.isFunction( func ) ) {
-
- // For each dataType in the dataTypeExpression
- while ( ( dataType = dataTypes[ i++ ] ) ) {
-
- // Prepend if requested
- if ( dataType.charAt( 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 deep, key,
- 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 firstDataType, ct, finalDataType, type,
- 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" ] ) { // jscs:ignore requireDotNotation
- 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: ajaxLocation,
- type: "GET",
- isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
- 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": jQuery.parseJSON,
-
- // 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
-
- // Cross-domain detection vars
- parts,
-
- // Loop variable
- i,
-
- // URL without anti-cache param
- cacheURL,
-
- // Response headers as string
- responseHeadersString,
-
- // timeout handle
- timeoutTimer,
-
- // To know if global events are to be dispatched
- fireGlobals,
-
- transport,
-
- // Response headers
- responseHeaders,
-
- // 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 = {},
-
- // The jqXHR state
- state = 0,
-
- // Default abort message
- strAbort = "canceled",
-
- // Fake xhr
- jqXHR = {
- readyState: 0,
-
- // Builds headers hashtable if needed
- getResponseHeader: function( key ) {
- var match;
- if ( state === 2 ) {
- if ( !responseHeaders ) {
- responseHeaders = {};
- while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
- responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
- }
- }
- match = responseHeaders[ key.toLowerCase() ];
- }
- return match == null ? null : match;
- },
-
- // Raw string
- getAllResponseHeaders: function() {
- return state === 2 ? responseHeadersString : null;
- },
-
- // Caches the header
- setRequestHeader: function( name, value ) {
- var lname = name.toLowerCase();
- if ( !state ) {
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
- requestHeaders[ name ] = value;
- }
- return this;
- },
-
- // Overrides response content-type header
- overrideMimeType: function( type ) {
- if ( !state ) {
- s.mimeType = type;
- }
- return this;
- },
-
- // Status-dependent callbacks
- statusCode: function( map ) {
- var code;
- if ( map ) {
- if ( state < 2 ) {
- for ( code in map ) {
-
- // Lazy-add the new callback in a way that preserves old ones
- statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
- }
- } else {
-
- // Execute the appropriate callbacks
- jqXHR.always( map[ jqXHR.status ] );
- }
- }
- 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 ).complete = completeDeferred.add;
- jqXHR.success = jqXHR.done;
- jqXHR.error = jqXHR.fail;
-
- // Remove hash character (#7531: and string promotion)
- // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
- // 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 || ajaxLocation ) + "" )
- .replace( rhash, "" )
- .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
- // Alias method option to type as per ticket #12004
- s.type = options.method || options.type || s.method || s.type;
-
- // Extract dataTypes list
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
-
- // A cross-domain request is in order when we have a protocol:host:port mismatch
- if ( s.crossDomain == null ) {
- parts = rurl.exec( s.url.toLowerCase() );
- s.crossDomain = !!( parts &&
- ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
- ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
- ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
- );
- }
-
- // 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 ( state === 2 ) {
- 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
- cacheURL = s.url;
-
- // More options handling for requests with no content
- if ( !s.hasContent ) {
-
- // If data is available, append data to url
- if ( s.data ) {
- cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
-
- // #9682: remove data so that it's not used in an eventual retry
- delete s.data;
- }
-
- // Add anti-cache in url if needed
- if ( s.cache === false ) {
- s.url = rts.test( cacheURL ) ?
-
- // If there is already a '_' parameter, set its value
- cacheURL.replace( rts, "$1_=" + nonce++ ) :
-
- // Otherwise add one to the end
- cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
- }
- }
-
- // 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 || state === 2 ) ) {
-
- // Abort if not done already and return
- return jqXHR.abort();
- }
-
- // aborting is no longer a cancellation
- strAbort = "abort";
-
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jqXHR[ i ]( s[ i ] );
- }
-
- // 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 ( state === 2 ) {
- return jqXHR;
- }
-
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = window.setTimeout( function() {
- jqXHR.abort( "timeout" );
- }, s.timeout );
- }
-
- try {
- state = 1;
- transport.send( requestHeaders, done );
- } catch ( e ) {
-
- // Propagate exception as error if not done
- if ( state < 2 ) {
- done( -1, e );
-
- // Simply rethrow otherwise
- } else {
- throw e;
- }
- }
- }
-
- // Callback for when everything is done
- function done( status, nativeStatusText, responses, headers ) {
- var isSuccess, success, error, response, modified,
- statusText = nativeStatusText;
-
- // Called once
- if ( state === 2 ) {
- return;
- }
-
- // State is "done" now
- state = 2;
-
- // 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 );
- }
-
- // 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 {
-
- // We extract error from statusText
- // then normalize statusText and status 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 ( jQuery.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._evalUrl = function( url ) {
- 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,
- "throws": true
- } );
-};
-
-
-jQuery.fn.extend( {
- wrapAll: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each( function( i ) {
- jQuery( this ).wrapAll( html.call( this, i ) );
- } );
- }
-
- if ( this[ 0 ] ) {
-
- // The elements to wrap the target around
- var wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
-
- if ( this[ 0 ].parentNode ) {
- wrap.insertBefore( this[ 0 ] );
- }
-
- wrap.map( function() {
- var elem = this;
-
- while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
- elem = elem.firstChild;
- }
-
- return elem;
- } ).append( this );
- }
-
- return this;
- },
-
- wrapInner: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each( function( i ) {
- jQuery( this ).wrapInner( html.call( this, i ) );
- } );
- }
-
- return this.each( function() {
- var self = jQuery( this ),
- contents = self.contents();
-
- if ( contents.length ) {
- contents.wrapAll( html );
-
- } else {
- self.append( html );
- }
- } );
- },
-
- wrap: function( html ) {
- var isFunction = jQuery.isFunction( html );
-
- return this.each( function( i ) {
- jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
- } );
- },
-
- unwrap: function() {
- return this.parent().each( function() {
- if ( !jQuery.nodeName( this, "body" ) ) {
- jQuery( this ).replaceWith( this.childNodes );
- }
- } ).end();
- }
-} );
-
-
-function getDisplay( elem ) {
- return elem.style && elem.style.display || jQuery.css( elem, "display" );
-}
-
-function filterHidden( elem ) {
-
- // Disconnected elements are considered hidden
- if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) {
- return true;
- }
- while ( elem && elem.nodeType === 1 ) {
- if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) {
- return true;
- }
- elem = elem.parentNode;
- }
- return false;
-}
-
-jQuery.expr.filters.hidden = function( elem ) {
-
- // Support: Opera <= 12.12
- // Opera reports offsetWidths and offsetHeights less than zero on some elements
- return support.reliableHiddenOffsets() ?
- ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 &&
- !elem.getClientRects().length ) :
- filterHidden( elem );
-};
-
-jQuery.expr.filters.visible = function( elem ) {
- return !jQuery.expr.filters.hidden( elem );
-};
-
-
-
-
-var r20 = /%20/g,
- 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 ( jQuery.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 && jQuery.type( 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, value ) {
-
- // If value is a function, invoke it and return its value
- value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
- s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
- };
-
- // Set traditional to true for jQuery <= 1.3.2 behavior.
- if ( traditional === undefined ) {
- traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
- }
-
- // If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.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( "&" ).replace( r20, "+" );
-};
-
-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();
-
- return val == null ?
- null :
- jQuery.isArray( val ) ?
- jQuery.map( val, function( val ) {
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- } ) :
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- } ).get();
- }
-} );
-
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?
-
- // Support: IE6-IE8
- function() {
-
- // XHR cannot access local files, always use ActiveX for that case
- if ( this.isLocal ) {
- return createActiveXHR();
- }
-
- // Support: IE 9-11
- // IE seems to error on cross-domain PATCH requests when ActiveX XHR
- // is used. In IE 9+ always use the native XHR.
- // Note: this condition won't catch Edge as it doesn't define
- // document.documentMode but it also doesn't support ActiveX so it won't
- // reach this code.
- if ( document.documentMode > 8 ) {
- return createStandardXHR();
- }
-
- // Support: IE<9
- // oldIE XHR does not support non-RFC2616 methods (#13240)
- // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx
- // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9
- // Although this check for six methods instead of eight
- // since IE also does not support "trace" and "connect"
- return /^(get|post|head|put|delete|options)$/i.test( this.type ) &&
- createStandardXHR() || createActiveXHR();
- } :
-
- // For all other browsers, use the standard XMLHttpRequest object
- createStandardXHR;
-
-var xhrId = 0,
- xhrCallbacks = {},
- xhrSupported = jQuery.ajaxSettings.xhr();
-
-// Support: IE<10
-// Open requests must be manually aborted on unload (#5280)
-// See https://support.microsoft.com/kb/2856746 for more info
-if ( window.attachEvent ) {
- window.attachEvent( "onunload", function() {
- for ( var key in xhrCallbacks ) {
- xhrCallbacks[ key ]( undefined, true );
- }
- } );
-}
-
-// Determine support properties
-support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
-xhrSupported = support.ajax = !!xhrSupported;
-
-// Create transport if the browser can provide an xhr
-if ( xhrSupported ) {
-
- jQuery.ajaxTransport( function( options ) {
-
- // Cross domain only allowed if supported through XMLHttpRequest
- if ( !options.crossDomain || support.cors ) {
-
- var callback;
-
- return {
- send: function( headers, complete ) {
- var i,
- xhr = options.xhr(),
- id = ++xhrId;
-
- // Open the socket
- 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 ) {
-
- // Support: IE<9
- // IE's ActiveXObject throws a 'Type Mismatch' exception when setting
- // request header to a null-value.
- //
- // To keep consistent with other XHR implementations, cast the value
- // to string and ignore `undefined`.
- if ( headers[ i ] !== undefined ) {
- xhr.setRequestHeader( i, headers[ i ] + "" );
- }
- }
-
- // Do send the request
- // This may raise an exception which is actually
- // handled in jQuery.ajax (so no try/catch here)
- xhr.send( ( options.hasContent && options.data ) || null );
-
- // Listener
- callback = function( _, isAbort ) {
- var status, statusText, responses;
-
- // Was never called and is aborted or complete
- if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
- // Clean up
- delete xhrCallbacks[ id ];
- callback = undefined;
- xhr.onreadystatechange = jQuery.noop;
-
- // Abort manually if needed
- if ( isAbort ) {
- if ( xhr.readyState !== 4 ) {
- xhr.abort();
- }
- } else {
- responses = {};
- status = xhr.status;
-
- // Support: IE<10
- // Accessing binary-data responseText throws an exception
- // (#11426)
- if ( typeof xhr.responseText === "string" ) {
- responses.text = xhr.responseText;
- }
-
- // Firefox throws an exception when accessing
- // statusText for faulty cross-domain requests
- try {
- statusText = xhr.statusText;
- } catch ( e ) {
-
- // We normalize with Webkit giving an empty statusText
- statusText = "";
- }
-
- // Filter status for non standard behaviors
-
- // If the request is local and we have data: assume a success
- // (success with no data won't get notified, that's the best we
- // can do given current implementations)
- if ( !status && options.isLocal && !options.crossDomain ) {
- status = responses.text ? 200 : 404;
-
- // IE - #1450: sometimes returns 1223 when it should be 204
- } else if ( status === 1223 ) {
- status = 204;
- }
- }
- }
-
- // Call complete if needed
- if ( responses ) {
- complete( status, statusText, responses, xhr.getAllResponseHeaders() );
- }
- };
-
- // Do send the request
- // `xhr.send` may raise an exception, but it will be
- // handled in jQuery.ajax (so no try/catch here)
- if ( !options.async ) {
-
- // If we're in sync mode we fire the callback
- callback();
- } else if ( xhr.readyState === 4 ) {
-
- // (IE6 & IE7) if it's in cache and has been
- // retrieved directly we need to fire the callback
- window.setTimeout( callback );
- } else {
-
- // Register the callback, but delay it in case `xhr.send` throws
- // Add to the list of active xhr callbacks
- xhr.onreadystatechange = xhrCallbacks[ id ] = callback;
- }
- },
-
- abort: function() {
- if ( callback ) {
- callback( undefined, true );
- }
- }
- };
- }
- } );
-}
-
-// Functions to create xhrs
-function createStandardXHR() {
- try {
- return new window.XMLHttpRequest();
- } catch ( e ) {}
-}
-
-function createActiveXHR() {
- try {
- return new window.ActiveXObject( "Microsoft.XMLHTTP" );
- } catch ( e ) {}
-}
-
-
-
-
-// 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 global
-jQuery.ajaxPrefilter( "script", function( s ) {
- if ( s.cache === undefined ) {
- s.cache = false;
- }
- if ( s.crossDomain ) {
- s.type = "GET";
- s.global = false;
- }
-} );
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function( s ) {
-
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
-
- var script,
- head = document.head || jQuery( "head" )[ 0 ] || document.documentElement;
-
- return {
-
- send: function( _, callback ) {
-
- script = document.createElement( "script" );
-
- script.async = true;
-
- if ( s.scriptCharset ) {
- script.charset = s.scriptCharset;
- }
-
- script.src = s.url;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function( _, isAbort ) {
-
- if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
-
- // Remove the script
- if ( script.parentNode ) {
- script.parentNode.removeChild( script );
- }
-
- // Dereference the script
- script = null;
-
- // Callback if not abort
- if ( !isAbort ) {
- callback( 200, "success" );
- }
- }
- };
-
- // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
- // Use native DOM manipulation to avoid our domManip AJAX trickery
- head.insertBefore( script, head.firstChild );
- },
-
- abort: function() {
- if ( script ) {
- script.onload( undefined, true );
- }
- }
- };
- }
-} );
-
-
-
-
-var oldCallbacks = [],
- rjsonp = /(=)\?(?=&|$)|\?\?/;
-
-// Default jsonp settings
-jQuery.ajaxSetup( {
- jsonp: "callback",
- jsonpCallback: function() {
- var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
- this[ callback ] = true;
- return callback;
- }
-} );
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
- var callbackName, overwritten, responseContainer,
- jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
- "url" :
- typeof s.data === "string" &&
- ( s.contentType || "" )
- .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
- rjsonp.test( s.data ) && "data"
- );
-
- // Handle iff the expected data type is "jsonp" or we have a parameter to set
- if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
-
- // Get callback name, remembering preexisting value associated with it
- callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
- s.jsonpCallback() :
- s.jsonpCallback;
-
- // Insert callback into url or form data
- if ( jsonProp ) {
- s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
- } else if ( s.jsonp !== false ) {
- s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
- }
-
- // Use data converter to retrieve json after script execution
- s.converters[ "script json" ] = function() {
- if ( !responseContainer ) {
- jQuery.error( callbackName + " was not called" );
- }
- return responseContainer[ 0 ];
- };
-
- // force json dataType
- s.dataTypes[ 0 ] = "json";
-
- // Install callback
- overwritten = window[ callbackName ];
- window[ callbackName ] = function() {
- responseContainer = arguments;
- };
-
- // Clean-up function (fires after converters)
- jqXHR.always( function() {
-
- // If previous value didn't exist - remove it
- if ( overwritten === undefined ) {
- jQuery( window ).removeProp( callbackName );
-
- // Otherwise restore preexisting value
- } else {
- window[ callbackName ] = overwritten;
- }
-
- // Save back as free
- if ( s[ callbackName ] ) {
-
- // make sure that re-using the options doesn't screw things around
- s.jsonpCallback = originalSettings.jsonpCallback;
-
- // save the callback name for future use
- oldCallbacks.push( callbackName );
- }
-
- // Call if it was a function and we have a response
- if ( responseContainer && jQuery.isFunction( overwritten ) ) {
- overwritten( responseContainer[ 0 ] );
- }
-
- responseContainer = overwritten = undefined;
- } );
-
- // Delegate to script
- return "script";
- }
-} );
-
-
-
-
-// data: string of html
-// context (optional): If specified, the fragment will be created in this context,
-// defaults to document
-// keepScripts (optional): If true, will include scripts passed in the html string
-jQuery.parseHTML = function( data, context, keepScripts ) {
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- if ( typeof context === "boolean" ) {
- keepScripts = context;
- context = false;
- }
- context = context || document;
-
- var parsed = rsingleTag.exec( data ),
- scripts = !keepScripts && [];
-
- // Single tag
- if ( parsed ) {
- return [ context.createElement( parsed[ 1 ] ) ];
- }
-
- parsed = buildFragment( [ data ], context, scripts );
-
- if ( scripts && scripts.length ) {
- jQuery( scripts ).remove();
- }
-
- return jQuery.merge( [], parsed.childNodes );
-};
-
-
-// Keep a copy of the old load method
-var _load = jQuery.fn.load;
-
-/**
- * Load a url into a page
- */
-jQuery.fn.load = function( url, params, callback ) {
- if ( typeof url !== "string" && _load ) {
- return _load.apply( this, arguments );
- }
-
- var selector, type, response,
- self = this,
- off = url.indexOf( " " );
-
- if ( off > -1 ) {
- selector = jQuery.trim( url.slice( off, url.length ) );
- url = url.slice( 0, off );
- }
-
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
-
- // We assume that it's the callback
- callback = params;
- params = undefined;
-
- // Otherwise, build a param string
- } else if ( params && typeof params === "object" ) {
- type = "POST";
- }
-
- // If we have elements to modify, make the request
- if ( self.length > 0 ) {
- jQuery.ajax( {
- url: url,
-
- // If "type" variable is undefined, then "GET" method will be used.
- // Make value of this field explicit since
- // user can override it through ajaxSetup method
- type: type || "GET",
- dataType: "html",
- data: params
- } ).done( function( responseText ) {
-
- // Save response for use in complete callback
- response = arguments;
-
- self.html( selector ?
-
- // If a selector was specified, locate the right elements in a dummy div
- // Exclude scripts to avoid IE 'Permission Denied' errors
- jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
-
- // Otherwise use the full result
- responseText );
-
- // If the request succeeds, this function gets "data", "status", "jqXHR"
- // but they are ignored because response was set above.
- // If it fails, this function gets "jqXHR", "status", "error"
- } ).always( callback && function( jqXHR, status ) {
- self.each( function() {
- callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
- } );
- } );
- }
-
- return this;
-};
-
-
-
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [
- "ajaxStart",
- "ajaxStop",
- "ajaxComplete",
- "ajaxError",
- "ajaxSuccess",
- "ajaxSend"
-], function( i, type ) {
- jQuery.fn[ type ] = function( fn ) {
- return this.on( type, fn );
- };
-} );
-
-
-
-
-jQuery.expr.filters.animated = function( elem ) {
- return jQuery.grep( jQuery.timers, function( fn ) {
- return elem === fn.elem;
- } ).length;
-};
-
-
-
-
-
-/**
- * Gets a window from an element
- */
-function getWindow( elem ) {
- return jQuery.isWindow( elem ) ?
- elem :
- elem.nodeType === 9 ?
- elem.defaultView || elem.parentWindow :
- false;
-}
-
-jQuery.offset = {
- setOffset: function( elem, options, i ) {
- var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
- position = jQuery.css( elem, "position" ),
- curElem = jQuery( elem ),
- props = {};
-
- // set position first, in-case top/left are set even on static elem
- if ( position === "static" ) {
- elem.style.position = "relative";
- }
-
- curOffset = curElem.offset();
- curCSSTop = jQuery.css( elem, "top" );
- curCSSLeft = jQuery.css( elem, "left" );
- calculatePosition = ( position === "absolute" || position === "fixed" ) &&
- jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -1;
-
- // need to be able to calculate position if either top or left
- // is auto and position is either absolute or fixed
- if ( calculatePosition ) {
- curPosition = curElem.position();
- curTop = curPosition.top;
- curLeft = curPosition.left;
- } else {
- curTop = parseFloat( curCSSTop ) || 0;
- curLeft = parseFloat( curCSSLeft ) || 0;
- }
-
- if ( jQuery.isFunction( options ) ) {
-
- // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
- options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
- }
-
- if ( options.top != null ) {
- props.top = ( options.top - curOffset.top ) + curTop;
- }
- if ( options.left != null ) {
- props.left = ( options.left - curOffset.left ) + curLeft;
- }
-
- if ( "using" in options ) {
- options.using.call( elem, props );
- } else {
- curElem.css( props );
- }
- }
-};
-
-jQuery.fn.extend( {
- offset: function( options ) {
- if ( arguments.length ) {
- return options === undefined ?
- this :
- this.each( function( i ) {
- jQuery.offset.setOffset( this, options, i );
- } );
- }
-
- var docElem, win,
- box = { top: 0, left: 0 },
- elem = this[ 0 ],
- doc = elem && elem.ownerDocument;
-
- if ( !doc ) {
- return;
- }
-
- docElem = doc.documentElement;
-
- // Make sure it's not a disconnected DOM node
- if ( !jQuery.contains( docElem, elem ) ) {
- return box;
- }
-
- // If we don't have gBCR, just use 0,0 rather than error
- // BlackBerry 5, iOS 3 (original iPhone)
- if ( typeof elem.getBoundingClientRect !== "undefined" ) {
- box = elem.getBoundingClientRect();
- }
- win = getWindow( doc );
- return {
- top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
- left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
- };
- },
-
- position: function() {
- if ( !this[ 0 ] ) {
- return;
- }
-
- var offsetParent, offset,
- parentOffset = { top: 0, left: 0 },
- elem = this[ 0 ];
-
- // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
- // because it is its only offset parent
- if ( jQuery.css( elem, "position" ) === "fixed" ) {
-
- // we assume that getBoundingClientRect is available when computed position is fixed
- offset = elem.getBoundingClientRect();
- } else {
-
- // Get *real* offsetParent
- offsetParent = this.offsetParent();
-
- // Get correct offsets
- offset = this.offset();
- if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
- parentOffset = offsetParent.offset();
- }
-
- // Add offsetParent borders
- parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
- parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
- }
-
- // Subtract parent offsets and element margins
- // note: when an element has margin: auto the offsetLeft and marginLeft
- // are the same in Safari causing offset.left to incorrectly be 0
- return {
- top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
- left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
- };
- },
-
- offsetParent: function() {
- return this.map( function() {
- var offsetParent = this.offsetParent;
-
- while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) &&
- jQuery.css( offsetParent, "position" ) === "static" ) ) {
- offsetParent = offsetParent.offsetParent;
- }
- return offsetParent || documentElement;
- } );
- }
-} );
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
- var top = /Y/.test( prop );
-
- jQuery.fn[ method ] = function( val ) {
- return access( this, function( elem, method, val ) {
- var win = getWindow( elem );
-
- if ( val === undefined ) {
- return win ? ( prop in win ) ? win[ prop ] :
- win.document.documentElement[ method ] :
- elem[ method ];
- }
-
- if ( win ) {
- win.scrollTo(
- !top ? val : jQuery( win ).scrollLeft(),
- top ? val : jQuery( win ).scrollTop()
- );
-
- } else {
- elem[ method ] = val;
- }
- }, method, val, arguments.length, null );
- };
-} );
-
-// Support: Safari<7-8+, Chrome<37-44+
-// Add the top/left cssHooks using jQuery.fn.position
-// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
-// getComputedStyle returns percent when specified for top/left/bottom/right
-// rather than make the css module depend on the offset module, we just check for it here
-jQuery.each( [ "top", "left" ], function( i, prop ) {
- jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
- function( elem, computed ) {
- if ( computed ) {
- computed = curCSS( elem, prop );
-
- // if curCSS returns percentage, fallback to offset
- return rnumnonpx.test( computed ) ?
- jQuery( elem ).position()[ prop ] + "px" :
- computed;
- }
- }
- );
-} );
-
-
-// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
-jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
- jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
- function( defaultExtra, funcName ) {
-
- // margin is only for outerHeight, outerWidth
- jQuery.fn[ funcName ] = function( margin, value ) {
- var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
- extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
-
- return access( this, function( elem, type, value ) {
- var doc;
-
- if ( jQuery.isWindow( elem ) ) {
-
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
- // isn't a whole lot we can do. See pull request at this URL for discussion:
- // https://github.com/jquery/jquery/pull/764
- return elem.document.documentElement[ "client" + name ];
- }
-
- // Get document width or height
- if ( elem.nodeType === 9 ) {
- doc = elem.documentElement;
-
- // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
- // whichever is greatest
- // unfortunately, this causes bug #3838 in IE6/8 only,
- // but there is currently no good, small way to fix it.
- return Math.max(
- elem.body[ "scroll" + name ], doc[ "scroll" + name ],
- elem.body[ "offset" + name ], doc[ "offset" + name ],
- doc[ "client" + name ]
- );
- }
-
- return value === undefined ?
-
- // Get width or height on the element, requesting but not forcing parseFloat
- jQuery.css( elem, type, extra ) :
-
- // Set width or height on the element
- jQuery.style( elem, type, value, extra );
- }, type, chainable ? margin : undefined, chainable, null );
- };
- } );
-} );
-
-
-jQuery.fn.extend( {
-
- bind: function( types, data, fn ) {
- return this.on( types, null, data, fn );
- },
- unbind: function( types, fn ) {
- return this.off( types, null, fn );
- },
-
- delegate: function( selector, types, data, fn ) {
- return this.on( types, selector, data, fn );
- },
- undelegate: function( selector, types, fn ) {
-
- // ( namespace ) or ( selector, types [, fn] )
- return arguments.length === 1 ?
- this.off( selector, "**" ) :
- this.off( types, selector || "**", fn );
- }
-} );
-
-// The number of elements contained in the matched element set
-jQuery.fn.size = function() {
- return this.length;
-};
-
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
-
-
-
-// Register as a named AMD module, since jQuery can be concatenated with other
-// files that may use define, but not via a proper concatenation script that
-// understands anonymous AMD modules. A named AMD is safest and most robust
-// way to register. Lowercase jquery is used because AMD module names are
-// derived from file names, and jQuery is normally delivered in a lowercase
-// file name. Do this after creating the global so that if an AMD module wants
-// to call noConflict to hide this version of jQuery, it will work.
-
-// Note that for maximum portability, libraries that are not jQuery should
-// declare themselves as anonymous modules, and avoid setting a global if an
-// AMD loader is present. jQuery is a special case. For more information, see
-// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
-
-if ( typeof define === "function" && define.amd ) {
- define( "jquery", [], function() {
- return jQuery;
- } );
-}
-
-
-
-var
-
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
-
- // Map over the $ in case of overwrite
- _$ = window.$;
-
-jQuery.noConflict = function( deep ) {
- if ( window.$ === jQuery ) {
- window.$ = _$;
- }
-
- if ( deep && window.jQuery === jQuery ) {
- window.jQuery = _jQuery;
- }
-
- return jQuery;
-};
-
-// Expose jQuery and $ identifiers, even in
-// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
-// and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
- window.jQuery = window.$ = jQuery;
-}
-
-return jQuery;
-}));
+/*!
+ * jQuery JavaScript Library v1.12.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-05-20T17:17Z
+ */
+
+(function( global, factory ) {
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//"use strict";
+var deletedIds = [];
+
+var document = window.document;
+
+var slice = deletedIds.slice;
+
+var concat = deletedIds.concat;
+
+var push = deletedIds.push;
+
+var indexOf = deletedIds.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+ version = "1.12.4",
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ // Need init if jQuery is called (just allow error to be thrown if not included)
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Support: Android<4.1, IE<9
+ // Make sure we trim BOM and NBSP
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([\da-z])/gi,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ };
+
+jQuery.fn = jQuery.prototype = {
+
+ // The current version of jQuery being used
+ jquery: version,
+
+ constructor: jQuery,
+
+ // Start with an empty selector
+ selector: "",
+
+ // 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 num != null ?
+
+ // Return just the one element from the set
+ ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+ // Return all the elements in a clean array
+ slice.call( this );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+ ret.context = this.context;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ each: function( callback ) {
+ return jQuery.each( this, callback );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ } ) );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor();
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: deletedIds.sort,
+ splice: deletedIds.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var src, copyIsArray, copy, name, options, clone,
+ target = arguments[ 0 ] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+
+ // Only deal with non-null/undefined values
+ if ( ( options = arguments[ i ] ) != null ) {
+
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+ ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray( src ) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject( src ) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend( {
+
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type( obj ) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type( obj ) === "array";
+ },
+
+ isWindow: function( obj ) {
+ /* jshint eqeqeq: false */
+ return obj != null && obj == obj.window;
+ },
+
+ isNumeric: function( obj ) {
+
+ // parseFloat NaNs numeric-cast false positives (null|true|false|"")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ // adding 1 corrects loss of precision from parseFloat (#15100)
+ var realStringObj = obj && obj.toString();
+ return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+ },
+
+ isEmptyObject: function( obj ) {
+ var name;
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ isPlainObject: function( obj ) {
+ var key;
+
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !hasOwn.call( obj, "constructor" ) &&
+ !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
+ return false;
+ }
+ } catch ( e ) {
+
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Support: IE<9
+ // Handle iteration over inherited properties before own properties.
+ if ( !support.ownFirst ) {
+ for ( key in obj ) {
+ return hasOwn.call( obj, key );
+ }
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwn.call( obj, key );
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call( obj ) ] || "object" :
+ typeof obj;
+ },
+
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && jQuery.trim( data ) ) {
+
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ each: function( obj, callback ) {
+ var length, i = 0;
+
+ if ( isArrayLike( obj ) ) {
+ length = obj.length;
+ for ( ; i < length; i++ ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+ break;
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Support: Android<4.1, IE<9
+ trim: function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArrayLike( Object( arr ) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ var len;
+
+ if ( arr ) {
+ if ( indexOf ) {
+ return indexOf.call( arr, elem, i );
+ }
+
+ len = arr.length;
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+ for ( ; i < len; i++ ) {
+
+ // Skip accessing in sparse arrays
+ if ( i in arr && arr[ i ] === elem ) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ while ( j < len ) {
+ first[ i++ ] = second[ j++ ];
+ }
+
+ // Support: IE<9
+ // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
+ if ( len !== len ) {
+ while ( second[ j ] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var length, value,
+ i = 0,
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArrayLike( elems ) ) {
+ length = elems.length;
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var args, proxy, tmp;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: function() {
+ return +( new Date() );
+ },
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+} );
+
+// JSHint would error on this code due to the Symbol not being defined in ES5.
+// Defining this global in .jshintrc would create a danger of using the global
+// unguarded in another place, it seems safer to just disable JSHint for these
+// three lines.
+/* jshint ignore: start */
+if ( typeof Symbol === "function" ) {
+ jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ];
+}
+/* jshint ignore: end */
+
+// 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: iOS 8.2 (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = !!obj && "length" in obj && obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.2.1
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-10-17
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // General-purpose constants
+ MAX_NEGATIVE = 1 << 31,
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf as it's faster than native
+ // http://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+ // Operator (capture 2)
+ "*([*^$|!~]?=)" + whitespace +
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+ "*\\]",
+
+ pseudos = ":(" + identifier + ")(?:\\((" +
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+ // 1. quoted (capture 3; capture 4 or capture 5)
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+ // 2. simple (capture 6)
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+ // 3. anything else (capture 2)
+ ".*" +
+ ")\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+ rescape = /'|\\/g,
+
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox<24
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // Used for iframes
+ // See setDocument()
+ // Removing the function wrapper causes a "Permission Denied"
+ // error in IE
+ unloadHandler = function() {
+ setDocument();
+ };
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var m, i, elem, nid, nidselect, match, groups, newSelector,
+ newContext = context && context.ownerDocument,
+
+ // nodeType defaults to 9, since context defaults to document
+ nodeType = context ? context.nodeType : 9;
+
+ results = results || [];
+
+ // Return early from calls with invalid selector or context
+ if ( typeof selector !== "string" || !selector ||
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+ return results;
+ }
+
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
+ if ( !seed ) {
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+ context = context || document;
+
+ if ( documentIsHTML ) {
+
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
+ // (excepting DocumentFragment context, where the methods don't exist)
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+ // ID selector
+ if ( (m = match[1]) ) {
+
+ // Document context
+ if ( nodeType === 9 ) {
+ if ( (elem = context.getElementById( m )) ) {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+
+ // Element context
+ } else {
+
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
+ // getElementById can match elements by name instead of ID
+ if ( newContext && (elem = newContext.getElementById( m )) &&
+ contains( context, elem ) &&
+ elem.id === m ) {
+
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Type selector
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Class selector
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // Take advantage of querySelectorAll
+ if ( support.qsa &&
+ !compilerCache[ selector + " " ] &&
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+ if ( nodeType !== 1 ) {
+ newContext = context;
+ newSelector = selector;
+
+ // qSA looks outside Element context, which is not what we want
+ // Thanks to Andrew Dupont for this workaround technique
+ // Support: IE <=8
+ // Exclude object elements
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+ // Capture the context ID, setting it first if necessary
+ if ( (nid = context.getAttribute( "id" )) ) {
+ nid = nid.replace( rescape, "\\$&" );
+ } else {
+ context.setAttribute( "id", (nid = expando) );
+ }
+
+ // Prefix every selector in the list
+ groups = tokenize( selector );
+ i = groups.length;
+ nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
+ while ( i-- ) {
+ groups[i] = nidselect + " " + toSelector( groups[i] );
+ }
+ newSelector = groups.join( "," );
+
+ // Expand context for sibling selectors
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+ context;
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch ( qsaError ) {
+ } finally {
+ if ( nid === expando ) {
+ context.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+ var div = document.createElement("div");
+
+ try {
+ return !!fn( div );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( div.parentNode ) {
+ div.parentNode.removeChild( div );
+ }
+ // release memory in IE
+ div = 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 &&
+ ( ~b.sourceIndex || MAX_NEGATIVE ) -
+ ( ~a.sourceIndex || MAX_NEGATIVE );
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @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 positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, parent,
+ doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // Return early if doc is invalid or already selected
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Update global variables
+ document = doc;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
+
+ // Support: IE 9-11, Edge
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ if ( (parent = document.defaultView) && parent.top !== parent ) {
+ // Support: IE 11
+ if ( parent.addEventListener ) {
+ parent.addEventListener( "unload", unloadHandler, false );
+
+ // Support: IE 9 - 10 only
+ } else if ( parent.attachEvent ) {
+ parent.attachEvent( "onunload", unloadHandler );
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert(function( div ) {
+ div.className = "i";
+ return !div.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( div ) {
+ div.appendChild( document.createComment("") );
+ return !div.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 programatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( div ) {
+ docElem.appendChild( div ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ });
+
+ // ID find and filter
+ if ( support.getById ) {
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+ var m = context.getElementById( id );
+ return m ? [ m ] : [];
+ }
+ };
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ } else {
+ // Support: IE6/7
+ // getElementById is not reliable as a find shortcut
+ delete Expr.find["ID"];
+
+ 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;
+ };
+ };
+ }
+
+ // 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 http://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( div ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // http://bugs.jquery.com/ticket/12359
+ docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+ "<option selected=''></option></select>";
+
+ // 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
+ // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( div.querySelectorAll("[msallowcapture^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !div.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 ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push("~=");
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibing-combinator selector` fails
+ if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push(".#.+[+~]");
+ }
+ });
+
+ assert(function( div ) {
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ div.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( div.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 ( !div.querySelectorAll(":enabled").length ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ div.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( div ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( div, "div" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( div, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === document ? -1 :
+ b === document ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ !compilerCache[ expr + " " ] &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch (e) {}
+ }
+
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[6] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] ) {
+ match[2] = match[4] || match[5] || "";
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType,
+ diff = false;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) {
+
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+
+ // Seek `elem` from a previously-cached index
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex && cache[ 2 ];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ } else {
+ // Use previously-cached element index if available
+ if ( useCache ) {
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ cache = uniqueCache[ type ] || [];
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+ diff = nodeIndex;
+ }
+
+ // xml :nth-child(...)
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ if ( diff === false ) {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ?
+ node.nodeName.toLowerCase() === name :
+ node.nodeType === 1 ) &&
+ ++diff ) {
+
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ outerCache = node[ expando ] || (node[ expando ] = {});
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ (outerCache[ node.uniqueID ] = {});
+
+ uniqueCache[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ // Don't keep the element (issue #299)
+ input[0] = null;
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ text = text.replace( runescape, funescape );
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": function( elem ) {
+ return elem.disabled === false;
+ },
+
+ "disabled": function( elem ) {
+ return elem.disabled === true;
+ },
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ checkNonElements = base && dir === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var 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 ( (oldCache = uniqueCache[ dir ]) &&
+ 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[ dir ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ // Avoid hanging onto element (issue #299)
+ checkContext = null;
+ return ret;
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context === document || context || outermost;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ if ( !context && elem.ownerDocument !== document ) {
+ setDocument( elem );
+ xml = !documentIsHTML;
+ }
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context || document, xml) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
+ // makes the latter nonnegative.
+ matchedCount += i;
+
+ // Apply set filters to unmatched elements
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+ // no element matchers and no seed.
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+ // numerically zero.
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !match ) {
+ match = tokenize( selector );
+ }
+ i = match.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( match[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+ // Save selector and tokenization
+ cached.selector = selector;
+ }
+ return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ * selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ * selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ compiled = typeof selector === "function" && selector,
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+ results = results || [];
+
+ // Try to minimize operations if there is only one selector in the list and no seed
+ // (the latter of which guarantees us context)
+ if ( match.length === 1 ) {
+
+ // Reduce context if the leading compound selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ support.getById && 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( div1 ) {
+ // Should return 1, but returns 4 (following)
+ return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+ div.innerHTML = "<a href='#'></a>";
+ return div.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( div ) {
+ div.innerHTML = "<input/>";
+ div.firstChild.setAttribute( "value", "" );
+ return div.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( div ) {
+ return div.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;
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var dir = function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+};
+
+
+var siblings = function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ /* jshint -W018 */
+ return !!qualifier.call( elem, i, elem ) !== not;
+ } );
+
+ }
+
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ } );
+
+ }
+
+ if ( typeof qualifier === "string" ) {
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ qualifier = jQuery.filter( qualifier, elements );
+ }
+
+ return jQuery.grep( elements, function( elem ) {
+ return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not;
+ } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 && elem.nodeType === 1 ?
+ jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+ jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ } ) );
+};
+
+jQuery.fn.extend( {
+ find: function( selector ) {
+ var i,
+ ret = [],
+ self = this,
+ len = self.length;
+
+ 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;
+ }
+ }
+ } ) );
+ }
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ // Needed because $( selector, context ) becomes $( context ).find( selector )
+ ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+ ret.selector = this.selector ? this.selector + " " + selector : selector;
+ return 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 <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+ init = jQuery.fn.init = function( selector, context, root ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // 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.charAt( 0 ) === "<" &&
+ selector.charAt( selector.length - 1 ) === ">" &&
+ selector.length >= 3 ) {
+
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && ( match[ 1 ] || !context ) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[ 1 ] ) {
+ context = context instanceof jQuery ? context[ 0 ] : context;
+
+ // scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[ 1 ],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[ 2 ] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[ 2 ] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[ 0 ] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || 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.context = this[ 0 ] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return typeof root.ready !== "undefined" ?
+ root.ready( selector ) :
+
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ if ( selector.selector !== undefined ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ 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 i,
+ targets = jQuery( target, this ),
+ len = targets.length;
+
+ return this.filter( function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( this, targets[ i ] ) ) {
+ return true;
+ }
+ }
+ } );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( ; i < l; i++ ) {
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && ( pos ?
+ pos.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 matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[ 0 ], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ 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 ) {
+ do {
+ cur = cur[ dir ];
+ } while ( cur && cur.nodeType !== 1 );
+
+ return cur;
+}
+
+jQuery.each( {
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return siblings( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ if ( this.length > 1 ) {
+
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ ret = jQuery.uniqueSort( ret );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+var rnotwhite = ( /\S+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+ var object = {};
+ jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ } );
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ createOptions( options ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+
+ // Last fire value for non-forgettable lists
+ memory,
+
+ // Flag to know if list was already fired
+ fired,
+
+ // Flag to prevent firing
+ locked,
+
+ // Actual callback list
+ list = [],
+
+ // Queue of execution data for repeatable lists
+ queue = [],
+
+ // Index of currently firing callback (modified by add/remove as needed)
+ firingIndex = -1,
+
+ // Fire callbacks
+ fire = function() {
+
+ // Enforce single-firing
+ locked = options.once;
+
+ // Execute callbacks for all pending executions,
+ // respecting firingIndex overrides and runtime changes
+ fired = firing = true;
+ for ( ; queue.length; firingIndex = -1 ) {
+ memory = queue.shift();
+ while ( ++firingIndex < list.length ) {
+
+ // Run callback and check for early termination
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+ options.stopOnFalse ) {
+
+ // Jump to end and forget the data so .add doesn't re-fire
+ firingIndex = list.length;
+ memory = false;
+ }
+ }
+ }
+
+ // Forget the data if we're done with it
+ if ( !options.memory ) {
+ memory = false;
+ }
+
+ firing = false;
+
+ // Clean up if we're done firing for good
+ if ( locked ) {
+
+ // Keep an empty list if we have data for future add calls
+ if ( memory ) {
+ list = [];
+
+ // Otherwise, this object is spent
+ } else {
+ list = "";
+ }
+ }
+ },
+
+ // Actual Callbacks object
+ self = {
+
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+
+ // If we have memory from a past run, we should fire after adding
+ if ( memory && !firing ) {
+ firingIndex = list.length - 1;
+ queue.push( memory );
+ }
+
+ ( function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ if ( jQuery.isFunction( arg ) ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+ // Inspect recursively
+ add( arg );
+ }
+ } );
+ } )( arguments );
+
+ if ( memory && !firing ) {
+ fire();
+ }
+ }
+ return this;
+ },
+
+ // Remove a callback from the list
+ remove: function() {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+
+ // Handle firing indexes
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ } );
+ return this;
+ },
+
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ?
+ jQuery.inArray( fn, list ) > -1 :
+ list.length > 0;
+ },
+
+ // Remove all callbacks from the list
+ empty: function() {
+ if ( list ) {
+ list = [];
+ }
+ return this;
+ },
+
+ // Disable .fire and .add
+ // Abort any current/pending executions
+ // Clear all callbacks and values
+ disable: function() {
+ locked = queue = [];
+ list = memory = "";
+ return this;
+ },
+ disabled: function() {
+ return !list;
+ },
+
+ // Disable .fire
+ // Also disable .add unless we have memory (since it would have no effect)
+ // Abort any pending executions
+ lock: function() {
+ locked = true;
+ if ( !memory ) {
+ self.disable();
+ }
+ 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;
+};
+
+
+jQuery.extend( {
+
+ Deferred: function( func ) {
+ var tuples = [
+
+ // action, add listener, listener list, final state
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
+ [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+ return jQuery.Deferred( function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
+ deferred[ tuple[ 1 ] ]( function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .progress( newDefer.notify )
+ .done( newDefer.resolve )
+ .fail( newDefer.reject );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ](
+ this === promise ? newDefer.promise() : this,
+ fn ? [ returned ] : arguments
+ );
+ }
+ } );
+ } );
+ fns = null;
+ } ).promise();
+ },
+
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Keep pipe for back-compat
+ promise.pipe = promise.then;
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 3 ];
+
+ // promise[ done | fail | progress ] = list.add
+ promise[ tuple[ 1 ] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add( function() {
+
+ // state = [ resolved | rejected ]
+ state = stateString;
+
+ // [ reject_list | resolve_list ].disable; progress_list.lock
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+ }
+
+ // deferred[ resolve | reject | notify ]
+ deferred[ tuple[ 0 ] ] = function() {
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
+ return this;
+ };
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+ } );
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( subordinate /* , ..., subordinateN */ ) {
+ var i = 0,
+ resolveValues = slice.call( arguments ),
+ length = resolveValues.length,
+
+ // the count of uncompleted subordinates
+ remaining = length !== 1 ||
+ ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+ // the master Deferred.
+ // If resolveValues consist of only a single Deferred, just use that.
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+ // Update function for both resolve and progress values
+ updateFunc = function( i, contexts, values ) {
+ return function( value ) {
+ contexts[ i ] = this;
+ values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( values === progressValues ) {
+ deferred.notifyWith( contexts, values );
+
+ } else if ( !( --remaining ) ) {
+ deferred.resolveWith( contexts, values );
+ }
+ };
+ },
+
+ progressValues, progressContexts, resolveContexts;
+
+ // add listeners to Deferred subordinates; treat others as resolved
+ if ( length > 1 ) {
+ progressValues = new Array( length );
+ progressContexts = new Array( length );
+ resolveContexts = new Array( length );
+ for ( ; i < length; i++ ) {
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+ resolveValues[ i ].promise()
+ .progress( updateFunc( i, progressContexts, progressValues ) )
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
+ .fail( deferred.reject );
+ } else {
+ --remaining;
+ }
+ }
+ }
+
+ // if we're not waiting on anything, resolve the master
+ if ( !remaining ) {
+ deferred.resolveWith( resolveContexts, resolveValues );
+ }
+
+ return deferred.promise();
+ }
+} );
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+
+ // Add the callback
+ jQuery.ready.promise().done( fn );
+
+ return this;
+};
+
+jQuery.extend( {
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.triggerHandler ) {
+ jQuery( document ).triggerHandler( "ready" );
+ jQuery( document ).off( "ready" );
+ }
+ }
+} );
+
+/**
+ * Clean-up method for dom ready events
+ */
+function detach() {
+ if ( document.addEventListener ) {
+ document.removeEventListener( "DOMContentLoaded", completed );
+ window.removeEventListener( "load", completed );
+
+ } else {
+ document.detachEvent( "onreadystatechange", completed );
+ window.detachEvent( "onload", completed );
+ }
+}
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+
+ // readyState === "complete" is good enough for us to call the dom ready in oldIE
+ if ( document.addEventListener ||
+ window.event.type === "load" ||
+ document.readyState === "complete" ) {
+
+ detach();
+ jQuery.ready();
+ }
+}
+
+jQuery.ready.promise = function( obj ) {
+ if ( !readyList ) {
+
+ readyList = jQuery.Deferred();
+
+ // Catch cases where $(document).ready() is called
+ // after the browser event has already occurred.
+ // Support: IE6-10
+ // 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 );
+
+ // Standards-based browsers support DOMContentLoaded
+ } else if ( document.addEventListener ) {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed );
+
+ // If IE event model is used
+ } else {
+
+ // Ensure firing before onload, maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", completed );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", completed );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var top = false;
+
+ try {
+ top = window.frameElement == null && document.documentElement;
+ } catch ( e ) {}
+
+ if ( top && top.doScroll ) {
+ ( function doScrollCheck() {
+ if ( !jQuery.isReady ) {
+
+ try {
+
+ // Use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ top.doScroll( "left" );
+ } catch ( e ) {
+ return window.setTimeout( doScrollCheck, 50 );
+ }
+
+ // detach all dom ready events
+ detach();
+
+ // and execute any waiting functions
+ jQuery.ready();
+ }
+ } )();
+ }
+ }
+ }
+ return readyList.promise( obj );
+};
+
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+
+
+
+// Support: IE<9
+// Iteration over object's inherited properties before its own
+var i;
+for ( i in jQuery( support ) ) {
+ break;
+}
+support.ownFirst = i === "0";
+
+// Note: most support tests are defined in their respective modules.
+// false until the test is run
+support.inlineBlockNeedsLayout = false;
+
+// Execute ASAP in case we need to set body.style.zoom
+jQuery( function() {
+
+ // Minified: var a,b,c,d
+ var val, div, body, container;
+
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
+
+ // Return for frameset docs that don't have a body
+ return;
+ }
+
+ // Setup
+ div = document.createElement( "div" );
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
+ body.appendChild( container ).appendChild( div );
+
+ if ( typeof div.style.zoom !== "undefined" ) {
+
+ // Support: IE<8
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
+
+ support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
+ if ( val ) {
+
+ // Prevent IE 6 from affecting layout for positioned elements #11048
+ // Prevent IE from shrinking the body in IE 7 mode #12869
+ // Support: IE<8
+ body.style.zoom = 1;
+ }
+ }
+
+ body.removeChild( container );
+} );
+
+
+( function() {
+ var div = document.createElement( "div" );
+
+ // Support: IE<9
+ support.deleteExpando = true;
+ try {
+ delete div.test;
+ } catch ( e ) {
+ support.deleteExpando = false;
+ }
+
+ // Null elements to avoid leaks in IE.
+ div = null;
+} )();
+var acceptData = function( elem ) {
+ var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
+ nodeType = +elem.nodeType || 1;
+
+ // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
+ return nodeType !== 1 && nodeType !== 9 ?
+ false :
+
+ // Nodes accept data unless otherwise specified; rejection can be conditional
+ !noData || noData !== true && elem.getAttribute( "classid" ) === noData;
+};
+
+
+
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+function dataAttr( elem, key, data ) {
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+
+ // Only convert to a number if it doesn't change the string
+ +data + "" === data ? +data :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch ( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+ var name;
+ for ( name in obj ) {
+
+ // if the public data object is empty, the private is still empty
+ if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
+ continue;
+ }
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
+ if ( !acceptData( elem ) ) {
+ return;
+ }
+
+ var ret, thisCache,
+ internalKey = jQuery.expando,
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
+ data === undefined && typeof name === "string" ) {
+ return;
+ }
+
+ if ( !id ) {
+
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
+ } else {
+ id = internalKey;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+
+ // Avoid exposing jQuery metadata on plain JS objects when the object
+ // is serialized using JSON.stringify
+ cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ] = jQuery.extend( cache[ id ], name );
+ } else {
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+ }
+ }
+
+ thisCache = cache[ id ];
+
+ // jQuery data() is stored in a separate object inside the object's internal data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data.
+ if ( !pvt ) {
+ if ( !thisCache.data ) {
+ thisCache.data = {};
+ }
+
+ thisCache = thisCache.data;
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( typeof name === "string" ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+}
+
+function internalRemoveData( elem, name, pvt ) {
+ if ( !acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, i,
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+ if ( thisCache ) {
+
+ // Support array or space separated string names for data keys
+ if ( !jQuery.isArray( name ) ) {
+
+ // try the string as a key before any manipulation
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+
+ // split the camel cased version by spaces unless a key with the spaces exists
+ name = jQuery.camelCase( name );
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+ name = name.split( " " );
+ }
+ }
+ } else {
+
+ // If "name" is an array of keys...
+ // When data is initially created, via ("key", "val") signature,
+ // keys will be converted to camelCase.
+ // Since there is no way to tell _how_ a key was added, remove
+ // both plain key and camelCase key. #12786
+ // This will only penalize the array argument path.
+ name = name.concat( jQuery.map( name, jQuery.camelCase ) );
+ }
+
+ i = name.length;
+ while ( i-- ) {
+ delete thisCache[ name[ i ] ];
+ }
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( !pvt ) {
+ delete cache[ id ].data;
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject( cache[ id ] ) ) {
+ return;
+ }
+ }
+
+ // Destroy the cache
+ if ( isNode ) {
+ jQuery.cleanData( [ elem ], true );
+
+ // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
+ /* jshint eqeqeq: false */
+ } else if ( support.deleteExpando || cache != cache.window ) {
+ /* jshint eqeqeq: true */
+ delete cache[ id ];
+
+ // When all else fails, undefined
+ } else {
+ cache[ id ] = undefined;
+ }
+}
+
+jQuery.extend( {
+ cache: {},
+
+ // The following elements (space-suffixed to avoid Object.prototype collisions)
+ // throw uncatchable exceptions if you attempt to set expando properties
+ noData: {
+ "applet ": true,
+ "embed ": true,
+
+ // ...but Flash objects (which have this classid) *can* handle expandos
+ "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return internalData( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ return internalRemoveData( elem, name );
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return internalData( elem, name, data, true );
+ },
+
+ _removeData: function( elem, name ) {
+ return internalRemoveData( elem, name, true );
+ }
+} );
+
+jQuery.fn.extend( {
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Special expections of .data basically thwart jQuery.access,
+ // so implement the relevant behavior ourselves
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = jQuery.data( elem );
+
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+
+ // Support: IE11+
+ // The attrs elements can be null (#14894)
+ if ( attrs[ i ] ) {
+ name = attrs[ i ].name;
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice( 5 ) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ }
+ jQuery._data( elem, "parsedAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each( function() {
+ jQuery.data( this, key );
+ } );
+ }
+
+ return arguments.length > 1 ?
+
+ // Sets one value
+ this.each( function() {
+ jQuery.data( this, key, value );
+ } ) :
+
+ // Gets one value
+ // Try to fetch any internally stored data first
+ elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
+ },
+
+ removeData: function( key ) {
+ return this.each( function() {
+ jQuery.removeData( this, key );
+ } );
+ }
+} );
+
+
+jQuery.extend( {
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = jQuery._data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = jQuery._data( elem, type, jQuery.makeArray( data ) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // not intended for public consumption - generates a queueHooks object,
+ // or returns the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return jQuery._data( elem, key ) || jQuery._data( elem, key, {
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
+ jQuery._removeData( elem, type + "queue" );
+ jQuery._removeData( elem, key );
+ } )
+ } );
+ }
+} );
+
+jQuery.fn.extend( {
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[ 0 ], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each( function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ } );
+ },
+ dequeue: function( type ) {
+ return this.each( function() {
+ jQuery.dequeue( this, type );
+ } );
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = jQuery._data( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+} );
+
+
+( function() {
+ var shrinkWrapBlocksVal;
+
+ support.shrinkWrapBlocks = function() {
+ if ( shrinkWrapBlocksVal != null ) {
+ return shrinkWrapBlocksVal;
+ }
+
+ // Will be changed later if needed.
+ shrinkWrapBlocksVal = false;
+
+ // Minified: var b,c,d
+ var div, body, container;
+
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
+
+ // Test fired too early or in an unsupported environment, exit.
+ return;
+ }
+
+ // Setup
+ div = document.createElement( "div" );
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
+ body.appendChild( container ).appendChild( div );
+
+ // Support: IE6
+ // Check if elements with layout shrink-wrap their children
+ if ( typeof div.style.zoom !== "undefined" ) {
+
+ // Reset CSS: box-sizing; display; margin; border
+ div.style.cssText =
+
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;" +
+ "padding:1px;width:1px;zoom:1";
+ div.appendChild( document.createElement( "div" ) ).style.width = "5px";
+ shrinkWrapBlocksVal = div.offsetWidth !== 3;
+ }
+
+ body.removeChild( container );
+
+ return shrinkWrapBlocksVal;
+ };
+
+} )();
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+
+ // isHidden might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+ return jQuery.css( elem, "display" ) === "none" ||
+ !jQuery.contains( elem.ownerDocument, elem );
+ };
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+ var adjusted,
+ scale = 1,
+ maxIterations = 20,
+ currentValue = tween ?
+ function() { return tween.cur(); } :
+ function() { return jQuery.css( elem, prop, "" ); },
+ initial = currentValue(),
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+ // Starting value computation is required for potential unit mismatches
+ initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+ rcssNum.exec( jQuery.css( elem, prop ) );
+
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+ // Trust units reported by jQuery.css
+ unit = unit || initialInUnit[ 3 ];
+
+ // Make sure we update the tween properties later on
+ valueParts = valueParts || [];
+
+ // Iteratively approximate from a nonzero starting point
+ initialInUnit = +initial || 1;
+
+ do {
+
+ // If previous iteration zeroed out, double until we get *something*.
+ // Use string for doubling so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ initialInUnit = initialInUnit / scale;
+ jQuery.style( elem, prop, initialInUnit + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+ } while (
+ scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+ );
+ }
+
+ if ( valueParts ) {
+ initialInUnit = +initialInUnit || +initial || 0;
+
+ // Apply relative offset (+=/-=) if specified
+ adjusted = valueParts[ 1 ] ?
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+ +valueParts[ 2 ];
+ if ( tween ) {
+ tween.unit = unit;
+ tween.start = initialInUnit;
+ tween.end = adjusted;
+ }
+ }
+ return adjusted;
+}
+
+
+// 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,
+ length = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < length; i++ ) {
+ fn(
+ elems[ i ],
+ key,
+ raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) )
+ );
+ }
+ }
+ }
+
+ return chainable ?
+ elems :
+
+ // Gets
+ bulk ?
+ fn.call( elems ) :
+ length ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([\w:-]+)/ );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+var rleadingWhitespace = ( /^\s+/ );
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
+ "details|dialog|figcaption|figure|footer|header|hgroup|main|" +
+ "mark|meter|nav|output|picture|progress|section|summary|template|time|video";
+
+
+
+function createSafeFragment( document ) {
+ var list = nodeNames.split( "|" ),
+ safeFrag = document.createDocumentFragment();
+
+ if ( safeFrag.createElement ) {
+ while ( list.length ) {
+ safeFrag.createElement(
+ list.pop()
+ );
+ }
+ }
+ return safeFrag;
+}
+
+
+( function() {
+ var div = document.createElement( "div" ),
+ fragment = document.createDocumentFragment(),
+ input = document.createElement( "input" );
+
+ // Setup
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+
+ // IE strips leading whitespace when .innerHTML is used
+ support.leadingWhitespace = div.firstChild.nodeType === 3;
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ support.tbody = !div.getElementsByTagName( "tbody" ).length;
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;
+
+ // Makes sure cloning an html5 element does not cause problems
+ // Where outerHTML is undefined, this still works
+ support.html5Clone =
+ document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>";
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ input.type = "checkbox";
+ input.checked = true;
+ fragment.appendChild( input );
+ support.appendChecked = input.checked;
+
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ // Support: IE6-IE11+
+ div.innerHTML = "<textarea>x</textarea>";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+
+ // #11217 - WebKit loses check when the name is after the checked attribute
+ fragment.appendChild( div );
+
+ // Support: Windows Web Apps (WWA)
+ // `name` and `type` must use .setAttribute for WWA (#14901)
+ input = document.createElement( "input" );
+ input.setAttribute( "type", "radio" );
+ input.setAttribute( "checked", "checked" );
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+
+ // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
+ // old WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE<9
+ // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+
+ support.noCloneEvent = !!div.addEventListener;
+
+ // Support: IE<9
+ // Since attributes and properties are the same in IE,
+ // cleanData must set properties to undefined rather than use removeAttribute
+ div[ jQuery.expando ] = 1;
+ support.attributes = !div.getAttribute( jQuery.expando );
+} )();
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ area: [ 1, "<map>", "</map>" ],
+
+ // Support: IE8
+ param: [ 1, "<object>", "</object>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
+ // unless wrapped in a div with non-breaking characters in front of it.
+ _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
+};
+
+// Support: IE8-IE9
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+ var elems, elem,
+ i = 0,
+ found = typeof context.getElementsByTagName !== "undefined" ?
+ context.getElementsByTagName( tag || "*" ) :
+ typeof context.querySelectorAll !== "undefined" ?
+ context.querySelectorAll( tag || "*" ) :
+ undefined;
+
+ if ( !found ) {
+ for ( found = [], elems = context.childNodes || context;
+ ( elem = elems[ i ] ) != null;
+ i++
+ ) {
+ if ( !tag || jQuery.nodeName( elem, tag ) ) {
+ found.push( elem );
+ } else {
+ jQuery.merge( found, getAll( elem, tag ) );
+ }
+ }
+ }
+
+ return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+ jQuery.merge( [ context ], found ) :
+ found;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var elem,
+ i = 0;
+ for ( ; ( elem = elems[ i ] ) != null; i++ ) {
+ jQuery._data(
+ elem,
+ "globalEval",
+ !refElements || jQuery._data( refElements[ i ], "globalEval" )
+ );
+ }
+}
+
+
+var rhtml = /<|&#?\w+;/,
+ rtbody = /<tbody/i;
+
+function fixDefaultChecked( elem ) {
+ if ( rcheckableType.test( elem.type ) ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+ var j, elem, contains,
+ tmp, tag, tbody, wrap,
+ l = elems.length,
+
+ // Ensure a safe fragment
+ safe = createSafeFragment( context ),
+
+ nodes = [],
+ i = 0;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || safe.appendChild( context.createElement( "div" ) );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+ // Descend through wrappers to the right content
+ j = wrap[ 0 ];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Manually add leading whitespace removed by IE
+ if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) );
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ elem = tag === "table" && !rtbody.test( elem ) ?
+ tmp.firstChild :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ?
+ tmp :
+ 0;
+
+ j = elem && elem.childNodes.length;
+ while ( j-- ) {
+ if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) &&
+ !tbody.childNodes.length ) {
+
+ elem.removeChild( tbody );
+ }
+ }
+ }
+
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Fix #12392 for WebKit and IE > 9
+ tmp.textContent = "";
+
+ // Fix #12392 for oldIE
+ while ( tmp.firstChild ) {
+ tmp.removeChild( tmp.firstChild );
+ }
+
+ // Remember the top-level container for proper cleanup
+ tmp = safe.lastChild;
+ }
+ }
+ }
+
+ // Fix #11356: Clear elements from fragment
+ if ( tmp ) {
+ safe.removeChild( tmp );
+ }
+
+ // Reset defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ if ( !support.appendChecked ) {
+ jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
+ }
+
+ i = 0;
+ while ( ( elem = nodes[ i++ ] ) ) {
+
+ // Skip elements already in the context collection (trac-4087)
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+ if ( ignored ) {
+ ignored.push( elem );
+ }
+
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( safe.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( ( elem = tmp[ j++ ] ) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ tmp = null;
+
+ return safe;
+}
+
+
+( function() {
+ var i, eventName,
+ div = document.createElement( "div" );
+
+ // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)
+ for ( i in { submit: true, change: true, focusin: true } ) {
+ eventName = "on" + i;
+
+ if ( !( support[ i ] = eventName in window ) ) {
+
+ // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
+ div.setAttribute( eventName, "t" );
+ support[ i ] = div.attributes[ eventName ].expando === false;
+ }
+ }
+
+ // Null elements to avoid leaks in IE.
+ div = null;
+} )();
+
+
+var rformElems = /^(?:input|select|textarea)$/i,
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+// Support: IE9
+// See #13393 for more info
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ on( elem, type, selector, data, types[ type ], one );
+ }
+ return elem;
+ }
+
+ if ( data == null && fn == null ) {
+
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return elem;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return elem.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+ var tmp, events, t, handleObjIn,
+ special, eventHandle, handleObj,
+ handlers, type, namespaces, origType,
+ elemData = jQuery._data( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !( events = elemData.events ) ) {
+ events = elemData.events = {};
+ }
+ if ( !( eventHandle = elemData.handle ) ) {
+ eventHandle = elemData.handle = function( e ) {
+
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" &&
+ ( !e || jQuery.event.triggered !== e.type ) ?
+ jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+
+ // Add elem as a property of the handle fn to prevent a memory leak
+ // with IE non-native events
+ eventHandle.elem = elem;
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend( {
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join( "." )
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !( handlers = events[ type ] ) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener/attachEvent if the special events handler returns false
+ if ( !special.setup ||
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+ var j, handleObj, tmp,
+ origCount, t, events,
+ special, handlers, type,
+ namespaces, origType,
+ elemData = jQuery.hasData( elem ) && jQuery._data( elem );
+
+ if ( !elemData || !( events = elemData.events ) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
+ type = origType = tmp[ 1 ];
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[ 2 ] &&
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector ||
+ selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown ||
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ delete elemData.handle;
+
+ // removeData also checks for emptiness and clears the expando if empty
+ // so use it instead of delete
+ jQuery._removeData( elem, "events" );
+ }
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ var handle, ontype, cur,
+ bubbleType, special, tmp, i,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "." ) > -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 && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === ( elem.ownerDocument || document ) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] &&
+ jQuery._data( cur, "handle" );
+
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && 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 name as the event.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ try {
+ elem[ type ]();
+ } catch ( e ) {
+
+ // IE<9 dies on focus/blur to hidden element (#1486,#12518)
+ // only reproducible on winXP IE8 native, not IE9 in IE8 mode
+ }
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ dispatch: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event );
+
+ var i, j, ret, matched, handleObj,
+ handlerQueue = [],
+ args = slice.call( arguments ),
+ handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[ 0 ] = event;
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
+ !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+ // a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+ handleObj.handler ).apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( ( event.result = ret ) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, matches, sel, handleObj,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Support (at least): Chrome, IE9
+ // Find delegate handlers
+ // Black-hole SVG <use> instance trees (#13180)
+ //
+ // Support: Firefox<=42+
+ // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
+ if ( delegateCount && cur.nodeType &&
+ ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
+
+ /* jshint eqeqeq: false */
+ for ( ; cur != this; cur = cur.parentNode || this ) {
+ /* jshint eqeqeq: true */
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
+ matches = [];
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matches[ sel ] === undefined ) {
+ matches[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) > -1 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matches[ sel ] ) {
+ matches.push( handleObj );
+ }
+ }
+ if ( matches.length ) {
+ handlerQueue.push( { elem: cur, handlers: matches } );
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
+ }
+
+ return handlerQueue;
+ },
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // Create a writable copy of the event object and normalize some properties
+ var i, prop, copy,
+ type = event.type,
+ originalEvent = event,
+ fixHook = this.fixHooks[ type ];
+
+ if ( !fixHook ) {
+ this.fixHooks[ type ] = fixHook =
+ rmouseEvent.test( type ) ? this.mouseHooks :
+ rkeyEvent.test( type ) ? this.keyHooks :
+ {};
+ }
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+ event = new jQuery.Event( originalEvent );
+
+ i = copy.length;
+ while ( i-- ) {
+ prop = copy[ i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Support: IE<9
+ // Fix target property (#1925)
+ if ( !event.target ) {
+ event.target = originalEvent.srcElement || document;
+ }
+
+ // Support: Safari 6-8+
+ // Target should not be a text node (#504, #13143)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // Support: IE<9
+ // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
+ event.metaKey = !!event.metaKey;
+
+ return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+ },
+
+ // Includes some event props shared by KeyEvent and MouseEvent
+ props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
+ "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
+
+ fixHooks: {},
+
+ keyHooks: {
+ props: "char charCode key keyCode".split( " " ),
+ filter: function( event, original ) {
+
+ // Add which for key events
+ if ( event.which == null ) {
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
+ }
+
+ return event;
+ }
+ },
+
+ mouseHooks: {
+ props: ( "button buttons clientX clientY fromElement offsetX offsetY " +
+ "pageX pageY screenX screenY toElement" ).split( " " ),
+ filter: function( event, original ) {
+ var body, eventDoc, doc,
+ button = original.button,
+ fromElement = original.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && original.clientX != null ) {
+ eventDoc = event.target.ownerDocument || document;
+ doc = eventDoc.documentElement;
+ body = eventDoc.body;
+
+ event.pageX = original.clientX +
+ ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
+ ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+ event.pageY = original.clientY +
+ ( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
+ ( doc && doc.clientTop || body && body.clientTop || 0 );
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && fromElement ) {
+ event.relatedTarget = fromElement === event.target ?
+ original.toElement :
+ fromElement;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && button !== undefined ) {
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+ }
+
+ return event;
+ }
+ },
+
+ special: {
+ load: {
+
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ focus: {
+
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== safeActiveElement() && this.focus ) {
+ try {
+ this.focus();
+ return false;
+ } catch ( e ) {
+
+ // Support: IE<9
+ // If we error on focus to hidden element (#1486, #12518),
+ // let .trigger() run the handlers
+ }
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === safeActiveElement() && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+ click: {
+
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
+ this.click();
+ return false;
+ }
+ },
+
+ // For cross-browser consistency, don't fire native .click() on links
+ _default: function( event ) {
+ return jQuery.nodeName( event.target, "a" );
+ }
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Support: Firefox 20+
+ // Firefox doesn't alert rounded-0 if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ },
+
+ // Piggyback on a donor event to simulate a different one
+ simulate: function( type, elem, event ) {
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ {
+ type: type,
+ isSimulated: true
+
+ // Previously, `originalEvent: {}` was set here, so stopPropagation call
+ // would not be triggered on donor event, since in our own
+ // jQuery.event.stopPropagation function we had a check for existence of
+ // originalEvent.stopPropagation method, so, consequently it would be a noop.
+ //
+ // Guard for simulated events was moved to jQuery.event.stopPropagation function
+ // since `originalEvent` should point to the original event for the
+ // constancy with other events and for more focused logic
+ }
+ );
+
+ jQuery.event.trigger( e, null, elem );
+
+ if ( e.isDefaultPrevented() ) {
+ event.preventDefault();
+ }
+ }
+};
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+
+ // This "if" is needed for plain objects
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle );
+ }
+ } :
+ function( elem, type, handle ) {
+ var name = "on" + type;
+
+ if ( elem.detachEvent ) {
+
+ // #8545, #7054, preventing memory leaks for custom events in IE6-8
+ // detachEvent needed property on element, by name of that event,
+ // to properly expose it to GC
+ if ( typeof elem[ name ] === "undefined" ) {
+ elem[ name ] = null;
+ }
+
+ elem.detachEvent( name, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+
+ // Allow instantiation without the 'new' keyword
+ if ( !( this instanceof jQuery.Event ) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = src.defaultPrevented ||
+ src.defaultPrevented === undefined &&
+
+ // Support: IE < 9, Android < 4.0
+ src.returnValue === false ?
+ returnTrue :
+ returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ constructor: jQuery.Event,
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+ if ( !e ) {
+ return;
+ }
+
+ // If preventDefault exists, run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // Support: IE
+ // Otherwise set the returnValue property of the original event to false
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+
+ if ( !e || this.isSimulated ) {
+ return;
+ }
+
+ // If stopPropagation exists, run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+
+ // Support: IE
+ // Set the cancelBubble property of the original event to true
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
+ this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && e.stopImmediatePropagation ) {
+ e.stopImmediatePropagation();
+ }
+
+ this.stopPropagation();
+ }
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// 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://code.google.com/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;
+ }
+ };
+} );
+
+// IE submit delegation
+if ( !support.submit ) {
+
+ jQuery.event.special.submit = {
+ setup: function() {
+
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Lazy-add a submit handler when a descendant form may potentially be submitted
+ jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+
+ // Node name check avoids a VML-related crash in IE (#9807)
+ var elem = e.target,
+ form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ?
+
+ // Support: IE <=8
+ // We use jQuery.prop instead of elem.form
+ // to allow fixing the IE8 delegated submit issue (gh-2332)
+ // by 3rd party polyfills/workarounds.
+ jQuery.prop( elem, "form" ) :
+ undefined;
+
+ if ( form && !jQuery._data( form, "submit" ) ) {
+ jQuery.event.add( form, "submit._submit", function( event ) {
+ event._submitBubble = true;
+ } );
+ jQuery._data( form, "submit", true );
+ }
+ } );
+
+ // return undefined since we don't need an event listener
+ },
+
+ postDispatch: function( event ) {
+
+ // If form was submitted by the user, bubble the event up the tree
+ if ( event._submitBubble ) {
+ delete event._submitBubble;
+ if ( this.parentNode && !event.isTrigger ) {
+ jQuery.event.simulate( "submit", this.parentNode, event );
+ }
+ }
+ },
+
+ teardown: function() {
+
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+ jQuery.event.remove( this, "._submit" );
+ }
+ };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !support.change ) {
+
+ jQuery.event.special.change = {
+
+ setup: function() {
+
+ if ( rformElems.test( this.nodeName ) ) {
+
+ // IE doesn't fire change on a check/radio until blur; trigger it on click
+ // after a propertychange. Eat the blur-change in special.change.handle.
+ // This still fires onchange a second time for check/radio after blur.
+ if ( this.type === "checkbox" || this.type === "radio" ) {
+ jQuery.event.add( this, "propertychange._change", function( event ) {
+ if ( event.originalEvent.propertyName === "checked" ) {
+ this._justChanged = true;
+ }
+ } );
+ jQuery.event.add( this, "click._change", function( event ) {
+ if ( this._justChanged && !event.isTrigger ) {
+ this._justChanged = false;
+ }
+
+ // Allow triggered, simulated change events (#11500)
+ jQuery.event.simulate( "change", this, event );
+ } );
+ }
+ return false;
+ }
+
+ // Delegated event; lazy-add a change handler on descendant inputs
+ jQuery.event.add( this, "beforeactivate._change", function( e ) {
+ var elem = e.target;
+
+ if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) {
+ jQuery.event.add( elem, "change._change", function( event ) {
+ if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+ jQuery.event.simulate( "change", this.parentNode, event );
+ }
+ } );
+ jQuery._data( elem, "change", true );
+ }
+ } );
+ },
+
+ handle: function( event ) {
+ var elem = event.target;
+
+ // Swallow native change events from checkbox/radio, we already triggered them above
+ if ( this !== elem || event.isSimulated || event.isTrigger ||
+ ( elem.type !== "radio" && elem.type !== "checkbox" ) ) {
+
+ return event.handleObj.handler.apply( this, arguments );
+ }
+ },
+
+ teardown: function() {
+ jQuery.event.remove( this, "._change" );
+
+ return !rformElems.test( this.nodeName );
+ }
+ };
+}
+
+// Support: Firefox
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome, Safari
+// 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://code.google.com/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() {
+ var doc = this.ownerDocument || this,
+ attaches = jQuery._data( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this,
+ attaches = jQuery._data( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ jQuery._removeData( doc, fix );
+ } else {
+ jQuery._data( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+
+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 );
+ } );
+ },
+
+ trigger: function( type, data ) {
+ return this.each( function() {
+ jQuery.event.trigger( type, data, this );
+ } );
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[ 0 ];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+} );
+
+
+var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+ rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
+
+ // Support: IE 10-11, Edge 10240+
+ // In IE/Edge using regex groups here causes severe slowdowns.
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
+ rnoInnerhtml = /<script|<style|<link/i,
+
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
+ safeFragment = createSafeFragment( document ),
+ fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) );
+
+// Support: IE<8
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+ return jQuery.nodeName( elem, "table" ) &&
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
+
+ elem.getElementsByTagName( "tbody" )[ 0 ] ||
+ elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
+ elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ elem.type = ( jQuery.find.attr( elem, "type" ) !== null ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+ if ( match ) {
+ elem.type = match[ 1 ];
+ } else {
+ elem.removeAttribute( "type" );
+ }
+ return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var type, i, l,
+ oldData = jQuery._data( src ),
+ curData = jQuery._data( dest, oldData ),
+ events = oldData.events;
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+
+ // make the cloned public data object a copy from the original
+ if ( curData.data ) {
+ curData.data = jQuery.extend( {}, curData.data );
+ }
+}
+
+function fixCloneNodeIssues( src, dest ) {
+ var nodeName, e, data;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 copies events bound via attachEvent when using cloneNode.
+ if ( !support.noCloneEvent && dest[ jQuery.expando ] ) {
+ data = jQuery._data( dest );
+
+ for ( e in data.events ) {
+ jQuery.removeEvent( dest, e, data.handle );
+ }
+
+ // Event data gets referenced instead of copied if the expando gets copied too
+ dest.removeAttribute( jQuery.expando );
+ }
+
+ // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
+ if ( nodeName === "script" && dest.text !== src.text ) {
+ disableScript( dest ).text = src.text;
+ restoreScript( dest );
+
+ // IE6-10 improperly clones children of object elements using classid.
+ // IE10 throws NoModificationAllowedError if parent is null, #12132.
+ } else if ( nodeName === "object" ) {
+ if ( dest.parentNode ) {
+ dest.outerHTML = src.outerHTML;
+ }
+
+ // This path appears unavoidable for IE9. When cloning an object
+ // element in IE9, the outerHTML strategy above is not sufficient.
+ // If the src has innerHTML and the destination does not,
+ // copy the src.innerHTML into the dest.innerHTML. #10324
+ if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) {
+ dest.innerHTML = src.innerHTML;
+ }
+
+ } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+
+ dest.defaultChecked = dest.checked = src.checked;
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.defaultSelected = dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+ // Flatten any nested arrays
+ args = concat.apply( [], args );
+
+ var first, node, hasScripts,
+ scripts, doc, fragment,
+ i = 0,
+ l = collection.length,
+ iNoClone = l - 1,
+ value = args[ 0 ],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction ||
+ ( l > 1 && typeof value === "string" &&
+ !support.checkClone && rchecked.test( value ) ) ) {
+ return collection.each( function( index ) {
+ var self = collection.eq( index );
+ if ( isFunction ) {
+ 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.1, PhantomJS<2
+ // 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 || "" ) &&
+ !jQuery._data( node, "globalEval" ) &&
+ jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+
+ // Optional AJAX dependency, but won't run scripts if not present
+ if ( jQuery._evalUrl ) {
+ jQuery._evalUrl( node.src );
+ }
+ } else {
+ jQuery.globalEval(
+ ( node.text || node.textContent || node.innerHTML || "" )
+ .replace( rcleanScript, "" )
+ );
+ }
+ }
+ }
+ }
+
+ // Fix #11809: Avoid leaking memory
+ fragment = first = null;
+ }
+ }
+
+ return collection;
+}
+
+function remove( elem, selector, keepData ) {
+ var node,
+ elems = selector ? jQuery.filter( selector, elem ) : elem,
+ i = 0;
+
+ for ( ; ( node = elems[ i ] ) != null; i++ ) {
+
+ if ( !keepData && node.nodeType === 1 ) {
+ jQuery.cleanData( getAll( node ) );
+ }
+
+ if ( node.parentNode ) {
+ if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+ setGlobalEval( getAll( node, "script" ) );
+ }
+ node.parentNode.removeChild( node );
+ }
+ }
+
+ return elem;
+}
+
+jQuery.extend( {
+ htmlPrefilter: function( html ) {
+ return html.replace( rxhtmlTag, "<$1></$2>" );
+ },
+
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var destElements, node, clone, i, srcElements,
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ if ( support.html5Clone || jQuery.isXMLDoc( elem ) ||
+ !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
+
+ clone = elem.cloneNode( true );
+
+ // IE<=8 does not properly clone detached, unknown element nodes
+ } else {
+ fragmentDiv.innerHTML = elem.outerHTML;
+ fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
+ }
+
+ if ( ( !support.noCloneEvent || !support.noCloneChecked ) &&
+ ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) {
+
+ // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ // Fix all IE cloning issues
+ for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) {
+
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[ i ] ) {
+ fixCloneNodeIssues( node, destElements[ i ] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) {
+ cloneCopyEvent( node, destElements[ i ] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ destElements = srcElements = node = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ cleanData: function( elems, /* internal */ forceAcceptData ) {
+ var elem, type, id, data,
+ i = 0,
+ internalKey = jQuery.expando,
+ cache = jQuery.cache,
+ attributes = support.attributes,
+ special = jQuery.event.special;
+
+ for ( ; ( elem = elems[ i ] ) != null; i++ ) {
+ if ( forceAcceptData || acceptData( elem ) ) {
+
+ id = elem[ internalKey ];
+ data = id && cache[ id ];
+
+ if ( data ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Remove cache only if it was not already removed by jQuery.event.remove
+ if ( cache[ id ] ) {
+
+ delete cache[ id ];
+
+ // Support: IE<9
+ // IE does not allow us to delete expando properties from nodes
+ // IE creates expando attributes along with the property
+ // IE does not have a removeAttribute function on Document nodes
+ if ( !attributes && typeof elem.removeAttribute !== "undefined" ) {
+ elem.removeAttribute( internalKey );
+
+ // Webkit & Blink performance suffers when deleting properties
+ // from DOM nodes, so set to undefined instead
+ // https://code.google.com/p/chromium/issues/detail?id=378607
+ } else {
+ elem[ internalKey ] = undefined;
+ }
+
+ deletedIds.push( id );
+ }
+ }
+ }
+ }
+ }
+} );
+
+jQuery.fn.extend( {
+
+ // Keep domManip exposed until 3.0 (gh-2225)
+ domManip: domManip,
+
+ 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().append(
+ ( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( 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++ ) {
+
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+
+ // If this is a select, ensure that it displays empty (#12336)
+ // Support: IE<9
+ if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
+ elem.options.length = 0;
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function() {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ } );
+ },
+
+ html: function( value ) {
+ return access( this, function( value ) {
+ var elem = this[ 0 ] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined ) {
+ return elem.nodeType === 1 ?
+ elem.innerHTML.replace( rinlinejQuery, "" ) :
+ undefined;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ ( support.htmlSerialize || !rnoshimcache.test( value ) ) &&
+ ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+ value = jQuery.htmlPrefilter( value );
+
+ try {
+ for ( ; i < l; i++ ) {
+
+ // Remove element nodes and prevent memory leaks
+ elem = this[ i ] || {};
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch ( e ) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function() {
+ 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,
+ i = 0,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone( true );
+ jQuery( insert[ i ] )[ original ]( elems );
+
+ // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
+ push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+} );
+
+
+var iframe,
+ elemdisplay = {
+
+ // Support: Firefox
+ // We have to pre-define these values for FF (#10227)
+ HTML: "block",
+ BODY: "block"
+ };
+
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+ var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+
+ display = jQuery.css( elem[ 0 ], "display" );
+
+ // We don't have any data stored on the element,
+ // so use "detach" method as fast way to get rid of the element
+ elem.detach();
+
+ return display;
+}
+
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+ var doc = document,
+ display = elemdisplay[ nodeName ];
+
+ if ( !display ) {
+ display = actualDisplay( nodeName, doc );
+
+ // If the simple way fails, read from inside an iframe
+ if ( display === "none" || !display ) {
+
+ // Use the already-created iframe if possible
+ iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
+ .appendTo( doc.documentElement );
+
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+ doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;
+
+ // Support: IE
+ doc.write();
+ doc.close();
+
+ display = actualDisplay( nodeName, doc );
+ iframe.detach();
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return display;
+}
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var swap = function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+};
+
+
+var documentElement = document.documentElement;
+
+
+
+( function() {
+ var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal,
+ reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal,
+ container = document.createElement( "div" ),
+ div = document.createElement( "div" );
+
+ // Finish early in limited (non-browser) environments
+ if ( !div.style ) {
+ return;
+ }
+
+ div.style.cssText = "float:left;opacity:.5";
+
+ // Support: IE<9
+ // Make sure that element opacity exists (as opposed to filter)
+ support.opacity = div.style.opacity === "0.5";
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ support.cssFloat = !!div.style.cssFloat;
+
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ container = document.createElement( "div" );
+ container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+ "padding:0;margin-top:1px;position:absolute";
+ div.innerHTML = "";
+ container.appendChild( div );
+
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" ||
+ div.style.WebkitBoxSizing === "";
+
+ jQuery.extend( support, {
+ reliableHiddenOffsets: function() {
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableHiddenOffsetsVal;
+ },
+
+ boxSizingReliable: function() {
+
+ // We're checking for pixelPositionVal here instead of boxSizingReliableVal
+ // since that compresses better and they're computed together anyway.
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return boxSizingReliableVal;
+ },
+
+ pixelMarginRight: function() {
+
+ // Support: Android 4.0-4.3
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return pixelMarginRightVal;
+ },
+
+ pixelPosition: function() {
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return pixelPositionVal;
+ },
+
+ reliableMarginRight: function() {
+
+ // Support: Android 2.3
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableMarginRightVal;
+ },
+
+ reliableMarginLeft: function() {
+
+ // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
+ if ( pixelPositionVal == null ) {
+ computeStyleTests();
+ }
+ return reliableMarginLeftVal;
+ }
+ } );
+
+ function computeStyleTests() {
+ var contents, divStyle,
+ documentElement = document.documentElement;
+
+ // Setup
+ documentElement.appendChild( container );
+
+ div.style.cssText =
+
+ // Support: Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:border-box;box-sizing:border-box;" +
+ "position:relative;display:block;" +
+ "margin:auto;border:1px;padding:1px;" +
+ "top:1%;width:50%";
+
+ // Support: IE<9
+ // Assume reasonable values in the absence of getComputedStyle
+ pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false;
+ pixelMarginRightVal = reliableMarginRightVal = true;
+
+ // Check for getComputedStyle so that this code is not run in IE<9.
+ if ( window.getComputedStyle ) {
+ divStyle = window.getComputedStyle( div );
+ pixelPositionVal = ( divStyle || {} ).top !== "1%";
+ reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px";
+ boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px";
+
+ // Support: Android 4.0 - 4.3 only
+ // Some styles come back with percentage values, even though they shouldn't
+ div.style.marginRight = "50%";
+ pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px";
+
+ // Support: Android 2.3 only
+ // Div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container (#3333)
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ contents = div.appendChild( document.createElement( "div" ) );
+
+ // Reset CSS: box-sizing; display; margin; border; padding
+ contents.style.cssText = div.style.cssText =
+
+ // Support: Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
+ contents.style.marginRight = contents.style.width = "0";
+ div.style.width = "1px";
+
+ reliableMarginRightVal =
+ !parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight );
+
+ div.removeChild( contents );
+ }
+
+ // Support: IE6-8
+ // First check that getClientRects works as expected
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ div.style.display = "none";
+ reliableHiddenOffsetsVal = div.getClientRects().length === 0;
+ if ( reliableHiddenOffsetsVal ) {
+ div.style.display = "";
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
+ div.childNodes[ 0 ].style.borderCollapse = "separate";
+ contents = div.getElementsByTagName( "td" );
+ contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ if ( reliableHiddenOffsetsVal ) {
+ contents[ 0 ].style.display = "";
+ contents[ 1 ].style.display = "none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ }
+ }
+
+ // Teardown
+ documentElement.removeChild( container );
+ }
+
+} )();
+
+
+var getStyles, curCSS,
+ rposition = /^(top|right|bottom|left)$/;
+
+if ( window.getComputedStyle ) {
+ getStyles = function( elem ) {
+
+ // Support: IE<=11+, 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 );
+ };
+
+ curCSS = function( elem, name, computed ) {
+ var width, minWidth, maxWidth, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+
+ // getPropertyValue is only needed for .css('filter') in IE9, see #12537
+ ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
+
+ // Support: Opera 12.1x only
+ // Fall back to style even without computed
+ // computed is undefined for elems on document fragments
+ if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ if ( computed ) {
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Chrome < 17 and Safari 5.0 uses "computed value"
+ // instead of "used value" for margin-right
+ // Safari 5.1.7 (at least) returns percentage for a larger set of values,
+ // but width seems to be reliably pixels
+ // this is against the CSSOM draft spec:
+ // http://dev.w3.org/csswg/cssom/#resolved-values
+ if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ // Support: IE
+ // IE returns zIndex value as an integer.
+ return ret === undefined ?
+ ret :
+ ret + "";
+ };
+} else if ( documentElement.currentStyle ) {
+ getStyles = function( elem ) {
+ return elem.currentStyle;
+ };
+
+ curCSS = function( elem, name, computed ) {
+ var left, rs, rsLeft, ret,
+ style = elem.style;
+
+ computed = computed || getStyles( elem );
+ ret = computed ? computed[ name ] : undefined;
+
+ // Avoid setting ret to empty string here
+ // so we don't default to auto
+ if ( ret == null && style && style[ name ] ) {
+ ret = style[ name ];
+ }
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ // but not position css attributes, as those are
+ // proportional to the parent element instead
+ // and we can't measure the parent instead because it
+ // might trigger a "stacking dolls" problem
+ if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
+
+ // Remember the original values
+ left = style.left;
+ rs = elem.runtimeStyle;
+ rsLeft = rs && rs.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ rs.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : ret;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ rs.left = rsLeft;
+ }
+ }
+
+ // Support: IE
+ // IE returns zIndex value as an integer.
+ return ret === undefined ?
+ ret :
+ ret + "" || "auto";
+ };
+}
+
+
+
+
+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
+
+ ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity\s*=\s*([^)]*)/i,
+
+ // 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]).+)/,
+ rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: "0",
+ fontWeight: "400"
+ },
+
+ cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
+ emptyStyle = document.createElement( "div" ).style;
+
+
+// return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+ // shortcut for names that are not vendor prefixed
+ if ( name in emptyStyle ) {
+ return name;
+ }
+
+ // check for vendor prefixed names
+ var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ),
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in emptyStyle ) {
+ return name;
+ }
+ }
+}
+
+function showHide( elements, show ) {
+ var display, elem, hidden,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ values[ index ] = jQuery._data( elem, "olddisplay" );
+ display = elem.style.display;
+ if ( show ) {
+
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !values[ index ] && display === "none" ) {
+ elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( elem.style.display === "" && isHidden( elem ) ) {
+ values[ index ] =
+ jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) );
+ }
+ } else {
+ hidden = isHidden( elem );
+
+ if ( display && display !== "none" || !hidden ) {
+ jQuery._data(
+ elem,
+ "olddisplay",
+ hidden ? display : jQuery.css( elem, "display" )
+ );
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( index = 0; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+ if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+ elem.style.display = show ? values[ index ] || "" : "none";
+ }
+ }
+
+ return elements;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+ var matches = rnumsplit.exec( value );
+ return matches ?
+
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i = extra === ( isBorderBox ? "border" : "content" ) ?
+
+ // If we already have the right measurement, avoid augmentation
+ 4 :
+
+ // Otherwise initialize for horizontal or vertical properties
+ name === "width" ? 1 : 0,
+
+ val = 0;
+
+ for ( ; i < 4; i += 2 ) {
+
+ // both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // at this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+
+ // at this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // at this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var valueIsBorderBox = true,
+ val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ styles = getStyles( elem ),
+ isBorderBox = support.boxSizing &&
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test( val ) ) {
+ return val;
+ }
+
+ // we need the check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox &&
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+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,
+ "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: {
+
+ // normalize float css property
+ "float": support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // Convert "+=" 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. See: #7116
+ if ( value == null || value !== value ) {
+ return;
+ }
+
+ // If a number was passed in, add the unit (except for certain CSS properties)
+ if ( type === "number" ) {
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+ }
+
+ // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
+ // but it would mean to define eight
+ // (for every problematic property) identical functions
+ if ( !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 ) {
+
+ // Support: IE
+ // Swallow errors from 'invalid' CSS values (#5509)
+ try {
+ style[ name ] = value;
+ } catch ( e ) {}
+ }
+
+ } else {
+
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks &&
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var num, val, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] ||
+ ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ //convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Return, converting to number if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || isFinite( num ) ? num || 0 : val;
+ }
+ return val;
+ }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+
+ // certain elements can have dimension info if we invisibly show them
+ // however, it must have a current display style that would benefit from this
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+ elem.offsetWidth === 0 ?
+ swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ } ) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var styles = extra && getStyles( elem );
+ return setPositiveNumber( elem, value, extra ?
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ support.boxSizing &&
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ ) : 0
+ );
+ }
+ };
+} );
+
+if ( !support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+
+ // IE uses filters for opacity
+ return ropacity.test( ( computed && elem.currentStyle ?
+ elem.currentStyle.filter :
+ elem.style.filter ) || "" ) ?
+ ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist -
+ // attempt to remove filter attribute #6652
+ // if value === "", then remove inline opacity #12685
+ if ( ( value >= 1 || value === "" ) &&
+ jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
+ style.removeAttribute ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there is no filter style applied in a css rule
+ // or unset inline opacity, we are done
+ if ( value === "" || currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
+ function( elem, computed ) {
+ if ( computed ) {
+ return swap( elem, { "display": "inline-block" },
+ curCSS, [ elem, "marginRight" ] );
+ }
+ }
+);
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+ function( elem, computed ) {
+ if ( computed ) {
+ return (
+ parseFloat( curCSS( elem, "marginLeft" ) ) ||
+
+ // Support: IE<=11+
+ // Running getBoundingClientRect on a disconnected node in IE throws an error
+ // Support: IE8 only
+ // getClientRects() errors on disconnected elems
+ ( jQuery.contains( elem.ownerDocument, elem ) ?
+ elem.getBoundingClientRect().left -
+ swap( elem, { marginLeft: 0 }, function() {
+ return elem.getBoundingClientRect().left;
+ } ) :
+ 0
+ )
+ ) + "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 ( !rmargin.test( prefix ) ) {
+ 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 ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ },
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ if ( typeof state === "boolean" ) {
+ return state ? this.show() : this.hide();
+ }
+
+ return this.each( function() {
+ if ( isHidden( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ } );
+ }
+} );
+
+
+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
+ // so, 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 its
+ // 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 &&
+ ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+ jQuery.cssHooks[ tween.prop ] ) ) {
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+ } else {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+ }
+};
+
+// Support: IE <=9
+// 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, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rrun = /queueHooks$/;
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ window.setTimeout( function() {
+ fxNow = undefined;
+ } );
+ return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ attrs = { height: type },
+ i = 0;
+
+ // if we include width, step value is 1 to do all cssExpand values,
+ // if we don't include width, 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 ) {
+ /* jshint validthis: true */
+ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
+ anim = this,
+ orig = {},
+ style = elem.style,
+ hidden = elem.nodeType && isHidden( elem ),
+ dataShow = jQuery._data( elem, "fxshow" );
+
+ // handle queue: false promises
+ 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() {
+
+ // doing this makes sure that the complete handler will be called
+ // before this completes
+ anim.always( function() {
+ hooks.unqueued--;
+ if ( !jQuery.queue( elem, "fx" ).length ) {
+ hooks.empty.fire();
+ }
+ } );
+ } );
+ }
+
+ // height/width overflow pass
+ if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height animated
+ display = jQuery.css( elem, "display" );
+
+ // Test default display if display is currently "none"
+ checkDisplay = display === "none" ?
+ jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
+
+ if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
+ style.display = "inline-block";
+ } else {
+ style.zoom = 1;
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ if ( !support.shrinkWrapBlocks() ) {
+ anim.always( function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ } );
+ }
+ }
+
+ // show/hide pass
+ for ( prop in props ) {
+ value = props[ prop ];
+ if ( rfxtypes.exec( value ) ) {
+ delete props[ prop ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+
+ // If there is dataShow left over from a stopped hide or show
+ // and we are going to proceed with show, we should pretend to be hidden
+ if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+ hidden = true;
+ } else {
+ continue;
+ }
+ }
+ orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+
+ // Any non-fx value stops us from restoring the original display value
+ } else {
+ display = undefined;
+ }
+ }
+
+ if ( !jQuery.isEmptyObject( orig ) ) {
+ if ( dataShow ) {
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+ } else {
+ dataShow = jQuery._data( elem, "fxshow", {} );
+ }
+
+ // store state if its toggle - enables .stop().toggle() to "reverse"
+ if ( toggle ) {
+ dataShow.hidden = !hidden;
+ }
+ if ( hidden ) {
+ jQuery( elem ).show();
+ } else {
+ anim.done( function() {
+ jQuery( elem ).hide();
+ } );
+ }
+ anim.done( function() {
+ var prop;
+ jQuery._removeData( elem, "fxshow" );
+ for ( prop in orig ) {
+ jQuery.style( elem, prop, orig[ prop ] );
+ }
+ } );
+ for ( prop in orig ) {
+ tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = tween.start;
+ if ( hidden ) {
+ tween.end = tween.start;
+ tween.start = prop === "width" || prop === "height" ? 1 : 0;
+ }
+ }
+ }
+
+ // If this is a noop like .hide().hide(), restore an overwritten display value
+ } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
+ style.display = display;
+ }
+}
+
+function propFilter( props, specialEasing ) {
+ var index, name, easing, value, hooks;
+
+ // camelCase, specialEasing and expand cssHook pass
+ for ( index in props ) {
+ name = jQuery.camelCase( index );
+ easing = specialEasing[ name ];
+ value = props[ index ];
+ if ( jQuery.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 wont overwrite keys already present.
+ // also - reusing 'index' from above 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
+ // 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 ( percent < 1 && length ) {
+ return remaining;
+ } else {
+ 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 ( jQuery.isFunction( result.stop ) ) {
+ jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+ jQuery.proxy( result.stop, result );
+ }
+ return result;
+ }
+ }
+
+ jQuery.map( props, createTween, animation );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ } )
+ );
+
+ // attach callbacks from options
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
+ .fail( animation.opts.fail )
+ .always( animation.opts.always );
+}
+
+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 ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.match( rnotwhite );
+ }
+
+ 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 ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ?
+ jQuery.fx.speeds[ 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 ( jQuery.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( isHidden ).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 || jQuery._data( 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 && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each( function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = jQuery._data( 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 = jQuery._data( 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,
+ timers = jQuery.timers,
+ i = 0;
+
+ fxNow = jQuery.now();
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+
+ // Checks the timer has not already been removed
+ 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 );
+ if ( timer() ) {
+ jQuery.fx.start();
+ } else {
+ jQuery.timers.pop();
+ }
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ window.clearInterval( timerId );
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+
+ // Default speed
+ _default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// http://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 a,
+ input = document.createElement( "input" ),
+ div = document.createElement( "div" ),
+ select = document.createElement( "select" ),
+ opt = select.appendChild( document.createElement( "option" ) );
+
+ // Setup
+ div = document.createElement( "div" );
+ div.setAttribute( "className", "t" );
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // Support: Windows Web Apps (WWA)
+ // `type` must use .setAttribute for WWA (#14901)
+ input.setAttribute( "type", "checkbox" );
+ div.appendChild( input );
+
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // First batch of tests.
+ a.style.cssText = "top:1px";
+
+ // Test setAttribute on camelCase class.
+ // If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ support.getSetAttribute = div.className !== "t";
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ support.style = /top/.test( a.getAttribute( "style" ) );
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ support.hrefNormalized = a.getAttribute( "href" ) === "/a";
+
+ // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
+ support.checkOn = !!input.value;
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ support.optSelected = opt.selected;
+
+ // Tests for enctype support on a form (#6743)
+ support.enctype = !!document.createElement( "form" ).enctype;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Support: IE8 only
+ // Check if we can trust getAttribute("value")
+ input = document.createElement( "input" );
+ input.setAttribute( "value", "" );
+ support.input = input.getAttribute( "value" ) === "";
+
+ // Check if an input maintains its value after becoming a radio
+ input.value = "t";
+ input.setAttribute( "type", "radio" );
+ support.radioValue = input.value === "t";
+} )();
+
+
+var rreturn = /\r/g,
+ rspaces = /[\x20\t\r\n\f]+/g;
+
+jQuery.fn.extend( {
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[ 0 ];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] ||
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if (
+ hooks &&
+ "get" in hooks &&
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
+ ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+
+ // handle most common string cases
+ ret.replace( rreturn, "" ) :
+
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each( function( i ) {
+ var val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ 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 ( jQuery.isArray( val ) ) {
+ val = jQuery.map( val, function( value ) {
+ return value == null ? "" : value + "";
+ } );
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ } );
+ }
+} );
+
+jQuery.extend( {
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ var val = jQuery.find.attr( elem, "value" );
+ return val != null ?
+ val :
+
+ // Support: IE10-11+
+ // option.text throws exceptions (#14686, #14858)
+ // Strip and collapse whitespace
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+ jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one" || index < 0,
+ values = one ? null : [],
+ max = one ? index + 1 : options.length,
+ i = index < 0 ?
+ max :
+ one ? index : 0;
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // oldIE doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+
+ // Don't return options that are disabled or in a disabled optgroup
+ ( support.optDisabled ?
+ !option.disabled :
+ option.getAttribute( "disabled" ) === null ) &&
+ ( !option.parentNode.disabled ||
+ !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var optionSet, option,
+ options = elem.options,
+ values = jQuery.makeArray( value ),
+ i = options.length;
+
+ while ( i-- ) {
+ option = options[ i ];
+
+ if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) {
+
+ // Support: IE6
+ // When new option element is added to select box we need to
+ // force reflow of newly added node in order to workaround delay
+ // of initialization properties
+ try {
+ option.selected = optionSet = true;
+
+ } catch ( _ ) {
+
+ // Will be executed only in IE6
+ option.scrollHeight;
+ }
+
+ } else {
+ option.selected = false;
+ }
+ }
+
+ // Force browsers to behave consistently when non-matching value is set
+ if ( !optionSet ) {
+ elem.selectedIndex = -1;
+ }
+
+ return options;
+ }
+ }
+ }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ set: function( elem, value ) {
+ if ( jQuery.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;
+ };
+ }
+} );
+
+
+
+
+var nodeHook, boolHook,
+ attrHandle = jQuery.expr.attrHandle,
+ ruseDefault = /^(?:checked|selected)$/i,
+ getSetAttribute = support.getSetAttribute,
+ getSetInput = support.input;
+
+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 );
+ }
+
+ // All attributes are lowercase
+ // Grab necessary hook if one is defined
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+ name = name.toLowerCase();
+ hooks = jQuery.attrHooks[ name ] ||
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
+ }
+
+ 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" &&
+ jQuery.nodeName( elem, "input" ) ) {
+
+ // Setting the type on a radio button after the value resets the value in IE8-9
+ // Reset value to default in case type is set after value during creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name, propName,
+ i = 0,
+ attrNames = value && value.match( rnotwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( ( name = attrNames[ i++ ] ) ) {
+ propName = jQuery.propFix[ name ] || name;
+
+ // Boolean attributes get special treatment (#10870)
+ if ( jQuery.expr.match.bool.test( name ) ) {
+
+ // Set corresponding property to false
+ if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+ elem[ propName ] = false;
+
+ // Support: IE<9
+ // Also clear defaultChecked/defaultSelected (if appropriate)
+ } else {
+ elem[ jQuery.camelCase( "default-" + name ) ] =
+ elem[ propName ] = false;
+ }
+
+ // See #9699 for explanation of this approach (setting first, then removal)
+ } else {
+ jQuery.attr( elem, name, "" );
+ }
+
+ elem.removeAttribute( getSetAttribute ? name : propName );
+ }
+ }
+ }
+} );
+
+// 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 if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+
+ // IE<8 needs the *property* name
+ elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
+
+ } else {
+
+ // Support: IE<9
+ // Use defaultChecked and defaultSelected for oldIE
+ elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
+ }
+ return name;
+ }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+ var getter = attrHandle[ name ] || jQuery.find.attr;
+
+ if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ var ret, handle;
+ if ( !isXML ) {
+
+ // Avoid an infinite loop by temporarily removing this function from the getter
+ handle = attrHandle[ name ];
+ attrHandle[ name ] = ret;
+ ret = getter( elem, name, isXML ) != null ?
+ name.toLowerCase() :
+ null;
+ attrHandle[ name ] = handle;
+ }
+ return ret;
+ };
+ } else {
+ attrHandle[ name ] = function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem[ jQuery.camelCase( "default-" + name ) ] ?
+ name.toLowerCase() :
+ null;
+ }
+ };
+ }
+} );
+
+// fix oldIE attroperties
+if ( !getSetInput || !getSetAttribute ) {
+ jQuery.attrHooks.value = {
+ set: function( elem, value, name ) {
+ if ( jQuery.nodeName( elem, "input" ) ) {
+
+ // Does not return so that setAttribute is also used
+ elem.defaultValue = value;
+ } else {
+
+ // Use nodeHook if defined (#1954); otherwise setAttribute is fine
+ return nodeHook && nodeHook.set( elem, value, name );
+ }
+ }
+ };
+}
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = {
+ set: function( elem, value, name ) {
+
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ elem.setAttributeNode(
+ ( ret = elem.ownerDocument.createAttribute( name ) )
+ );
+ }
+
+ ret.value = value += "";
+
+ // Break association with cloned elements by also using setAttribute (#9646)
+ if ( name === "value" || value === elem.getAttribute( name ) ) {
+ return value;
+ }
+ }
+ };
+
+ // Some attributes are constructed with empty-string values when not defined
+ attrHandle.id = attrHandle.name = attrHandle.coords =
+ function( elem, name, isXML ) {
+ var ret;
+ if ( !isXML ) {
+ return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ?
+ ret.value :
+ null;
+ }
+ };
+
+ // Fixing value retrieval on a button requires this module
+ jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret = elem.getAttributeNode( name );
+ if ( ret && ret.specified ) {
+ return ret.value;
+ }
+ },
+ set: nodeHook.set
+ };
+
+ // Set contenteditable to false on removals(#10429)
+ // Setting to empty string throws an error as an invalid value
+ jQuery.attrHooks.contenteditable = {
+ set: function( elem, value, name ) {
+ nodeHook.set( elem, value === "" ? false : value, name );
+ }
+ };
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each( [ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ };
+ } );
+}
+
+if ( !support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+
+ // Return undefined in the case of empty string
+ // Note: IE uppercases css property names, but if we were to .toLowerCase()
+ // .cssText, that would destroy case sensitivity in URL's, like in "background"
+ return elem.style.cssText || undefined;
+ },
+ set: function( elem, value ) {
+ return ( elem.style.cssText = value + "" );
+ }
+ };
+}
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button|object)$/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 ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each( function() {
+
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch ( e ) {}
+ } );
+ }
+} );
+
+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 ) {
+
+ // elem.tabIndex doesn't always return the
+ // correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ // Use proper attribute retrieval(#12072)
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+ return tabindex ?
+ parseInt( tabindex, 10 ) :
+ rfocusable.test( elem.nodeName ) ||
+ rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ -1;
+ }
+ }
+ },
+
+ propFix: {
+ "for": "htmlFor",
+ "class": "className"
+ }
+} );
+
+// Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !support.hrefNormalized ) {
+
+ // href/src property should get the full normalized URL (#10299/#12915)
+ jQuery.each( [ "href", "src" ], function( i, name ) {
+ jQuery.propHooks[ name ] = {
+ get: function( elem ) {
+ return elem.getAttribute( name, 4 );
+ }
+ };
+ } );
+}
+
+// Support: Safari, IE9+
+// 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
+if ( !support.optSelected ) {
+ jQuery.propHooks.selected = {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ },
+ set: function( elem ) {
+ 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;
+} );
+
+// IE6/7 call enctype encoding
+if ( !support.enctype ) {
+ jQuery.propFix.enctype = "encoding";
+}
+
+
+
+
+var rclass = /[\t\r\n\f]/g;
+
+function getClass( elem ) {
+ return jQuery.attr( elem, "class" ) || "";
+}
+
+jQuery.fn.extend( {
+ addClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnotwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+ cur = elem.nodeType === 1 &&
+ ( " " + curValue + " " ).replace( rclass, " " );
+
+ if ( cur ) {
+ j = 0;
+ while ( ( clazz = classes[ j++ ] ) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+
+ // only assign if different to avoid unneeded rendering.
+ finalValue = jQuery.trim( cur );
+ if ( curValue !== finalValue ) {
+ jQuery.attr( elem, "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, curValue, clazz, j, finalValue,
+ i = 0;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each( function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+ } );
+ }
+
+ if ( !arguments.length ) {
+ return this.attr( "class", "" );
+ }
+
+ if ( typeof value === "string" && value ) {
+ classes = value.match( rnotwhite ) || [];
+
+ while ( ( elem = this[ i++ ] ) ) {
+ curValue = getClass( elem );
+
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 &&
+ ( " " + curValue + " " ).replace( rclass, " " );
+
+ 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 = jQuery.trim( cur );
+ if ( curValue !== finalValue ) {
+ jQuery.attr( elem, "class", finalValue );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value;
+
+ if ( typeof stateVal === "boolean" && type === "string" ) {
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
+ }
+
+ if ( jQuery.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 ( type === "string" ) {
+
+ // Toggle individual class names
+ i = 0;
+ self = jQuery( this );
+ classNames = value.match( rnotwhite ) || [];
+
+ 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
+ jQuery._data( 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.
+ jQuery.attr( this, "class",
+ className || value === false ?
+ "" :
+ jQuery._data( this, "__className__" ) || ""
+ );
+ }
+ } );
+ },
+
+ hasClass: function( selector ) {
+ var className, elem,
+ i = 0;
+
+ className = " " + selector + " ";
+ while ( ( elem = this[ i++ ] ) ) {
+ if ( elem.nodeType === 1 &&
+ ( " " + getClass( elem ) + " " ).replace( rclass, " " )
+ .indexOf( className ) > -1
+ ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error contextmenu" ).split( " " ),
+ function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+} );
+
+jQuery.fn.extend( {
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+} );
+
+
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
+
+jQuery.parseJSON = function( data ) {
+
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+
+ // Support: Android 2.3
+ // Workaround failure to string-cast null input
+ return window.JSON.parse( data + "" );
+ }
+
+ var requireNonComma,
+ depth = null,
+ str = jQuery.trim( data + "" );
+
+ // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains
+ // after removing valid tokens
+ return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {
+
+ // Force termination if we see a misplaced comma
+ if ( requireNonComma && comma ) {
+ depth = 0;
+ }
+
+ // Perform no more replacements after returning to outermost depth
+ if ( depth === 0 ) {
+ return token;
+ }
+
+ // Commas must not follow "[", "{", or ","
+ requireNonComma = open || comma;
+
+ // Determine new depth
+ // array/object open ("[" or "{"): depth += true - false (increment)
+ // array/object close ("]" or "}"): depth += false - true (decrement)
+ // other cases ("," or primitive): depth += true - true (numeric cast)
+ depth += !close - !open;
+
+ // Remove this token
+ return "";
+ } ) ) ?
+ ( Function( "return " + str ) )() :
+ jQuery.error( "Invalid JSON: " + data );
+};
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml, tmp;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new window.DOMParser();
+ xml = tmp.parseFromString( data, "text/xml" );
+ } else { // IE
+ xml = new window.ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch ( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+};
+
+
+var
+ rhash = /#.*$/,
+ rts = /([?&])_=[^&]*/,
+
+ // IE leaves an \r character at EOL
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
+
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
+
+ /* 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( "*" ),
+
+ // Document location
+ ajaxLocation = location.href,
+
+ // Segment location into parts
+ ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// 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( rnotwhite ) || [];
+
+ if ( jQuery.isFunction( func ) ) {
+
+ // For each dataType in the dataTypeExpression
+ while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+ // Prepend if requested
+ if ( dataType.charAt( 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 deep, key,
+ 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 firstDataType, ct, finalDataType, type,
+ 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" ] ) { // jscs:ignore requireDotNotation
+ 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: ajaxLocation,
+ type: "GET",
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ 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": jQuery.parseJSON,
+
+ // 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
+
+ // Cross-domain detection vars
+ parts,
+
+ // Loop variable
+ i,
+
+ // URL without anti-cache param
+ cacheURL,
+
+ // Response headers as string
+ responseHeadersString,
+
+ // timeout handle
+ timeoutTimer,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ transport,
+
+ // Response headers
+ responseHeaders,
+
+ // 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 = {},
+
+ // The jqXHR state
+ state = 0,
+
+ // Default abort message
+ strAbort = "canceled",
+
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ var lname = name.toLowerCase();
+ if ( !state ) {
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( state < 2 ) {
+ for ( code in map ) {
+
+ // Lazy-add the new callback in a way that preserves old ones
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ } else {
+
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ }
+ }
+ 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 ).complete = completeDeferred.add;
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // 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 || ajaxLocation ) + "" )
+ .replace( rhash, "" )
+ .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
+
+ // A cross-domain request is in order when we have a protocol:host:port mismatch
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
+ );
+ }
+
+ // 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 ( state === 2 ) {
+ 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
+ cacheURL = s.url;
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+ s.url = rts.test( cacheURL ) ?
+
+ // If there is already a '_' parameter, set its value
+ cacheURL.replace( rts, "$1_=" + nonce++ ) :
+
+ // Otherwise add one to the end
+ cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
+ }
+ }
+
+ // 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 || state === 2 ) ) {
+
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // 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 ( state === 2 ) {
+ return jqXHR;
+ }
+
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = window.setTimeout( function() {
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+
+ // Simply rethrow otherwise
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // 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 );
+ }
+
+ // 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 {
+
+ // We extract error from statusText
+ // then normalize statusText and status 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 ( jQuery.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._evalUrl = function( url ) {
+ 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,
+ "throws": true
+ } );
+};
+
+
+jQuery.fn.extend( {
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( html.call( this, i ) );
+ } );
+ }
+
+ if ( this[ 0 ] ) {
+
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+ if ( this[ 0 ].parentNode ) {
+ wrap.insertBefore( this[ 0 ] );
+ }
+
+ wrap.map( function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ } ).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each( function( i ) {
+ jQuery( this ).wrapInner( html.call( this, i ) );
+ } );
+ }
+
+ return this.each( function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ } );
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each( function( i ) {
+ jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+ } );
+ },
+
+ unwrap: function() {
+ return this.parent().each( function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ } ).end();
+ }
+} );
+
+
+function getDisplay( elem ) {
+ return elem.style && elem.style.display || jQuery.css( elem, "display" );
+}
+
+function filterHidden( elem ) {
+
+ // Disconnected elements are considered hidden
+ if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) {
+ return true;
+ }
+ while ( elem && elem.nodeType === 1 ) {
+ if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) {
+ return true;
+ }
+ elem = elem.parentNode;
+ }
+ return false;
+}
+
+jQuery.expr.filters.hidden = function( elem ) {
+
+ // Support: Opera <= 12.12
+ // Opera reports offsetWidths and offsetHeights less than zero on some elements
+ return support.reliableHiddenOffsets() ?
+ ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 &&
+ !elem.getClientRects().length ) :
+ filterHidden( elem );
+};
+
+jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+};
+
+
+
+
+var r20 = /%20/g,
+ 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 ( jQuery.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 && jQuery.type( 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, value ) {
+
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.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( "&" ).replace( r20, "+" );
+};
+
+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();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val ) {
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ } ).get();
+ }
+} );
+
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?
+
+ // Support: IE6-IE8
+ function() {
+
+ // XHR cannot access local files, always use ActiveX for that case
+ if ( this.isLocal ) {
+ return createActiveXHR();
+ }
+
+ // Support: IE 9-11
+ // IE seems to error on cross-domain PATCH requests when ActiveX XHR
+ // is used. In IE 9+ always use the native XHR.
+ // Note: this condition won't catch Edge as it doesn't define
+ // document.documentMode but it also doesn't support ActiveX so it won't
+ // reach this code.
+ if ( document.documentMode > 8 ) {
+ return createStandardXHR();
+ }
+
+ // Support: IE<9
+ // oldIE XHR does not support non-RFC2616 methods (#13240)
+ // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx
+ // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9
+ // Although this check for six methods instead of eight
+ // since IE also does not support "trace" and "connect"
+ return /^(get|post|head|put|delete|options)$/i.test( this.type ) &&
+ createStandardXHR() || createActiveXHR();
+ } :
+
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+var xhrId = 0,
+ xhrCallbacks = {},
+ xhrSupported = jQuery.ajaxSettings.xhr();
+
+// Support: IE<10
+// Open requests must be manually aborted on unload (#5280)
+// See https://support.microsoft.com/kb/2856746 for more info
+if ( window.attachEvent ) {
+ window.attachEvent( "onunload", function() {
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( undefined, true );
+ }
+ } );
+}
+
+// Determine support properties
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+xhrSupported = support.ajax = !!xhrSupported;
+
+// Create transport if the browser can provide an xhr
+if ( xhrSupported ) {
+
+ jQuery.ajaxTransport( function( options ) {
+
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !options.crossDomain || support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+ var i,
+ xhr = options.xhr(),
+ id = ++xhrId;
+
+ // Open the socket
+ 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 ) {
+
+ // Support: IE<9
+ // IE's ActiveXObject throws a 'Type Mismatch' exception when setting
+ // request header to a null-value.
+ //
+ // To keep consistent with other XHR implementations, cast the value
+ // to string and ignore `undefined`.
+ if ( headers[ i ] !== undefined ) {
+ xhr.setRequestHeader( i, headers[ i ] + "" );
+ }
+ }
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( options.hasContent && options.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+ var status, statusText, responses;
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Clean up
+ delete xhrCallbacks[ id ];
+ callback = undefined;
+ xhr.onreadystatechange = jQuery.noop;
+
+ // Abort manually if needed
+ if ( isAbort ) {
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ responses = {};
+ status = xhr.status;
+
+ // Support: IE<10
+ // Accessing binary-data responseText throws an exception
+ // (#11426)
+ if ( typeof xhr.responseText === "string" ) {
+ responses.text = xhr.responseText;
+ }
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch ( e ) {
+
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && options.isLocal && !options.crossDomain ) {
+ status = responses.text ? 200 : 404;
+
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, xhr.getAllResponseHeaders() );
+ }
+ };
+
+ // Do send the request
+ // `xhr.send` may raise an exception, but it will be
+ // handled in jQuery.ajax (so no try/catch here)
+ if ( !options.async ) {
+
+ // If we're in sync mode we fire the callback
+ callback();
+ } else if ( xhr.readyState === 4 ) {
+
+ // (IE6 & IE7) if it's in cache and has been
+ // retrieved directly we need to fire the callback
+ window.setTimeout( callback );
+ } else {
+
+ // Register the callback, but delay it in case `xhr.send` throws
+ // Add to the list of active xhr callbacks
+ xhr.onreadystatechange = xhrCallbacks[ id ] = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback( undefined, true );
+ }
+ }
+ };
+ }
+ } );
+}
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch ( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch ( e ) {}
+}
+
+
+
+
+// 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 global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || jQuery( "head" )[ 0 ] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement( "script" );
+
+ script.async = true;
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( script.parentNode ) {
+ script.parentNode.removeChild( script );
+ }
+
+ // Dereference the script
+ script = null;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+
+ // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( undefined, true );
+ }
+ }
+ };
+ }
+} );
+
+
+
+
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" &&
+ ( s.contentType || "" )
+ .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+ rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters[ "script json" ] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always( function() {
+
+ // If previous value didn't exist - remove it
+ if ( overwritten === undefined ) {
+ jQuery( window ).removeProp( callbackName );
+
+ // Otherwise restore preexisting value
+ } else {
+ window[ callbackName ] = overwritten;
+ }
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+
+ // make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ } );
+
+ // Delegate to script
+ return "script";
+ }
+} );
+
+
+
+
+// data: string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+ context = context || document;
+
+ var parsed = rsingleTag.exec( data ),
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[ 1 ] ) ];
+ }
+
+ parsed = buildFragment( [ data ], context, scripts );
+
+ if ( scripts && scripts.length ) {
+ jQuery( scripts ).remove();
+ }
+
+ return jQuery.merge( [], parsed.childNodes );
+};
+
+
+// Keep a copy of the old load method
+var _load = jQuery.fn.load;
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+ }
+
+ var selector, type, response,
+ self = this,
+ off = url.indexOf( " " );
+
+ if ( off > -1 ) {
+ selector = jQuery.trim( url.slice( off, url.length ) );
+ url = url.slice( 0, off );
+ }
+
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( params && typeof params === "object" ) {
+ type = "POST";
+ }
+
+ // If we have elements to modify, make the request
+ if ( self.length > 0 ) {
+ jQuery.ajax( {
+ url: url,
+
+ // If "type" variable is undefined, then "GET" method will be used.
+ // Make value of this field explicit since
+ // user can override it through ajaxSetup method
+ type: type || "GET",
+ dataType: "html",
+ data: params
+ } ).done( function( responseText ) {
+
+ // Save response for use in complete callback
+ response = arguments;
+
+ self.html( selector ?
+
+ // If a selector was specified, locate the right elements in a dummy div
+ // Exclude scripts to avoid IE 'Permission Denied' errors
+ jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ // If the request succeeds, this function gets "data", "status", "jqXHR"
+ // but they are ignored because response was set above.
+ // If it fails, this function gets "jqXHR", "status", "error"
+ } ).always( callback && function( jqXHR, status ) {
+ self.each( function() {
+ callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+ } );
+ } );
+ }
+
+ return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+ "ajaxStart",
+ "ajaxStop",
+ "ajaxComplete",
+ "ajaxError",
+ "ajaxSuccess",
+ "ajaxSend"
+], function( i, type ) {
+ jQuery.fn[ type ] = function( fn ) {
+ return this.on( type, fn );
+ };
+} );
+
+
+
+
+jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep( jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ } ).length;
+};
+
+
+
+
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -1;
+
+ // need to be able to calculate position if either top or left
+ // is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend( {
+ offset: function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each( function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ } );
+ }
+
+ var docElem, win,
+ box = { top: 0, left: 0 },
+ elem = this[ 0 ],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return;
+ }
+
+ docElem = doc.documentElement;
+
+ // Make sure it's not a disconnected DOM node
+ if ( !jQuery.contains( docElem, elem ) ) {
+ return box;
+ }
+
+ // If we don't have gBCR, just use 0,0 rather than error
+ // BlackBerry 5, iOS 3 (original iPhone)
+ if ( typeof elem.getBoundingClientRect !== "undefined" ) {
+ box = elem.getBoundingClientRect();
+ }
+ win = getWindow( doc );
+ return {
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+ };
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ parentOffset = { top: 0, left: 0 },
+ elem = this[ 0 ];
+
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+ // because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+ // we assume that getBoundingClientRect is available when computed position is fixed
+ offset = elem.getBoundingClientRect();
+ } else {
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+ }
+
+ // Subtract parent offsets and element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+ };
+ },
+
+ offsetParent: function() {
+ return this.map( function() {
+ var offsetParent = this.offsetParent;
+
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) &&
+ jQuery.css( offsetParent, "position" ) === "static" ) ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent || documentElement;
+ } );
+ }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? ( prop in win ) ? win[ prop ] :
+ win.document.documentElement[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+} );
+
+// Support: Safari<7-8+, Chrome<37-44+
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// getComputedStyle returns percent when specified for top/left/bottom/right
+// rather than make the css module depend on the offset module, we just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+
+ // if curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+ function( defaultExtra, funcName ) {
+
+ // margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
+ // https://github.com/jquery/jquery/pull/764
+ return elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+ // whichever is greatest
+ // unfortunately, this causes bug #3838 in IE6/8 only,
+ // but there is currently no good, small way to fix it.
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable, null );
+ };
+ } );
+} );
+
+
+jQuery.fn.extend( {
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length === 1 ?
+ this.off( selector, "**" ) :
+ this.off( types, selector || "**", fn );
+ }
+} );
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+ return this.length;
+};
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ } );
+}
+
+
+
+var
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in
+// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+return jQuery;
+}));
diff --git a/static/plugins/match-height/jquery.matchHeight-min.js b/static/plugins/match-height/jquery.matchHeight-min.js
index 50936e8..0c5626b 100644
--- a/static/plugins/match-height/jquery.matchHeight-min.js
+++ b/static/plugins/match-height/jquery.matchHeight-min.js
@@ -1,12 +1,12 @@
-/*
-* jquery-match-height 0.7.2 by @liabru
-* http://brm.io/jquery-match-height/
-* License MIT
-*/
-!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
-byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
-r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
-"padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
-display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
-this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
+/*
+* jquery-match-height 0.7.2 by @liabru
+* http://brm.io/jquery-match-height/
+* License MIT
+*/
+!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
+byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
+r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
+"padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
+display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
+this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
}n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})}); \ No newline at end of file
diff --git a/static/plugins/themify-icons/fonts/themify.svg b/static/plugins/themify-icons/fonts/themify.svg
index 3d53854..4d9e7eb 100644
--- a/static/plugins/themify-icons/fonts/themify.svg
+++ b/static/plugins/themify-icons/fonts/themify.svg
@@ -1,362 +1,362 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="themify" horiz-adv-x="512">
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
-<glyph unicode="&#xe600;" d="M512 329.412h-99.178l70.114-70.114-21.293-21.293-70.114 70.114v-99.178h-30.118v98.966l-320.632-321.204-21.293 21.293 320.844 321.416h-99.388v30.118h99.177l-70.114 70.114 21.293 21.293 70.114-70.114v99.178h30.118v-99.298l68.879 68.999 21.293-21.293-68.758-68.879h99.057v-30.118z" />
-<glyph unicode="&#xe601;" d="M108.032 301.312c-28.793 0-46.682-15.059-46.682-39.334v-65.084c0-12.499 4.849-24.214 13.643-33.069 8.794-8.825 20.54-13.704 33.039-13.704h52.495l171.249-171.309v494.803l-169.563-172.303h-54.181zM301.659 400.068v-348.522l-128.662 128.692h-64.994c-9.126 0-16.535 7.469-16.535 16.655v65.084c0 2.74 0 9.216 16.564 9.216h66.771l126.856 128.873zM361.563 149.098v30.118c16.745 0 30.358 13.613 30.358 30.358s-13.613 30.358-30.358 30.358v30.118c33.34 0 60.476-27.136 60.476-60.476s-27.136-60.476-60.476-60.476zM482.756 209.332c0-66.44-54.031-120.471-120.471-120.471v30.118c49.815 0 90.353 40.538 90.353 90.353s-40.538 90.353-90.353 90.353v30.118c66.409 0 120.471-54.061 120.471-120.471z" />
-<glyph unicode="&#xe602;" d="M512-16.58c-1.897 80.926-83.667 150.558-196.397 168.93v41.382c14.818 14.245 25.359 36.352 32.256 55.206 9.999 5 18.793 16.143 23.913 31.112 7.168 20.721 4.397 39.846-6.204 49.061 0.844 7.168 1.385 14.487 0.452 21.775-2.38 19.968 1.957 31.262 5.843 41.201 3.192 8.343 6.897 17.8 3.192 28.461-13.312 38.34-52.013 59.452-108.966 59.452l-7.951-0.15c-39.544-1.416-51.411-18.071-59.362-33.581-0.994-1.868-2.319-4.397-2.319-4.548-51.561-4.608-51.109-47.255-50.718-81.529l0.090-11.113c0-6.174 0.271-12.619 0.783-19.245-12.8-9.036-15.179-30.268-5.391-52.315 5.572-12.499 13.613-21.956 22.558-26.865 7.319-20.299 18.823-44.273 35.508-59.181v-38.641c-114.387-17.74-197.391-87.552-199.288-169.412l-0.361-15.42h512.692l-0.332 15.42zM31.744-1.882c11.806 63.067 86.106 115.079 184.38 126.615l13.282 1.566v80.293l-6.506 4.517c-11.836 8.192-23.823 28.522-32.828 55.748l-2.5 8.463-8.855 1.536c-1.596 0.572-6.264 4.608-9.939 12.89-2.259 5.060-3.132 9.397-3.373 12.499l15.36-4.307-2.892 22.558c-1.265 9.939-1.928 19.606-1.928 28.612l-0.090 11.445c-0.452 40.388 1.536 49.212 23.281 51.17 16.414 1.446 22.648 13.523 26.383 20.751 4.518 8.794 8.433 16.354 33.732 17.287l6.837 0.12c24.967 0 68.638-5.090 80.384-38.611 0-1.295-1.566-5.331-2.711-8.282-4.367-11.264-10.963-28.281-7.65-55.808 0.723-5.662-0.211-12.77-1.204-20.329l-2.68-24.245 13.282 1.446c0.241-3.132-0.12-8.101-2.259-14.216-2.921-8.704-7.288-13.191-7.138-13.673h-10.842l-3.433-10.3c-8.524-25.691-19.577-45.086-30.389-53.248l-5.964-4.517v-82.101l13.192-1.656c96.708-12.077 169.893-63.94 181.609-126.253h-448.542z" />
-<glyph unicode="&#xe603;" d="M286.118 149.549c0-11.023-6.235-20.239-15.059-25.48v-64.874h-30.118v64.844c-8.855 5.24-15.059 14.457-15.059 25.51 0 16.625 13.463 30.118 30.118 30.118 16.595 0 30.117-13.462 30.117-30.118zM451.584 225.204v-213.233c0-24.908-20.269-45.177-45.176-45.177h-300.815c-24.907 0-45.176 20.269-45.176 45.176v213.233c0 24.907 20.269 45.177 45.176 45.177h270.878v59.874c0 66.44-54.031 120.471-120.471 120.471s-120.471-54.031-120.471-120.471h-30.118c0 83.034 67.554 150.588 150.588 150.588s150.588-67.554 150.588-150.588v-59.874c24.817-0.12 44.996-20.33 44.996-45.177zM421.466 225.204c0 8.313-6.776 15.059-15.059 15.059h-300.815c-8.282 0-15.059-6.746-15.059-15.059v-213.233c0-8.313 6.776-15.059 15.059-15.059h300.815c8.283 0 15.059 6.747 15.059 15.059v213.233z" />
-<glyph unicode="&#xe604;" d="M64.271 325.226l42.225 77.914c32.708 49.634 98.244 63.097 146.703 30.991l-16.595-25.088c-34.605 22.86-81.408 13.252-104.328-21.353l-42.225-77.915c-23.522-35.78-13.975-82.582 20.691-105.442 34.424-22.649 72.584-16.474 99.78 16.204l23.131-19.305c-22.347-26.865-51.019-40.719-80.655-40.719-19.727 0-39.846 6.144-58.85 18.673-48.489 32.045-61.922 97.551-29.876 146.041zM121.706 238.035l-3.915-3.885 21.233-21.354 3.946 3.916c29.364 29.364 77.132 29.364 106.466 0s29.365-77.132 0-106.466l-91.046-91.076c-29.364-29.365-77.132-29.365-106.466 0s-29.364 77.132 0 106.466l31.865 31.894-21.293 21.293-31.864-31.925c-41.081-41.080-41.081-107.972 0-149.052 20.57-20.57 47.525-30.811 74.541-30.811s53.971 10.27 74.541 30.81l91.046 91.076c41.081 41.081 41.081 107.972 0 149.052-41.171 41.171-108.032 41.081-149.052 0.060zM330.18 269.177h122.7v30.117h-122.7v-30.117zM316.084 228.608l58.76-33.942 15.059 26.052-58.76 33.942-15.059-26.052zM323.764 445.184l-47.586-82.432 26.052-15.059 47.586 82.402-26.052 15.089zM477.877 397.93l-15.059 26.052-150.347-86.799 15.059-26.052 150.348 86.799z" />
-<glyph unicode="&#xe605;" d="M329.337 419.283c-6.565 26.172-30.087 45.659-58.278 45.659-28.070 0-51.501-19.365-58.157-45.659h-107.49v-30.118h331.294v30.118h-107.37zM271.059 434.824c11.505 0 21.233-6.656 26.353-15.541h-52.194c5.18 9.125 14.607 15.541 25.841 15.541zM391.529 359.529h30.118v-316.717c0-24.908-20.269-45.176-45.176-45.176h-210.823c-24.907 0-45.177 20.269-45.177 45.176v316.717h30.118v-316.717c0-8.283 6.746-15.059 15.059-15.059h210.823c8.313 0 15.059 6.776 15.059 15.059v316.717zM240.941 329.412v-240.941h-30.118v240.941h30.118zM331.294 329.412v-240.941h-30.118v240.941h30.118z" />
-<glyph unicode="&#xe606;" d="M346.353 175.33c91.347 0 165.647 68.337 165.647 152.335s-74.3 152.335-165.647 152.335c-57.585 0-111.225-28.25-141.071-73.216-21.233 12.017-45.056 18.312-69.752 18.312-74.722 0-135.53-56.019-135.53-124.898 0-68.849 60.807-124.868 135.53-124.868 5.602 0 11.294 0.392 17.257 1.115 19.637-17.709 45.839-27.738 73.095-27.738 30.178 0 58.097 11.656 78.065 32.226 14.697-3.764 28.642-5.602 42.406-5.602zM293.497 215.416l-6.385-8.072c-14.185-17.86-37.075-28.522-61.229-28.522-21.805 0-42.587 8.734-57.073 24.004l-5.542 5.813-7.951-1.385c-6.445-1.115-12.981-1.807-19.787-1.807-58.127 0-105.412 42.496-105.412 94.72 0 52.254 47.285 94.78 105.412 94.78 23.853 0 46.652-7.409 65.928-21.474l14.215-10.331 8.042 15.661c22.227 43.159 70.355 71.077 122.639 71.077 74.722 0 135.529-54.814 135.529-122.247 0-67.373-60.808-122.218-135.529-122.218-13.644 0-27.738 2.259-43.038 6.957l-9.818 3.042zM346.353 163.764c-33.22 0-60.236-27.015-60.236-60.236s27.015-60.236 60.236-60.236 60.236 27.015 60.236 60.236-27.015 60.236-60.236 60.236zM346.353 73.412c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118zM459.294 58.353c-20.751 0-37.647-16.896-37.647-37.647s16.896-37.647 37.647-37.647 37.647 16.896 37.647 37.647-16.896 37.647-37.647 37.647zM451.764 20.706c0 4.156 3.373 7.529 7.529 7.529s7.529-3.373 7.529-7.529c0-8.283-15.059-8.283-15.059 0z" />
-<glyph unicode="&#xe607;" d="M512.602 239.059h-61.591c-7.379 96.196-84.51 173.026-180.827 180.013v62.103h-30.118v-62.193c-95.533-7.77-171.731-84.299-179.079-179.923h-61.59v-30.117h61.59c7.349-95.624 83.546-172.153 179.049-179.923v-61.019h30.117v60.928c96.316 6.957 173.447 83.788 180.827 180.013h61.59v30.118zM270.185 59.046v59.543h-30.118v-59.452c-78.939 7.589-141.794 70.776-148.962 149.805h58.88v30.118h-58.88c7.168 79.029 70.024 142.215 148.962 149.805v-58.278h30.118v58.368c79.721-6.837 143.481-70.264 150.709-149.896h-58.88v-30.118h58.88c-7.228-79.631-70.988-143.059-150.708-149.895z" />
-<glyph unicode="&#xe608;" d="M269.644 449.642l-119.476-86.799v-365.628l120.049 84.149 121.706-83.877v365.478l-122.278 86.678zM361.834 54.829l-91.708 63.247-89.811-62.976v292.412l89.6 65.084 91.949-65.204v-292.563zM218.474 299.264c0-29.063 23.642-52.706 52.706-52.706s52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706-52.706-23.642-52.706-52.706zM271.18 321.852c12.438 0 22.588-10.149 22.588-22.588s-10.149-22.588-22.588-22.588-22.588 10.149-22.588 22.588 10.15 22.588 22.588 22.588z" />
-<glyph unicode="&#xe609;" d="M278.588 43.294c0-12.499-10.089-22.588-22.588-22.588s-22.588 10.089-22.588 22.588 10.089 22.588 22.588 22.588 22.588-10.089 22.588-22.588zM481.882 434.824v-421.647c0-24.908-18.824-45.176-41.924-45.176h-367.917c-23.1 0-41.924 20.269-41.924 45.176v421.647c0 24.907 18.824 45.176 41.924 45.176h367.947c23.070 0 41.894-20.269 41.894-45.176zM451.764 434.824c0 8.162-5.391 15.059-11.806 15.059h-367.917c-6.415 0-11.806-6.897-11.806-15.059v-421.647c0-8.162 5.391-15.059 11.806-15.059h367.947c6.385 0 11.776 6.897 11.776 15.059v421.647zM90.353 419.764h331.294v-331.294h-331.294v331.294zM120.471 118.588h271.059v271.059h-271.059v-271.059z" />
-<glyph unicode="&#xe60a;" d="M501.368 268.664h-187.483l-57.886 178.297-57.916-178.297h-187.452l151.643-110.17-57.886-178.297 151.612 110.201 151.643-110.201-57.886 178.297 151.612 110.171zM350.358 59.046l-94.358 68.608-94.358-68.578 36.051 110.983-94.359 68.488h116.645l36.020 110.954 36.020-110.954h116.645l-94.358-68.517 36.051-110.983z" />
-<glyph unicode="&#xe60b;" d="M195.764 389.647c-42.948 0-82.582-23.431-103.996-60.236h-31.533v-316.236c0-24.907 20.269-45.176 45.177-45.176h180.706c24.907 0 45.176 20.269 45.176 45.176v316.236h-31.533c-21.413 36.774-61.108 60.236-103.996 60.236zM195.764 359.529c25.871 0 50.356-11.324 67.283-30.117h-134.536c16.896 18.793 41.351 30.117 67.252 30.117zM301.176 13.176c0-8.283-6.747-15.059-15.059-15.059h-180.706c-8.313 0-15.059 6.776-15.059 15.059v286.118h210.823v-286.118zM240.941 480h-90.353v-90.353h90.353v90.353zM210.823 419.764h-30.118v30.118h30.118v-30.118zM359.755 434.492l94.449-15.601-4.909-29.696-180.706 29.817 2.56 15.481-2.56 15.48 180.706 29.817 4.909-29.696-94.449-15.601z" />
-<glyph unicode="&#xe60c;" d="M346.353 359.529c0 49.815-40.538 90.353-90.353 90.353s-90.353-40.538-90.353-90.353c0-44.664 32.648-81.619 75.294-88.817v-242.477h-60.236v-30.118h150.588v30.118h-60.236v242.477c42.647 7.198 75.294 44.153 75.294 88.817zM195.764 359.529c0 33.22 27.016 60.236 60.236 60.236s60.236-27.015 60.236-60.236-27.015-60.236-60.236-60.236-60.236 27.015-60.236 60.236zM135.65 413.982c-11.385-13.854-17.378-30.238-17.378-47.405s5.993-33.551 17.378-47.405l-23.311-19.155c-15.812 19.305-24.184 42.315-24.184 66.53s8.373 47.255 24.184 66.53l23.311-19.094zM60.236 366.547c0-32.497 11.656-63.127 33.702-88.486l-22.709-19.757c-26.534 30.479-41.111 68.97-41.111 108.243s14.577 77.764 41.111 108.273l22.709-19.757c-22.046-25.389-33.702-56.019-33.702-88.516zM423.846 366.547c0-24.245-8.373-47.225-24.214-66.53l-23.281 19.125c11.385 13.854 17.378 30.238 17.378 47.405s-5.993 33.551-17.378 47.405l23.281 19.125c15.842-19.276 24.214-42.285 24.214-66.53zM481.882 366.547c0-39.304-14.577-77.764-41.111-108.273l-22.709 19.757c22.046 25.42 33.702 56.019 33.702 88.516s-11.656 63.126-33.702 88.486l22.709 19.757c26.534-30.479 41.111-68.94 41.111-108.243z" />
-<glyph unicode="&#xe60d;" d="M82.823 103.529c-29.064 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM82.823 28.236c-12.469 0-22.588 10.149-22.588 22.588s10.119 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.12-22.588-22.588-22.588zM338.824 103.529c-29.063 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM338.824 28.236c-12.469 0-22.588 10.149-22.588 22.588s10.12 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.12-22.588-22.588-22.588zM402.703 419.764l-9.096-60.236h-395.836l33.672-242.025h358.791l31.262 224.768 7.108 47.375h83.396v30.117h-109.297zM389.3 329.412l-4.187-30.118h-348.582l-4.187 30.118h356.954zM57.645 147.622l-16.896 121.555h340.179l-16.896-121.555h-306.387z" />
-<glyph unicode="&#xe60e;" d="M82.823 103.529c-29.064 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM82.823 28.236c-12.439 0-22.588 10.149-22.588 22.588s10.149 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.15-22.588-22.588-22.588zM338.824 103.529c-29.063 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM338.824 28.236c-12.438 0-22.588 10.149-22.588 22.588s10.149 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.149-22.588-22.588-22.588zM402.673 419.764l-9.065-60.236h-395.836l33.642-242.025h358.822l31.413 225.882 6.957 46.261h83.396v30.117h-109.327zM364.002 147.622h-306.356l-25.299 181.79h356.954l-25.299-181.79zM331.294 178.824h-240.941v119.537h30.118v-89.419h180.706v89.45h30.118v-119.567zM120.471 390.581h-30.117v59.301h240.941v-57.404h-30.118v27.286h-180.706v-29.184z" />
-<glyph unicode="&#xe60f;" d="M256 300.137c-41.502 0-75.294-33.792-75.294-75.294s33.792-75.294 75.294-75.294 75.294 33.792 75.294 75.294-33.792 75.294-75.294 75.294zM256 179.667c-24.907 0-45.177 20.269-45.177 45.177s20.269 45.177 45.177 45.177 45.176-20.269 45.176-45.177-20.269-45.177-45.177-45.177zM510.193 195.509c1.115 9.668 1.807 19.426 1.807 29.334s-0.692 19.667-1.807 29.334l-77.945 23.432c-3.584 12.107-8.373 23.702-14.276 34.605l38.52 71.589c-12.228 15.36-26.172 29.305-41.563 41.563l-71.589-38.55c-10.933 5.903-22.528 10.661-34.635 14.276l-23.372 77.945c-9.637 1.115-19.396 1.807-29.334 1.807s-19.697-0.692-29.334-1.807l-23.371-77.945c-12.137-3.584-23.763-8.373-34.636-14.306l-71.59 38.55c-15.39-12.228-29.335-26.172-41.532-41.563l38.52-71.529c-5.903-10.903-10.662-22.528-14.276-34.636l-77.975-23.431c-1.115-9.637-1.807-19.396-1.807-29.334s0.693-19.697 1.807-29.335l77.945-23.372c3.614-12.137 8.373-23.763 14.276-34.666l-38.52-71.56c12.228-15.39 26.172-29.334 41.563-41.563l71.589 38.52c10.903-5.903 22.528-10.661 34.636-14.276l23.371-77.945c9.668-1.115 19.426-1.807 29.334-1.807s19.697 0.692 29.334 1.807l23.372 77.945c12.108 3.614 23.733 8.373 34.635 14.276l71.56-38.52c15.39 12.258 29.334 26.202 41.563 41.592l-38.49 71.56c5.903 10.902 10.661 22.528 14.276 34.635l77.945 23.372zM408.034 196.322l-4.638-15.601c-3.012-10.149-7.017-19.877-11.926-28.883l-7.71-14.306 7.68-14.306 28.672-53.308c-2.981-3.163-6.053-6.235-9.216-9.216l-67.554 36.412-14.306-7.71c-9.065-4.909-18.793-8.885-28.913-11.926l-15.601-4.638-4.668-15.601-17.438-58.188c-2.168-0.060-4.307-0.091-6.415-0.091s-4.246 0.030-6.415 0.091l-17.438 58.188-4.668 15.601-15.601 4.638c-10.119 3.012-19.847 7.017-28.883 11.926l-14.306 7.71-67.614-36.352c-3.132 2.981-6.234 6.053-9.216 9.216l36.382 67.584-7.71 14.306c-4.879 9.036-8.885 18.764-11.927 28.913l-4.608 15.571-73.758 22.106c-0.090 2.168-0.12 4.307-0.12 6.385 0 2.108 0.030 4.246 0.12 6.415l73.728 22.107 4.638 15.601c3.012 10.149 7.017 19.877 11.927 28.883l7.71 14.306-36.382 67.614c2.981 3.132 6.053 6.234 9.186 9.216l67.674-36.442 14.336 7.8c8.945 4.879 18.643 8.885 28.792 11.897l15.601 4.638 4.668 15.601 17.438 58.188c2.198 0.030 4.337 0.060 6.445 0.060s4.247-0.030 6.415-0.090l17.438-58.188 4.668-15.601 15.601-4.638c10.089-3.012 19.848-7.017 28.913-11.926l14.306-7.68 67.584 36.382c3.132-2.981 6.235-6.053 9.216-9.216l-28.702-53.308-7.68-14.306 7.74-14.306c4.909-9.036 8.885-18.733 11.897-28.822l4.638-15.601 15.601-4.668 58.188-17.499c0.030-2.168 0.060-4.307 0.060-6.415s-0.030-4.247-0.12-6.415l-73.728-22.106z" />
-<glyph unicode="&#xe610;" d="M500.074 2.093l-155.798 155.798c29.365 34.244 47.255 78.637 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.284 0-101.466-20.36-138.481-57.314-36.955-36.984-57.314-86.166-57.284-138.451 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.973 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 119.432c-91.317 0-165.647 74.3-165.647 165.647-0.030 44.273 17.197 85.865 48.489 117.127 31.262 31.292 72.885 48.519 117.157 48.519 91.317 0 165.647-74.3 165.647-165.647 0-91.317-74.33-165.647-165.647-165.647z" />
-<glyph unicode="&#xe611;" d="M500.074 1.25l-155.798 155.798c29.365 34.244 47.255 78.607 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.315 0-101.466-20.36-138.451-57.344-36.984-36.954-57.314-86.137-57.314-138.421 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.943 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 118.588c-91.347 0-165.647 74.3-165.647 165.647 0 44.273 17.197 85.865 48.489 117.158 31.292 31.262 72.885 48.489 117.157 48.489 91.347 0 165.647-74.3 165.647-165.647 0-91.347-74.3-165.647-165.647-165.647zM210.823 299.294h60.235v-30.117h-60.236v-60.236h-30.118v60.236h-60.236v30.118h60.236v60.236h30.118v-60.236z" />
-<glyph unicode="&#xe612;" d="M500.074 2.093l-155.798 155.798c29.365 34.244 47.255 78.637 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.284 0-101.466-20.36-138.481-57.314-36.955-36.984-57.314-86.166-57.284-138.451 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.973 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 119.432c-91.317 0-165.647 74.3-165.647 165.647-0.030 44.273 17.197 85.865 48.489 117.127 31.262 31.292 72.885 48.519 117.157 48.519 91.317 0 165.647-74.3 165.647-165.647 0-91.317-74.33-165.647-165.647-165.647zM120.471 300.137h150.588v-30.118h-150.588v30.118z" />
-<glyph unicode="&#xe613;" d="M391.529 148.706c-16.414 0-31.594-4.728-44.875-12.409l-69.933 73.909 188.536 199.198-21.896 20.721-187.362-197.993-187.422 197.993-21.865-20.721 188.536-199.198-69.933-73.879c-13.252 7.65-28.461 12.378-44.845 12.378-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353c0 22.498-8.584 42.887-22.227 58.7l67.403 71.228 67.404-71.228c-13.673-15.842-22.227-36.202-22.227-58.7 0-49.815 40.538-90.353 90.353-90.353s90.353 40.538 90.353 90.353-40.538 90.353-90.353 90.353zM120.471-1.882c-33.22 0-60.236 27.015-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.016-60.236-60.236-60.236zM391.529-1.882c-33.22 0-60.236 27.015-60.236 60.236s27.015 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.015-60.236-60.236-60.236z" />
-<glyph unicode="&#xe614;" d="M150.588 480v-512h210.823v512h-210.823zM331.294-1.882h-150.588v29.636h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v29.636h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.117h60.236v30.118h-60.236v30.118h150.588v-451.764z" />
-<glyph unicode="&#xe615;" d="M135.288 480h-59.754c-24.907 0-45.176-20.269-45.176-45.176v-320.964l75.927-149.263 74.21 149.353v320.873c-0.030 24.908-20.299 45.176-45.207 45.176zM75.535 449.882h59.754c8.282 0 15.059-6.776 15.059-15.059v-30.69h-89.871v30.69c0 8.283 6.746 15.059 15.059 15.059zM60.476 342.964v31.051h89.871v-31.051h-89.871zM118.904 57.721h-26.203l-32.226 63.368v191.759h30.118v-195.192h30.118v195.192h29.636v-191.85l-31.443-63.277zM240.941 480v-512h210.823v512h-210.823zM421.647-1.882h-150.588v29.636h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v29.636h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.117h60.236v30.118h-60.236v30.118h150.588v-451.764z" />
-<glyph unicode="&#xe616;" d="M362.496 479.548l-362.044-362.044 149.083-149.052 362.014 362.014-149.052 149.082zM43.038 117.504l20.962 20.962 42.587-42.587 21.293 21.293-42.587 42.587 21.654 21.654 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.587-42.587 21.293 21.293-42.587 42.587 20.962 20.962 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.587-42.587 21.293 21.293-42.587 42.587 21.625 21.625 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.616-42.587 21.293 21.293-42.616 42.587 21.324 21.323 106.466-106.496-319.428-319.428-106.496 106.466z" />
-<glyph unicode="&#xe617;" d="M107.279 449.882v-465.589l141.131 98.485 143.119-98.183v465.288h-284.25zM361.412 41.758l-113.122 77.644-110.863-77.342v377.705h223.985v-378.007z" />
-<glyph unicode="&#xe618;" d="M301.99 176.595v303.405h-182.332v-303.495l90.986 61.832 91.347-61.741zM149.775 233.397v216.486h122.127v-216.576l-61.35 41.442-60.778-41.352zM481.882 449.671v-451.554h-451.764v451.554h59.452v-30.118h-29.334v-391.318h391.529v391.318h-120.621v30.118h150.739z" />
-<glyph unicode="&#xe619;" d="M180.706 239.059h-180.706v180.706h30.117v-123.754c30.509 96.166 121.555 165.165 225.882 165.165 105.592 0 199.409-71.077 228.111-172.845l-29.003-8.162c-25.058 88.847-106.948 150.919-199.108 150.919-97.159-0.030-181.188-68.548-202.029-161.912h126.735v-30.118zM331.294 208.941v-30.118h126.735c-20.872-93.395-104.779-161.882-202.029-161.882-92.22 0-174.080 62.072-199.108 150.92l-29.003-8.162c28.672-101.767 122.489-172.845 228.111-172.845 104.177 0 195.012 68.668 225.882 165.105v-123.724h30.118v180.706h-180.706z" />
-<glyph unicode="&#xe61a;" d="M481.882 208.941h-210.824v-210.824h-30.118v210.823h-210.823v30.118h210.823v210.824h30.118v-210.824h210.823v-30.118z" />
-<glyph unicode="&#xe61b;" d="M361.412 344.471c0 58.127-47.284 105.412-105.412 105.412s-105.412-47.285-105.412-105.412c0-52.556 38.791-95.925 89.209-103.756v-242.598h30.118v242.357c51.501 6.867 91.498 50.658 91.498 103.996zM256 269.177c-41.532 0-75.294 33.762-75.294 75.294s33.762 75.294 75.294 75.294 75.294-33.762 75.294-75.294-33.762-75.294-75.294-75.294zM301.176 329.412h-30.118c0 16.625-13.493 30.117-30.118 30.117v30.118c33.22 0 60.236-27.016 60.236-60.236z" />
-<glyph unicode="&#xe61c;" d="M467.697 393.954l-42.255 42.285c-17.017 17.047-46.833 17.047-63.909 0l-272.776-272.805-51.862-159.262 158.058 53.157 272.716 272.745c17.649 17.589 17.649 46.26 0.030 63.88zM93.184 79.616l19.426 59.603 58.248-58.277-59.121-19.877-18.552 18.553zM131.162 163.223l165.436 165.436 63.579-63.548-165.466-165.466-63.548 63.579zM317.892 349.982l21.956 21.956 63.579-63.548-21.956-21.956-63.579 63.548zM446.404 351.368l-21.685-21.685-63.579 63.548 21.685 21.715c5.692 5.692 15.601 5.692 21.293 0l42.255-42.285c5.903-5.903 5.903-15.42 0.030-21.293z" />
-<glyph unicode="&#xe61d;" d="M496.911 424.493l-42.255 42.255c-17.046 17.047-46.833 17.047-63.909 0l-226.966-226.966-51.862-159.232 158.088 53.158 226.906 226.906c8.524 8.524 13.221 19.877 13.221 31.955s-4.699 23.401-13.221 31.925zM168.177 155.995l19.215 58.94 57.826-57.796-58.489-19.667-18.553 18.522zM205.764 239.179l120.049 120.049 63.548-63.548-120.049-120.049-63.548 63.548zM347.106 380.522l21.956 21.956 63.548-63.548-21.956-21.956-63.548 63.548zM475.618 381.907l-21.685-21.715-63.548 63.548 21.685 21.715c5.723 5.692 15.631 5.692 21.293 0l42.255-42.255c2.831-2.861 4.397-6.626 4.397-10.661s-1.566-7.771-4.397-10.632zM451.764 254.118h30.118v-286.118h-481.882v451.764h225.882v-30.118h-195.764v-391.529h421.647v256z" />
-<glyph unicode="&#xe61e;" d="M451.764 419.764v60.236h-391.529v-60.236h-15.541c-24.636 0-44.694-20.329-44.694-45.327v-90.052c0-24.998 20.058-45.327 44.694-45.327h181.429c8.282 0 15.059-6.776 15.059-15.059v-45.176h-30.358v-210.823h90.353v210.823h-29.877v45.176c0 24.907-20.269 45.176-45.177 45.176h-181.429c-8.011 0-14.577 6.837-14.577 15.21v90.052c0 8.373 6.566 15.209 14.577 15.209h15.541v-90.353h391.529v90.353h30.118v30.118h-30.118zM271.059-1.882h-30.118v150.588h30.118v-150.588zM421.647 329.412h-331.294v120.47h331.294v-120.47z" />
-<glyph unicode="&#xe61f;" d="M502.995 184.305l-267.084 268.77-4.036-4.005c-20.119 19.908-46.743 30.9-75.084 30.931 0 0 0 0-0.030 0-28.552 0-55.447-11.144-75.656-31.353-20.239-20.209-31.383-47.074-31.383-75.716 0-28.341 11.023-54.965 30.931-75.084l-66.5-66.53c-9.126-9.156-14.155-21.263-14.155-34.124 0-12.921 5-24.998 14.065-34.033l144.896-146.341c9.095-9.096 21.203-14.125 34.063-14.125 12.921 0 25.028 5.060 34.124 14.185l167.394 167.394 108.454 0.030zM79.842 372.962c0 20.54 8.011 39.846 22.558 54.393 14.547 14.516 33.822 22.528 54.362 22.528 0.030 0 0.030 0 0.030 0 20.299 0 39.333-7.891 53.79-22.106l-108.604-108.635c-14.246 14.487-22.136 33.521-22.136 53.82zM205.794 38.144c-3.404-3.404-7.981-5.331-12.8-5.331s-9.367 1.868-12.709 5.24l-109.508 110.652h245.579l-110.562-110.562zM346.474 178.824h-305.543l-5.511 5.602c-3.433 3.404-5.3 7.921-5.3 12.74 0 4.849 1.898 9.397 5.331 12.86l200.403 200.403 194.801-196.036-48.61-0.030-35.569-35.539zM472.486 119.823l-12.258 18.191-12.589-18.010c-9.608-13.764-41.050-60.567-41.050-84.269 0-29.063 23.642-52.706 52.706-52.706s52.706 23.673 52.706 52.736c0 23.552-30.238 70.295-39.514 84.058zM459.294 13.176c-12.438 0-22.588 10.149-22.588 22.588 0 7.228 10.511 27.708 23.070 47.917 12.047-20.179 22.106-40.629 22.106-47.917 0-12.438-10.149-22.588-22.588-22.588z" />
-<glyph unicode="&#xe620;" d="M256 464.941c-132.849 0-240.941-108.092-240.941-240.941s108.092-240.941 240.941-240.941 240.941 108.092 240.941 240.941-108.092 240.941-240.941 240.941zM256 434.824c52.706 0 100.834-19.577 137.849-51.682l-296.96-296.99c-32.136 36.984-51.712 85.142-51.712 137.849 0 116.224 94.57 210.823 210.823 210.823zM256 13.176c-52.706 0-100.834 19.577-137.849 51.682l296.96 296.99c32.135-36.984 51.712-85.142 51.712-137.849 0-116.224-94.57-210.823-210.823-210.823z" />
-<glyph unicode="&#xe621;" d="M376.471 480h-240.941c-24.907 0-45.177-20.269-45.177-45.176v-421.647c0-24.908 20.269-45.176 45.177-45.176h240.941c24.908 0 45.176 20.269 45.176 45.176v421.647c0 24.907-20.269 45.176-45.176 45.176zM135.53 449.882h240.941c8.313 0 15.059-6.746 15.059-15.059v-45.177h-271.059v45.177c0 8.313 6.746 15.059 15.059 15.059zM391.529 359.529v-240.941h-271.059v240.941h271.059zM376.471-1.882h-240.941c-8.313 0-15.059 6.747-15.059 15.059v75.294h271.059v-75.294c0-8.313-6.747-15.059-15.059-15.059zM271.059 43.294c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059 6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059z" />
-<glyph unicode="&#xe622;" d="M451.764 239.059v-30.117h-391.529v30.118h391.529z" />
-<glyph unicode="&#xe623;" d="M256 480c-83.034 0-150.588-67.554-150.588-150.588 0-41.412 16.715-80.083 47.044-108.906 2.56-2.469 5.421-4.638 8.313-6.806l3.102-2.349c5.391-4.247 11.113-7.74 16.836-11.173v-217.118l74.661 57.254 75.926-57.254v217.118c5.723 3.433 11.475 6.957 16.866 11.204l3.102 2.319c2.892 2.168 5.723 4.337 8.313 6.806 30.298 28.822 47.014 67.493 47.014 108.906 0 83.034-67.554 150.588-150.588 150.588zM301.176 43.505l-45.959 34.666-44.394-34.063v127.247c14.517-5.029 29.696-7.589 45.177-7.589s30.66 2.56 45.177 7.589v-127.85zM338.793 242.311c-1.716-1.656-3.644-3.042-5.572-4.428l-3.704-2.831c-43.52-34.183-103.544-34.154-147.004-0.030l-3.734 2.861c-1.928 1.416-3.855 2.801-5.572 4.428-24.305 23.1-37.677 54.001-37.677 87.1 0 66.44 54.031 120.471 120.47 120.471s120.471-54.031 120.471-120.471c0-33.099-13.372-64-37.677-87.1zM329.788 374.166l5.541-29.575-54.904-10.27 34.515-58.338-25.931-15.36-32.738 55.296-32.828-55.266-25.871 15.36 34.696 58.428-53.489 10.149 5.602 29.575 56.561-10.692v56.29h30.118v-56.561l58.729 10.963z" />
-<glyph unicode="&#xe624;" d="M256 480c-83.034 0-150.588-67.554-150.588-150.588 0-41.412 16.715-80.083 47.044-108.906 2.56-2.469 5.421-4.638 8.313-6.806l3.102-2.349c5.391-4.247 11.113-7.74 16.836-11.173v-217.118l74.661 57.254 75.926-57.254v217.118c5.723 3.433 11.475 6.957 16.866 11.204l3.102 2.319c2.892 2.168 5.723 4.337 8.313 6.806 30.298 28.822 47.014 67.493 47.014 108.906 0 83.034-67.554 150.588-150.588 150.588zM301.176 43.505l-45.959 34.666-44.394-34.063v127.247c14.517-5.029 29.696-7.589 45.177-7.589s30.66 2.56 45.177 7.589v-127.85zM338.793 242.311c-1.716-1.656-3.644-3.042-5.572-4.428l-3.704-2.831c-43.52-34.183-103.544-34.154-147.004-0.030l-3.734 2.861c-1.928 1.416-3.855 2.801-5.572 4.428-24.305 23.1-37.677 54.001-37.677 87.1 0 66.44 54.031 120.471 120.47 120.471s120.471-54.031 120.471-120.471c0-33.099-13.372-64-37.677-87.1zM308.706 329.412c0-29.094-23.612-52.706-52.706-52.706s-52.706 23.612-52.706 52.706 23.612 52.706 52.706 52.706 52.706-23.612 52.706-52.706z" />
-<glyph unicode="&#xe625;" d="M320.632 449.882h-23.13c-6.988 17.709-23.161 30.118-41.954 30.118h-74.3c-8.794 0-15.963-2.711-21.263-8.072-9.517-9.548-9.457-23.221-9.397-37.737v-354.756l55.748-70.024h4.488v-41.412l30.118 20.721v20.721h4.428l55.808 70.024v340.3h19.456c10.149 0 10.661-16.263 10.661-19.516v-128.482h30.118v128.482c0.030 29.214-16.745 49.634-40.779 49.634zM181.248 449.882h74.3c8.584 0 15.541-8.764 15.541-19.516v-100.954h-90.383v104.93c0 5.843-0.060 14.668 0.542 15.541zM230.912 39.529h-10.029l-40.147 50.447-0.030 209.317h90.353v-209.317l-40.147-50.447z" />
-<glyph unicode="&#xe626;" d="M471.763 308.812l-16.384 16.384c2.349 5.391 3.825 11.084 4.187 16.926 0.783 13.101-3.644 25.148-12.529 34.033l-52.555 52.555c-6.204 6.204-13.161 9.337-20.691 9.337-13.523 0-23.161-9.728-33.37-20.059l-272.143-272.143-10.090-88.998 3.163-3.132-29.274-29.274 35.931-6.686 14.668 14.637 3.132-3.132 88.968 10.029 261.933 261.964 13.733-13.733c2.168-2.168 2.831-4.337 2.289-7.379-0.783-4.247-3.885-9.337-8.524-13.975l-90.835-90.865 21.293-21.293 90.835 90.865c9.125 9.095 14.969 19.426 16.866 29.817 2.349 12.83-1.416 24.967-10.601 34.123zM160.918 68.081l-64.091-7.259-7.078 7.077 7.288 64.030 169.322 169.322 63.88-63.88-169.321-169.292zM351.533 258.666l-63.88 63.88 74.21 74.21c4.096 4.187 10.3 10.451 11.324 10.662l52.555-52.556c3.614-3.614 3.885-8.372 3.764-10.872-0.301-5.060-2.651-9.969-6.565-13.915l-71.409-71.409z" />
-<glyph unicode="&#xe627;" d="M456.162 213.339l-185.103 185.133v-400.354h-30.118v400.354l-185.103-185.133-21.323 21.323 221.485 221.455 221.485-221.485-21.324-21.293z" />
-<glyph unicode="&#xe628;" d="M473.058 224.844l-221.485-221.485-21.293 21.293 185.103 185.103h-385.265v30.118h385.295l-185.133 185.163 21.293 21.293 221.485-221.485z" />
-<glyph unicode="&#xe629;" d="M481.882 209.784h-385.295l185.103-185.103-21.293-21.293-221.455 221.455 221.485 221.485 21.293-21.293-185.133-185.133h385.295v-30.118z" />
-<glyph unicode="&#xe62a;" d="M477.485 213.339l-221.485-221.455-221.485 221.455 21.293 21.293 185.133-185.103v400.354h30.117v-400.354l185.103 185.103 21.324-21.293z" />
-<glyph unicode="&#xe62b;" d="M286.118 149.549c0-11.023-6.235-20.239-15.059-25.48v-64.874h-30.118v64.844c-8.855 5.24-15.059 14.457-15.059 25.51 0 16.625 13.463 30.118 30.118 30.118 16.595 0 30.117-13.462 30.117-30.118zM450.711 225.204v-213.233c0-24.908-20.269-45.177-45.176-45.177h-300.845c-24.907 0-45.176 20.269-45.176 45.176v213.233c0 24.907 20.269 45.177 45.176 45.177h0.723v59.874c0 83.034 67.554 150.588 150.588 150.588s150.588-67.554 150.588-150.588v-59.995c24.425-0.542 44.123-20.51 44.123-45.056zM135.53 270.381h240.941v59.874c0 66.44-54.031 120.471-120.471 120.471s-120.471-54.031-120.471-120.471v-59.874zM420.593 225.204c0 7.951-6.235 14.276-14.005 14.848v-0.12h-301.176v0.332h-0.723c-8.282 0-15.059-6.746-15.059-15.059v-213.233c0-8.313 6.776-15.059 15.059-15.059h300.845c8.283 0 15.059 6.747 15.059 15.059v213.233z" />
-<glyph unicode="&#xe62c;" d="M59.362 420.788l159.262-424.689 36.502 228.924 228.924 36.502-424.689 159.262zM228.834 251.347l-22.016-137.999-95.985 255.97 255.97-95.985-137.969-21.986z" />
-<glyph unicode="&#xe62d;" d="M391.017 270.983l-28.25-28.25-21.293 21.293 28.25 28.25c29.365 29.364 29.365 77.132 0 106.466s-77.132 29.364-106.466 0l-89.962-89.992c-29.364-29.365-29.364-77.132 0-106.466s77.132-29.365 106.466 0l21.293-21.293c-20.57-20.57-47.525-30.81-74.541-30.81s-53.971 10.27-74.511 30.81c-41.081 41.081-41.081 107.972 0 149.052l89.962 89.962c41.111 41.111 107.941 41.111 149.052 0 41.111-41.051 41.111-107.942 0-149.022zM181.971 238.035l-3.916-3.885 21.233-21.354 3.946 3.916c29.364 29.364 77.131 29.364 106.466 0s29.365-77.132 0-106.466l-91.046-91.106c-29.364-29.365-77.132-29.365-106.466 0s-29.365 77.132 0 106.466l31.865 31.894-21.293 21.293-31.864-31.894c-41.081-41.081-41.081-107.972 0-149.052 20.57-20.57 47.525-30.811 74.541-30.811s53.971 10.27 74.541 30.81l91.046 91.076c41.081 41.081 41.081 107.972 0 149.052-41.14 41.171-108.002 41.081-149.052 0.060z" />
-<glyph unicode="&#xe62e;" d="M0 480v-512h512v512h-512zM30.117 299.294h271.059v-301.176h-271.059v301.176zM481.882-1.882h-150.588v301.176h150.588v-301.176zM30.117 329.412v120.47h451.764v-120.47h-451.764z" />
-<glyph unicode="&#xe62f;" d="M391.529 449.882h-391.529v-331.294h391.529v331.294zM361.412 148.706h-331.294v271.059h331.294v-271.059zM512 329.412v-331.294h-391.529v91.286h30.118v-61.169h331.294v271.059h-60.717v30.118h90.835z" />
-<glyph unicode="&#xe630;" d="M331.294 449.882h-331.294v-271.059h331.294v271.059zM301.176 208.941h-271.059v210.824h271.059v-210.824zM421.647 88.471h-331.294v59.663h30.118v-29.546h271.059v210.824h-29.937v30.117h60.055v-271.059zM512 269.177v-271.059h-331.294v59.663h30.118v-29.546h271.059v210.823h-29.937v30.117h60.054z" />
-<glyph unicode="&#xe631;" d="M446.072 290.289l21.293 21.293-52.194 52.194 22.799 22.678-21.233 21.353-245.339-244.164c-14.577 10.12-32.226 16.113-51.291 16.113-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353c0 19.908-6.686 38.189-17.619 53.127l158.54 157.756 52.344-52.345 21.293 21.293-52.315 52.284 21.113 21.022 52.254-52.254zM120.079 29.169c-33.22 0-60.236 27.015-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.016-60.236-60.236-60.236z" />
-<glyph unicode="&#xe632;" d="M256 68.081l-146.161 145.468 21.233 21.353 109.869-109.357v325.18h30.117v-325.18l109.839 109.327 21.233-21.353-146.131-145.438zM481.882 208.038v-194.861c0-8.313-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.747-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
-<glyph unicode="&#xe633;" d="M30.117 449.882v-451.764h451.764v451.764h-451.764zM451.764 28.236h-391.529v60.236h391.529v-60.236zM60.236 118.588v301.176h391.529v-301.176h-391.529zM427.761 173.854l-20.992-21.594-72.794 70.746-46.803-50.477-74.873 132.97-102.43-149.836-24.877 16.986 129.807 189.832 78.426-139.204 39.665 42.827 94.87-92.25z" />
-<glyph unicode="&#xe634;" d="M376.471 460.183c-52.375 0-97.913-29.877-120.471-73.457-22.558 43.58-68.096 73.457-120.471 73.457-74.722 0-135.53-60.808-135.53-135.529 0-10.331 1.446-21.052 4.638-33.672l3.283-10.572c43.129-131.132 230.671-282.895 238.652-289.25l9.427-7.589 9.427 7.589c8.493 6.837 208.595 168.599 238.743 289.551l3.373 11.084c3.042 12.107 4.457 22.558 4.457 32.858 0 74.722-60.808 135.53-135.53 135.53zM478.539 299.897l-3.404-11.143c-24.365-97.762-179.079-232.719-219.136-266.331-38.611 32.618-184.38 160.738-219.407 267.204l-3.012 9.517c-2.319 9.366-3.463 17.709-3.463 25.51 0 58.127 47.284 105.412 105.412 105.412s105.412-47.315 105.412-105.412v-7.589h30.118v7.589c0 58.127 47.284 105.412 105.412 105.412s105.412-47.285 105.412-105.412c0-7.77-1.144-15.872-3.343-24.756z" />
-<glyph unicode="&#xe635;" d="M4.608 290.981c-3.163 12.62-4.608 23.341-4.608 33.672 0 74.722 60.807 135.529 135.53 135.529 52.374 0 97.912-29.876 120.47-73.457 22.558 43.58 68.096 73.457 120.471 73.457 74.722 0 135.529-60.808 135.529-135.529 0-10.3-1.416-20.721-4.428-32.858l-3.404-11.084c-2.44-9.969-6.867-21.715-13.644-36.111l-27.226 12.83c5.903 12.589 9.698 22.558 11.897 31.352l3.373 11.113c2.199 8.885 3.313 16.987 3.313 24.757 0 58.127-47.284 105.412-105.412 105.412s-105.412-47.315-105.412-105.412h-30.118c0 58.127-47.285 105.412-105.412 105.412s-105.412-47.315-105.412-105.412c0-7.801 1.145-16.143 3.493-25.51l3.012-9.517c2.831-8.644 7.078-18.612 13.282-31.111l-26.985-13.433c-6.867 13.854-11.626 25.088-14.998 35.328l-3.313 10.572zM255.97 21.88c-24.275 19.065-93.425 76.288-149.865 150.98l-24.004-18.191c72.102-95.382 161.25-161.19 164.984-163.93l8.975-6.565 8.915 6.626c3.885 2.861 95.985 71.5 166.731 163.78l-23.884 18.341c-55.658-72.553-127.067-131.494-151.853-151.040zM426.827 256.678l-85.293-60.236-85.293 60.236-85.323-60.236-85.444 60.205-94.148-66.319 17.348-24.636 76.8 54.151 85.444-60.265 85.323 60.236 85.293-60.236 85.293 60.236 76.469-54.091 17.408 24.576-93.876 66.38z" />
-<glyph unicode="&#xe636;" d="M421.647 347.392v-218.594c0-25.781-10.149-56.23-19.125-83.065-5.391-16.204-10.993-32.918-10.993-40.087v-22.588c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v22.588c0 12.047 5.541 28.612 12.559 49.604 7.8 23.492 17.558 52.676 17.558 73.548v218.594c0 8.283-6.204 14.547-14.396 14.547-8.373 0-15.42-6.325-15.692-14.095 0-0.091-0.060-0.18-0.060-0.271l0.030-116.254c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059l-0.030 123.061c0 0.15 0.091 0.271 0.091 0.452v42.345c0 6.988-4.216 14.547-13.433 14.547-8.252 0-15.902-6.325-16.384-13.553-0.030-0.392-0.301-0.753-0.361-1.174v-134.927c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.716-15.059 15.059v147.456c0 0.662 0.301 1.265 0.392 1.897v23.943c0 7.861-7.259 14.517-15.812 14.517-8.403 0-14.969-6.355-14.969-14.517v-26.082c0.060-0.452 0.271-0.844 0.271-1.325v0-147.456c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.746-15.059 15.059v0 138.3c0 0.12-0.090 0.211-0.12 0.332-0.994 7.168-7.469 12.589-15.059 12.589-8.403 0-15.209-6.536-15.209-14.547v-171.821c0-6.264-3.855-11.866-9.698-14.065-5.752-2.199-12.439-0.603-16.595 4.066l-33.642 37.767c-11.836 13.824-19.757 9.366-22.678 7.68-3.493-1.958-5.993-5.15-6.987-8.945-0.964-3.644-0.421-7.469 1.506-10.752l99.148-211.094c1.386-2.199 4.758-4.668 8.855-5.662 6.776-1.627 11.505-7.68 11.505-14.637v-26.654c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v16.444c-6.957 3.855-12.74 9.457-16.866 16.414l-99.117 211.125c-5.421 9.005-7.078 21.022-4.036 32.557 3.102 11.656 10.662 21.383 21.263 27.407 20.359 11.475 42.828 6.204 60.236-14.095l7.138-8.012v132.276c0 24.636 20.329 44.664 45.327 44.664 5.24 0 10.331-0.903 15.059-2.56 2.018 22.799 21.383 40.719 44.906 40.719 24.124 0 43.942-18.191 45.809-41.171 5.15 1.928 10.722 3.012 16.505 3.012 24.425 0 43.55-19.606 43.55-44.664v-7.891c4.909 1.777 10.18 2.74 15.661 2.74 24.938 0.030 44.484-19.577 44.484-44.635z" />
-<glyph unicode="&#xe637;" d="M459.053 316.762l-35.78-242.868c-3.554-18.432-11.716-26.503-17.649-32.406-5.752-5.723-9.577-9.517-9.577-28.1v-30.329c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v30.329c0 28.762 8.373 39.424 18.492 49.453 4.668 4.638 7.469 7.439 9.156 16.083l35.69 242.116c0.542 3.705 1.536 16.264-8.222 17.619-3.373 0.482-6.114-0.060-8.283-1.716-2.892-2.139-4.94-6.294-5.662-11.385l-14.969-99.87c-0.753-5.15-4.156-9.517-8.915-11.596s-10.27-1.506-14.577 1.476c-1.506-0.241-4.036 0.692-6.565 2.349-4.578 2.921-7.198 8.072-6.897 13.493l8.584 159.202c0.692 8.373-5.12 15.33-13.011 16.023-3.825 0.361-7.5-0.844-10.421-3.283-2.952-2.47-4.699-5.903-5.029-9.668l-13.945-144.023c-0.783-8.101-7.198-13.975-15.993-13.583-2.44 0.15-4.909 0.301-7.409 0.332-8.101 0.18-14.607 6.716-14.757 14.788l-3.464 184.29c0 8.072-6.325 14.396-14.095 14.396s-14.095-6.325-14.095-14.095l-3.554-198.355c-0.12-5.722-3.434-10.903-8.613-13.342-1.868-0.903-3.674-1.807-5.391-2.771-4.428-2.53-9.819-2.62-14.336-0.241-4.518 2.349-7.559 6.837-8.071 11.897l-15.511 160.497c-0.332 3.945-2.108 7.379-5 9.819-2.922 2.439-6.867 3.554-10.391 3.283-3.795-0.332-7.198-2.108-9.637-5.029-2.41-2.892-3.584-6.565-3.252-10.33l15.149-213.745c0.482-6.565-3.404-12.709-9.548-15.089-6.204-2.409-13.191-0.512-17.257 4.668l-46.713 58.82c-6.114 10.24-16.926 13.101-25.299 8.252-4.096-2.38-7.017-6.174-8.222-10.722-1.204-4.517-0.603-9.276 1.807-13.342l106.285-183.326c2.41-4.187 6.355-7.108 11.053-8.252 6.746-1.627 11.505-7.68 11.505-14.637v-20.781c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v10.541c-7.65 4.126-14.005 10.27-18.492 18.010l-106.316 183.326c-6.415 11.023-8.132 23.884-4.819 36.202 3.252 12.348 11.174 22.649 22.257 29.063 22.829 13.162 52.043 5.331 65.174-17.438l15.239-19.095-11.716 165.135c-1.024 11.505 2.59 23.010 10.18 32.106 7.589 9.036 18.311 14.607 30.088 15.661 11.957 1.084 23.341-2.62 32.436-10.24 4.397-3.704 7.921-8.101 10.541-12.981l0.422 22.678c0 24.154 19.847 43.972 44.212 43.972s44.212-19.848 44.212-44.243l0.421-22.468c2.651 4.909 6.204 9.337 10.632 13.071 9.125 7.65 20.721 11.324 32.467 10.24 24.425-2.139 42.526-23.732 40.388-48.128l-1.596-29.455c0.783 0.692 1.627 1.356 2.44 1.988 8.674 6.505 19.185 9.036 30.66 7.469 23.642-3.283 37.587-24.576 33.792-51.712z" />
-<glyph unicode="&#xe638;" d="M420.533 311.341v-176.007c0-23.401-11.535-37.376-19.968-47.556-7.048-8.553-10.722-13.342-10.722-20.901v-53.7c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v53.7c0 18.764 9.788 30.599 17.649 40.087 7.288 8.825 13.071 15.781 13.071 28.341v176.037c0 9.397-8.072 18.252-16.595 18.252-9.909 0-12.017-1.536-12.108-1.596-1.988-2.68-1.928-17.137-1.897-28.792 0.030-5.692 0.060-12.047-0.060-19.035-0.12-8.252-6.415-14.396-15.18-14.848-8.252 0.060-14.938 6.776-14.938 15.059v63.85c0 9.246-6.686 16.203-15.541 16.203-8.132 0-14.095-6.053-14.818-14.697v-60.325c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v0 60.566c0 0.091-0.060 0.181-0.060 0.301v23.281c0 1.988-0.421 19.336-14.276 19.336-13.553 0-15.601-12.108-15.601-19.336v-21.172c0-0.844-0.332-1.627-0.482-2.44v-78.125c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.746-15.059 15.059v0 80.836c-1.446 5.843-5.662 11.746-14.035 11.746-8.613 0-15.872-7.861-15.872-17.167v-100.894c0-0.211-0.18-0.392-0.18-0.602v-33.16c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v25.118c-5.3 1.928-12.981 3.494-17.378 2.5-3.554-0.692-7.138-3.825-9.367-8.162-1.777-3.404-4.156-10.451-0.271-19.185l51.14-111.947c0.482-1.054 0.813-2.139 1.054-3.252 1.686-8.283 9.397-13.733 17.709-12.981 4.186 0.542 8.463-0.904 11.655-3.764 3.162-2.861 5-6.927 5-11.204v-52.525c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v38.731c-16.143 4.187-29.184 16.896-33.34 33.882l-50.567 110.683c-6.626 14.938-6.234 31.412 0.964 45.387 6.445 12.439 17.709 21.353 30.148 23.883 6.325 1.295 14.878 0.934 23.341-0.783v21.685c0 0.301 0.15 0.572 0.18 0.874v55.717c0 26.082 20.661 47.284 45.989 47.284 6.024 0 11.806-1.204 17.047-3.373 5.994 19.396 22.076 31.834 43.159 31.834 20.118 0 35.9-12.709 41.834-31.955 5.361 2.259 11.234 3.493 17.438 3.493 20.751 0 37.888-13.372 43.58-32.286 5.512 1.204 11.113 1.476 16.143 1.476 25.359 0 46.743-22.137 46.743-48.369z" />
-<glyph unicode="&#xe639;" d="M240.941 359.529l-58.97 60.236h-181.971v-451.764h512v391.529h-271.059zM169.321 389.647l58.97-60.236h253.59v-61.048l-451.764 0.783v120.501h139.204zM30.117-1.882v240.911l451.764-0.783v-240.128h-451.764z" />
-<glyph unicode="&#xe63a;" d="M391.529 178.582v278.227l-357.767-139.113 357.767-139.113zM361.412 222.584l-244.585 95.112 244.585 95.141v-190.253zM451.764 480v-512h-30.118v512h30.118z" />
-<glyph unicode="&#xe63b;" d="M451.764 480v-512h-30.118v512h30.118zM45.989 450.605h345.54v-240.941h-346.052l87.673 119.025-87.16 121.916zM361.412 420.488h-256.844l65.807-92.040-65.295-88.666h256.332v180.706z" />
-<glyph unicode="&#xe63c;" d="M451.764 480v-512h-30.118v512h30.118zM150.107 449.882h240.941v-240.941h-150.107v-60.236h-210.823v240.941h119.988v60.236zM210.823 208.941h-60.236v150.588h-90.353v-180.706h150.588v30.118zM180.224 419.764v-30.118h0.482v-150.588h180.224v180.706h-180.706z" />
-<glyph unicode="&#xe63d;" d="M510.946 214.452c-38.671 98.394-141.161 164.533-254.946 164.533s-216.275-66.139-254.946-164.533c-1.385-3.524-1.385-7.469 0-10.993 38.701-98.425 141.161-164.563 254.946-164.563s216.245 66.108 254.946 164.532c1.415 3.554 1.415 7.469 0 11.023zM256 69.014c-99.328 0-188.808 55.988-224.648 139.927 35.81 83.938 125.29 139.927 224.648 139.927s188.837-55.989 224.648-139.927c-35.84-83.908-125.32-139.927-224.648-139.927zM256 318.66c-60.507 0-109.719-49.212-109.719-109.718s49.212-109.719 109.748-109.719c60.476 0 109.719 49.212 109.719 109.719s-49.243 109.719-109.749 109.719zM256 129.34c-43.911 0-79.631 35.719-79.631 79.601s35.749 79.601 79.631 79.601c43.882 0 79.601-35.719 79.601-79.601s-35.69-79.601-79.601-79.601zM256 249.811c-22.528 0-40.87-18.341-40.87-40.869s18.341-40.87 40.87-40.87 40.87 18.341 40.87 40.87-18.341 40.87-40.87 40.87zM256 198.189c-5.933 0-10.752 4.819-10.752 10.752s4.819 10.752 10.752 10.752 10.752-4.819 10.752-10.752-4.819-10.752-10.752-10.752z" />
-<glyph unicode="&#xe63e;" d="M131.283 300.62l-21.624 20.992 146.341 150.739 146.341-150.739-21.625-20.962-109.659 112.941v-324.277h-30.118v324.276l-109.659-112.971zM481.882 208.038v-194.861c0-8.313-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.747-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
-<glyph unicode="&#xe63f;" d="M180.706 26.94v212.119h-30.118v-212.119l-109.809 109.809-21.293-21.293 146.161-146.161 146.191 146.191-21.293 21.293-109.839-109.839zM165.286 12.243h0.692l-0.332-0.361-0.362 0.361zM471.221 311.221l-109.809 109.839v-213.715h-30.118v213.715l-109.809-109.839-21.323 21.323 146.191 146.161 146.191-146.191-21.324-21.293z" />
-<glyph unicode="&#xe640;" d="M60.236 148.706h391.529v240.941h-391.529v-240.941zM90.353 359.529h331.294v-180.706h-331.294v180.706zM466.824 449.882h-421.647c-24.907 0-45.176-19.215-45.176-42.858v-305.814c0-23.642 20.269-42.858 45.176-42.858h421.647c24.907 0 45.176 19.215 45.176 42.858v305.815c0 23.642-20.269 42.858-45.176 42.858zM481.882 101.211c0-7.048-6.776-12.74-15.059-12.74h-421.647c-8.282 0-15.059 5.692-15.059 12.74v305.815c0 7.048 6.776 12.74 15.059 12.74h421.647c8.283 0 15.059-5.692 15.059-12.74v-305.815zM150.588 28.236h210.823v-30.118h-210.823v30.118z" />
-<glyph unicode="&#xe641;" d="M511.97 449.882h-67.976c0.030 5.060 0.241 9.879 0.241 15.059v15.059h-376.471v-15.059c0-4.819 0.121-10.029 0.15-15.059h-67.885l-0.030-15.029c-0.090-32.708 1.867-66.228 5.873-99.69 10.601-88.455 38.279-190.976 84.179-213.444 5.843-2.892 11.897-4.337 17.95-4.337 7.168 0 14.427 2.048 21.293 6.204l6.294 4.216c25.088-38.46 59.332-64.421 105.351-69.21v-60.476h-88.938v-30.118h210.824v30.118h-91.769v60.145c42.616 4.488 77.854 28.16 105.201 69.632l7.048-4.668c6.505-3.916 13.462-5.843 20.51-5.843 6.053 0 12.168 1.445 18.131 4.367 45.899 22.468 73.577 124.988 84.179 213.444 4.005 33.43 5.963 66.981 5.873 99.689l-0.030 14.999zM120.109 153.705l-6.897-4.638c-3.373-1.988-6.144-2.108-9.879-0.301-23.642 11.596-54.453 80.565-67.554 190.012-3.252 27.106-5.090 54.272-5.541 80.986h38.34c2.921-88.064 15.451-194.801 53.971-269.733l-2.439 3.675zM256 87.236c-136.734 0-156.582 242.447-158.028 362.647h316.055c-1.476-142.185-25.238-362.647-158.028-362.647zM476.22 338.779c-13.132-109.447-43.911-178.417-67.554-190.012-3.704-1.837-6.505-1.747-9.276-0.091l-7.529 5.029-3.493-5.24c32.497 61.38 51.411 152.576 55.145 271.3h38.279c-0.482-26.714-2.319-53.88-5.572-80.986z" />
-<glyph unicode="&#xe642;" d="M380.265 276.917l-122.971 200.975-126.826-201.036-135.5 115.441 52.374-394.18h417.28l52.345 393.788-136.704-114.989zM73.698 28.236l-4.005 30.118h372.586l-4.005-30.118h-364.574zM446.284 88.471h-380.567l-30.57 230.009 102.279-87.1 119.476 189.44 115.983-189.5 104.026 87.522-30.63-230.37z" />
-<glyph unicode="&#xe643;" d="M512 434.824v-240.007c0-24.908-20.269-45.176-45.176-45.176h-15.3v30.118h15.3c8.313 0 15.059 6.776 15.059 15.059v240.007c0 8.283-6.747 15.059-15.059 15.059h-421.647c-8.313 0-15.059-6.776-15.059-15.059v-240.007c0-8.283 6.746-15.059 15.059-15.059h45.177v-87.1l53.579 47.255 19.908-22.588-103.605-91.407v123.724h-15.059c-24.907 0-45.176 20.269-45.176 45.176v240.007c0 24.907 20.269 45.176 45.176 45.176h421.647c24.907 0 45.176-20.269 45.176-45.176zM422.25 192.678v-91.648c0-24.908-20.269-45.176-45.176-45.176h-15.059v-92.281l-110.442 92.281h-25.69c-24.907 0-45.177 20.269-45.177 45.176v91.648c0 24.908 20.269 45.177 45.177 45.177h151.19c24.908 0 45.176-20.269 45.176-45.177zM392.132 192.678c0 8.283-6.747 15.059-15.059 15.059h-151.19c-8.313 0-15.059-6.776-15.059-15.059v-91.648c0-8.283 6.746-15.059 15.059-15.059h36.653l69.361-58.007v58.007h45.176c8.313 0 15.059 6.776 15.059 15.059v91.648z" />
-<glyph unicode="&#xe644;" d="M466.824 480h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-301.176c0-24.908 20.269-45.176 45.176-45.176h15.059v-123.542l141.191 123.543h265.397c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.908-20.269 45.176-45.176 45.176zM481.882 133.647c0-8.283-6.747-15.059-15.059-15.059h-276.721l-99.749-87.281v87.281h-45.176c-8.313 0-15.059 6.776-15.059 15.059v301.176c0 8.283 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.776 15.059-15.059v-301.176z" />
-<glyph unicode="&#xe645;" d="M466.824 480h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-301.176c0-24.908 20.269-45.176 45.176-45.176h15.059v-123.542l141.191 123.543h265.397c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.908-20.269 45.176-45.176 45.176zM481.882 133.647c0-8.283-6.747-15.059-15.059-15.059h-276.721l-99.749-87.281v87.281h-45.176c-8.313 0-15.059 6.776-15.059 15.059v301.176c0 8.283 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.776 15.059-15.059v-301.176zM90.353 389.647h331.294v-30.118h-331.294v30.118zM90.353 329.412h331.294v-30.118h-331.294v30.118zM90.353 269.177h180.706v-30.118h-180.706v30.118z" />
-<glyph unicode="&#xe646;" d="M277.293 224l200.162-200.162-21.293-21.293-200.162 200.162-200.162-200.162-21.293 21.293 200.162 200.162-200.192 200.162 21.293 21.293 200.192-200.162 200.162 200.162 21.293-21.293-200.162-200.162z" />
-<glyph unicode="&#xe647;" d="M362.044 352.482v-255.94h-30.118v255.94c0 32.858-24.064 68.247-76.921 68.247-58.459 0-74.060-42.888-74.060-68.247v-244.585h0.211v-43.882c0-18.673 20.871-36.322 42.948-36.322 25.419 0 47.194 20.57 47.194 37.376v8.132h-0.091l0.241 229.406c0 26.323-7.439 26.323-14.035 26.323-11.113 0-16.475-1.054-16.475-24.787v-154.986h-30.118v154.986c0 13.583 0 54.904 46.592 54.904 20.149 0 44.152-9.788 44.152-56.471l-0.211-193.656h0.060v-43.882c0-35.328-36.864-67.493-77.312-67.493-38.912 0-73.065 31.051-73.065 66.44v2.228h-0.211v286.268c0 47.375 32.588 98.364 104.177 98.364 70.264-0.030 107.038-49.483 107.038-98.364z" />
-<glyph unicode="&#xe648;" d="M492.544 121.721l-21.293-21.293-215.251 215.221-215.22-215.221-21.293 21.293 236.514 236.514 236.544-236.514z" />
-<glyph unicode="&#xe649;" d="M397.764 224.844l-236.544-236.544-21.293 21.293 215.22 215.22-215.22 215.281 21.293 21.293 236.544-236.544z" />
-<glyph unicode="&#xe64a;" d="M156.822 224.874l215.221-215.251-21.293-21.293-236.514 236.544 236.544 236.514 21.293-21.293-215.251-215.221z" />
-<glyph unicode="&#xe64b;" d="M492.544 327.153l-236.574-236.544-236.514 236.544 21.293 21.293 215.19-215.221 215.281 215.251 21.324-21.323z" />
-<glyph unicode="&#xe64c;" d="M464.354 426.572l-266.029-406.137-148.119 132.096 20.058 22.468 122.007-108.845 246.905 376.923 25.178-16.505z" />
-<glyph unicode="&#xe64d;" d="M421.647 306.492h30.118v-308.375h-421.647v421.647h252.777v-30.118h-222.66v-361.412h361.412v278.257zM146.191 234.661l-21.323-21.324 103.424-103.424 228.502 346.714-25.148 16.595-208.173-315.874-77.282 77.312z" />
-<glyph unicode="&#xe64e;" d="M179.441 389.647v30.118h-87.823v-30.118h-91.618v-361.412h512v361.412h-332.559zM481.882 58.353h-451.764v210.824h197.482c-10.391-17.8-16.775-38.22-16.775-60.236 0-66.44 54.031-120.471 120.471-120.471s120.471 54.031 120.471 120.471c0 22.016-6.385 42.436-16.776 60.236h46.893v-210.823zM421.647 208.941c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353 40.538 90.353 90.353 90.353 90.353-40.538 90.353-90.353zM410.142 299.294c-21.203 18.492-48.55 30.118-78.848 30.118s-57.645-11.625-78.848-30.118h-222.328v60.236h451.764v-60.236h-71.74z" />
-<glyph unicode="&#xe64f;" d="M496.007 413.079h-58.036c-8.794 0-15.993-7.048-15.993-15.692v-20.089l-331.144-121.374v8.132c0 12.951-10.782 23.522-24.004 23.522h-42.828c-13.222 0-24.004-10.572-24.004-23.522v-141.192c0-12.921 10.782-23.522 24.004-23.522h42.828c13.192 0 24.004 10.601 24.004 23.522v9.969l31.142-5.692c-0.692-4.909-1.144-9.819-1.144-14.788 0-57.133 47.013-103.635 104.779-103.635 49.905 0 91.257 33.973 101.798 80.776l94.57-17.348v-19.848c0-8.644 7.198-15.692 15.993-15.692h58.036c8.795 0 15.993 7.048 15.993 15.692v345.088c0 8.644-7.198 15.692-15.993 15.692zM225.612 38.837c-41.171 0-74.662 32.979-74.662 73.517 0 3.132 0.813 6.174 1.204 9.276l145.769-26.745c-7.951-32.587-37.195-56.049-72.313-56.049zM481.882 66.726h-29.786v30.509l-391.379 71.77v-39.514h-30.599v128h30.599v-44.695l391.379 143.45v26.715h29.786v-316.236z" />
-<glyph unicode="&#xe650;" d="M479.262 426.331l-195.764-286.118-24.847 16.986 195.764 286.118 24.847-16.986zM271.059 58.594c0-33.22-27.016-60.236-60.236-60.236-6.114 0-16.203-0.452-16.293-0.452h-164.262l137.125 103.334c4.518 3.132 25.871 17.589 43.429 17.589 33.22 0 60.235-27.015 60.235-60.236zM240.941 58.594c0 16.595-13.523 30.118-30.118 30.118-5.27 0-17.529-6.114-25.691-11.836l-64.844-48.881h73.276c1.898 0.091 11.324 0.482 17.257 0.482 16.595 0 30.118 13.523 30.118 30.118z" />
-<glyph unicode="&#xe651;" d="M210.823 88.471v45.176h30.118v-15.059h30.117v15.059h30.118v-45.176h-90.353zM512 148.706h-30.118v-180.706h-451.764v180.706h-30.117v240.941h108.906c28.25 55.115 84.48 90.353 147.094 90.353s118.875-35.268 147.095-90.353h108.905v-240.941zM143.631 389.647h224.798c-24.847 37.135-66.56 60.236-112.399 60.236s-87.552-23.13-112.399-60.236zM451.764 148.706h-391.529v-150.588h391.529v150.588zM481.882 359.529h-451.764v-180.706h451.764v180.706z" />
-<glyph unicode="&#xe652;" d="M431.074 419.404h-215.401l-70.204-211.245h50.176l-60.536-182.272 285.606 242.477h-87.462l97.822 151.040zM338.733 238.245l-141.161-119.838 39.815 119.838h-50.146l50.146 151.040h138.3l-97.822-151.040h60.868z" />
-<glyph unicode="&#xe653;" d="M356.292 239.059l-115.23-217.841-26.624 14.065 91.859 173.659h-153.871l147.576 219.226 24.967-16.836-115.983-172.273h147.305z" />
-<glyph unicode="&#xe654;" d="M271.059 419.764v60.236h-30.118v-60.236h-210.823v-301.176h451.764v301.176h-210.823zM451.764 148.706h-391.529v240.941h391.529v-240.941zM105.412 88.471h301.176v-30.118h-77.824l45.297-70.053-25.299-16.354-55.868 86.408h-21.836v-90.353h-30.118v90.353h-21.444l-56.29-86.438-25.238 16.414 45.598 70.024h-78.156v30.118z" />
-<glyph unicode="&#xe655;" d="M391.529 359.529v72.101c0 26.654-22.197 48.369-49.483 48.369h-171.641c-27.256 0-49.453-21.715-49.453-48.369v-72.101h-90.835v-391.529h451.764v391.529h-90.353zM151.070 431.631c0 10.060 8.674 18.252 19.335 18.252h171.641c10.692 0 19.365-8.192 19.365-18.252v-72.101h-210.341v72.101zM451.764-1.882h-391.529v240.941h391.529v-240.941zM451.764 269.177h-391.529v60.236h60.717v-19.365h30.117v19.365h210.341v-19.365h30.118v19.365h60.236v-60.236z" />
-<glyph unicode="&#xe656;" d="M409.69 138.195l-21.263 21.324 49.514 49.423h-166.882v-166.882l49.423 49.514 21.324-21.263-85.805-85.986-85.805 85.986 21.323 21.263 49.423-49.514v166.882h-166.882l49.513-49.423-21.263-21.324-85.986 85.805 85.986 85.805 21.263-21.324-49.513-49.423h166.882v166.882l-49.423-49.514-21.323 21.263 85.805 85.986 85.805-85.986-21.324-21.263-49.423 49.514v-166.882h166.882l-49.514 49.423 21.263 21.324 85.986-85.805-85.986-85.805z" />
-<glyph unicode="&#xe657;" d="M350.63 116.691l21.564-21.022-116.194-119.115-116.194 119.085 21.564 21.022 79.571-81.529v377.736l-79.571-81.558-21.564 21.052 116.194 119.085 116.194-119.085-21.564-21.022-79.571 81.529v-377.765l79.571 81.589z" />
-<glyph unicode="&#xe658;" d="M503.447 224l-119.085-116.194-21.022 21.564 81.529 79.571h-377.736l81.558-79.571-21.022-21.564-119.115 116.194 119.085 116.194 21.022-21.564-81.528-79.571h377.765l-81.558 79.571 21.022 21.564 119.085-116.194z" />
-<glyph unicode="&#xe659;" d="M481.762 138.104l0.12-139.987-140.017 0.12 0.030 30.118 88.546-0.091-174.441 174.411-174.441-174.442 88.546 0.091 0.030-30.118-140.017-0.091 0.12 140.017 30.117-0.030-0.090-88.516 174.441 174.411-174.441 174.442 0.090-88.516-30.117-0.030-0.12 139.987 140.017-0.12-0.030-30.118-88.546 0.091 174.441-174.442 174.441 174.442-88.546-0.091-0.030 30.118 140.017 0.12-0.12-140.017-30.118 0.030 0.091 88.516-174.441-174.411 174.442-174.442-0.091 88.516 30.118 0.030z" />
-<glyph unicode="&#xe65a;" d="M481.882 449.973v-271.149h-30.118v219.768l-310.724-310.121-21.293 21.324 310.663 310.061h-220.34v30.118h271.812z" />
-<glyph unicode="&#xe65b;" d="M370.206 88.471l-310.724 310.122v-219.768h-30.117v271.149h271.812v-30.118h-220.34l310.663-310.061-21.293-21.324z" />
-<glyph unicode="&#xe65c;" d="M256 305.529l131.132-131.132-21.293-21.293-109.839 109.839-109.809-109.809-21.293 21.293 131.102 131.102zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
-<glyph unicode="&#xe65d;" d="M206.427 355.132l131.102-131.132-131.132-131.132-21.293 21.293 109.839 109.839-109.839 109.809 21.323 21.324zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
-<glyph unicode="&#xe65e;" d="M326.897 333.809l-109.839-109.809 109.809-109.809-21.293-21.293-131.102 131.102 131.132 131.132 21.293-21.324zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
-<glyph unicode="&#xe65f;" d="M365.809 294.897l21.293-21.293-131.102-131.132-131.132 131.102 21.293 21.293 109.839-109.809 109.809 109.839zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
-<glyph unicode="&#xe660;" d="M256 297.096l206.427-206.427-21.293-21.293-185.133 185.133-185.103-185.103-21.293 21.293 206.396 206.396zM256 400.369l185.103-185.103 21.293 21.293-206.396 206.427-206.427-206.427 21.323-21.293 185.103 185.103z" />
-<glyph unicode="&#xe661;" d="M290.454 224l-206.427-206.427-21.293 21.293 185.103 185.133-185.103 185.103 21.293 21.324 206.427-206.427zM229.918 430.426l-21.293-21.323 185.103-185.103-185.103-185.103 21.293-21.293 206.396 206.396-206.396 206.427z" />
-<glyph unicode="&#xe662;" d="M240.549 224l185.103-185.103-21.293-21.293-206.396 206.396 206.427 206.427 21.293-21.293-185.133-185.133zM279.793 409.133l-21.293 21.293-206.427-206.426 206.427-206.427 21.293 21.293-185.103 185.133 185.103 185.133z" />
-<glyph unicode="&#xe663;" d="M256 159.428l-206.427 206.427 21.293 21.293 185.133-185.103 185.103 185.103 21.293-21.293-206.396-206.426zM256 56.124l-185.103 185.133-21.323-21.293 206.427-206.427 206.427 206.427-21.293 21.293-185.133-185.133z" />
-<glyph unicode="&#xe664;" d="M291.147 480h-230.912v-512h391.529v352.135l-160.618 159.865zM301.176 427.535l98.575-98.123h-98.575v98.123zM90.353-1.882v451.764h90.353v-30.118h30.118v30.118h60.235v-150.588h150.588v-301.176h-331.294zM150.588 239.059h30.118v-30.117h-30.118v30.118zM180.706 239.059v30.118h30.118v-30.118h-30.118zM180.706 299.294v30.118h30.118v-30.118h-30.118zM150.588 299.294h30.118v-30.117h-30.118v30.117zM150.588 359.529h30.118v-30.117h-30.118v30.117zM180.706 359.529v30.118h30.118v-30.118h-30.118zM150.588 419.764h30.118v-30.118h-30.118v30.118zM180.706 197.226c-33.22 0-60.236-27.015-60.236-60.236s27.016-60.236 60.236-60.236c1.868 0 3.644 0.211 6.596 0.603 19.456 2.139 36.684 13.704 46.11 30.901 5 9.125 7.53 18.793 7.53 28.732 0 33.22-27.016 60.236-60.236 60.236zM206.999 122.684c-4.698-8.584-13.282-14.366-22.95-15.42l-3.373-0.421c-16.595 0-30.088 13.523-30.088 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118c0-4.788-1.295-9.608-3.825-14.276z" />
-<glyph unicode="&#xe665;" d="M256.482 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.868 256-256 256zM31.352 208.941h88.456c1.325-30.841 6.355-61.169 15.451-90.353h-78.396c-14.486 27.286-23.371 57.916-25.509 90.353zM119.808 239.059h-88.456c2.139 32.436 11.023 63.066 25.51 90.353h78.306c-9.066-29.184-14.065-59.512-15.36-90.353zM167.063 329.412h177.573c9.939-29.064 15.721-59.392 17.137-90.353h-211.847c1.386 30.961 7.198 61.29 17.137 90.353zM149.925 208.941h211.877c-1.476-30.961-7.259-61.289-17.228-90.353h-177.423c-9.969 29.063-15.781 59.392-17.227 90.353zM391.921 208.941h89.69c-2.139-32.437-11.023-63.067-25.51-90.353h-79.631c9.096 29.184 14.125 59.512 15.45 90.353zM391.921 239.059c-1.295 30.84-6.295 61.169-15.36 90.353h79.541c14.457-27.286 23.341-57.916 25.51-90.353h-89.69zM436.766 359.529h-70.897c-11.806 28.763-27.588 55.959-46.683 81.317 47.526-13.764 88.486-42.767 117.579-81.317zM273.288 449.039c24.817-27.015 44.695-57.224 59.392-89.51h-153.66c14.667 32.256 34.515 62.434 59.332 89.45 5.994 0.452 11.987 0.904 18.131 0.904 5.662 0 11.234-0.452 16.805-0.844zM192.241 440.456c-18.944-25.239-34.666-52.315-46.381-80.926h-69.692c28.763 38.159 69.18 66.981 116.074 80.926zM76.168 88.471h69.782c11.776-28.642 27.558-55.748 46.592-80.986-47.013 13.884-87.552 42.737-116.374 80.986zM238.713-0.979c-24.877 27.015-44.815 57.194-59.572 89.45h153.419c-14.757-32.286-34.695-62.494-59.603-89.51-5.452-0.392-10.933-0.844-16.474-0.844-6.024 0-11.897 0.452-17.769 0.904zM318.856 7.063c19.155 25.359 35.057 52.615 46.893 81.408h71.017c-29.154-38.641-70.234-67.674-117.911-81.408z" />
-<glyph unicode="&#xe666;" d="M328.313 92.988l29.425-6.415c-15.209-69.813-75.625-118.573-146.914-118.573-83.034 0-150.588 67.554-150.588 150.588 0 68.367 46.11 128.271 112.188 145.649l7.65-29.124c-52.827-13.915-89.721-61.831-89.721-116.525 0-66.44 54.031-120.471 120.471-120.471 57.013 0 105.321 39.002 117.489 94.87zM481.882 24.591v-30.118h-56.26l-28.762 124.024h-185.464l-16.384 243.411c-25.51 7.017-44.423 30.148-44.423 57.856 0 33.22 27.016 60.236 60.236 60.236s60.236-27.015 60.236-60.236c0-28.25-19.577-51.803-45.809-58.308l8.132-120.802 109.388 27.136 7.228-29.244-114.597-28.401 4.156-61.5h181.248l28.762-124.024h32.316zM210.823 389.647c16.625 0 30.118 13.523 30.118 30.118s-13.493 30.118-30.118 30.118-30.118-13.523-30.118-30.118 13.493-30.118 30.118-30.118z" />
-<glyph unicode="&#xe667;" d="M0 480v-120.471h512v120.471h-512zM481.882 389.647h-451.764v60.236h451.764v-60.236zM0 178.824h512v120.471h-512v-120.471zM30.117 269.177h451.764v-60.236h-451.764v60.236zM0-1.882h512v120.471h-512v-120.471zM30.117 88.471h451.764v-60.236h-451.764v60.236z" />
-<glyph unicode="&#xe668;" d="M150.588 480v-120.471h361.412v120.471h-361.412zM481.882 389.647h-301.176v60.236h301.176v-60.236zM150.588 178.824h361.412v120.471h-361.412v-120.471zM180.706 269.177h301.176v-60.236h-301.176v60.236zM150.588-1.882h361.412v120.471h-361.412v-120.471zM180.706 88.471h301.176v-60.236h-301.176v60.236zM0 359.529h120.471v120.471h-120.471v-120.471zM30.117 449.882h60.236v-60.236h-60.236v60.236zM0 178.824h120.471v120.471h-120.471v-120.471zM30.117 269.177h60.236v-60.236h-60.236v60.236zM0-1.882h120.471v120.471h-120.471v-120.471zM30.117 88.471h60.236v-60.236h-60.236v60.236z" />
-<glyph unicode="&#xe669;" d="M0 269.177h210.823v210.823h-210.823v-210.823zM30.117 449.882h150.588v-150.588h-150.588v150.588zM301.176 480v-210.823h210.824v210.823h-210.823zM481.882 299.294h-150.588v150.588h150.588v-150.588zM0-32h210.823v210.823h-210.823v-210.823zM30.117 148.706h150.588v-150.588h-150.588v150.588zM301.176-32h210.824v210.823h-210.823v-210.823zM331.294 148.706h150.588v-150.588h-150.588v150.588z" />
-<glyph unicode="&#xe66a;" d="M210.823 359.529h30.118v-60.236h-30.118v30.118h-60.236v-240.941h30.118v-30.118h-90.353v30.118h30.117v240.941h-60.236v-30.118h-30.117v60.236h180.706zM451.764 359.529h-180.706v-60.236h30.118v30.118h60.236v-240.941h-30.118v-30.118h90.353v30.118h-30.118v240.941h60.236v-30.118h30.118v60.236h-30.118z" />
-<glyph unicode="&#xe66b;" d="M512-1.882v-30.118h-512v30.118h512zM240.911 428.559v-340.088h30.118v340.149l109.839-109.839 21.293 21.293-146.161 146.161-146.191-146.161 21.293-21.293 109.809 109.779z" />
-<glyph unicode="&#xe66c;" d="M451.764 449.882v-30.118h-30.118v-194.53c0-91.317-74.3-165.647-165.647-165.647s-165.647 74.33-165.647 165.647v194.53h-30.117v30.118h90.353v-30.118h-30.118v-194.53c0-74.722 60.808-135.529 135.529-135.529s135.529 60.808 135.529 135.53v194.53h-30.118v30.118h90.353zM60.236-1.882h391.529v30.118h-391.529v-30.118z" />
-<glyph unicode="&#xe66d;" d="M512 389.647h-331.294v-90.353h-86.528l-35.84-120.47h-58.338v-149.896h60.295c0-0.241-0.060-0.452-0.060-0.692 0-33.22 27.016-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h150.739c-0.030-0.241-0.091-0.452-0.091-0.692 0-33.22 27.015-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h60.296v360.719zM116.645 269.177h64.060v-90.353h-90.956l26.895 90.353zM120.471-1.882c-16.595 0-30.117 13.523-30.117 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM391.529-1.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM481.882 59.046h-38.882c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-168.117c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-38.882v89.66h180.706v210.823h271.059v-300.484z" />
-<glyph unicode="&#xe66e;" d="M271.059 419.012v30.87h45.176v30.118h-120.471v-30.118h45.177v-30.87c-117.519-7.83-210.823-105.652-210.823-225.13 0-124.567 101.316-225.882 225.882-225.882s225.882 101.316 225.882 225.882c0 119.476-93.305 217.299-210.824 225.13zM256-1.882c-107.942 0-195.764 87.823-195.764 195.764s87.823 195.764 195.764 195.764 195.764-87.823 195.764-195.764-87.823-195.764-195.764-195.764zM271.059 208.941h120.471v-30.118h-150.588v120.471h30.117v-90.353z" />
-<glyph unicode="&#xe66f;" d="M286.118 449.882v-15.059c0-16.625-13.523-30.118-30.118-30.118s-30.118 13.493-30.118 30.118v15.059h-105.412v-451.764h105.412v15.059c0 16.625 13.523 30.118 30.118 30.118s30.118-13.493 30.118-30.118v-15.059h105.412v451.764h-105.412zM197.662 419.764c6.716-25.932 30.328-45.177 58.338-45.177s51.621 19.245 58.338 45.177h47.074v-180.706h-210.823v180.706h47.074zM314.338 28.236c-6.686 25.932-30.298 45.176-58.338 45.176s-51.621-19.245-58.338-45.176h-47.074v180.706h210.824v-180.706h-47.074z" />
-<glyph unicode="&#xe670;" d="M462.848 187.106c2.5-6.114 3.976-14.035 3.976-24.305 0-15.842-7.228-29.244-18.703-37.135 4.156-7.048 6.144-15.089 6.144-23.13 0-16.926-9.427-31.353-23.642-38.791 2.409-5.662 3.825-12.649 3.885-21.233 0.060-13.523-3.885-24.396-11.776-32.316-8.313-8.342-20.089-12.589-34.966-12.589h-169.412c-22.708 0-38.34 12.168-49.785 21.082-6.596 5.12-12.83 9.999-17.167 9.999h-63.308c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h63.308c14.667 0 25.811-8.674 35.66-16.324 9.728-7.56 18.914-14.728 31.292-14.728h169.412c6.385 0 11.234 1.295 13.613 3.704 2.048 2.048 3.072 5.723 3.042 10.902-0.091 13.161-2.771 15.993-30.931 15.993h-3.192c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h37.888c9.246 0 15.962 5.933 15.962 14.095 0 13.553-13.523 15.571-21.594 15.571h-22.588c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h43.279c9.969 0 13.493 7.529 13.493 14.577 0 14.818 0 14.818-13.221 15.209-1.536 0.030-3.132 0.151-4.699 0.211h-32.406c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h29.575c0.211 0 0.392 0.12 0.603 0.12h19.004c8.885 0 16.143 6.837 16.143 15.209s-7.228 15.209-16.143 15.209h-134.114c-4.488 0-8.734 1.988-11.596 5.452-2.861 3.464-4.036 8.012-3.192 12.409l15.661 82.341c1.868 8.222 7.168 31.533 0.994 41.863-1.596 2.68-5.481 5.542-10.24 5.542 0 0 0 0 0 0-5.903 0-11.957-4.729-17.046-13.252l-97.612-157.636c-2.74-4.428-7.589-7.138-12.8-7.138h-77.372c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h68.999l93.004 150.287c14.336 24.094 32.979 27.738 42.767 27.738 0 0 0 0 0.030 0 14.607 0 28.762-7.951 36.081-20.209 10.963-18.341 7.168-43.52 2.62-63.428l-12.137-63.97h115.923c25.51 0 46.26-20.329 46.26-45.327 0.030-14.998-7.469-28.341-18.974-36.593z" />
-<glyph unicode="&#xe671;" d="M438.754 193.852c0-8.313-6.747-15.059-15.059-15.059h-69l-93.003-150.287c-14.366-24.094-32.979-27.738-42.767-27.738 0 0-0.030 0-0.030 0-14.607 0-28.762 7.951-36.111 20.209-10.963 18.372-7.168 43.55-2.62 63.428l12.137 63.97h-115.923c-25.51 0-46.23 20.329-46.23 45.327 0 16.505 9.035 30.991 22.528 38.912-4.608 6.294-7.529 13.703-7.529 21.956 0 15.842 7.228 29.244 18.703 37.135-4.156 7.077-6.144 15.119-6.144 23.161 0 17.317 9.878 31.985 24.606 39.303-4.005 7.71-4.879 15.541-4.879 20.781 0 28.070 17.499 44.815 46.773 44.815h169.412c22.709 0 38.37-12.168 49.784-21.082 6.596-5.12 12.83-9.999 17.137-9.999h63.337c8.313 0 15.059-6.746 15.059-15.059s-6.747-15.059-15.059-15.059h-63.337c-14.668 0-25.811 8.674-35.659 16.324-9.698 7.62-18.884 14.757-31.262 14.757h-169.412c-14.065 0-16.655-4.969-16.655-14.697 0-4.759 0-15.872 30.931-15.872h3.162c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-37.888c-9.246 0-15.932-5.933-15.932-14.095 0-13.553 13.523-15.571 21.594-15.571h22.588c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-43.249c-9.939 0-13.493-7.53-13.493-14.577 0-5.060 11.023-13.764 21.233-15.451h29.094c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-29.606c-0.211 0-0.391-0.12-0.603-0.12h-19.004c-8.885 0-16.113-6.837-16.113-15.209s7.228-15.209 16.113-15.209h134.114c4.488 0 8.734-1.988 11.595-5.452 2.861-3.464 4.036-8.012 3.192-12.409l-15.661-82.341c-1.868-8.222-7.168-31.503-0.994-41.863 1.596-2.651 5.482-5.541 10.24-5.541 5.903 0 11.957 4.728 17.047 13.252l97.551 157.636c2.74 4.428 7.589 7.138 12.8 7.138h77.372c8.403 0 15.119-6.747 15.119-15.059z" />
-<glyph unicode="&#xe672;" d="M421.647 419.764v-90.353h-30.118v60.236h-120.471v-361.412h49.483v-30.118h-129.084v30.118h49.483v361.412h-120.471v-60.236h-30.117v90.353h331.294z" />
-<glyph unicode="&#xe673;" d="M512-1.882v-30.118h-512v30.118h512zM156.702 239.781l126.615-91.136 168.448 188.265v-68.788h30.118v121.525h-121.555v-30.118h71.259l-152.697-170.616-124.356 89.57-131.674-119.146 20.209-22.317 113.634 102.762z" />
-<glyph unicode="&#xe674;" d="M155.588 214.875l-131.644 119.145 20.179 22.317 113.634-102.791 126.615 91.136 168.448-188.236v68.819h30.118v-121.555h-121.555v30.118h71.259l-152.667 170.617-124.386-89.57zM0-1.882v-30.118h512v30.118h-512z" />
-<glyph unicode="&#xe675;" d="M320.632 84.074l21.293-21.293-85.925-85.956-85.956 85.956 21.293 21.293 49.604-49.604v113.604h30.118v-113.604l49.574 49.604zM240.941 413.531v-113.604h30.117v113.604l49.574-49.574 21.293 21.293-85.925 85.925-85.956-85.925 21.293-21.293 49.604 49.573zM0 239.059v-30.117h512v30.118h-512z" />
-<glyph unicode="&#xe676;" d="M66.469 239.059h113.604v-30.117h-113.604l49.574-49.574-21.293-21.293-85.925 85.925 85.956 85.956 21.293-21.293-49.604-49.604zM417.25 309.956l-21.293-21.293 49.574-49.604h-113.604v-30.118h113.604l-49.574-49.574 21.293-21.293 85.925 85.925-85.925 85.956zM240.941-32h30.117v512h-30.118v-512z" />
-<glyph unicode="&#xe677;" d="M180.706 301.553h30.118v-60.236h-30.118v30.118h-60.236v-240.941h30.118v-30.118h-90.353v30.118h30.117v240.941h-60.236v-30.118h-30.117v60.235h180.706zM481.882 419.764h-301.176v-77.613h30.118v47.495h120.471v-361.412h-30.118v-30.118h90.353v30.118h-30.118v361.412h120.471v-47.495h30.117v77.613h-30.118z" />
-<glyph unicode="&#xe678;" d="M256 329.412c-58.127 0-105.412-47.285-105.412-105.412s47.285-105.412 105.412-105.412 105.412 47.284 105.412 105.412-47.284 105.412-105.412 105.412zM256 148.706c-41.502 0-75.294 33.792-75.294 75.294s33.792 75.294 75.294 75.294 75.294-33.792 75.294-75.294-33.792-75.294-75.294-75.294zM271.059 359.529h-30.118v90.353h30.118v-90.353zM240.941 88.471h30.117v-90.353h-30.118v90.353zM481.882 239.059v-30.117h-90.353v30.118h90.353zM120.471 208.941h-90.353v30.118h90.353v-30.118zM362.496 309.203l-21.293 21.293 63.88 63.88 21.293-21.293-63.88-63.88zM149.504 138.797l21.293-21.293-63.88-63.88-21.293 21.293 63.88 63.88zM362.496 138.797l63.88-63.88-21.293-21.293-63.88 63.88 21.293 21.293zM149.504 309.203l-63.88 63.88 21.293 21.293 63.88-63.88-21.293-21.293z" />
-<glyph unicode="&#xe679;" d="M251.603 370.191l146.161-146.191-146.191-146.191-21.293 21.293 109.839 109.839h-340.118v30.118h340.089l-109.809 109.809 21.323 21.324zM481.882 480v-512h30.118v512h-30.118z" />
-<glyph unicode="&#xe67a;" d="M512 208.911h-340.089l109.809-109.809-21.293-21.293-146.191 146.191 146.191 146.191 21.293-21.293-109.869-109.869h340.149v-30.118zM0-32h30.117v512h-30.117v-512z" />
-<glyph unicode="&#xe67b;" d="M451.764 449.401c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353h-30.118c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353h-30.117v-206.216c0-162.786 210.884-240.941 219.889-244.164l5-1.837 5.030 1.747c9.036 3.102 221.846 77.914 221.846 245.097v205.372h-30.118zM60.236 243.215v126.614c22.076-25.058 54.422-40.9 90.353-40.9 36.020 0 68.246 16.053 90.353 41.231v-334.728c-49.965 22.498-180.706 92.371-180.706 207.781zM451.764 244.028c0-117.308-129.295-185.615-180.706-208.173v334.336c22.106-25.178 54.332-41.231 90.353-41.231 35.93 0 68.276 15.812 90.353 40.87v-125.802z" />
-<glyph unicode="&#xe67c;" d="M30.117 480v-512h451.764v512h-451.764zM451.764-1.882h-391.529v451.764h60.236v-32.889c-17.499-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.177-45.176s45.177 20.269 45.177 45.176c0 19.607-12.619 36.172-30.118 42.406v32.889h90.353v-32.889c-17.499-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.176-45.176s45.176 20.269 45.176 45.176c0 19.607-12.62 36.172-30.118 42.406v32.889h90.353v-32.889c-17.498-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.176-45.176s45.176 20.269 45.176 45.176c0 19.607-12.62 36.172-30.118 42.406v32.889h60.236v-451.764zM150.588 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059zM271.059 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059zM391.529 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059z" />
-<glyph unicode="&#xe67d;" d="M512 374.588c0 68.458-131.916 105.412-256 105.412s-256-36.954-256-105.412c0-4.487 0.723-9.577 2.409-15.059h-2.409v-286.118c0-68.457 131.916-105.412 256-105.412s256 36.954 256 105.412v286.118h-2.409c1.687 5.481 2.409 10.572 2.409 15.059zM256 449.882c129.295 0 225.882-39.755 225.882-75.294 0-11.987-11.685-25.148-32.918-37.014-42.737-23.974-114.868-38.279-192.964-38.279s-150.227 14.306-192.964 38.279c-21.233 11.867-32.919 25.028-32.919 37.014 0 35.539 96.588 75.294 225.882 75.294zM256-1.882c-129.295 0-225.882 39.755-225.882 75.294v49.182c5.27-4.066 11.053-8.162 18.191-12.137 47.044-26.323 124.687-42.044 207.691-42.044 10.39 0 20.691 0.241 30.81 0.723 71.108 3.343 135.68 18.281 176.851 41.322v0c0 0.030 0.030 0.030 0.030 0.030 7.108 4.005 12.95 8.072 18.191 12.137v-49.212c0-35.539-96.587-75.294-225.882-75.294zM448.964 136.749c-42.767-23.943-114.868-38.25-192.964-38.25-9.758 0-19.456 0.241-28.973 0.663-66.68 3.072-126.585 16.625-163.99 37.557v0c-21.203 11.926-32.919 25.088-32.919 37.075v49.212c5.27-4.066 11.084-8.162 18.221-12.137 47.014-26.323 124.657-42.044 207.661-42.044s160.648 15.721 207.661 42.044c7.138 3.976 12.95 8.072 18.221 12.137v-49.212c0-11.987-11.716-25.148-32.918-37.045zM448.933 237.161c-42.737-23.944-114.839-38.25-192.934-38.25s-150.196 14.306-192.934 38.25c-21.233 11.867-32.949 25.058-32.949 37.045v49.212c5.27-4.096 11.053-8.162 18.191-12.168 47.044-26.353 124.657-42.074 207.691-42.074s160.647 15.721 207.691 42.074c7.138 4.006 12.921 8.072 18.191 12.168v-49.212c0-11.987-11.716-25.178-32.949-37.044z" />
-<glyph unicode="&#xe67e;" d="M220.070 273.332c0 58.609-47.676 106.285-106.285 106.285-58.579 0-106.255-47.676-106.255-106.285 0-58.579 47.676-106.255 106.255-106.255 22.107 0 42.647 6.837 59.663 18.402-37.075-104.508-120.169-116.766-124.476-117.339l3.705-29.877c1.536 0.18 154.353 21.173 167.544 232.628l-0.392 0.030c0.030 0.813 0.241 1.566 0.241 2.41zM113.784 197.165c-41.984 0-76.138 34.154-76.138 76.137s34.154 76.168 76.138 76.168c42.014 0 76.168-34.183 76.168-76.168s-34.154-76.137-76.168-76.137zM503.988 270.923c0.030 0.813 0.241 1.596 0.241 2.409 0 58.609-47.676 106.285-106.255 106.285s-106.255-47.676-106.255-106.285c0-58.579 47.676-106.255 106.255-106.255 22.106 0 42.647 6.837 59.663 18.402-37.045-104.508-120.17-116.766-124.476-117.339l3.704-29.877c1.536 0.18 154.353 21.173 167.544 232.628l-0.421 0.030zM397.974 197.165c-41.984 0-76.137 34.154-76.137 76.137s34.154 76.168 76.137 76.168 76.137-34.183 76.137-76.168-34.154-76.137-76.137-76.137z" />
-<glyph unicode="&#xe67f;" d="M396.62 250.684c-22.106 0-42.676-6.837-59.693-18.432 37.044 104.569 120.2 116.856 124.507 117.399l-3.704 29.877c-1.536-0.181-154.383-21.203-167.544-232.659l0.452-0.030c0-0.813-0.241-1.627-0.241-2.44 0-58.579 47.676-106.255 106.255-106.255s106.255 47.676 106.255 106.255-47.707 106.285-106.285 106.285zM396.62 68.262c-42.014 0-76.137 34.154-76.137 76.137s34.154 76.137 76.137 76.137 76.137-34.154 76.137-76.137-34.154-76.137-76.137-76.137zM112.429 250.684c-22.106 0-42.647-6.837-59.663-18.432 37.044 104.569 120.169 116.856 124.476 117.399l-3.704 29.877c-1.536-0.181-154.353-21.203-167.575-232.659l0.452-0.030c0-0.813-0.241-1.627-0.241-2.44 0-58.579 47.676-106.255 106.255-106.255s106.255 47.676 106.255 106.255-47.646 106.285-106.255 106.285zM112.429 68.262c-42.014 0-76.138 34.154-76.138 76.137s34.153 76.137 76.138 76.137 76.138-34.154 76.138-76.137-34.124-76.137-76.138-76.137z" />
-<glyph unicode="&#xe680;" d="M431.586 239.059l-56.5 131.825-103.544-294.641-120.923 394.842-71.379-232.026h-79.24v-30.118h101.466l49.092 159.503 118.964-388.608 108.333 308.103 33.852-78.998h100.292v30.118z" />
-<glyph unicode="&#xe681;" d="M512 299.294h-90.594v54.754l-135.62 125.952h-195.674v-180.706h-90.112v-240.941h90.353v-93.364h331.294v93.365h90.353v240.941zM300.935 424.825l70.325-65.295h-70.325v65.295zM120.23 449.882h150.588v-120.47h120.471v-30.118h-271.059v150.588zM391.529-4.894h-271.059v150.588h271.059v-150.588zM481.882 88.471h-60.236v87.341h-331.294v-87.341h-60.236v180.706h451.764v-180.706zM331.475 88.471h-180.887v30.118h180.887v-30.118zM271.059 28.236h-120.471v30.118h120.471v-30.118zM90.353 208.941h-30.117v30.118h30.117v-30.118zM150.588 208.941h-30.118v30.118h30.118v-30.118z" />
-<glyph unicode="&#xe682;" d="M481.882 193.882c0-124.567-101.316-225.882-225.882-225.882s-225.882 101.316-225.882 225.882c0 105.351 74.572 198.144 177.333 220.642l6.445-29.425c-89.028-19.486-153.66-99.9-153.66-191.217 0-107.942 87.823-195.764 195.764-195.764s195.764 87.823 195.764 195.764c0 91.196-64.542 171.611-153.48 191.187l6.476 29.425c102.641-22.619 177.122-115.38 177.122-220.612zM271.059 480h-30.118v-301.176h30.118v301.176z" />
-<glyph unicode="&#xe683;" d="M90.353 359.529v-151.010c0-82.793 74.33-150.167 165.647-150.167s165.647 67.373 165.647 150.167v151.010h-331.294zM391.529 208.519c0-66.198-60.808-120.049-135.53-120.049s-135.53 53.851-135.53 120.049v120.892h271.059v-120.892zM211.305 389.647h-30.118v90.353h30.118v-90.353zM330.812 389.647h-30.118v90.353h30.118v-90.353zM240.941 58.353h30.117v-90.353h-30.118v90.353zM331.294 239.059h-150.588v30.118h150.588v-30.118zM331.294 178.824h-150.588v30.118h150.588v-30.118z" />
-<glyph unicode="&#xe684;" d="M451.313 210.658l30.058-2.018c-7.921-118.061-106.918-210.522-225.37-210.522-124.567 0-225.882 101.316-225.882 225.882 0 117.609 91.769 216.546 208.956 225.25l2.228-30.027c-101.526-7.53-181.067-93.275-181.067-195.223 0-107.942 87.823-195.764 195.764-195.764 102.671 0 188.446 80.113 195.313 182.423zM512 254.148v-15.059l-15.089-0.512h-225.34v241.453l15.089-0.030c124.266-0.271 225.34-101.617 225.34-225.852zM481.461 268.695c-6.716 95.473-83.606 172.965-179.772 180.555v-180.555h179.772z" />
-<glyph unicode="&#xe685;" d="M481.882 449.099h-331.535c-65.686 0-119.115-53.428-119.115-119.115s53.428-119.085 119.115-119.085h90.594v-212.781h30.118v420.864h60.687v-420.864h30.118v420.864h120.019v30.118zM240.941 240.987h-90.594c-49.092 0-88.998 39.906-88.998 88.968 0 49.092 39.906 88.998 88.998 88.998h90.594v-177.965z" />
-<glyph unicode="&#xe686;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764zM120.471 171.836v-83.365h30.117v83.365c22.227 6.565 38.581 26.925 38.581 51.23s-16.354 44.664-38.581 51.23v85.233h-30.118v-85.233c-22.227-6.566-38.581-26.925-38.581-51.23s16.354-44.695 38.581-51.23zM135.53 246.588c12.981 0 23.522-10.571 23.522-23.522s-10.541-23.522-23.522-23.522-23.522 10.541-23.522 23.522 10.541 23.522 23.522 23.522zM240.941 235.836v-147.365h30.117v147.365c22.227 6.565 38.581 26.925 38.581 51.23s-16.354 44.664-38.581 51.23v21.233h-30.118v-21.233c-22.227-6.565-38.581-26.925-38.581-51.23s16.354-44.695 38.581-51.23zM256 310.588c12.981 0 23.522-10.571 23.522-23.522s-10.541-23.552-23.522-23.552-23.522 10.572-23.522 23.552 10.541 23.522 23.522 23.522zM376.471 75.911c29.575 0 53.639 24.064 53.639 53.639 0 24.335-16.354 44.664-38.581 51.23v178.748h-30.118v-178.748c-22.227-6.565-38.58-26.925-38.58-51.23 0-29.575 24.064-53.639 53.639-53.639zM376.471 153.103c12.981 0 23.522-10.572 23.522-23.522s-10.572-23.522-23.522-23.522-23.522 10.572-23.522 23.522 10.541 23.522 23.522 23.522z" />
-<glyph unicode="&#xe687;" d="M256.512 481.054l-256.512-97.009v-322.048l256-96.015 256 96.015v322.018l-255.488 97.039zM454.295 373.745l-77.884-29.214-197.482 74.963 77.553 29.334 197.813-75.084zM256 299.385l-198.204 74.331 78.577 29.696 197.3-74.902-77.673-29.124zM30.117 351.909l210.823-79.059v-269.011l-210.823 79.059v269.011zM271.059 3.84v269.011l210.824 79.059v-269.011l-210.823-79.059z" />
-<glyph unicode="&#xe688;" d="M444.687 345.706l12.68 27.286-216.425 100.472v-297.502c-15.39 13.372-35.238 21.745-57.163 21.745-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763 87.763 39.394 87.763 87.763c0 1.596-0.392 3.102-0.482 4.638v311.717l173.628-80.595zM183.778 52.3c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645 57.645-25.841 57.645-57.645-25.871-57.645-57.645-57.645z" />
-<glyph unicode="&#xe689;" d="M180.706 472.019v-277.745c-15.42 13.433-35.328 21.865-57.344 21.865-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763c47.285 0 85.684 37.677 87.431 84.54v0 0.18c0.030 1.024 0.301 1.988 0.301 3.072s-0.241 2.018-0.271 3.042v183.537l271.059-53.037v-140.529c-15.45 13.583-35.478 22.106-57.645 22.106-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763c47.736 0 86.498 38.34 87.552 85.805l0.211-0.060v353.461l-331.294 64.813zM123.362 70.731c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645c30.75 0 55.718-24.245 57.344-54.573v-6.114c-1.626-30.358-26.594-54.603-57.344-54.603zM210.823 345.645v89.811l271.059-53.067v-89.75l-271.059 53.007zM424.237-1.882c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645 57.645-25.841 57.645-57.645-25.841-57.645-57.645-57.645z" />
-<glyph unicode="&#xe68a;" d="M256 480c-91.347 0-165.647-74.3-165.647-165.647v-180.706c0-91.347 74.3-165.647 165.647-165.647s165.647 74.3 165.647 165.647v180.706c0 91.347-74.3 165.647-165.647 165.647zM391.529 133.647c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.529v180.706c0 74.722 60.808 135.529 135.53 135.529s135.53-60.808 135.53-135.529v-180.706zM256 374.588c-24.907 0-45.177-20.269-45.177-45.176v-60.236c0-24.907 20.269-45.176 45.177-45.176s45.176 20.269 45.176 45.177v60.236c0 24.907-20.269 45.176-45.177 45.176zM271.059 269.177c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v60.236c0 8.313 6.746 15.059 15.059 15.059s15.059-6.746 15.059-15.059v-60.236z" />
-<glyph unicode="&#xe68b;" d="M256 480c-91.347 0-165.647-74.3-165.647-165.647v-180.706c0-91.347 74.3-165.647 165.647-165.647s165.647 74.3 165.647 165.647v180.706c0 91.347-74.3 165.647-165.647 165.647zM391.529 314.353v-15.059h-120.471v149.052c67.584-7.589 120.471-64.421 120.471-133.994zM240.941 448.346v-149.052h-120.471v15.059c0 69.572 52.886 126.404 120.471 133.993zM256-1.882c-74.722 0-135.53 60.808-135.53 135.53v135.529h271.059v-135.529c0-74.722-60.808-135.529-135.53-135.529z" />
-<glyph unicode="&#xe68c;" d="M322.831 191.563v0l-0.301 0.301c-0.392 0.332-0.663 0.723-1.084 1.024l-0.091-0.12-50.296 38.611v171.882c34.334-6.566 60.236-35.057 60.236-69.15l15.029-1.807 15.089 1.807c0 50.598-39.424 92.22-90.353 99.268v46.622h-30.118v-46.622c-50.929-7.047-90.353-48.67-90.353-99.268 0-28.371 12.679-55.356 34.666-74.481l-0.15-0.151 1.204-0.933c0 0 0 0 0 0v0l54.633-41.984v-171.821c-34.334 6.565-60.236 35.057-60.236 69.15h-30.118c0-50.597 39.424-92.22 90.353-99.268v-46.652h30.118v46.652c50.929 7.048 90.353 48.67 90.353 99.268 0 30.298-14.125 58.398-38.581 77.673zM205.463 281.796c-15.721 13.433-24.756 32.436-24.756 52.315 0 34.093 25.901 62.584 60.236 69.15v-148.721l-35.478 27.256zM271.059 44.74v148.661l33.25-25.57c17.077-13.462 26.986-33.009 26.986-53.94 0-34.093-25.901-62.584-60.236-69.15z" />
-<glyph unicode="&#xe68d;" d="M256 118.588c74.722 0 135.529 60.808 135.529 135.53v90.353c0 69.602-52.887 126.404-120.471 133.994v1.536h-30.118v-1.536c-67.584-7.59-120.471-64.392-120.471-133.994v-90.353c0-74.722 60.807-135.53 135.53-135.53zM180.706 417.988v-58.459h30.118v79.752c9.397 4.488 19.456 7.529 30.118 9.065v-88.817h30.117v88.817c10.661-1.536 20.721-4.548 30.118-9.065v-79.752h30.118v58.459c18.582-19.004 30.118-44.906 30.118-73.517v-15.059h-210.823v15.059c0 28.612 11.535 54.543 30.118 73.517zM150.588 299.294h210.823v-45.176c0-58.127-47.284-105.412-105.412-105.412s-105.412 47.284-105.412 105.412v45.177zM451.764 269.177v-97.883c0-62.253-60.808-112.941-135.529-112.941h-45.176v-90.353h-30.118v90.353h-45.177c-74.722 0-135.53 50.688-135.53 112.941v97.882h30.118v-97.882c0-45.688 47.285-82.823 105.412-82.823h120.47c58.127 0 105.412 37.135 105.412 82.823v97.882h30.118z" />
-<glyph unicode="&#xe68e;" d="M481.882 389.647v-60.236h-451.764v60.236h451.764zM30.117 178.824h451.764v60.236h-451.764v-60.236zM30.117 28.236h451.764v60.236h-451.764v-60.236z" />
-<glyph unicode="&#xe68f;" d="M481.882 419.764v-60.236h-331.294v60.236h331.294zM150.588 208.941h331.294v60.236h-331.294v-60.236zM150.588 58.353h331.294v60.236h-331.294v-60.236zM60.236 419.764c-16.625 0-30.117-13.462-30.117-30.118s13.492-30.118 30.117-30.118 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118zM60.236 269.177c-16.625 0-30.117-13.463-30.117-30.118s13.492-30.117 30.117-30.117 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118zM60.236 118.588c-16.625 0-30.117-13.462-30.117-30.118s13.492-30.118 30.117-30.118 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118z" />
-<glyph unicode="&#xe690;" d="M316.205 346.338l-147.637 42.707-168.569 0.603v-331.294h161.069l156.491-44.544 164.322 48.339v332.529l-165.677-48.339zM180.706 354.198l120.47-34.846v-269.553l-120.471 34.304v270.095zM30.117 359.529h120.47v-271.571l-120.471 0.512v271.059zM451.764 84.676l-120.471-35.449v270.125l120.471 35.148v-269.824z" />
-<glyph unicode="&#xe691;" d="M451.764 359.529v-2.078l-0.392 1.747-30.57-6.656c-4.187 54.302-49.212 97.34-104.568 97.34-55.447 0-100.563-43.219-104.629-97.642l-30.9 6.716v0.572h-180.706v-331.294h161.069l156.492-44.544 164.322 48.339v327.5h-30.118zM316.236 419.764c41.532 0 75.294-33.792 75.294-75.294 0-54.392-51.772-126.765-75.294-156.822-23.522 30.058-75.294 102.43-75.294 156.822 0 41.502 33.762 75.294 75.294 75.294zM180.706 328.147l32.557-7.077c12.409-68.337 72.463-144.204 87.913-162.816v-138.601l-120.471 34.304v274.191zM30.117 329.412h120.47v-271.571l-120.471 0.512v271.059zM331.294 19.11v139.173c15.481 18.643 75.685 94.72 87.974 163.117l32.497 7.048v-273.89l-120.471-35.449zM357.135 341.971c0 22.558-18.341 40.9-40.9 40.9s-40.9-18.341-40.9-40.9 18.341-40.93 40.9-40.93 40.9 18.341 40.9 40.93zM305.453 341.971c0 5.964 4.849 10.782 10.782 10.782s10.782-4.849 10.782-10.782-4.849-10.812-10.782-10.812-10.782 4.849-10.782 10.812z" />
-<glyph unicode="&#xe692;" d="M30.117 208.941c0-66.44 51.532-120.471 114.838-120.471v-30.118c-79.932 0-144.956 67.554-144.956 150.588s65.024 150.588 144.956 150.588h127.367l-49.573 49.574 21.293 21.293 85.956-85.925-85.925-85.956-21.323 21.323 49.604 49.574h-127.397c-63.308 0-114.838-54.031-114.838-120.471zM367.044 359.529v-30.117c63.308 0 114.839-54.031 114.839-120.471s-51.531-120.471-114.839-120.471h-127.397l49.574 49.574-21.293 21.293-85.925-85.925 85.956-85.956 21.293 21.293-49.604 49.604h127.368c79.963 0 144.987 67.554 144.987 150.588s-65.024 150.588-144.956 150.588z" />
-<glyph unicode="&#xe693;" d="M256 464.941c-91.317 0-165.647-74.3-165.647-165.647 0-131.704 147.968-303.766 154.262-311.055l11.385-13.101 11.385 13.132c6.295 7.259 154.262 179.32 154.262 311.025 0 91.347-74.33 165.647-165.647 165.647zM256 21.76c-34.515 42.887-135.53 177.062-135.53 277.534 0 74.722 60.808 135.529 135.53 135.529s135.529-60.808 135.529-135.529c0-100.382-101.014-234.647-135.53-277.534zM256 385.461c-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353-40.538 90.353-90.353 90.353zM256 234.873c-33.22 0-60.236 27.016-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.016 60.236-60.236-27.015-60.236-60.236-60.236z" />
-<glyph unicode="&#xe694;" d="M512 359.529v-30.117h-361.412v30.117h361.412zM90.353 344.471c0-24.908-20.269-45.177-45.176-45.177s-45.176 20.269-45.176 45.177 20.269 45.176 45.176 45.176 45.176-20.269 45.176-45.176zM60.236 344.471c0 8.282-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059zM150.588 208.941h361.412v30.118h-361.412v-30.118zM90.353 224c0-24.908-20.269-45.176-45.176-45.176s-45.176 20.269-45.176 45.177 20.269 45.177 45.176 45.177 45.176-20.269 45.176-45.177zM60.236 224c0 8.282-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059zM150.588 88.471h361.412v30.118h-361.412v-30.118zM90.353 103.529c0-24.908-20.269-45.176-45.176-45.176s-45.176 20.269-45.176 45.176 20.269 45.176 45.176 45.176 45.176-20.269 45.176-45.176zM60.236 103.529c0 8.283-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059z" />
-<glyph unicode="&#xe695;" d="M256 480c-91.317 0-165.647-78.818-165.647-175.676 0-70.897 29.034-110.532 54.633-145.498 19.185-26.142 35.72-48.731 35.72-80.505v-63.127c0-26.022 20.269-47.195 45.177-47.195h60.236c24.908 0 45.176 21.173 45.176 47.195v64.030c0 31.473 15.571 52.254 35.238 78.577 24.546 32.858 55.115 73.698 55.115 146.523 0 96.858-74.331 175.676-165.647 175.676zM286.118-1.882h-60.236c-8.282 0-15.059 7.65-15.059 17.077v49.182h90.353v-49.182c0-9.427-6.776-17.077-15.059-17.077zM342.408 175.842c-17.679-23.642-35.84-47.978-40.237-81.348h-92.522c-4.578 33.19-22.709 58.036-40.358 82.131-24.004 32.768-48.821 66.65-48.821 127.699 0 80.263 60.808 145.559 135.53 145.559s135.529-65.295 135.529-145.559c0-62.796-24.967-96.196-49.122-128.482z" />
-<glyph unicode="&#xe696;" d="M358.25 419.343l-171.399-391.108h23.974v-30.118h-90.353v30.118h33.461l171.399 391.108h-24.154v30.118h90.353v-30.118h-33.28z" />
-<glyph unicode="&#xe697;" d="M325.271 50.041v-30.118h-138.541v30.118h54.212v223.804h-52.706v30.117h82.823v-253.922h54.212zM240.58 358.174c25.54 0 46.14 20.661 46.14 46.14 0 25.51-20.63 46.2-46.14 46.2-25.57 0-46.201-20.691-46.201-46.2 0-25.48 20.66-46.14 46.201-46.14z" />
-<glyph unicode="&#xe698;" d="M512 239.059c0-66.439-54.031-120.47-120.471-120.47-36.051 0-69.572 16.022-92.582 43.731l-0.060-0.030-0.421 0.542c-0.332 0.421-0.783 0.692-1.144 1.144l0.12 0.091-109.447 134.988c-17.137 19.276-41.743 30.358-67.524 30.358-49.815 0-90.353-40.538-90.353-90.353 0-49.815 40.538-90.353 90.353-90.353 27.558 0 53.278 12.348 70.536 33.882l0.271-0.211 24.606 30.479 23.431-18.914-24.787-30.69-0.301 0.241c-22.98-28.522-57.133-44.906-93.756-44.906-66.439 0-120.471 54.031-120.471 120.471 0 66.44 54.031 120.471 120.471 120.471 33.732 0 65.837-14.366 88.636-39.183l0.241 0.18 1.265-1.566 111.375-137.337c17.257-20.872 42.436-32.918 69.541-32.918 49.815 0 90.353 40.538 90.353 90.353 0 49.815-40.538 90.353-90.353 90.353-25.48 0-49.694-10.902-66.861-29.786l-28.551-35.388-23.431 18.914 28.551 35.388-0.12 0.091c22.889 25.991 55.868 40.9 90.413 40.9 66.44 0 120.47-54.031 120.47-120.47z" />
-<glyph unicode="&#xe699;" d="M0 389.647v-361.412h512v361.412h-512zM481.882 58.353h-451.764v301.176h451.764v-301.176zM77.162 73.080l-30.117 0.663c0.994 43.068 42.105 79.872 99.659 90.865v9.819c-7.469 7.8-12.8 18.372-16.414 27.798-4.879 3.493-9.096 8.854-12.017 15.541-5.572 12.348-4.608 24.726 1.897 32.166-0.121 2.228-0.18 4.428-0.18 6.536l-0.060 5.541c-0.18 16.173-0.482 42.767 27.98 47.707 5.843 10.21 14.547 18.884 35.508 19.607 33.822 1.054 57.706-11.385 65.807-34.666 2.74-7.981 0.18-14.607-1.686-19.426-1.777-4.578-3.464-8.885-2.47-16.987 0.392-3.222 0.332-6.385 0.090-9.396 5.27-7.138 6.355-17.98 2.47-29.364-2.861-8.222-7.5-14.577-13.071-18.312-3.343-8.644-8.132-18.191-14.667-25.45v-11.354c57.495-11.294 97.22-47.315 98.214-90.594l-30.118-0.692c-0.692 30.75-36.442 57.464-85.022 63.518l-13.191 1.656v51.471l6.024 4.517c3.192 2.409 8.162 9.668 12.499 22.919l4.066 10.361 2.228 19.004c0.422 3.192 0.813 6.234 0.572 8.071-1.868 15.661 1.988 25.6 4.276 31.503 0.15 0.422 0.271 0.692 0.362 0.933-6.325 11.927-26.474 12.439-35.268 12.228-8.343-0.332-8.945-1.506-10.571-4.608-2.048-3.976-6.897-13.312-19.185-14.396-2.771-0.241-3.644-0.813-3.644-0.813-1.235-1.928-1.144-11.053-1.084-17.107l0.030-5.873c0-4.246 0.301-8.794 0.874-13.432l2.108-17.257 3.614-0.632 0.090-7.469c4.638-14.035 10.21-21.715 13.583-24.034l6.476-4.488v-50.808l-13.312-1.566c-48.549-5.692-85.654-33.069-86.347-63.699zM451.764 239.059h-150.588v30.118h150.588v-30.118zM421.647 178.824h-120.471v30.118h120.471v-30.118z" />
-<glyph unicode="&#xe69a;" d="M271.059 359.529h169.412l-108.695 120.471h-211.305v-120.471h120.471v-112.128h-33.882v-279.401h97.882v279.401h-33.882v112.128zM150.588 449.882h167.786l54.363-60.236h-222.148v60.236zM274.824-1.882h-37.647v219.166h37.647v-219.166z" />
-<glyph unicode="&#xe69b;" d="M421.647-1.882h-90.353v180.706h-150.588v-180.706h-90.353v271.059h-30.117v-301.176h391.529v301.176h-30.118v-271.059zM210.823-1.882v150.588h90.353v-150.588h-90.353zM505.856 285.048l-17.829-24.305-232.026 170.466-232.026-170.406-17.829 24.275 249.856 183.476 249.856-183.507z" />
-<glyph unicode="&#xe69c;" d="M310.543 33.325c0-27.046-21.986-49.031-49.062-49.031-27.166 0-49.122 21.986-49.122 49.031 0 27.106 21.956 49.092 49.122 49.092 27.046 0 49.062-21.986 49.062-49.092zM351.413 408.531c-15.42 19.426-43.49 42.587-89.841 42.587-123.422 0-127.85-113.182-127.88-114.327l30.118-0.783c0.090 3.463 3.313 84.992 97.762 84.992 34.334 0 54.964-16.956 66.228-31.172 16.716-21.083 21.082-45.418 18.793-55.206-8.764-37.014-30.449-56.531-53.399-77.192-28.16-25.329-57.224-51.501-57.224-107.159h30.118c0 42.225 20.841 61.019 47.255 84.781 24.214 21.805 51.652 46.501 62.555 92.702 4.488 19.095-2.5 53.007-24.486 80.775z" />
-<glyph unicode="&#xe69d;" d="M481.31 236.499c-5.783 135.319-104.478 243.501-225.31 243.501s-219.528-108.183-225.31-243.501c-17.77-6.054-30.69-22.769-30.69-42.617v-120.471c0-24.907 20.179-45.176 44.996-45.176h45.357v30.118h30.117v150.588h-30.118v30.118h-29.455c6.776 117.519 91.557 210.824 195.102 210.824s188.326-93.305 195.102-210.824h-29.455v-30.118h-30.118v-150.588h30.118v-30.118h45.357c24.817 0 44.996 20.269 44.996 45.176v120.471c0 19.848-12.921 36.563-30.69 42.617zM60.236 58.353h-15.239c-8.192 0-14.878 6.776-14.878 15.059v120.471c0 8.283 6.686 15.059 14.878 15.059h15.239v-150.588zM481.882 73.412c0-8.283-6.686-15.059-14.878-15.059h-15.24v150.588h15.24c8.192 0 14.878-6.776 14.878-15.059v-120.471z" />
-<glyph unicode="&#xe69e;" d="M406.588 103.529c-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176-20.269 45.176-45.176 45.176zM406.588 43.294c-8.283 0-15.059 6.776-15.059 15.059s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.059-15.059-15.059zM512 385.13l-88.034 94.87h-335.842l-88.124-92.973v-193.747h28.19l-28.19-35.298v-189.982h512v188.536l-31.503 36.743h31.503v191.85zM101.044 449.882h309.79l55.838-60.236h-422.701l57.073 60.236zM30.117-1.882v120.471h451.764v-120.471h-451.764zM479.051 148.706h-447.94l35.569 44.574h374.182l38.189-44.574zM30.117 223.397v136.132h451.764v-136.132h-451.764zM406.588 329.412c-24.907 0-45.176-20.269-45.176-45.177 0-24.877 20.269-45.147 45.176-45.147s45.176 20.269 45.176 45.147c0 24.908-20.269 45.177-45.176 45.177zM406.588 269.207c-8.283 0-15.059 6.746-15.059 15.029s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.029-15.059-15.029z" />
-<glyph unicode="&#xe69f;" d="M425.683 389.767h-339.305l-86.377-131.734v-199.8h512v197.843l-86.317 133.692zM102.671 359.65h306.598l58.488-90.594h-424.478l59.392 90.594zM30.117 88.35v150.588h451.764v-150.588h-451.764zM406.588 208.82c-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176-20.269 45.176-45.176 45.176zM406.588 148.586c-8.283 0-15.059 6.776-15.059 15.059s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.059-15.059-15.059z" />
-<glyph unicode="&#xe6a0;" d="M236.092 311.010l-1.024-5.964 20.269 2.59c0.12 0 0.632 0.091 0.934 0.12l19.185-2.439-0.933 5.452c32.828 6.084 99.629 21.835 137.788 54.513 14.878 12.709 23.070 29.817 23.070 48.188s-8.192 35.478-23.070 48.219c-28.371 24.335-77.132 24.305-105.502 0-24.516-20.992-40.93-51.983-51.531-79.149-10.601 27.106-27.016 58.007-51.531 78.938-28.34 24.275-77.041 24.245-105.382 0-14.878-12.709-23.070-29.786-23.070-48.098 0-18.312 8.192-35.358 23.070-48.038 38.159-32.587 104.96-48.279 137.728-54.332zM326.385 438.799c8.764 7.5 20.51 11.626 33.159 11.626 12.62 0 24.425-4.126 33.159-11.626 8.101-6.897 12.529-15.902 12.529-25.329 0-9.397-4.428-18.372-12.529-25.299-31.082-26.594-88.214-40.81-119.447-46.923 7.379 26.745 23.582 72.252 53.127 97.551zM117.91 438.588c8.764 7.469 20.51 11.595 33.159 11.595 12.619 0 24.395-4.126 33.13-11.595 29.395-25.088 45.598-70.385 53.007-97.069-31.202 6.053-88.185 20.179-119.296 46.743-8.072 6.867-12.499 15.781-12.499 25.118 0 9.366 4.427 18.312 12.499 25.209zM512 299.294h-512v-120.47h30.117v-210.824h451.764v210.823h30.118v120.471zM210.101 269.177h90.534l32.106-175.978-49.634 20.63-39.183-36.292-33.822 191.639zM30.117 269.177h149.383l10.631-60.236h-160.015v60.236zM451.764-1.882h-391.529v180.706h135.228l28.371-160.918 65.536 60.687 82.884-34.485-24.546 134.716h104.056v-180.706zM481.882 208.941h-139.685l-10.993 60.236h150.679v-60.236z" />
-<glyph unicode="&#xe6a1;" d="M271.059 359.891v89.991h-30.118v-89.991c-107.339-3.163-240.941-38.611-240.941-74.903v-212.059c0-24.908 20.269-45.176 45.176-45.176h53.91l60.115 118.392c17.077-3.132 51.591-8.252 95.564-8.252 44.544 0 81.137 5.24 99.027 8.342l57.464-118.483h55.567c24.907 0 45.176 20.269 45.176 45.176v212.059c0 36.292-133.632 71.77-240.941 74.902zM481.882 72.93c0-8.283-6.776-15.059-15.059-15.059h-36.683l-59.512 122.579-11.625-2.56c-0.452-0.091-45.628-9.909-104.267-9.909-58.459 0-99.84 9.728-100.262 9.849l-11.565 2.801-62.284-122.73h-35.449c-8.282 0-15.059 6.776-15.059 15.059v208.263c15.119 13.162 101.797 45.719 210.823 48.519v-0.332h30.117v0.392c108.996-2.831 195.704-35.388 210.823-48.55v-208.324zM150.588 268.574h30.058v-30.118h-30.058v-30.72h-30.118v30.72h-30.118v30.117h30.118v30.72h30.118v-30.72zM376.471 208.339c24.908 0 45.176 20.269 45.176 45.177s-20.269 45.177-45.176 45.177-45.176-20.239-45.176-45.177 20.269-45.177 45.176-45.177zM376.471 268.574c8.283 0 15.059-6.776 15.059-15.059s-6.776-15.059-15.059-15.059-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059z" />
-<glyph unicode="&#xe6a2;" d="M16.264 480l194.56-277.956v-234.044h90.353v234.044l194.56 277.956h-479.473zM271.059 211.531v-213.413h-30.118v213.413l-166.852 238.351h363.821l-166.852-238.351z" />
-<glyph unicode="&#xe6a3;" d="M376.38 480h-195.674v-60.536h30.118v30.419h150.588v-120.47h120.471v-240.941h-120.983v-30.118h151.1v295.695l-135.62 125.952zM391.529 424.825l70.325-65.295h-70.325v65.295zM0 389.647v-421.647h331.294v295.695l-135.62 125.952h-195.674zM210.823 334.471l70.325-65.295h-70.325v65.295zM30.117-1.882v361.412h150.588v-120.471h120.47v-240.941h-271.059z" />
-<glyph unicode="&#xe6a4;" d="M291.147 480h-230.912v-512h391.529v352.135l-160.618 159.865zM301.176 427.535l98.575-98.123h-98.575v98.123zM90.353-1.882v451.764h180.706v-150.588h150.588v-301.176h-331.294z" />
-<glyph unicode="&#xe6a5;" d="M404.962 353.476l-156.492 90.383c-20.781 11.957-49.694 4.247-61.681-16.565l-180.706-313.012c-12.469-21.564-5.029-49.243 16.564-61.741l95.744-54.935 131.222 0.542 171.911 293.617c12.438 21.564 5.029 49.243-16.565 61.711zM232.298 28.205l-105.954-0.421-88.697 50.868c-7.198 4.187-9.668 13.372-5.511 20.601l82.823 143.481 181.519-104.81-64.18-109.719zM395.445 306.914l-83.757-143.059-181.669 104.9 82.823 143.481c2.68 4.638 7.71 7.53 13.071 7.53 2.65 0 5.18-0.663 7.5-1.988l156.492-90.353c7.198-4.186 9.668-13.402 5.541-20.51zM512 28.236v-30.118h-210.823v30.118h210.823z" />
-<glyph unicode="&#xe6a6;" d="M60.236 480v-512h391.529v512h-391.529zM141.403 359.529l-42.406 90.353h314.007l-42.466-90.353h-229.135zM122.308 329.412h118.634v-271.059h-120.531l-30.058-34.786v373.88l31.955-68.036zM134.174 28.236h243.712l25.962-30.118h-295.635l25.962 30.118zM391.71 58.353h-120.651v271.059h118.603l31.985 68.096v-373.911l-29.937 34.756z" />
-<glyph unicode="&#xe6a7;" d="M512-1.882v-30.118h-512v30.118h512zM402.191 213.339l-21.293 21.293-109.809-109.809v355.178h-30.118v-355.207l-109.839 109.869-21.323-21.323 146.191-146.161 146.191 146.161z" />
-<glyph unicode="&#xe6a8;" d="M501.188 317.094l-84.661 102.671h-145.468v60.236h-30.118v-60.236h-210.823v-210.823h210.823v-240.941h30.118v240.941h145.709l84.42 108.153zM271.059 239.059h-210.823v150.588h342.076l60.265-73.065-60.507-77.523h-131.012z" />
-<glyph unicode="&#xe6a9;" d="M271.059 299.294h141.402l58.368 77.192-58.609 73.397h-141.161v30.118h-30.118v-30.118h-180.706v-150.588h180.706v-60.236h-141.161l-58.609-73.397 58.368-77.192h141.402v-120.471h30.118v120.471h180.706v150.588h-180.706v60.235zM90.353 419.764h307.38l34.966-43.791-35.207-46.562h-307.14v90.353zM421.647 118.588h-307.14l-35.208 46.562 34.966 43.791h307.38v-90.353z" />
-<glyph unicode="&#xe6aa;" d="M512 133.647v-15.059h-185.765v30.118h155.166c-3.373 50.959-23.763 97.31-55.476 133.541l-24.275-24.275-21.293 21.293 24.154 24.154c-36.202 31.714-82.522 51.983-133.452 55.387v-89.63h-30.118v89.63c-50.929-3.404-97.25-23.673-133.421-55.387l23.974-23.974-21.293-21.293-24.094 24.094c-31.714-36.231-52.133-82.582-55.477-133.542h155.738v-30.118h-186.368v15.059c0 141.161 114.838 256 256 256s256-114.839 256-256zM316.236 133.647c0-33.22-27.015-60.236-60.236-60.236s-60.236 27.015-60.236 60.236c0 19.396 9.367 36.442 23.612 47.495l-62.705 109.327 26.112 14.969 64.482-112.429c2.861 0.421 5.722 0.873 8.734 0.873 33.22 0 60.236-27.015 60.236-60.236zM286.118 133.647c0 16.595-13.523 30.118-30.118 30.118s-30.118-13.523-30.118-30.118 13.523-30.118 30.118-30.118 30.118 13.523 30.118 30.118z" />
-<glyph unicode="&#xe6ab;" d="M90.353 389.647v-331.294h331.294v331.294h-331.294zM391.529 88.471h-271.059v271.059h271.059v-271.059z" />
-<glyph unicode="&#xe6ac;" d="M269.252 273.062l32.557 40.357-0.12 0.091c25.75 29.244 62.856 46.020 101.738 46.020h57.163l-49.574 49.573 21.293 21.293 85.925-85.925-85.956-85.956-21.293 21.293 49.604 49.604h-57.163c-29.786 0-58.157-12.8-78.156-34.906l-32.527-40.327-23.492 18.884zM176.219 157.861l-0.332 0.241c-20.089-25.088-50.085-39.514-82.311-39.514h-93.576v-30.118h93.576c41.231 0 79.661 18.402 105.502 50.477l0.332-0.271 28.34 35.117-23.401 18.944-28.13-34.876zM410.986 168.162l49.604-49.574h-57.163c-31.684 0-61.169 14.125-81.317 38.581l-128.572 158.57-0.301-0.241c-25.6 27.889-61.681 44.032-99.659 44.032h-93.576v-30.118h93.576c30.058 0 58.669-12.891 78.637-35.238l125.32-154.564-0.151-0.12c25.901-32.406 64.542-51.019 106.014-51.019h57.163l-49.574-49.574 21.293-21.293 85.956 85.956-85.956 85.956-21.293-21.353z" />
-<glyph unicode="&#xe6ad;" d="M90.353 398.923v-349.907l349.907 175.797-349.907 174.11zM120.471 350.253l252.446-125.591-252.446-126.825v252.416z" />
-<glyph unicode="&#xe6ae;" d="M90.353 28.236h120.471v391.529h-120.471v-391.529zM120.471 389.647h60.236v-331.294h-60.236v331.294zM301.176 419.764v-391.529h120.471v391.529h-120.471zM391.529 58.353h-60.236v331.294h60.236v-331.294z" />
-<glyph unicode="&#xe6af;" d="M90.353 406.634v-365.508l219.286 183.657-219.286 181.851zM120.471 342.543l142.125-117.851-142.125-119.025v236.875zM460.228 224.783l-194.56-162.936-19.365 23.13 166.852 139.716-166.762 138.3 19.245 23.19 194.59-161.4z" />
-<glyph unicode="&#xe6b0;" d="M202.361 224.783l219.286-183.628v365.478l-219.286-181.851zM391.529 105.668l-142.125 118.995 142.125 117.88v-236.875zM98.816 224.662l166.852-139.716-19.365-23.13-194.56 162.936 194.62 161.371 19.245-23.191-166.792-138.27z" />
-<glyph unicode="&#xe6b1;" d="M384 344.471c-17.408 0-34.515-3.705-50.929-11.053-26.774 26.292-62.494 41.171-99.659 41.171-59.212 0-110.954-35.84-132.428-90.413-54.302 2.228-100.984-42.797-100.984-97.822 0-53.971 43.911-97.882 97.882-97.882h286.117c70.565 0 128 57.435 128 128s-57.435 128-128 128zM384 118.588h-286.118c-37.376 0-67.764 30.389-67.764 67.764s30.389 67.764 67.764 67.764c3.764 0 7.349-0.572 10.933-1.144l13.101-2.168 3.795 12.709c14.396 48.429 57.676 80.956 107.7 80.956 32.316 0 63.308-14.366 84.962-39.364l7.981-9.216 10.661 5.873c15.149 8.342 30.931 12.589 46.983 12.589 53.971 0 97.882-43.911 97.882-97.882s-43.911-97.882-97.882-97.882z" />
-<glyph unicode="&#xe6b2;" d="M512 276.706c0-70.566-57.404-128-128-128h-83.034v30.118h83.034c53.971 0 97.882 43.911 97.882 97.882s-43.911 97.882-97.882 97.882c-16.022 0-31.834-4.247-46.983-12.559l-10.661-5.873-7.981 9.216c-21.654 24.968-52.645 39.334-84.962 39.334-50.025 0-93.334-32.527-107.701-80.956l-3.795-12.709-13.101 2.168c-3.584 0.572-7.168 1.144-10.933 1.144-37.346 0-67.764-30.388-67.764-67.764s30.419-67.764 67.764-67.764h111.405v-30.118h-111.405c-53.971 0-97.882 43.911-97.882 97.882 0 54.995 46.050 100.442 100.984 97.822 21.474 54.573 73.216 90.413 132.428 90.413 37.165 0 72.885-14.878 99.659-41.171 16.444 7.348 33.521 11.053 50.929 11.053 70.596 0 128-57.435 128-128zM320.632 213.339l21.293 21.293-85.925 85.956-85.956-85.925 21.293-21.293 49.604 49.573v-234.707h30.118v234.707l49.574-49.604z" />
-<glyph unicode="&#xe6b3;" d="M512 276.706c0-70.566-57.404-128-128-128h-83.034v30.118h83.034c53.971 0 97.882 43.911 97.882 97.882s-43.911 97.882-97.882 97.882c-16.022 0-31.834-4.247-46.983-12.559l-10.661-5.873-7.981 9.216c-21.654 24.968-52.645 39.334-84.962 39.334-50.025 0-93.334-32.527-107.701-80.956l-3.795-12.709-13.101 2.168c-3.584 0.572-7.168 1.144-10.933 1.144-37.346 0-67.764-30.388-67.764-67.764s30.419-67.764 67.764-67.764h111.405v-30.118h-111.405c-53.971 0-97.882 43.911-97.882 97.882 0 54.995 45.508 100.442 100.984 97.822 21.474 54.573 73.216 90.413 132.428 90.413 37.165 0 72.885-14.878 99.659-41.171 16.444 7.348 33.521 11.053 50.929 11.053 70.596 0 128-57.435 128-128zM271.059 66.485v232.81h-30.118v-232.81l-49.573 49.574-21.293-21.293 85.925-85.925 85.956 85.956-21.293 21.293-49.604-49.604z" />
-<glyph unicode="&#xe6b4;" d="M481.882 419.764v-451.764h-451.764v451.764h67.584v-30.118h-37.467v-391.529h391.529v391.529h-38.49v30.118h68.608zM391.529 329.412h-271.059v120.47h92.913c6.234 17.529 22.98 30.118 42.617 30.118s36.382-12.589 42.617-30.118h92.913v-120.47zM361.412 419.764h-90.353v15.059c0 8.313-6.747 15.059-15.059 15.059s-15.059-6.747-15.059-15.059v-15.059h-90.353v-60.236h210.823v60.236z" />
-<glyph unicode="&#xe6b5;" d="M512 179.305l-58.971-0.060-61.772 120.049h-239.405l-89.389-120.44-62.464-0.030v-149.896h60.295c0-0.241-0.060-0.452-0.060-0.692 0-33.22 27.015-60.236 60.235-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h150.739c-0.030-0.241-0.091-0.452-0.091-0.692 0-33.22 27.015-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h60.296v150.377zM419.178 179.215l-117.368-0.12v90.082h71.077l46.291-89.962zM166.972 269.177h104.719v-90.112l-171.701-0.151 66.982 90.262zM120.471-1.882c-16.595 0-30.117 13.523-30.117 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM391.529-1.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM481.882 59.046h-38.882c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-168.117c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-38.882v89.66l451.764 0.452v-90.112z" />
-<glyph unicode="&#xe6b6;" d="M421.647 419.764v30.118h-90.353v-30.118h-150.588v30.118h-90.353v-30.118h-90.353v-451.764h512v451.764h-90.353zM361.412 419.764h30.118v-60.236h-30.118v60.236zM120.471 419.764h30.117v-60.236h-30.118v60.236zM481.882-1.882h-451.764v268.68h451.764v-268.68zM30.117 296.915v92.732h60.236v-60.236h90.353v60.236h150.588v-60.236h90.353v60.236h60.236v-92.732h-451.764z" />
-<glyph unicode="&#xe6b7;" d="M499.712 445.305c-1.596 0.301-39.786 7.349-89.781 7.349-63.397 0-115.291-11.023-154.353-32.768-45.719 23.040-98.304 34.696-156.492 34.696-50.628 0-86.317-9.096-87.793-9.487l-11.294-2.952 0.030-418.816 18.794 4.849c0.331 0.060 33.732 8.524 80.263 8.524 43.58 0 83.456-7.228 119.266-21.173v-24.938h75.294v25.781c38.581 14.697 82.733 18.402 116.254 18.402 47.044 0 83.908-6.776 84.269-6.837l17.829-3.313v418.364l-12.288 2.319zM30.117 61.154v357.135c13.583 2.53 38.46 6.174 68.969 6.174 53.037 0 100.563-10.842 141.854-31.443v-354.666c-42.255 18.582-89.66 28.461-141.854 28.461-29.184 0-53.398-3.042-68.969-5.662zM481.882 60.22c-16.143 2.108-41.954 4.638-71.981 4.638-55.657 0-101.828-8.975-138.843-25.75v354.575c42.827 23.492 98.515 28.853 138.842 28.853 30.81 0 57.284-2.922 71.981-4.94v-357.376z" />
-<glyph unicode="&#xe6b8;" d="M461.161 54.588c-0.421 0.392-39.514 38.972-39.514 96.678v99.147c0 93.395-74.33 169.351-165.647 169.351s-165.647-75.957-165.647-169.351v-99.147c0-56.049-39.334-96.467-39.695-96.858l-25.389-25.69h462.517l-26.624 25.871zM91.919 58.835c13.372 20.841 28.552 53.127 28.552 92.431v99.147c0 76.77 60.807 139.234 135.529 139.234s135.529-62.464 135.529-139.234v-99.147c0-39.755 14.908-71.77 28.25-92.431h-327.861zM271.059 419.764h-30.118v30.118h30.118v-30.118zM271.059 28.236h30.118c0-24.908-20.269-45.176-45.176-45.176s-45.177 20.269-45.177 45.176h30.118c0-8.313 6.776-15.059 15.059-15.059s15.059 6.747 15.059 15.059z" />
-<glyph unicode="&#xe6b9;" d="M256.482 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.868 256-256 256zM391.198 239.059c2.952 43.972 18.522 85.986 45.086 121.073 25.901-34.123 42.285-75.746 45.297-121.073h-90.383zM481.581 208.941c-3.012-45.327-19.396-86.98-45.327-121.103-26.534 35.117-42.105 77.132-45.026 121.103h90.353zM416.406 383.353c-32.949-41.291-52.194-91.558-55.326-144.293h-90.022v210.101c56.591-3.675 107.64-27.979 145.348-65.807zM240.941 449.099v-210.040h-89.148c-3.072 52.766-22.317 103.003-55.236 144.293 37.466 37.617 88.154 61.892 144.384 65.747zM31.352 239.059c3.012 45.327 19.396 86.98 45.327 121.103 26.534-35.087 42.075-77.101 45.026-121.103h-90.353zM121.675 208.941c-2.921-44.032-18.432-86.016-44.996-121.103-25.931 34.123-42.316 75.776-45.327 121.103h90.323zM96.527 64.647c32.979 41.291 52.194 91.527 55.266 144.293h89.148v-210.041c-56.23 3.855-106.917 28.13-144.414 65.747zM271.059-1.159v210.101h90.052c3.102-52.736 22.348-103.002 55.266-144.324-37.707-37.798-88.726-62.103-145.317-65.777z" />
-<glyph unicode="&#xe6ba;" d="M512-1.882v-30.118h-512v30.118h512zM60.236 178.824h60.236v-150.588h30.118v180.706h-120.471v-180.706h30.117v150.588zM210.823 269.177h60.235v-240.941h30.118v271.059h-120.471v-271.059h30.118v240.941zM361.412 389.647h60.236v-361.412h30.118v391.529h-120.471v-391.529h30.118v361.412z" />
-<glyph unicode="&#xe6bb;" d="M512-1.882v-30.118h-512v30.118h512zM361.412 178.824h60.236v-150.588h30.118v180.706h-120.471v-180.706h30.118v150.588zM210.823 269.177h60.235v-240.941h30.118v271.059h-120.471v-271.059h30.118v240.941zM60.236 389.647h60.236v-361.412h30.118v391.529h-120.471v-391.529h30.117v361.412z" />
-<glyph unicode="&#xe6bc;" d="M439.205 28.236v-30.118h-213.323c-91.316 0-165.647 74.3-165.647 165.647s74.331 165.647 165.647 165.647h87.703l-79.692 79.692 21.293 21.293 116.043-116.044-116.043-116.073-21.293 21.324 79.692 79.692h-87.702c-74.722 0-135.53-60.808-135.53-135.53s60.808-135.529 135.53-135.529h213.324z" />
-<glyph unicode="&#xe6bd;" d="M451.764 254.118c0-91.347-74.3-165.647-165.647-165.647h-87.702l79.692-79.692-21.293-21.293-116.043 116.043 116.074 116.073 21.293-21.293-79.721-79.721h87.702c74.722 0 135.529 60.808 135.529 135.53s-60.808 135.53-135.529 135.53h-213.323v30.118h213.323c91.347 0 165.647-74.3 165.647-165.647z" />
-<glyph unicode="&#xe6be;" d="M451.764 193.882v-165.647h-165.647v30.118h114.537l-310.302 310.302v-114.537h-30.117v165.647h165.647v-30.117h-113.935l309.7-309.7v113.935h30.118z" />
-<glyph unicode="&#xe6bf;" d="M512 419.764h-512v-120.471h30.117v-331.294h451.764v331.294h30.118v120.471zM451.764-1.882h-391.529v301.176h391.529v-301.176zM481.882 329.412h-451.764v60.236h451.764v-60.236zM180.706 148.706h151.070c33.22 0 60.236 27.015 60.236 60.236s-27.015 60.236-60.236 60.236h-151.070c-33.22 0-60.236-27.016-60.236-60.236s27.016-60.236 60.236-60.236zM180.706 239.059h151.070c16.625 0 30.118-13.493 30.118-30.117s-13.493-30.118-30.118-30.118h-151.070c-16.625 0-30.118 13.493-30.118 30.118s13.493 30.118 30.118 30.118z" />
-<glyph unicode="&#xe6c0;" d="M460.529 100.759l-47.284 94.178-94.178-47.224 13.493-26.955 56.35 28.281c-11.234-57.435-58.91-101.346-117.851-107.972v228.111h45.176v30.118h-45.176v31.654c34.334 6.988 60.236 37.376 60.236 73.758 0 41.532-33.792 75.294-75.294 75.294s-75.294-33.762-75.294-75.294c0-36.382 25.901-66.771 60.236-73.758v-31.654h-45.177v-30.118h45.177v-228.111c-58.88 6.626-106.556 50.477-117.82 107.821l56.019-28.13 13.493 26.956-94.178 47.224-47.285-94.178 26.925-13.523 19.606 39.093c20.871-67.614 83.938-116.916 158.298-116.916 74.21 0 137.216 49.092 158.178 116.465l19.426-38.641 26.925 13.523zM210.823 404.706c0 24.907 20.269 45.176 45.177 45.176s45.176-20.269 45.176-45.176-20.269-45.177-45.177-45.177-45.177 20.269-45.177 45.177z" />
-<glyph unicode="&#xe6c1;" d="M512 419.764v-30.118h-512v30.118h512zM90.353 269.177h421.647v30.117h-421.647v-30.117zM0 148.706h512v30.118h-512v-30.118zM210.823 28.236h301.177v30.118h-301.176v-30.118z" />
-<glyph unicode="&#xe6c2;" d="M512 419.764v-30.118h-512v30.118h512zM421.647 299.294h-421.647v-30.117h421.647v30.117zM0 148.706h512v30.118h-512v-30.118zM0 28.236h301.176v30.118h-301.176v-30.118z" />
-<glyph unicode="&#xe6c3;" d="M512 419.764v-30.118h-512v30.118h512zM0 269.177h512v30.117h-512v-30.117zM0 148.706h512v30.118h-512v-30.118zM0 28.236h512v30.118h-512v-30.118z" />
-<glyph unicode="&#xe6c4;" d="M512 419.764v-30.118h-512v30.118h512zM45.176 299.294v-30.117h421.647v30.117h-421.647zM0 148.706h512v30.118h-512v-30.118zM105.412 28.236h301.176v30.118h-301.176v-30.118z" />
-<glyph unicode="&#xe6c5;" d="M254.614 435.065l-248.23-436.947h499.38l-251.151 436.947zM254.765 374.347l198.927-346.112h-395.565l196.638 346.112zM271.059 150.573h-30.118v118.603h30.118v-118.603zM286.118 87.537c0-16.625-13.462-30.118-30.118-30.118s-30.118 13.493-30.118 30.118 13.463 30.118 30.118 30.118 30.118-13.493 30.118-30.118z" />
-<glyph unicode="&#xe6c6;" d="M443.151 275.471c15.18 15.42 23.673 35.569 23.673 57.314 0 45.267-36.834 82.101-82.070 82.101-26.684 0-51.050-13.071-66.469-34.635-15.089 4.668-30.901 7.5-47.224 8.644v30.87h30.118v30.118h-90.353v-30.118h30.118v-30.87c-16.324-1.144-32.136-3.976-47.225-8.644-15.42 21.594-39.756 34.635-66.469 34.635-45.236 0-82.070-36.834-82.070-82.1 0-21.775 8.493-41.924 23.672-57.314-15.029-28.973-23.672-61.801-23.672-96.647 0-51.411 18.552-98.515 49.243-135.138l-38.701-51.591 24.094-18.070 35.9 47.887c37.316-33.401 86.377-53.911 140.288-53.911s102.972 20.51 140.288 53.911l35.9-47.887 24.094 18.070-38.701 51.591c30.69 36.623 49.243 83.727 49.243 135.138 0 34.846-8.644 67.674-23.673 96.647zM384.753 384.768c28.642 0 51.953-23.311 51.953-51.983 0-11.234-3.614-21.805-10.089-30.63-20.42 28.19-47.616 51.019-79.209 66.319 9.698 10.21 22.95 16.294 37.346 16.294zM75.294 332.785c0 28.642 23.311 51.983 51.953 51.983 14.396 0 27.648-6.084 37.346-16.264-31.594-15.3-58.76-38.159-79.21-66.319-6.475 8.825-10.090 19.365-10.090 30.599zM256-1.882c-99.659 0-180.706 81.046-180.706 180.706s81.047 180.706 180.706 180.706 180.706-81.047 180.706-180.706-81.046-180.706-180.706-180.706zM271.059 178.824h120.471v-30.118h-150.588v120.471h30.117v-90.353z" />
-<glyph unicode="&#xe6c7;" d="M421.647 419.764v60.236h-391.529v-512h391.529v60.236h60.236v391.529h-60.236zM60.236-1.882v451.764h60.236v-451.764h-60.236zM391.529-1.882h-240.941v451.764h240.941v-451.764zM451.764 58.353h-30.118v90.353h30.118v-90.353zM451.764 178.824h-30.118v90.353h30.118v-90.353zM421.647 299.294v90.353h30.118v-90.353h-30.118zM180.706 359.529h150.588v-30.117h-150.588v30.117zM180.706 299.294h120.47v-30.117h-120.471v30.117z" />
-<glyph unicode="&#xe6c8;" d="M351.382 480h-260.548v-59.754h-15.54c-24.907 0-45.176-20.269-45.176-45.176v-258.651l75.927-149.263 74.21 149.353v258.56c0 24.908-20.269 45.176-45.177 45.176h-14.125v29.636h210.341v-150.588h150.588v-301.177h-346.353v-30.118h376.471v352.135l-160.618 159.864zM117.7 58.293h-24.215l-33.25 65.356v176.128h30.118v-181.519h30.118v181.519h29.636v-176.219l-32.406-65.265zM150.107 375.070v-45.176h-89.871v45.176c0 8.282 6.776 15.059 15.059 15.059h59.753c8.313 0 15.059-6.777 15.059-15.059zM361.412 427.535l98.575-98.123h-98.575v98.123z" />
-<glyph unicode="&#xe6c9;" d="M0 449.882v-451.764h512v451.764h-512zM481.882 419.764v-90.353h-451.764v90.353h451.764zM30.117 28.236v271.059h451.764v-271.059h-451.764zM210.823 359.529h-30.118v30.118h30.118v-30.118zM150.588 359.529h-30.118v30.118h30.118v-30.118zM90.353 359.529h-30.117v30.118h30.117v-30.118z" />
-<glyph unicode="&#xe6ca;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236 208.941h30.118v30.118h-30.117v-30.118zM120.471 208.941h30.117v30.118h-30.118v-30.118zM180.706 208.941h30.118v30.118h-30.118v-30.118zM301.176 208.941h30.118v30.118h-30.118v-30.118zM361.412 208.941h30.118v30.118h-30.118v-30.118zM421.647 208.941h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM240.941 389.647h30.117v30.118h-30.118v-30.118zM240.941 329.412h30.117v30.117h-30.118v-30.117zM240.941 269.177h30.117v30.117h-30.118v-30.117zM240.941 208.941h30.117v30.118h-30.118v-30.118zM240.941 148.706h30.117v30.118h-30.118v-30.118zM240.941 88.471h30.117v30.118h-30.118v-30.118zM240.941 28.236h30.117v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118z" />
-<glyph unicode="&#xe6cb;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM150.588 480h-30.118v-30.118h30.118v30.118zM210.823 480h-30.118v-30.118h30.118v30.118zM271.059 480h-30.118v-30.118h30.118v30.118zM331.294 480h-30.118v-30.118h30.118v30.118zM391.529 480h-30.118v-30.118h30.118v30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM405.534 241.197c0.632-5.632 1.054-11.355 1.054-17.197s-0.421-11.565-1.054-17.197l-1.115-9.878-43.339-13.011c-0.753-1.957-1.536-3.885-2.409-5.813l21.413-39.815-6.174-7.771c-7.168-9.005-15.39-17.228-24.425-24.425l-7.771-6.204-39.815 21.444c-1.897-0.844-3.855-1.656-5.813-2.409l-12.981-43.309-9.849-1.144c-5.662-0.663-11.414-1.054-17.257-1.054s-11.595 0.392-17.257 1.054l-9.849 1.144-13.011 43.309c-1.958 0.753-3.885 1.536-5.813 2.409l-39.845-21.413-7.77 6.174c-9.005 7.168-17.227 15.39-24.395 24.425l-6.144 7.74 21.413 39.815c-0.874 1.957-1.656 3.885-2.41 5.843l-43.34 13.011-1.115 9.878c-0.632 5.632-1.054 11.354-1.054 17.197s0.421 11.565 1.054 17.197l1.115 9.879 43.34 13.011c0.753 1.958 1.536 3.885 2.41 5.813l-21.413 39.815 6.144 7.77c7.138 8.975 15.36 17.197 24.425 24.426l7.77 6.204 39.816-21.444c1.898 0.874 3.855 1.656 5.813 2.409l13.011 43.309 9.849 1.144c11.324 1.325 23.191 1.325 34.515 0l9.849-1.144 13.011-43.309c1.957-0.723 3.885-1.536 5.813-2.409l39.815 21.444 7.771-6.204c9.005-7.168 17.228-15.39 24.395-24.396l6.174-7.771-21.413-39.845c0.844-1.897 1.656-3.855 2.409-5.782l43.339-13.041 1.115-9.879zM376.471 224c0 1.356-0.030 2.71-0.091 4.066l-39.243 11.776-2.289 7.831c-1.566 5.27-3.704 10.481-6.355 15.42l-3.825 7.138 19.336 35.93c-1.868 1.988-3.795 3.945-5.813 5.813l-35.9-19.335-7.198 3.855c-4.94 2.651-10.149 4.819-15.45 6.385l-7.83 2.319-11.746 39.183c-2.68 0.12-5.452 0.12-8.132 0l-11.746-39.213-7.831-2.319c-5.361-1.596-10.541-3.734-15.42-6.355l-7.138-3.885-35.96 19.365c-2.018-1.897-3.946-3.825-5.813-5.813l19.335-35.93-3.855-7.138c-2.65-4.939-4.819-10.119-6.385-15.48l-2.319-7.8-39.183-11.746c-0.060-1.356-0.090-2.71-0.090-4.066s0.030-2.711 0.090-4.036l39.213-11.776 2.319-7.83c1.566-5.331 3.734-10.541 6.385-15.481l3.825-7.138-19.335-35.93c1.868-1.988 3.795-3.945 5.813-5.813l35.93 19.336 7.138-3.825c4.94-2.651 10.149-4.819 15.451-6.385l7.831-2.319 11.776-39.213c2.68-0.12 5.452-0.12 8.132 0l11.776 39.183 7.8 2.319c5.331 1.566 10.541 3.735 15.481 6.385l7.138 3.825 35.9-19.336c2.018 1.868 3.945 3.825 5.813 5.813l-19.336 35.93 3.825 7.138c2.651 4.94 4.819 10.12 6.385 15.481l2.319 7.8 39.183 11.776c0.060 1.385 0.091 2.74 0.091 4.096z" />
-<glyph unicode="&#xe6cc;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM150.588 480h-30.118v-30.118h30.118v30.118zM210.823 480h-30.118v-30.118h30.118v30.118zM271.059 480h-30.118v-30.118h30.118v30.118zM331.294 480h-30.118v-30.118h30.118v30.118zM391.529 480h-30.118v-30.118h30.118v30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM255.94 177.529l-124.808 124.898-21.323-21.324 146.131-146.191 146.221 146.191-21.293 21.293-124.928-124.868z" />
-<glyph unicode="&#xe6cd;" d="M47.104 419.764c-25.721 0-46.682-20.781-46.682-46.321h-0.421v-329.457c0-25.54 20.932-46.321 46.682-46.321h406.348v49.844h58.97v372.254h-464.896zM46.682 27.813c-9.126 0-16.564 7.259-16.564 16.204v288.618c0.723-0.211 1.627-0.15 2.349-0.361 4.307-1.265 8.825-2.048 13.644-2.139 0.211 0 0.361-0.091 0.572-0.091h376.26v-91.407h-86.106c-25.962 0-47.074-20.269-47.074-45.176v-30.118c0-24.907 21.113-45.176 47.074-45.176h86.106v-90.353h-376.26zM336.805 148.284c-9.366 0-16.956 6.747-16.956 15.059v30.118c0 8.313 7.62 15.059 16.956 15.059h145.077v-60.236h-145.077zM481.882 77.659h-28.853v40.508h28.853v-40.508zM453.029 238.637v121.524h-405.925c-8.222 0-16.564 4.126-16.564 13.282 0.030 8.945 7.469 16.204 16.564 16.204h434.779v-151.010h-28.853z" />
-<glyph unicode="&#xe6ce;" d="M0 449.882v-451.764h512v451.764h-512zM481.882 359.529h-8.072l-70.957 60.236h79.029v-60.236zM263.318 269.177l70.988 60.236h87.913l-70.988-60.236h-87.913zM204.891 359.529l-70.987 60.236h87.883l70.987-60.236h-87.883zM287.744 329.412l-70.988-60.236h-87.913l70.957 60.236h87.944zM339.365 359.529l-70.988 60.236h87.883l70.988-60.236h-87.883zM30.117 419.764h57.224l70.988-60.236h-128.211v60.236zM30.117 329.412h123.151l-70.987-60.236h-52.164v60.236zM481.882 28.236h-451.764v210.823h451.764v-210.823zM481.882 269.177h-84.089l70.957 60.236h13.132v-60.236z" />
-<glyph unicode="&#xe6cf;" d="M391.259 276.706v67.764c0 24.907-20.42 45.176-45.538 45.176h-225.25v15.059c0 8.313 6.776 15.059 15.059 15.059h166.882v30.118h-166.882c-24.907 0-45.177-20.269-45.177-45.176v-15.059h-44.815c-25.118 0-45.538-20.269-45.538-45.176v-60.266c0-24.907 20.42-45.177 45.538-45.177h15.18v-165.617c0-24.907 20.269-45.176 45.176-45.176h239.857c25.118 0 45.538 20.269 45.538 45.176v67.795l120.712-83.817v303.134l-120.741-83.817zM481.882 114.944l-120.742 83.817v-125.349c0-8.313-6.897-15.059-15.42-15.059h-239.827c-8.282 0-15.059 6.747-15.059 15.059v195.735h-45.297c-8.523 0-15.42 6.746-15.42 15.059v60.265c0 8.313 6.897 15.059 15.42 15.059h300.212c8.493 0 15.42-6.747 15.42-15.059v-125.38l120.712 83.847v-187.994z" />
-<glyph unicode="&#xe6d0;" d="M449.957 299.294c-31.082 19.486-66.68 30.118-103.605 30.118-23.432 0-46.050-4.337-67.433-12.168l77.372 77.372c6.114-3.072 12.89-4.969 20.179-4.969 24.907 0 45.176 20.269 45.176 45.176s-20.269 45.176-45.176 45.176-45.176-20.269-45.176-45.176c0-6.626 1.506-12.891 4.096-18.553l-117.76-117.73c-2.44 0.421-4.94 0.753-7.53 0.753-24.907 0-45.177-20.269-45.177-45.177 0-2.56 0.332-5.060 0.753-7.53l-101.978-101.978c-5.662 2.59-11.897 4.096-18.523 4.096-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176c0 7.288-1.897 14.065-4.969 20.149l77.402 77.403c-7.891-21.534-12.197-44.363-12.197-67.433 0-44.243 18.432-82.372 30.118-102.129v-63.518h90.353v90.353h-70.355c-12.589 24.877-19.998 51.591-19.998 75.294 0 26.714 6.626 53.127 18.914 76.649 3.404-0.813 6.867-1.356 10.481-1.356 24.907 0 45.177 20.269 45.177 45.177 0 5.421-1.114 10.541-2.861 15.36 49.513 34.063 115.862 38.189 169.231 11.234v-71.771h90.353v90.353h-62.043zM376.471 449.882c8.313 0 15.059-6.746 15.059-15.059s-6.747-15.059-15.059-15.059-15.059 6.747-15.059 15.059 6.747 15.059 15.059 15.059zM45.176 88.471c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059-6.746-15.059-15.059-15.059zM210.823 28.236h30.118v-30.118h-30.118v30.118zM210.101 239.059c-8.313 0-15.059 6.746-15.059 15.059s6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059-6.746-15.059-15.059-15.059zM481.882 239.059h-30.118v30.118h30.118v-30.118z" />
-<glyph unicode="&#xe6d1;" d="M79.149 274.779c-2.771 0-6.596-0.091-9.005-0.512l-0.723-0.12-0.362-0.632c-12.288-22.528-36.743-88.365-40.629-98.063-8.433 0.603-19.667 0.572-19.667 11.264 0 7.771 27.227 71.379 30.991 81.829l0.723 1.988h-2.108c-2.53 0-4.999-0.15-7.409-0.332-2.259-0.15-4.397-0.301-6.476-0.301-5.482 0-22.317-0.662-24.335 12.86-0.813 5.602 1.506 11.716 4.186 14.697 0.512-7.349 11.957-7.017 15.059-7.017 6.837 0 21.293 2.861 30.449 4.036 10.632 1.356 22.558 4.458 33.521 4.458 10.993 0 18.974-6.686 18.974-15.842 0-3.192-1.024-6.716-2.981-10.149-5.813 1.325-14.366 1.837-20.209 1.837zM196.488 191.232c-6.234-1.476-14.065-0.783-14.065 12.047 0.060 15.661 17.257 33.822 25.841 33.822 1.536 0 6.053-1.114 5.060-6.114-5.27-26.594-29.516-22.468-27.678-25.509 8.734-14.517 51.531 7.048 47.375 37.587-1.386 10.421-7.68 17.438-19.697 17.438-22.287 0-47.797-33.1-52.315-57.464-9.125-9.276-19.486-8.613-20.269-8.524-0.632 0.873-0.662 2.62 0.392 6.114 1.868 6.144 6.174 15.51 11.113 23.793 4.638 7.74 9.487 15.812 9.487 21.775 0 7.198-4.246 10.843-12.559 10.843-10.873 0-30.87-13.312-30.87-13.312 0.783 6.355 20.992 47.224 20.992 52.736 0 6.445-2.922 10.873-10.933 10.873-2.078 0-8.162-2.078-11.656-3.343-3.343-25.721-16.655-46.954-21.925-58.73-9.849-21.956-20.751-44.935-20.751-54.513 0-9.036 8.704-17.679 18.1-18.070 8.433 31.865 29.034 66.44 43.159 66.44 0 0-16.293-33.942-16.293-49.483 0-7.65 1.626-15.51 13.643-15.51 0.060 0 0.12 0 0.18 0 10.873-1.115 22.648 13.583 27.558 20.54 0.662-16.534 15.089-18.372 21.383-18.372 18.341 0 34.575 11.173 46.893 30.991-6.837-5.662-23.643-14.035-32.166-16.053zM322.59 201.382c0.632 2.469 2.409 7.379 6.686 15.661 5.361 10.421 12.68 24.636 12.68 33.25 0 5.030-2.38 7.259-7.771 7.259-6.897 0-16.776-6.295-25.811-16.414l-2.53-2.801v3.825c0 9.999-2.952 15.059-8.674 15.059-7.349 0-19.365-8.313-30.539-21.203 0 0 2.289 11.505 2.289 15.209 0 7.831-6.867 8.975-10.933 8.975-2.168 0-4.428-0.271-6.776-0.783-0.753-8.764-9.036-27.98-16.354-45.026-4.728-11.053-9.607-22.407-9.607-24.907 0-8.012 5.452-13.192 13.824-13.192 0.422 0 0.844 0 1.295 0.030 6.174 20.751 22.709 51.2 34.425 51.2h2.018l-0.692-1.958c-1.656-5.030-4.276-9.969-6.837-14.758-4.307-8.072-8.313-15.692-8.313-23.823 0-6.626 6.174-10.21 11.987-10.21 1.476 0 2.68 0.151 3.735 0.452 4.247 19.245 26.413 51.591 35.599 51.591h2.711l-1.506-2.319c-2.711-4.277-13.673-24.606-13.673-39.032 0-8.975 4.397-13.312 13.372-13.312 12.469 0 21.384 11.505 24.877 24.004-4.066-2.801-7.62-3.373-11.414-3.373-3.042-0.030-5.572 0.603-4.066 6.596zM377.495 191.744c-6.656-5.512-15.721-0.542-15.872 4.517-0.12 5.541 4.759 15.39 10.812 27.196 4.759 9.367 10.933 15.751 10.361 20.48-0.783 6.686-9.969 11.927-15.692 11.927-0.512 0-0.994-0.030-1.506-0.090-0.271 0-0.482-0.030-0.692-0.030-3.132-8.072-7.168-16.805-11.084-25.299-6.988-15.149-13.613-29.485-13.613-36.984 0-9.397 6.355-19.577 16.625-19.577 10.722 0.542 16.324 5.211 20.661 17.86zM380.596 266.135c2.771 0 6.084 0.301 9.728 0.844 4.728 5.752 7.108 10.601 7.108 14.366 0 3.885-6.084 6.024-23.612 6.174-5.541-5.602-5.24-9.638-5.24-14.125 0.030-4.849 3.976-7.259 12.017-7.259zM493.598 263.183l-0.904-0.030-0.12-0.844c-1.897-14.456-31.594-63.367-37.105-49.483-1.235 3.132 2.289 11.505 5.271 18.462 3.404 7.951 7.228 16.956 6.837 22.016-0.091 1.144-0.482 2.108-1.054 2.952-0.332 0.723-0.964 1.536-2.108 2.259-0.933 0.603-2.168 1.054-3.704 1.445-3.524 1.024-7.83 1.205-11.324 1.084-3.976 0.060-8.342-0.091-12.8-0.362l0.271 0.813c4.247 13.854 15.541 26.774 18.733 28.732 7.861 4.849 18.372 6.024 20.721-4.699 1.988 4.517 2.56 5.813 1.988 9.216-1.687 10.391-9.397 16.022-21.534 16.685-22.046 1.144-37.798-31.111-45.357-49.573l-0.18-0.422-0.361-0.271c-2.139-1.506-6.114-2.5-8.493-3.132-0.512-0.12-0.904-0.241-1.175-0.332-4.608-1.656-5.572-6.144-5.662-8.162-0.12-3.343 3.885-5.813 5.662-8.855 0 0-7.771-19.306-13.402-31.021-8.825-18.281-22.86-49.243-23.1-56.139-0.332-8.403 11.926-16.173 18.613-17.046 2.048 14.035 41.652 103.484 41.652 103.484 1.416 2.168 3.825 5.18 7.62 7.469 3.554 1.446 6.264 1.928 8.342 1.868 0.512-0.12 0.904-0.271 1.265-0.482 1.084-0.602 1.777-1.536 2.168-2.47-1.356-4.819-3.132-9.909-4.909-14.908-3.855-10.903-8.915-27.708-8.252-35.569 0.421-5.029 0.873-7.409 3.554-10.18 8.041-8.252 28.19 5.903 34.183 13.974l0.994-0.421c-7.168-20.42-18.191-34.244-29.967-34.605-15.692-0.542-22.227 9.608-22.227 9.608s-2.651-9.758 7.921-20.57c4.728-4.819 11.746-6.807 18.914-6.264 0.482 0.030 0.964 0.091 1.445 0.12 28.913 3.132 41.502 35.93 51.652 66.771 1.416 4.337 6.295 15.812 7.74 19.938 0.813 2.228 1.837 4.638 2.801 6.957l0.12 0.271c2.289 5.572 3.795 9.337 3.675 11.234-0.632 7.138-9.728 10.692-18.402 10.481z" />
-<glyph unicode="&#xe6d2;" d="M283.136 440.726c-29.997 0-63.156-5.090-99.539-16.444-288.738-90.233-160.106-289.672-122.278-309.369 64.18-33.28-34.666-107.64-34.666-107.64s84.841 24.817 192.874 35.9c129.868 13.252 275.727 32.166 288.889 104.418 20.601 113.272-46.954 293.135-225.28 293.135zM478.78 152.983c-9.849-54.061-180.375-71.469-262.325-79.812-40.749-4.187-78.095-10.24-109.147-16.204 4.246 10.572 6.505 21.654 5.572 32.918-1.054 12.589-7.349 36.020-37.466 51.682-11.204 6.686-51.441 58.73-44.544 116.796 8.855 74.361 92.823 115.652 161.702 137.186 32.045 9.999 62.524 15.059 90.564 15.059 59.362 0 107.851-22.046 144.173-65.566 49.002-58.73 61.169-138.782 51.471-192.060zM120.471 284.236c0 16.595 13.492 30.118 30.117 30.118s30.118-13.523 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.523-30.118 30.118zM271.059 299.294c0 16.655 13.462 30.118 30.118 30.118 16.625 0 30.118-13.463 30.118-30.118 0-16.595-13.493-30.117-30.118-30.117-16.655 0-30.118 13.523-30.118 30.117zM400.565 224c-166.912-184.982-289.13-28.612-289.13-28.612 96.376-86.257 289.13 28.612 289.13 28.612z" />
-<glyph unicode="&#xe6d3;" d="M183.597 424.283c-288.708-90.233-160.106-289.672-122.248-309.369 64.18-33.28-34.696-107.64-34.696-107.64s84.841 24.817 192.874 35.9c129.867 13.252 275.757 32.166 288.889 104.418 24.064 132.307-72.192 355.599-324.819 276.691zM301.176 329.412c16.625 0 30.118-13.463 30.118-30.118 0-16.595-13.493-30.117-30.118-30.117-16.655 0-30.118 13.523-30.118 30.117 0 16.655 13.462 30.118 30.118 30.118zM150.588 314.353c16.625 0 30.118-13.523 30.118-30.118s-13.493-30.118-30.118-30.118-30.118 13.523-30.118 30.118 13.493 30.118 30.118 30.118zM111.436 195.388c96.377-86.257 289.13 28.612 289.13 28.612-166.912-184.982-289.13-28.612-289.13-28.612z" />
-<glyph unicode="&#xe6d4;" d="M403.094 389.647c-28.22 55.085-84.48 90.353-147.095 90.353s-118.844-35.238-147.095-90.353h-108.906v-391.529h512v391.529h-108.906zM256 449.882c45.839 0 87.552-23.1 112.399-60.236h-224.798c24.877 37.105 66.56 60.236 112.399 60.236zM481.882 28.236h-451.764v331.294h451.764v-331.294zM240.941 178.824h-60.236v30.118h60.236v60.236h30.117v-60.236h60.236v-30.118h-60.236v-60.236h-30.118v60.236z" />
-<glyph unicode="&#xe6d5;" d="M512 121.058c0 31.503-25.66 57.163-57.133 57.163h-132.397l37.948 136.042 0.572 106.014c-0.060 32.377-27.558 59.724-60.115 59.724h-90.082c-32.618 0-60.145-27.347-60.145-59.724v-101.225l38.49-140.83h-132.006c-31.473 0-57.133-25.66-57.133-57.163v-122.94h30.117v-30.118h451.764v30.118h30.118v122.94zM481.882 28.236h-451.764v92.822c0 14.908 12.108 27.046 27.016 27.046h171.58l-47.947 172.996v99.177c0 15.781 14.035 29.606 30.028 29.606h90.082c15.932 0 29.937-13.824 29.937-29.606v-99.9l-48.007-172.273h172.062c14.908 0 27.015-12.137 27.015-27.046v-92.822z" />
-<glyph unicode="&#xe6d6;" d="M161.25 303.692l-79.722-79.692 79.692-79.692-21.293-21.293-100.984 100.985 101.014 101.014 21.293-21.323zM372.074 325.014l-21.293-21.293 79.692-79.721-79.692-79.692 21.293-21.293 100.984 100.985-100.985 101.014zM240.941-32h30.117v512h-30.118v-512z" />
-<glyph unicode="&#xe6d7;" d="M498.779 364.228l-42.255 42.285c-16.956 17.017-46.803 17.077-63.88 0l-379.121-379.241 163.66 0.091 65.747 65.295 24.817-23.341 231.032 231.063c8.524 8.493 13.221 19.847 13.221 31.924s-4.699 23.402-13.221 31.925zM204.077 175.33l24.817 24.817 63.518-63.518-24.787-24.847-63.548 63.548zM164.774 57.479l-78.547-0.030 96.557 96.588 39.484-39.484-57.494-57.073zM477.485 321.642l-163.75-163.75-63.548 63.548 163.75 163.78c2.831 2.861 6.596 4.427 10.632 4.427s7.8-1.566 10.661-4.397l42.255-42.285c5.873-5.903 5.873-15.42 0-21.324z" />
-<glyph unicode="&#xe6d8;" d="M0.783 449.882h90.353v-30.118h-60.236v-391.529h60.236v-30.118h-90.353v451.764zM422.43 449.882v-30.118h60.236v-391.529h-60.236v-30.118h90.353v451.764h-90.353zM268.348 240.053c-33.581 13.041-48.399 24.214-48.399 46.983 0 16.625 12.649 36.473 45.869 36.473 22.016 0 38.279-7.198 46.231-11.565l8.674 25.66c-10.812 6.144-28.913 11.926-53.82 11.926-47.315 0-78.728-28.19-78.728-66.108 0-34.334 24.546-54.905 64.301-69 32.858-12.62 45.869-25.63 45.869-48.369 0-24.546-18.793-41.563-50.929-41.563-21.684 0-42.255 7.228-56.35 15.902l-7.951-26.383c13.011-8.644 38.641-15.541 62.102-15.541 57.435 0 85.263 32.497 85.263 70.084 0.030 35.78-20.962 55.627-62.132 71.5z" />
-<glyph unicode="&#xe6d9;" d="M457.999 224l-101.014-101.014-21.293 21.293 79.721 79.721-79.692 79.692 21.293 21.293 100.985-100.984zM210.823-32h30.118v512h-30.118v-512z" />
-<glyph unicode="&#xe6da;" d="M176.309 303.692l-79.722-79.692 79.692-79.692-21.293-21.293-100.984 100.985 101.014 101.014 21.293-21.323zM271.059 480v-512h30.118v512h-30.118z" />
-<glyph unicode="&#xe6db;" d="M0 471.175v-503.175h503.175l-503.175 503.175zM30.117 398.471l89.058-89.058-19.727-19.727 21.293-21.293 19.727 19.727 21.353-21.353-19.727-19.757 21.293-21.293 19.727 19.727 21.383-21.353-19.727-19.727 21.293-21.293 19.727 19.727 21.383-21.384-19.727-19.727 21.293-21.293 19.727 19.727 21.353-21.353-19.727-19.727 21.293-21.293 19.727 19.727 21.384-21.384-19.727-19.727 21.293-21.293 19.727 19.727 76.68-76.68h-400.354v400.354zM60.236 28.236h232.116l-232.117 232.116v-232.116zM90.353 187.648l129.295-129.295h-129.295v129.295z" />
-<glyph unicode="&#xe6dc;" d="M60.236 480v-509.048l61.078 74.722 45.267-56.621 45.207 56.471 45.146-56.471 45.176 56.471 45.176-56.471 45.147 56.471 59.332-74.089v508.567h-391.529zM421.647 57.269l-29.214 36.472-45.147-56.471-45.176 56.471-45.176-56.471-45.147 56.471-45.207-56.471-45.026 56.32-31.202-38.189v394.481h331.294v-392.613zM331.204 359.529h-180.706v30.118h180.706v-30.118zM270.969 239.059h-120.471v30.118h120.471v-30.118zM360.749 299.294h-210.823v30.118h210.823v-30.118zM150.588 178.824h210.823v-30.118h-210.823v30.118z" />
-<glyph unicode="&#xe6dd;" d="M240.941 133.647h30.117v-165.647h-30.118v165.647zM421.647 214.964v-66.259h-331.294v66.259l32.948 14.667 33.31 190.133-12.921 23.462-20.209 36.773h265.036l-20.239-36.773-12.89-23.462 33.31-190.103 32.949-14.697zM391.529 195.418l-29.696 13.252-2.771 15.781-35.178 200.553 5.12 9.307 8.584 15.571h-163.178l13.703-24.908-1.807-10.421-36.141-205.884-29.696-13.252v-16.595h271.059v16.595z" />
-<glyph unicode="&#xe6de;" d="M162.756 152.049l21.293-21.293-158.358-158.328-21.293 21.293 158.358 158.328zM512 292.608l-66.018-19.185-110.893-157.997 12.921-33.671-46.833-46.833-234.255 234.255 46.863 46.863 33.672-12.921 157.967 110.893 7.469 25.72 11.685 40.267 187.422-187.392zM454.716 307.305l-115.411 115.38-4.94-17.076-2.952-10.18-179.803-126.193-30.388 11.655-11.716-11.716 191.668-191.668 11.716 11.746-5.873 15.42-5.752 14.969 9.246 13.132 116.947 166.671 10.18 2.952 17.077 4.909z" />
-<glyph unicode="&#xe6df;" d="M285.877 480h-59.754c-24.907 0-45.177-20.269-45.177-45.176v-320.964l75.927-149.263 74.21 149.353v320.873c-0.030 24.908-20.3 45.176-45.207 45.176zM226.124 449.882h59.754c8.283 0 15.059-6.776 15.059-15.059v-30.69h-89.871v30.69c0 8.283 6.746 15.059 15.059 15.059zM243.291 57.721l-28.13 55.266h81.769l-27.437-55.266h-26.202zM211.065 143.074v169.773h89.871v-169.773h-89.871zM211.065 342.964v31.051h89.871v-31.051h-89.871z" />
-<glyph unicode="&#xe6e0;" d="M256 464.941c-132.849 0-240.941-108.092-240.941-240.941 0-128.933 100.954-234.526 229.828-240.399l38.791-1.777-82.010 82.010c-8.524 8.524-13.221 19.877-13.221 31.955s4.698 23.401 13.221 31.955c17.047 17.046 46.833 17.046 63.88 0l112.007-112.007 10.24 6.716c68.367 44.755 109.147 120.109 109.147 201.548 0 132.849-108.092 240.941-240.941 240.941zM381.289 54.588l-94.419 94.419c-28.401 28.431-78.065 28.431-106.466 0-14.215-14.216-22.046-33.13-22.046-53.248s7.831-39.033 22.046-53.248l22.317-22.317c-91.136 23.582-157.546 106.014-157.546 203.806 0 116.254 94.57 210.823 210.823 210.823s210.823-94.57 210.823-210.823c0-67.162-31.744-129.656-85.534-169.412zM346.353 284.236c-33.22 0-60.236-27.015-60.236-60.236s27.015-60.236 60.236-60.236 60.236 27.015 60.236 60.236-27.015 60.236-60.236 60.236zM346.353 193.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM256 299.294c-24.938 0-45.177 20.209-45.177 45.177s20.239 45.177 45.177 45.177c24.967 0 45.176-20.209 45.176-45.177s-20.209-45.177-45.177-45.177zM173.177 302.577c0-16.625-13.493-30.118-30.118-30.118s-30.118 13.493-30.118 30.118 13.493 30.118 30.118 30.118 30.118-13.463 30.118-30.118z" />
-<glyph unicode="&#xe6e1;" d="M60.236 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.985-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM60.236 208.941c-16.595 0-30.117 13.493-30.117 30.118s13.523 30.118 30.117 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.117-30.118zM256 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM256 208.941c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118zM451.764 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM451.764 208.941c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118z" />
-<glyph unicode="&#xe6e2;" d="M120.471 239.059c0-33.25-26.986-60.236-60.236-60.236s-60.236 26.986-60.236 60.236 26.985 60.236 60.236 60.236 60.236-26.986 60.236-60.236zM256 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM451.764 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236z" />
-<glyph unicode="&#xe6e3;" d="M349.786 268.544c20.721 22.709 33.732 52.615 33.732 85.745 0 70.325-57.193 127.518-127.518 127.518s-127.518-57.193-127.518-127.518c0-33.13 13.011-63.036 33.732-85.745l34.244-240.308h44.484v-59.754h30.118v59.754h44.484l34.244 240.308zM180.706 415.337v-55.808h30.118v80.535c9.306 4.94 19.365 8.433 30.118 10.119v-120.772h30.117v120.772c10.752-1.686 20.812-5.18 30.118-10.12v-80.534h30.118v55.808c13.613-16.775 22.106-37.828 22.106-61.018 0-53.73-43.7-97.43-97.4-97.43s-97.4 43.671-97.4 97.4c0 23.221 8.493 44.273 22.107 61.048zM222.6 58.353l-26.203 183.838c17.86-9.517 37.948-15.451 59.603-15.451s41.743 5.933 59.603 15.481l-26.202-183.868h-66.801z" />
-<glyph unicode="&#xe6e4;" d="M331.294 480v-304.851c0-40.026-33.792-72.553-75.294-72.553s-75.294 32.527-75.294 72.553v304.851h-150.588v-314.188c0-128.482 116.374-197.813 225.882-197.813s225.882 69.331 225.882 197.813v314.188h-150.588zM451.764 449.882v-90.353h-90.353v90.353h90.353zM150.588 449.882v-90.353h-90.353v90.353h90.353zM256-1.882c-78.697 0-195.764 44.664-195.764 167.695v163.599h90.353v-154.262c0-56.621 47.285-102.671 105.412-102.671s105.412 46.050 105.412 102.671v154.262h90.353v-163.599c0-123.031-117.067-167.695-195.764-167.695z" />
-<glyph unicode="&#xe6e5;" d="M512 299.294v-30.117h-512v30.117h512zM0 178.824h512v30.118h-512v-30.118z" />
-<glyph unicode="&#xe6e6;" d="M0 239.119h15.059v-30.117h-15.059v30.118zM71.77 208.971h28.34v30.118h-28.34v-30.118zM156.792 208.971h28.34v30.118h-28.34v-30.118zM326.897 208.941h28.341v30.118h-28.341v-30.118zM241.845 208.971h28.311v30.088h-28.31v-30.088zM411.919 208.941h28.341v30.118h-28.341v-30.118zM496.941 239.059v-30.117h15.059v30.118h-15.059z" />
-<glyph unicode="&#xe6e7;" d="M0 239.059h120.471v-30.117h-120.471v30.118zM195.764 208.941h120.471v30.118h-120.471v-30.118zM391.529 239.059v-30.117h120.471v30.118h-120.471z" />
-<glyph unicode="&#xe6e8;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764z" />
-<glyph unicode="&#xe6e9;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764zM90.353 239.059h30.117v-30.117h-30.118v30.118zM90.353 359.529h30.117v-30.117h-30.118v30.117zM90.353 178.824h30.117v-30.118h-30.118v30.118zM90.353 299.294h30.117v-30.117h-30.118v30.117zM90.353 419.764h30.117v-30.118h-30.118v30.118zM90.353 58.353h30.117v-30.118h-30.118v30.118zM90.353 118.588h30.117v-30.118h-30.118v30.118zM391.529 419.764h30.118v-30.118h-30.118v30.118zM391.529 299.294h30.118v-30.117h-30.118v30.117zM391.529 359.529h30.118v-30.117h-30.118v30.117zM391.529 239.059h30.118v-30.117h-30.118v30.118zM391.529 178.824h30.118v-30.118h-30.118v30.118zM391.529 118.588h30.118v-30.118h-30.118v30.118zM391.529 58.353h30.118v-30.118h-30.118v30.118z" />
-<glyph unicode="&#xe6ea;" d="M60.236-1.882h30.118v-30.118h-30.117v30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM421.647 389.647h30.118v30.118h-30.118v-30.118zM421.647 329.412h30.118v30.117h-30.118v-30.117zM421.647 88.471h30.118v30.118h-30.118v-30.118zM421.647 269.177h30.118v30.117h-30.118v-30.117zM421.647 208.941h30.118v30.118h-30.118v-30.118zM421.647 28.236h30.118v30.118h-30.118v-30.118zM421.647 148.706h30.118v30.118h-30.118v-30.118zM421.647 480v-30.118h30.118v30.118h-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM60.236 449.882h30.118v30.118h-30.117v-30.118zM60.236 88.471h30.118v30.118h-30.117v-30.118zM60.236 28.236h30.118v30.118h-30.117v-30.118zM60.236 148.706h30.118v30.118h-30.117v-30.118zM60.236 389.647h30.118v30.118h-30.117v-30.118zM60.236 329.412h30.118v30.117h-30.117v-30.117zM60.236 269.177h30.118v30.117h-30.117v-30.117zM60.236 208.941h30.118v30.118h-30.117v-30.118z" />
-<glyph unicode="&#xe6eb;" d="M210.823 389.647v30.118h-210.823v-421.647h512v391.529h-301.176zM331.294 359.529v-30.117h-120.471v30.117h120.471zM481.882 28.236h-451.764v361.412h150.588v-90.353h301.176v-271.059zM361.412 329.412v30.117h120.471v-30.117h-120.471z" />
-<glyph unicode="&#xe6ec;" d="M361.412 419.764h-361.412v-421.647h512v421.647h-150.588zM481.882 389.647v-60.236h-120.471v60.236h120.471zM331.294 389.647v-60.236h-150.588v60.236h150.588zM30.117 389.647h120.47v-60.236h-120.471v60.236zM481.882 28.236h-451.764v271.059h451.764v-271.059z" />
-<glyph unicode="&#xe6ed;" d="M180.706 449.882v-30.118h-180.706v-120.471h30.117v-120.47h150.588v-181.248h331.294v452.307h-331.294zM60.236 299.294h120.471v-30.117h-120.471v30.117zM60.236 208.941v30.118h120.471v-30.118h-120.471zM481.882 27.693h-271.059v301.719h-180.706v60.236h180.706v30.118h271.059v-392.072z" />
-<glyph unicode="&#xe6ee;" d="M210.823 419.764v30.118h-210.823v-120.38h30.117v90.262h150.588v-90.353h331.294v90.353h-301.176zM210.823 389.647h120.47v-30.118h-120.471v30.118zM361.412 359.529v30.118h120.471v-30.118h-120.471z" />
-<glyph unicode="&#xe6ef;" d="M0 449.882v-421.647h512v421.647h-512zM481.882 58.353h-451.764v361.412h451.764v-361.412zM139.927 168.162l-70.867 70.897 70.897 70.897 21.293-21.293-49.604-49.604 49.574-49.574-21.293-21.324zM350.75 189.485l49.604 49.573-49.574 49.573 21.293 21.293 70.867-70.867-70.897-70.897-21.293 21.324z" />
-<glyph unicode="&#xe6f0;" d="M60.236 58.353h391.529v331.294h-391.529v-331.294zM90.353 359.529h331.294v-271.059h-331.294v271.059zM481.882 343.537h30.118v-239.074h-30.118v239.074zM0 343.537h30.117v-239.074h-30.117v239.074z" />
-<glyph unicode="&#xe6f1;" d="M512 480v-512h-150.588v512h150.588zM271.059-32h30.118v30.118h-30.118v-30.118zM217.54-32h26.774v30.118h-26.774v-30.118zM56.892-32h26.774v30.118h-26.775v-30.118zM110.442-32h26.775v30.118h-26.775v-30.118zM163.99-32h26.774v30.118h-26.774v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM0 208.941h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 269.177h30.117v30.117h-30.117v-30.117zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 449.882h30.117v30.118h-30.117v-30.118zM244.284 480h-26.774v-30.118h26.774v30.118zM190.735 480h-26.774v-30.118h26.774v30.118zM83.636 480h-26.745v-30.118h26.775v30.118zM137.186 480h-26.745v-30.118h26.775v30.118zM271.059 449.882h30.118v30.118h-30.118v-30.118zM271.059 28.236h30.118v30.118h-30.118v-30.118zM271.059 88.471h30.118v30.118h-30.118v-30.118zM271.059 208.941h30.118v30.118h-30.118v-30.118zM271.059 148.706h30.118v30.118h-30.118v-30.118zM271.059 329.412h30.118v30.117h-30.118v-30.117zM271.059 269.177h30.118v30.117h-30.118v-30.117zM271.059 389.647h30.118v30.118h-30.118v-30.118z" />
-<glyph unicode="&#xe6f2;" d="M0-1.882h30.117v-30.118h-30.117v30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM60.236 449.882h30.118v30.118h-30.117v-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 269.177h30.117v30.117h-30.117v-30.117z" />
-<glyph unicode="&#xe6f3;" d="M0 480h150.588v-512h-150.588v512zM210.823-32h30.118v30.118h-30.118v-30.118zM428.333-32h26.774v30.118h-26.774v-30.118zM374.784-32h26.774v30.118h-26.774v-30.118zM267.716-32h26.774v30.118h-26.774v-30.118zM321.265-32h26.774v30.118h-26.774v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM428.363 449.882h26.774v30.118h-26.774v-30.118zM374.814 449.882h26.774v30.118h-26.774v-30.118zM321.265 449.882h26.774v30.118h-26.774v-30.118zM267.716 449.882h26.774v30.118h-26.774v-30.118zM210.823 449.882h30.118v30.118h-30.118v-30.118zM210.823 28.236h30.118v30.118h-30.118v-30.118zM210.823 88.471h30.118v30.118h-30.118v-30.118zM210.823 269.177h30.118v30.117h-30.118v-30.117zM210.823 148.706h30.118v30.118h-30.118v-30.118zM210.823 329.412h30.118v30.117h-30.118v-30.117zM210.823 389.647h30.118v30.118h-30.118v-30.118zM210.823 208.941h30.118v30.118h-30.118v-30.118z" />
-<glyph unicode="&#xe6f4;" d="M0.632 449.521v-451.764h512v451.764h-512zM245.067 223.729l-214.317-186.639v373.82l214.317-187.181zM43.941 419.404h425.803l-213.203-185.675-212.601 185.675zM256.512 213.73l212.811-185.856h-426.225l213.413 185.856zM267.987 223.729l214.528 186.85v-374.212l-214.528 187.362z" />
-<glyph unicode="&#xe6f5;" d="M0 269.177v-90.353h391.529v90.353h-391.529zM240.941 239.059v-30.117h-90.353v30.118h90.353zM30.117 239.059h90.353v-30.117h-90.353v30.118zM361.412 208.941h-90.353v30.118h90.353v-30.118z" />
-<glyph unicode="&#xe6f6;" d="M90.353 449.882v-90.353h331.294v90.353h-331.294zM391.529 389.647h-271.059v30.118h271.059v-30.118zM90.353 239.059h331.294v90.353h-331.294v-90.353zM120.471 299.294h271.059v-30.117h-271.059v30.117zM90.353 118.678h331.294v90.353h-331.294v-90.353zM120.471 178.914h271.059v-30.118h-271.059v30.118zM90.353-1.792h331.294v90.353h-331.294v-90.353zM120.471 58.443h271.059v-30.118h-271.059v30.118z" />
-<glyph unicode="&#xe6f7;" d="M0 178.824h150.588v90.353h-150.588v-90.353zM30.117 239.059h90.353v-30.117h-90.353v30.118zM180.706 178.824h150.588v90.353h-150.588v-90.353zM210.823 239.059h90.353v-30.117h-90.353v30.118zM361.412 269.177v-90.353h150.588v90.353h-150.588zM481.882 208.941h-90.353v30.118h90.353v-30.118z" />
-<glyph unicode="&#xe6f8;" d="M0 269.177v-90.353h512v90.353h-512zM271.059 239.059h90.353v-30.117h-90.353v30.118zM240.941 208.941h-90.353v30.118h90.353v-30.118zM30.117 239.059h90.353v-30.117h-90.353v30.118zM481.882 208.941h-90.353v30.118h90.353v-30.118z" />
-<glyph unicode="&#xe6f9;" d="M60.236 88.471h451.764v-30.118h-451.764v30.118zM210.823-1.671h301.177v30.118h-301.176v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
-<glyph unicode="&#xe6fa;" d="M240.941 359.529v-271.059h271.059v271.059h-271.059zM481.882 118.588h-210.824v210.824h210.823v-210.824zM35.358 359.529h175.465v-30.117h-175.465v30.117zM105.502 239.179h105.322v-30.117h-105.322v30.118zM210.553 269.236h-210.553v30.118h210.553v-30.118zM0.271 179.034h210.553v-30.118h-210.553v30.118zM35.358 118.588h175.465v-30.118h-175.465v30.118z" />
-<glyph unicode="&#xe6fb;" d="M451.764 118.588h-391.529v30.118h391.529v-30.118zM361.412 88.682h-301.176v-30.118h301.176v30.118zM512 449.882v-451.764h-512v451.764h512zM481.882 419.764h-451.764v-391.529h451.764v391.529z" />
-<glyph unicode="&#xe6fc;" d="M0 419.764v-361.412h512v361.412h-512zM30.117 178.522v211.125h451.764v-211.125h-451.764z" />
-<glyph unicode="&#xe6fd;" d="M361.412 208.941h-301.176v30.118h301.176v-30.118zM361.412 178.824h-301.176v-30.118h301.176v30.118zM512 449.882v-451.764h-512v451.764h512zM481.882 419.764h-451.764v-391.529h451.764v391.529z" />
-<glyph unicode="&#xe6fe;" d="M0 88.471h451.764v-30.118h-451.764v30.118zM0-1.671h301.176v30.118h-301.176v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
-<glyph unicode="&#xe6ff;" d="M301.176 359.529h175.465v-30.117h-175.466v30.117zM301.176 239.179h105.322v-30.117h-105.322v30.118zM301.447 299.355h210.553v-30.118h-210.553v30.118zM301.176 179.034h210.553v-30.118h-210.553v30.118zM301.176 118.588h175.465v-30.118h-175.466v30.118zM0 88.471h271.059v271.059h-271.059v-271.059zM30.117 329.412h210.823v-210.824h-210.823v210.824z" />
-<glyph unicode="&#xe700;" d="M30.117 88.471h451.764v-30.118h-451.764v30.118zM120.471-1.671h271.059v30.118h-271.059v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
-<glyph unicode="&#xe701;" d="M30.117 359.529v-180.706h451.764v180.706h-451.764zM451.764 208.941h-391.529v120.471h391.529v-120.471zM421.647 148.706v-30.118h-331.294v30.118h331.294zM60.236 88.471h391.529v-30.118h-391.529v30.118z" />
-<glyph unicode="&#xe702;" d="M451.764 359.529h-271.059v30.118h271.059v-30.118zM180.706 329.412v-30.118h331.294v30.118h-331.294zM0 419.764h150.588v-150.588h-150.588v150.588zM30.117 299.294h90.353v90.353h-90.353v-90.353zM451.764 178.824h-271.059v-30.118h271.059v30.118zM180.706 88.471h331.294v30.118h-331.294v-30.118zM0 208.941h150.588v-150.588h-150.588v150.588zM30.117 88.471h90.353v90.353h-90.353v-90.353z" />
-<glyph unicode="&#xe703;" d="M451.764 329.412h-271.059v30.117h271.059v-30.117zM180.706 299.294v-30.117h331.294v30.117h-331.294zM0 239.059h150.588v150.588h-150.588v-150.588zM451.764 148.706h-271.059v-30.118h271.059v30.118zM180.706 58.353h331.294v30.118h-331.294v-30.118zM0 28.236h150.588v150.588h-150.588v-150.588z" />
-<glyph unicode="&#xe704;" d="M421.647 329.412h-421.647v60.236h421.647v-60.236zM0 299.294v-30.117h512v30.117h-512zM421.647 178.824h-421.647v-60.236h421.647v60.236zM0 58.353h512v30.118h-512v-30.118z" />
-<glyph unicode="&#xe705;" d="M496.851 329.412h-75.204v30.117h75.204v-30.117zM466.793 239.179h-45.147v-30.117h45.147v30.118zM421.767 299.355v-30.118h90.233v30.118h-90.233zM421.647 148.916h90.233v30.118h-90.233v-30.118zM421.647 88.471h75.204v30.118h-75.204v-30.118zM0 359.529h391.529v-271.059h-391.529v271.059zM30.117 118.588h331.294v210.824h-331.294v-210.824z" />
-<glyph unicode="&#xe706;" d="M512 239.059v-30.117h-512v30.118h512z" />
-<glyph unicode="&#xe707;" d="M30.117 359.529h90.353v90.353h-90.353v-90.353zM60.236 419.764h30.118v-30.118h-30.117v30.118zM150.588 359.529h90.353v90.353h-90.353v-90.353zM180.706 419.764h30.118v-30.118h-30.118v30.118zM271.059 359.529h90.353v90.353h-90.353v-90.353zM301.176 419.764h30.118v-30.118h-30.118v30.118zM391.529 449.882v-90.353h90.353v90.353h-90.353zM451.764 389.647h-30.118v30.118h30.118v-30.118zM30.117 239.059h90.353v90.353h-90.353v-90.353zM60.236 299.294h30.118v-30.117h-30.117v30.117zM150.588 239.059h90.353v90.353h-90.353v-90.353zM180.706 299.294h30.118v-30.117h-30.118v30.117zM271.059 239.059h90.353v90.353h-90.353v-90.353zM301.176 299.294h30.118v-30.117h-30.118v30.117zM391.529 239.059h90.353v90.353h-90.353v-90.353zM421.647 299.294h30.118v-30.117h-30.118v30.117zM30.117 118.588h90.353v90.353h-90.353v-90.353zM60.236 178.824h30.118v-30.118h-30.117v30.118zM150.588 118.588h90.353v90.353h-90.353v-90.353zM180.706 178.824h30.118v-30.118h-30.118v30.118zM271.059 118.588h90.353v90.353h-90.353v-90.353zM301.176 178.824h30.118v-30.118h-30.118v30.118zM391.529 118.588h90.353v90.353h-90.353v-90.353zM421.647 178.824h30.118v-30.118h-30.118v30.118zM30.117-1.882h90.353v90.353h-90.353v-90.353zM60.236 58.353h30.118v-30.118h-30.117v30.118zM150.588-1.882h90.353v90.353h-90.353v-90.353zM180.706 58.353h30.118v-30.118h-30.118v30.118zM271.059-1.882h90.353v90.353h-90.353v-90.353zM301.176 58.353h30.118v-30.118h-30.118v30.118zM391.529-1.882h90.353v90.353h-90.353v-90.353zM421.647 58.353h30.118v-30.118h-30.118v30.118z" />
-<glyph unicode="&#xe708;" d="M0 329.412h150.588v150.588h-150.588v-150.588zM30.117 449.882h90.353v-90.353h-90.353v90.353zM180.706 329.412h150.588v150.588h-150.588v-150.588zM210.823 449.882h90.353v-90.353h-90.353v90.353zM361.412 480v-150.588h150.588v150.588h-150.588zM481.882 359.529h-90.353v90.353h90.353v-90.353zM0 148.706h150.588v150.588h-150.588v-150.588zM30.117 269.177h90.353v-90.353h-90.353v90.353zM180.706 148.706h150.588v150.588h-150.588v-150.588zM210.823 269.177h90.353v-90.353h-90.353v90.353zM361.412 148.706h150.588v150.588h-150.588v-150.588zM391.529 269.177h90.353v-90.353h-90.353v90.353zM0-32h150.588v150.588h-150.588v-150.588zM30.117 88.471h90.353v-90.353h-90.353v90.353zM180.706-32h150.588v150.588h-150.588v-150.588zM210.823 88.471h90.353v-90.353h-90.353v90.353zM361.412-32h150.588v150.588h-150.588v-150.588zM391.529 88.471h90.353v-90.353h-90.353v90.353z" />
-<glyph unicode="&#xe709;" d="M0 269.177h210.823v210.823h-210.823v-210.823zM30.117 449.882h150.588v-150.588h-150.588v150.588zM271.059 480v-210.823h210.824v210.823h-210.823zM451.764 299.294h-150.588v150.588h150.588v-150.588zM0-1.882h210.823v210.824h-210.823v-210.823zM30.117 178.824h150.588v-150.588h-150.588v150.588zM271.059-1.882h210.824v210.824h-210.823v-210.823zM301.176 178.824h150.588v-150.588h-150.588v150.588z" />
-<glyph unicode="&#xe70a;" d="M0 419.764h90.353v-90.353h-90.353v90.353zM271.059 329.412h90.353v90.353h-90.353v-90.353zM0 88.471h90.353v90.353h-90.353v-90.353zM271.059 88.471h90.353v90.353h-90.353v-90.353zM120.471 389.647h120.471v30.118h-120.471v-30.118zM120.471 329.412h120.471v30.117h-120.471v-30.117zM391.529 419.764v-30.118h120.471v30.118h-120.471zM391.529 329.412h120.471v30.117h-120.471v-30.117zM210.823 299.324h-90.353v-30.118h90.353v30.118zM481.882 299.324h-90.353v-30.118h90.353v30.118zM120.471 148.706h120.471v30.118h-120.471v-30.118zM120.471 88.471h120.471v30.118h-120.471v-30.118zM391.529 148.706h120.471v30.118h-120.471v-30.118zM391.529 88.471h120.471v30.118h-120.471v-30.118zM120.471 28.265h90.353v30.118h-90.353v-30.118zM391.529 28.265h90.353v30.118h-90.353v-30.118z" />
-<glyph unicode="&#xe70b;" d="M0 389.647v-331.294h512v331.294h-512zM481.882 88.471h-451.764v271.059h451.764v-271.059zM421.647 239.059h-301.176v30.118h301.176v-30.118zM271.059 208.941h150.588v-60.236h-150.588v60.236z" />
-<glyph unicode="&#xe70c;" d="M0 389.647v-331.294h512v331.294h-512zM481.882 88.471h-451.764v271.059h451.764v-271.059zM391.529 239.059h-301.176v30.118h301.176v-30.118zM240.941 148.706h-150.588v60.236h150.588v-60.236z" />
-<glyph unicode="&#xe70d;" d="M421.647 239.059h-331.294v30.118h331.294v-30.118zM512 389.647v-331.294h-512v331.294h512zM481.882 359.529h-451.764v-271.059h451.764v271.059zM191.458 148.706h129.084v60.236h-129.084v-60.236z" />
-<glyph unicode="&#xe70e;" d="M271.059 269.177h-210.823v30.117h210.823v-30.117zM120.26 208.941h150.588v30.118h-150.588v-30.118zM512 389.647v-301.176h-512v301.176h512zM481.882 359.529h-451.764v-240.941h451.764v240.941zM451.764 299.294h-150.588v-60.235h150.588v60.235z" />
-<glyph unicode="&#xe70f;" d="M451.764 269.177h-210.823v30.117h210.823v-30.117zM241.152 208.941h150.588v30.118h-150.588v-30.118zM512 389.647v-301.176h-512v301.176h512zM481.882 359.529h-451.764v-240.941h451.764v240.941zM210.823 299.294h-150.588v-60.235h150.588v60.235z" />
-<glyph unicode="&#xe710;" d="M30.117-32h90.353v512h-90.353v-512zM60.236 449.882h30.118v-451.764h-30.117v451.764zM150.588-32h90.353v512h-90.353v-512zM180.706 449.882h30.118v-451.764h-30.118v451.764zM271.059-32h90.353v512h-90.353v-512zM301.176 449.882h30.118v-451.764h-30.118v451.764zM391.529 480v-512h90.353v512h-90.353zM451.764-1.882h-30.118v451.764h30.118v-451.764z" />
-<glyph unicode="&#xe711;" d="M0-32h150.588v512h-150.588v-512zM30.117 449.882h90.353v-451.764h-90.353v451.764zM180.706-32h150.588v512h-150.588v-512zM210.823 449.882h90.353v-451.764h-90.353v451.764zM361.412 480v-512h150.588v512h-150.588zM481.882-1.882h-90.353v451.764h90.353v-451.764z" />
-<glyph unicode="&#xe712;" d="M0-32h240.941v512h-240.941v-512zM30.117 449.882h180.706v-451.764h-180.706v451.764zM271.059 480v-512h240.941v512h-240.941zM481.882-1.882h-180.706v451.764h180.706v-451.764z" />
-<glyph unicode="&#xe713;" d="M0 480v-90.353h512v90.353h-512zM481.882 419.764h-451.764v30.118h451.764v-30.118zM0 88.471h512v271.059h-512v-271.059zM30.117 329.412h451.764v-210.824h-451.764v210.824zM0-32h512v90.353h-512v-90.353zM30.117 28.236h451.764v-30.118h-451.764v30.118z" />
-<glyph unicode="&#xe714;" d="M0 480v-512h512v512h-512zM481.882 449.882v-271.059h-451.764v271.059h451.764zM481.882 148.706v-60.236h-451.764v60.236h451.764zM30.117-1.882v60.236h451.764v-60.236h-451.764z" />
-<glyph unicode="&#xe715;" d="M120.471 480v-271.059h391.529v271.059h-391.529zM481.882 239.059h-331.294v210.823h331.294v-210.823zM0 389.647h90.353v90.353h-90.353v-90.353zM30.117 449.882h30.117v-30.118h-30.117v30.118zM120.471 88.471h391.529v90.353h-391.529v-90.353zM150.588 148.706h331.294v-30.118h-331.294v30.118zM0 88.471h90.353v90.353h-90.353v-90.353zM30.117 148.706h30.117v-30.118h-30.117v30.118zM120.471-32h391.529v90.353h-391.529v-90.353zM150.588 28.236h331.294v-30.118h-331.294v30.118zM0-32h90.353v90.353h-90.353v-90.353zM30.117 28.236h30.117v-30.118h-30.117v30.118z" />
-<glyph unicode="&#xe716;" d="M90.353 480v-195.735l164.623-286.087 166.671 286.058v195.764h-331.294zM255.126 58.353h0.060l-0.030-0.060-0.030 0.060zM256 299.294c-16.625 0-30.118 13.523-30.118 30.118s13.493 30.117 30.118 30.117 30.118-13.523 30.118-30.117-13.493-30.118-30.118-30.118zM391.529 292.367l-120.471-206.788v185.736c25.901 6.716 45.176 30.118 45.176 58.097 0 33.22-27.015 60.236-60.236 60.236s-60.236-27.015-60.236-60.236c0-27.979 19.275-51.38 45.177-58.097v-188.356l-120.471 209.378v157.546h271.059v-157.515z" />
-<glyph unicode="&#xe717;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM271.059 107.475h29.485v-30.118h-89.088v30.118h29.485v133.12h-28.492v30.118h58.609v-163.238zM216.395 329.833c0 16.414 13.282 29.696 29.696 29.696s29.666-13.282 29.666-29.696c0-16.354-13.252-29.636-29.666-29.636s-29.696 13.282-29.696 29.636z" />
-<glyph unicode="&#xe718;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM290.876 111.993c0-17.107-13.914-31.051-31.051-31.051-17.197 0-31.112 13.945-31.112 31.051 0 17.167 13.915 31.082 31.112 31.082 17.137 0 31.051-13.884 31.051-31.082zM321.115 353.054c13.493-17.016 20.3-39.996 16.565-55.868-7.319-30.931-25.359-47.195-41.291-61.531-16.354-14.728-28.13-25.299-28.13-49.604h-30.118c0 37.677 20.209 55.899 38.069 71.981 13.884 12.499 26.986 24.305 32.106 46.050 1.024 4.307-1.175 18.070-10.842 30.268-9.246 11.716-21.925 17.649-37.587 17.649-53.579 0-56.29-43.49-56.411-48.459l-30.118 0.813c0.723 26.895 19.727 77.764 86.528 77.764 24.636 0 46.351-10.33 61.229-29.063z" />
-<glyph unicode="&#xe719;" d="M471.884 298.782c-28.822 107.128-116.344 181.218-215.884 181.218-99.238 0-187.091-74.21-215.883-181.218-22.498-2.47-40.117-21.444-40.117-44.665v-120.471c0-18.824 11.505-34.937 27.828-41.713 5.843-52.615 50.086-93.817 104.237-93.817h81.529c6.234-17.498 22.799-30.117 42.406-30.117h90.353c24.907 0 45.176 20.269 45.176 45.176s-20.269 45.176-45.176 45.176h-90.353c-19.607 0-36.172-12.62-42.406-30.118h-81.529c-36.382 0-66.771 25.901-73.758 60.236h32.045v30.118h30.118v150.588h-30.118v30.118h-18.251c27.498 89.178 100.954 150.588 183.899 150.588 83.185 0 156.401-61.35 183.899-150.588h-18.252v-30.118h-30.118v-150.588h30.118v-30.118h45.357c24.817 0 44.996 20.269 44.996 45.176v120.471c0 23.221-17.619 42.195-40.116 44.664zM256 28.236h90.353c8.283 0 15.059-6.747 15.059-15.059s-6.776-15.059-15.059-15.059h-90.353c-8.282 0-15.059 6.747-15.059 15.059s6.776 15.059 15.059 15.059zM60.236 118.588h-15.239c-8.192 0-14.878 6.747-14.878 15.059v120.471c0 8.313 6.686 15.059 14.878 15.059h15.239v-150.588zM481.882 133.647c0-8.313-6.686-15.059-14.878-15.059h-15.24v150.588h15.24c8.192 0 14.878-6.746 14.878-15.059v-120.471z" />
-<glyph unicode="&#xe71a;" d="M436.706 231.951v-95.955c0-20.179-9.698-46.833-18.252-70.325-5.572-15.269-11.866-32.587-11.866-39.454v-25.75c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v25.75c0 12.168 6.053 28.762 13.673 49.755 7.71 21.142 16.444 45.116 16.444 59.995v95.985c0 8.734-7.108 16.113-15.541 16.113-8.795 0-13.673-7.891-13.945-15.661-0.271-8.192-6.295-15.269-15.3-14.517-8.192 0.151-14.788 6.867-14.788 15.059v47.044c0 8.915-6.837 16.173-15.209 16.173-7.951 0-14.577-6.626-15.119-15.059-0.512-8.132-6.867-14.607-15.51-14.095-8.132 0.271-14.577 6.927-14.577 15.059v38.159c0 8.885-6.747 16.113-15.059 16.113-7.8 0-14.668-6.084-15.691-13.884-1.024-7.831-7.891-13.884-15.902-13.071-7.921 0.512-14.095 7.077-14.095 15.029v109.357c0 8.885-6.837 16.113-15.209 16.113s-15.209-7.228-15.209-16.113v-186.127c0-6.204-3.795-11.776-9.577-14.035-5.752-2.259-12.348-0.723-16.565 3.825l-33.551 36.472c-13.824 13.915-18.281 11.264-22.528 8.644-7.409-4.397-9.969-14.577-5.662-22.287l99.027-213.775c1.596-2.74 4.97-5.361 8.945-6.355 6.716-1.716 11.385-7.71 11.385-14.607v-25.058c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v15.029c-7.018 4.036-12.86 9.939-17.017 17.288l-98.996 213.775c-11.836 20.902-4.427 49.122 17.017 61.862 28.913 17.317 51.291-5.21 59.693-13.673l7.831-8.493v147.516c0 25.51 20.359 46.231 45.327 46.231s45.327-20.721 45.327-46.231v-70.023c4.879 1.747 10.119 2.71 15.571 2.71 23.823 0 43.37-18.944 45.056-42.887 4.759 1.777 9.878 2.71 15.209 2.71 24.998 0 45.327-20.751 45.327-46.291v-4.096c4.367 1.476 9.036 2.259 13.945 2.259 25.148 0.030 45.628-20.721 45.628-46.201z" />
-<glyph unicode="&#xe71b;" d="M509.651 254.298c0-24.968-20.721-45.297-46.231-45.297h-70.024c1.777-4.879 2.74-10.149 2.74-15.601 0-23.823-18.944-43.37-42.887-45.056 1.747-4.759 2.68-9.849 2.68-15.18 0-24.998-20.751-45.357-46.26-45.357h-4.096c1.476-4.367 2.259-9.036 2.259-13.945 0-25.148-20.781-45.628-46.26-45.628h-95.924c-20.179 0-46.833 9.698-70.355 18.252-15.27 5.572-32.557 11.866-39.424 11.866h-25.75c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h25.75c12.137 0 28.732-6.024 49.694-13.673 21.203-7.71 45.207-16.444 60.084-16.444h95.924c8.764 0 16.143 7.108 16.143 15.541 0 8.795-7.891 13.673-15.661 13.945-8.192 0.301-14.667 7.108-14.517 15.33s6.867 14.788 15.059 14.788h47.044c8.915 0 16.143 6.837 16.143 15.24 0 7.951-6.596 14.547-14.998 15.089-8.162 0.512-14.396 7.349-14.156 15.51 0.271 8.132 6.897 14.577 15.059 14.577h38.189c8.885 0 16.113 6.776 16.113 15.059 0 7.8-6.114 14.697-13.914 15.692-7.861 1.024-13.583 8.012-13.071 15.902 0.542 7.951 7.077 14.095 15.029 14.095h109.357c8.885 0 16.113 6.806 16.113 15.179 0 8.403-7.228 15.24-16.113 15.24h-186.127c-6.204 0-11.776 3.795-14.035 9.577s-0.692 12.348 3.855 16.565l36.472 33.521c13.854 13.824 11.204 18.221 8.644 22.528-4.457 7.499-14.457 10.089-22.348 5.662l-213.745-98.997c-2.68-1.566-5.3-4.939-6.355-8.945-1.656-6.716-7.65-11.385-14.577-11.385h-25.058c-8.313 0-15.059 6.746-15.059 15.059s6.746 15.059 15.059 15.059h15.029c4.036 7.018 9.909 12.891 17.258 16.987l213.775 99.027c20.872 11.746 49.152 4.397 61.892-17.016 17.288-28.822-5.211-51.26-13.644-59.693l-8.493-7.83h147.486c25.479 0 46.231-20.36 46.231-45.357z" />
-<glyph unicode="&#xe71c;" d="M494.592 73.412c0-8.313-6.747-15.059-15.059-15.059h-25.75c-6.837 0-24.154-6.295-39.424-11.866-23.522-8.553-50.176-18.252-70.355-18.252h-95.924c-25.51 0-46.261 20.48-46.261 45.659 0 4.909 0.783 9.577 2.259 13.945h-4.066c-25.51 0-46.261 20.36-46.261 45.357 0 5.331 0.934 10.421 2.68 15.18-23.944 1.656-42.888 21.203-42.888 45.026 0 5.452 0.964 10.692 2.74 15.601h-70.053c-25.509 0-46.23 20.329-46.23 45.297 0 24.997 20.721 45.357 46.23 45.357h147.486l-8.012 7.379c-8.915 8.885-31.412 31.322-14.095 60.175 12.74 21.384 40.96 28.763 62.886 16.475l211.667-97.942c8.072-4.488 14.185-10.481 18.281-17.559h15.059c8.313 0 15.059-6.747 15.059-15.059s-6.747-15.059-15.059-15.059h-25.028c-6.897 0-12.921 4.668-14.607 11.385-1.024 4.006-3.644 7.379-7.379 9.487l-211.667 97.913c-8.855 4.94-18.884 2.409-23.341-5.090-2.59-4.337-5.24-8.734 9.036-23.010l36.020-33.069c4.578-4.216 6.084-10.752 3.825-16.565s-7.831-9.577-14.035-9.577h-186.127c-8.855 0-16.083-6.837-16.083-15.239 0-8.373 7.228-15.179 16.113-15.179h109.357c7.951 0 14.517-6.144 15.029-14.095 0.512-7.921-5.21-14.878-13.071-15.902-7.8-0.994-13.884-7.921-13.884-15.721 0-8.283 7.228-15.059 16.113-15.059h38.189c8.132 0 14.818-6.476 15.059-14.577 0.241-8.162-6.024-14.998-14.125-15.51-8.433-0.542-15.029-7.138-15.029-15.089 0-8.403 7.258-15.24 16.143-15.24h47.044c8.222 0 14.908-6.596 15.059-14.788s-6.325-15.029-14.517-15.33c-7.77-0.271-15.661-5.15-15.661-13.945 0-8.403 7.409-15.51 16.143-15.51h95.924c14.878 0 38.882 8.734 60.055 16.444 20.962 7.65 37.556 13.673 49.694 13.673h25.75c8.342 0 15.089-6.747 15.089-15.059z" />
-<glyph unicode="&#xe71d;" d="M414.208 139.58c-28.793-17.378-51.26 5.211-59.693 13.673l-7.83 8.493v-147.516c0-25.51-20.329-46.231-45.327-46.231s-45.327 20.721-45.327 46.231v70.024c-4.879-1.777-10.119-2.74-15.571-2.74-23.793 0-43.369 18.944-45.056 42.887-4.758-1.777-9.879-2.711-15.209-2.711-24.998 0-45.327 20.751-45.327 46.291v4.096c-4.367-1.476-9.035-2.259-13.945-2.259-25.148 0-45.628 20.751-45.628 46.231v95.955c0 20.179 9.698 46.833 18.252 70.325 5.572 15.269 11.867 32.587 11.867 39.424v25.781c0 8.313 6.746 15.059 15.059 15.059s15.059-6.747 15.059-15.059v-25.75c0-12.168-6.024-28.762-13.674-49.755-7.71-21.173-16.444-45.147-16.444-60.024v-95.955c0-8.734 7.108-16.113 15.54-16.113 8.794 0 13.674 7.891 13.944 15.661 0.301 8.132 6.957 14.517 15.059 14.517 0.090 0 0.18 0 0.271 0 8.192-0.15 14.788-6.867 14.788-15.059v-47.044c0-8.915 6.837-16.173 15.209-16.173 7.951 0 14.577 6.626 15.119 15.059 0.482 8.101 7.077 14.156 15.481 14.095 8.132-0.271 14.577-6.927 14.577-15.059v-38.189c0-8.885 6.776-16.113 15.059-16.113 7.8 0 14.667 6.084 15.691 13.884 1.024 7.861 8.041 13.974 15.902 13.101 7.921-0.512 14.095-7.077 14.095-15.029v-109.357c0-8.885 6.837-16.113 15.209-16.113s15.209 7.228 15.209 16.113v186.127c0 6.204 3.795 11.776 9.577 14.035 5.692 2.259 12.318 0.723 16.565-3.825l33.551-36.473c13.824-13.914 18.281-11.234 22.528-8.644 7.409 4.397 9.969 14.577 5.662 22.287l-99.027 213.775c-1.596 2.74-4.94 5.361-8.945 6.355-6.686 1.687-11.385 7.68-11.385 14.607v25.058c0 8.313 6.747 15.059 15.059 15.059s15.059-6.746 15.059-15.059v-15.029c7.017-4.036 12.89-9.939 16.986-17.288l99.027-213.775c11.836-20.901 4.457-49.122-17.017-61.861z" />
-<glyph unicode="&#xe71e;" d="M391.529 178.824v301.176h-391.529v-391.529h391.529v90.353zM30.117 449.882h331.294v-240.941h-22.739l-77.221 99.961-34.906-36.563-67.704 116.887-107.701-180.284h-21.022v240.941zM300.635 208.941h-214.407l72.222 120.892 62.163-107.339 38.4 40.267 41.623-53.82zM30.117 118.588v60.236h331.294v-60.236h-331.294zM512 389.647v-391.529h-391.529v59.753h30.118v-29.636h331.294v331.294h-60.236v30.118h90.353z" />
-<glyph unicode="&#xe71f;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM391.529 208.941c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.529c0 8.313 6.746 15.059 15.059 15.059s15.059-6.747 15.059-15.059c0-58.127 47.285-105.412 105.412-105.412s105.412 47.284 105.412 105.412c0 8.313 6.747 15.059 15.059 15.059s15.059-6.747 15.059-15.059zM135.53 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118zM316.236 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118z" />
-<glyph unicode="&#xe720;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM391.529 88.471c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059c0 58.127-47.284 105.412-105.412 105.412s-105.412-47.284-105.412-105.412c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059c0 74.722 60.808 135.53 135.53 135.53s135.53-60.807 135.53-135.53zM135.53 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118zM316.236 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118z" />
-<glyph unicode="&#xe721;" d="M466.824 419.764h-421.647c-24.907 0-45.176-20.269-45.176-45.177v-301.176c0-24.908 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.907-20.269 45.176-45.176 45.176zM481.882 73.412c0-8.283-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.776-15.059 15.059v165.647h451.764v-165.647zM30.117 329.412v45.176c0 8.282 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.777 15.059-15.059v-45.176h-451.764z" />
-<glyph unicode="&#xe722;" d="M90.353 41.156l219.286 183.627-219.286 181.851v-365.478zM120.471 342.543l142.125-117.88-142.125-118.995v236.875zM421.647 419.764v-391.529h-30.118v391.529h30.118z" />
-<glyph unicode="&#xe723;" d="M202.361 223.217l219.286-181.851v365.478l-219.286-183.627zM391.529 105.457l-142.125 117.88 142.125 118.995v-236.875zM90.353 419.764h30.117v-391.529h-30.118v391.529z" />
-<glyph unicode="&#xe724;" d="M256 404.706c-99.659 0-180.706-81.047-180.706-180.706s81.047-180.706 180.706-180.706 180.706 81.046 180.706 180.706-81.046 180.706-180.706 180.706zM256 73.412c-83.034 0-150.588 67.554-150.588 150.588s67.554 150.588 150.588 150.588 150.588-67.554 150.588-150.588-67.554-150.588-150.588-150.588z" />
-<glyph unicode="&#xe725;" d="M255.217 398.11l-181.851-219.286h365.478l-183.627 219.286zM255.338 351.067l118.995-142.125h-236.875l117.88 142.125zM451.764 88.471v-30.118h-391.529v30.118h391.529z" />
-<glyph unicode="&#xe726;" d="M391.529 239.059h30.118c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.53h30.118c0-58.127 47.285-105.412 105.412-105.412s105.412 47.284 105.412 105.412zM225.882 284.236c16.655 0 30.118 13.462 30.118 30.118s-13.463 30.118-30.118 30.118-30.118-13.462-30.118-30.118 13.463-30.118 30.118-30.118zM346.353 284.236c16.655 0 30.118 13.462 30.118 30.118s-13.462 30.118-30.118 30.118-30.118-13.462-30.118-30.118 13.462-30.118 30.118-30.118zM512 254.118c0-124.567-101.316-225.882-225.882-225.882-40.358 0-79.751 10.812-114.537 31.353l-165.647-85.625 85.624 165.617c-20.51 34.786-31.323 74.18-31.323 114.537 0 124.566 101.316 225.882 225.882 225.882s225.882-101.316 225.882-225.882zM481.882 254.118c0 107.942-87.823 195.764-195.764 195.764s-195.764-87.823-195.764-195.764c0-37.466 10.782-74.060 31.202-105.743l4.728-7.318-50.116-96.918 96.888 50.116 7.319-4.728c31.714-20.389 68.246-31.172 105.743-31.172 107.942 0 195.764 87.823 195.764 195.764z" />
-<glyph unicode="&#xe727;" d="M512 253.184c0 24.907-20.269 45.177-45.176 45.177h-144.805l8.584 27.528 0.692 108.935c0 24.907-20.269 45.176-45.176 45.176h-60.236c-24.907 0-45.177-20.269-45.177-45.176v-103.966l9.337-32.527h-144.866c-24.907 0-45.176-20.269-45.176-45.177v-104.99h28.070l-23.070-180.164h502.001l-23.070 180.164h28.070v105.020zM472.787-1.882h-51.14v60.236h-30.118v-60.236h-30.118v90.353h-30.118v-90.353h-30.118v120.471h-30.118v-120.471h-150.588v60.236h-30.118v-60.236h-51.14l19.215 150.046h395.144l19.215-150.046zM31.924 178.281h-1.807v74.903c0 8.312 6.746 15.059 15.059 15.059h185.675l-20.028 64.904v101.677c0 8.313 6.746 15.059 15.059 15.059h60.236c8.313 0 15.059-6.746 15.059-15.059v-102.189l-20.089-64.392h185.736c8.313 0 15.059-6.747 15.059-15.059v-74.872h-449.957zM240.941 419.764h30.117v-30.118h-30.118v30.118z" />
-<glyph unicode="&#xe728;" d="M250.006 286.584c13.162 0 23.16 4.849 30.299 14.577 5.452 7.138 7.981 18.583 7.981 33.732v49.995c0 15.149-2.53 26.292-7.981 33.43-7.168 9.668-17.167 14.547-30.298 14.547-12.891 0-22.889-4.849-29.967-14.547-5.452-7.168-8.012-18.312-8.012-33.461v-49.995c0-15.149 2.56-26.292 8.012-33.732 7.077-9.698 17.077-14.547 29.967-14.547zM237.719 390.009c0 13.131 4.006 19.697 12.288 19.697 8.584 0 12.288-6.566 12.288-19.697v-59.995c0-13.161-3.704-19.998-12.288-19.998-8.282 0-12.288 6.867-12.288 19.998v59.995zM311.717 297.156c-1.445 4.307-2.259 11.143-2.259 21.413v112.58h25.991v-104.839c0-6.024 0-9.427 0.301-10.029 0.572-4.006 2.56-6.264 5.993-6.264 5.12 0 10.541 4.006 16.264 12.288v108.845h25.991v-142.577h-25.991v15.721c-10.27-11.987-19.968-17.709-29.455-17.709-8.283 0-14.276 3.404-16.836 10.571zM410.594 124.281v-13.132h-25.721v13.132c0 12.86 4.307 19.456 12.86 19.456 8.553-0.030 12.86-6.596 12.86-19.456zM131.132 426.572c-6.264 17.709-12.529 35.719-18.582 53.428h30.329l20.269-75.144 19.426 75.144h29.154l-34.575-113.995v-77.433h-28.552v77.433c-2.59 14.005-8.313 34.003-17.468 60.567zM460.288 215.416c-5.15 22.588-23.733 39.153-45.719 41.713-52.586 5.722-105.743 5.722-158.6 5.722s-106.014 0-158.298-5.722c-22.227-2.56-40.538-19.125-45.959-41.713-7.138-31.985-7.439-66.861-7.439-99.99 0-32.858 0-67.976 7.439-99.99 5.15-22.588 23.732-39.153 45.718-41.442 52.556-5.993 105.713-5.993 158.57-5.993s106.014 0 158.6 5.993c21.956 2.289 40.267 18.853 45.719 41.442 7.138 31.985 7.439 67.132 7.439 99.99-0.030 33.13-0.030 68.005-7.469 99.99zM165.135 186.564h-30.54v-162.575h-28.582v162.575h-30.028v26.865h89.148v-26.865zM242.297 23.988h-25.45v15.42c-10.3-11.716-19.998-17.438-29.154-17.438-8.252 0-14.276 3.433-16.565 10.572-1.446 4.276-2.289 10.873-2.289 20.841v111.707h25.45v-103.996c0-6.024 0-9.156 0.271-10.029 0.602-3.976 2.59-5.993 5.994-5.993 5.18 0 10.601 3.976 16.293 11.987v108.002h25.45v-141.071zM339.456 66.274c0-13.161-0.603-22.558-2.59-28.551-3.132-10.3-10.3-15.721-20.3-15.721-9.125 0-18.010 5.15-26.594 15.721v-13.733h-25.389v189.44h25.389v-62.012c8.283 10.3 17.167 15.42 26.594 15.42 9.999 0 17.167-5.421 20.3-15.993 1.988-5.723 2.59-15.119 2.59-28.281v-56.29zM436.013 89.705h-51.14v-24.847c0-13.161 4.307-19.697 13.161-19.697 6.295 0 9.999 3.404 11.445 10.27 0.271 1.416 0.572 7.138 0.572 17.438h25.991v-3.735c0-8.283 0-14.005-0.572-16.565-0.603-5.692-2.892-10.842-5.993-15.42-6.897-9.999-17.438-15.149-30.841-15.149-13.433 0-23.462 4.849-30.87 14.577-5.421 6.867-8.283 18.010-8.283 33.159v49.423c0 15.149 2.59 25.991 8.012 33.159 7.439 9.728 17.438 14.577 30.599 14.577 12.89 0 22.86-4.849 30.268-14.577 5.18-7.138 7.74-17.98 7.74-33.159v-29.455zM314.007 124.582v-60.296c0-12.86-3.735-19.125-11.144-19.125-4.307 0-8.584 1.988-12.89 6.264v85.986c4.307 4.307 8.584 6.295 12.89 6.295 7.409 0 11.144-6.565 11.144-19.125z" />
-<glyph unicode="&#xe729;" d="M471.763 398.983c-12.529 15.902-34.033 24.335-62.132 24.335-7.951 0-15.692-0.693-22.829-1.777-26.172-4.397-90.925-37.105-112.82-105.954-1.536-4.758-0.572-9.999 2.56-13.944 3.132-3.916 8.101-6.054 13.041-5.632 16.926 1.356 29.575 0.362 33.491-4.005 3.132-3.404 4.276-11.625 3.192-23.13-1.385-15.36-10.029-33.1-19.094-50.447-4.367-7.951-17.709-32.377-25.962-32.377-1.957 0-5.090 2.078-8.313 5.541-15.481 16.716-18.673 48.58-21.413 76.74-0.964 9.276-1.837 18.131-3.132 26.504l-2.078 11.776c-2.861 16.565-6.114 35.328-11.264 52.074-6.204 19.396-21.052 44.394-42.797 51.14-4.698 1.325-9.819 1.988-15.149 1.988-20.721 0-39.334-9.909-44.604-12.981-22.076-13.101-39.936-29.154-57.224-44.694-13.041-11.686-26.504-23.823-41.743-34.575-3.976-2.831-6.355-10.089-6.355-14.969 0-5.692 3.192-10.902 8.313-13.463 1.687-0.873 1.928-1.265 3.283-3.915 2.169-4.216 6.656-12.921 19.276-14.939 11.173-1.656 21.655 1.627 30.358 4.367 4.728 1.506 9.216 2.891 12.138 2.891 1.054 0 2.289 0 4.788-4.186 5.21-8.704 8.072-18.643 11.084-29.184 1.566-5.361 3.102-10.722 4.999-16.263 6.686-18.402 11.806-38.49 17.197-59.753l4.728-18.884c10.782-44.423 25.57-105.201 66.831-122.519 6.234-2.651 13.342-4.005 21.173-4.005 20.149 0 41.472 8.854 53.308 16.264 35.117 20.691 67.493 51.26 98.906 93.485 57.555 77.041 93.004 169.863 99.178 202.451 4.909 26.082 1.356 46.381-10.933 62.042zM453.12 342.543c-4.397-23.13-34.726-111.074-93.726-190.012-29.003-39.002-58.428-66.981-90.383-85.805-11.866-7.409-35.75-15.089-47.104-10.27-27.316 11.475-40.026 63.729-49.303 101.918l-4.849 19.245c-5.572 21.956-10.873 42.737-17.95 62.344-1.686 4.819-3.072 9.698-4.488 14.517-3.404 11.897-6.957 24.214-14.185 36.262-7.409 12.529-17.709 18.884-30.63 18.884-7.559 0-14.457-2.168-21.142-4.276-4.788-1.506-9.337-2.922-14.427-3.222-0.391 0.692-0.813 1.506-1.325 2.349 11.385 8.975 21.684 18.221 31.744 27.287 16.926 15.239 32.918 29.606 52.345 41.111 6.988 4.066 18.853 8.824 29.364 8.824 2.59 0 4.94-0.301 6.626-0.753 7.71-2.379 17.86-16.474 22.588-31.262 4.548-14.757 7.62-32.527 10.3-48.219l2.078-11.656c1.174-7.439 1.958-15.751 2.861-24.455 3.222-32.888 6.927-70.114 29.364-94.298 9.396-10.029 19.607-15.119 30.359-15.119 26.142 0 41.954 28.973 53.73 50.597 9.366 17.98 19.456 38.882 21.324 59.633 1.928 21.203-1.536 35.84-10.933 46.17-9.457 10.391-22.92 13.372-34.274 14.186 24.335 46.351 71.168 63.699 80.444 65.265 5.541 0.813 11.746 1.385 18.131 1.385 10.632 0 29.696-1.687 38.46-12.83 6.565-8.403 8.192-20.751 5-37.798z" />
-<glyph unicode="&#xe72a;" d="M512 382.539c-18.853-8.132-39.303-13.974-60.446-16.233 21.775 12.981 38.34 33.43 46.14 57.796-20.149-12.017-42.887-20.781-66.59-25.329-19.155 20.48-46.442 33.13-76.649 33.13-58.157 0-104.93-47.104-104.93-104.9 0-8.132 0.994-16.263 2.59-24.064-87.070 4.518-164.714 46.11-216.365 109.809-9.096-15.571-14.306-33.46-14.306-52.977 0-36.382 18.523-68.517 46.772-87.371-17.197 0.663-33.461 5.542-47.435 13.312 0-0.301 0-0.964 0-1.295 0-50.959 36.051-93.214 84.148-102.972-8.764-2.259-18.191-3.554-27.618-3.554-6.806 0-13.312 0.632-19.788 1.627 13.312-41.592 51.983-71.8 98.093-72.794-36.081-28.25-81.228-44.815-130.289-44.815-8.764 0-16.896 0.301-25.329 1.265 46.471-29.877 101.677-47.104 161.16-47.104 192.964 0 298.556 159.834 298.556 298.526 0 4.578 0 9.095-0.301 13.673 20.42 14.939 38.279 33.491 52.586 54.272zM429.568 314.624c0-111.466-83.275-268.409-268.438-268.409-14.818 0-29.485 1.204-43.911 3.554 20.179 8.313 39.303 19.456 56.952 33.25 10.029 7.83 14.035 21.142 9.999 33.22-4.036 12.077-15.209 20.329-27.949 20.601-16.414 0.332-31.774 5.933-44.183 15.33 0.121 0.030 0.241 0.060 0.362 0.091 13.613 3.493 22.98 15.902 22.619 29.937-0.332 14.065-10.331 25.962-24.094 28.762-19.636 3.976-36.231 15.541-46.953 31.503 1.054-0.060 2.078-0.12 3.132-0.15 0.391 0 0.753 0 1.144 0 13.011 0 24.606 8.373 28.642 20.841 4.156 12.83-0.723 26.835-11.957 34.334-18.974 12.649-31.021 33.009-33.069 55.446 54.934-47.646 124.868-76.228 198.686-80.052 0.512-0.030 1.054-0.030 1.566-0.030 8.764 0 17.107 3.825 22.86 10.511 6.084 7.077 8.524 16.595 6.626 25.72-1.325 6.295-1.988 12.348-1.988 17.92 0 41.231 33.551 74.782 74.812 74.782 21.022 0 40.418-8.373 54.663-23.612 3.493-3.735 7.861-6.476 12.559-8.012-0.572-4.397-0.18-8.945 1.295-13.372 1.897-5.752 5.421-10.601 9.939-14.156-2.68-4.939-3.976-10.631-3.584-16.384 0.301-3.885 0.271-7.74 0.271-11.625z" />
-<glyph unicode="&#xe72b;" d="M261 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256c0 141.161-114.839 256-256 256zM261-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM421.647 208.941v-30.118h-180.706v150.588h30.117v-120.47h150.588z" />
-<glyph unicode="&#xe72c;" d="M396.047 97.897c-21.685-14.396-42.767-21.384-64.482-21.384-11.173 0-20.601 2.469-28.913 7.56-5.12 3.102-8.342 6.716-10.029 11.354-1.566 4.036-3.404 15.721-3.404 48.55v108.574h114.236v105.713h-114.206v121.736h-97.009l-1.686-13.192c-2.892-22.829-8.132-41.894-15.42-56.561-7.379-14.486-16.775-26.503-28.552-36.653-11.987-9.999-26.715-17.95-43.701-23.582l-10.331-3.434v-94.027h53.339v-154.052c0-24.456 2.62-42.858 7.891-55.838 5.15-13.644 14.908-26.774 29.184-39.123 13.975-11.806 30.268-20.691 48.219-26.323 18.402-6.084 39.635-9.216 63.097-9.216 21.052 0 40.538 2.139 57.645 6.325 17.288 3.945 36.563 10.963 58.88 21.474l8.644 4.066v113.574l-23.401-15.541zM389.331 19.079c-16.655-7.379-31.172-12.438-44.333-15.481-31.232-7.62-74.572-7.71-104.599 2.259-14.336 4.517-27.136 11.475-37.918 20.57-10.27 8.915-17.197 17.95-20.691 27.196-3.885 9.517-5.813 24.606-5.813 44.845v184.2h-53.308v42.496c16.354 6.505 30.87 14.998 43.369 25.449 14.757 12.71 26.865 28.19 35.96 46.080 7.5 14.998 12.951 32.467 16.475 53.188h40.659v-121.736h114.236v-45.477h-114.236v-138.662c0-32.166 1.566-49.393 5.3-59.060 3.945-10.933 11.565-19.877 22.588-26.564 27.98-17.197 67.012-15.119 102.31 1.265v-40.568z" />
-<glyph unicode="&#xe72d;" d="M487.876 180.54c2.68 14.757 4.036 29.365 4.036 43.46 0 144.203-128.572 259.253-279.401 231.876-22.769 15.812-49.243 24.124-76.981 24.124-74.722 0-135.53-60.808-135.53-135.53 0-27.738 8.313-54.212 24.124-77.011-2.68-14.758-4.036-29.335-4.036-43.46 0-144.203 128.602-259.252 279.401-231.876 22.769-15.812 49.243-24.124 76.981-24.124 74.722 0 135.53 60.808 135.53 135.529 0 27.738-8.313 54.212-24.124 77.011zM376.471-1.882c-23.341 0-45.538 7.589-64.241 21.956l-5.481 4.216-6.776-1.416c-15.029-3.102-29.817-4.668-44.002-4.668-113.483 0-205.794 92.31-205.794 205.794 0 14.185 1.566 28.973 4.699 44.002l1.386 6.776-4.216 5.482c-14.336 18.643-21.925 40.9-21.925 64.211 0 58.127 47.285 105.412 105.412 105.412 23.341 0 45.538-7.589 64.241-21.956l5.482-4.216 6.776 1.416c14.999 3.072 29.786 4.668 43.972 4.668 113.483 0 205.794-92.311 205.794-205.794 0-14.185-1.566-28.973-4.699-44.002l-1.385-6.776 4.216-5.481c14.366-18.643 21.956-40.9 21.956-64.211 0-58.127-47.284-105.412-105.412-105.412zM383.067 171.625c0-63.699-61.5-93.184-120.471-93.184-70.596 0-129.596 31.382-129.596 69.964 0 17.228 9.728 32.918 31.714 32.918 33.581 0 36.714-48.308 94.75-48.308 27.588 0 45.478 12.197 45.478 28.22 0 20.089-17.257 23.221-45.176 30.118l-45.809 11.294c-45.779 10.993-80.956 29.816-80.956 82.522 0 63.668 63.066 87.221 117.339 87.221 59.301 0 119.206-23.522 119.206-59.603 0-18.191-12.228-34.214-32.618-34.214-30.449 0-31.382 36.051-80.655 36.051-27.588 0-45.177-7.5-45.177-24.124 0-18.221 17.89-22.287 41.773-27.949l32.587-7.529c44.574-10.029 97.611-28.822 97.611-83.396z" />
-<glyph unicode="&#xe72e;" d="M204.649 76.544c-33.43 31.232-52.615 75.355-52.615 121.103 0 91.347 74.331 165.647 165.647 165.647h87.702l-79.692 79.692 21.293 21.293 116.074-116.074-116.073-116.073-21.293 21.293 79.692 79.691h-87.702c-74.722 0-135.53-60.808-135.53-135.529 0-37.978 15.3-73.156 43.038-99.087l-20.54-21.956zM483.328 208.038v-194.861c0-8.283-6.776-15.059-15.059-15.059h-421.647c-8.282 0-15.059 6.776-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
-<glyph unicode="&#xe72f;" d="M166.46 232.162l-116.043 116.073 116.073 116.073 21.293-21.293-79.722-79.722h87.703c91.317 0 165.647-74.3 165.647-165.647 0-45.748-19.185-89.841-52.615-121.103l-20.54 21.986c27.738 25.962 43.038 61.139 43.038 99.117 0 74.722-60.808 135.529-135.53 135.529h-87.703l79.692-79.691-21.293-21.323zM481.882 208.188v-195.012c0-8.283-6.776-15.059-15.059-15.059h-421.647c-8.282 0-15.059 6.776-15.059 15.059v194.861h-30.117v-194.861c0-24.907 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v195.012h-30.118z" />
-<glyph unicode="&#xe730;" d="M361.412 148.706c0 30.118 0 150.588 0 180.706 0 150.588-90.353 150.588-90.353 150.588s-90.353 0-90.353-150.588 0-60.236 0-180.706c0 0-60.236 0-60.236-180.706 0 0 71.65 71.529 129.868 87.19 0.12-17.529 9.337-31.654 20.721-31.654s20.601 14.156 20.721 31.654c58.217-15.661 129.868-87.19 129.868-87.19 0 180.706-60.236 180.706-60.236 180.706zM271.059 449.852c7.83-0.632 50.206-8.132 58.639-90.323h-117.278c8.433 82.191 50.808 89.691 58.639 90.323zM271.059 88.471c-38.279 0-82.582-26.142-116.766-51.712 7.921 63.88 25.871 79.18 29.907 81.829h26.624v210.824h120.471v-210.824h26.624c4.036-2.651 21.986-17.95 29.907-81.829-34.183 25.57-78.486 51.712-116.766 51.712z" />
-<glyph unicode="&#xe731;" d="M452.517 292.518c0-115.019-63.94-200.644-157.997-200.644-31.594 0-61.29 17.107-71.228 36.533-17.107-67.404-20.54-80.324-20.54-80.324-6.114-22.468-18.643-44.966-29.666-62.464-31.412-22.197-34.334 12.168-34.334 12.168-0.723 20.601-0.362 45.327 5 67.373 0 0 5.692 23.642 37.647 159.172-9.487 18.673-9.487 46.471-9.487 46.471 0 43.4 25.148 75.776 56.38 75.776 26.654 0 39.575-20.179 39.575-44.183 0-26.654-17.167-66.65-25.871-103.575-7.228-31.232 15.601-56.35 46.050-56.35 55.627 0 92.883 71.168 92.883 155.347 0 64.362-43.37 112.309-121.826 112.309-88.697 0-143.902-66.259-143.902-140.108 0-25.54 7.59-43.429 19.396-57.524 5.361-6.476 6.114-8.734 4.186-16.354-1.476-5.331-4.518-18.281-6.054-23.221-1.898-7.62-8.011-10.27-14.457-7.62-40.749 16.805-59.813 61.711-59.813 111.978 0 83.004 70.024 182.754 208.655 182.754 111.947 0 185.404-81.077 185.404-167.514z" />
-<glyph unicode="&#xe732;" d="M451.764 419.764v-225.882h-30.118v170.707l-281.118-281.118-21.293 21.293 284.883 284.883h-178.236v30.118h225.882zM331.294-1.882h-301.176v301.176h197.994v30.118h-228.111v-361.412h361.412v232.327h-30.118v-202.21z" />
-<glyph unicode="&#xe733;" d="M232.93 6.46l279.070-38.46v241.845h-279.070v-203.385zM263.048 179.727h218.835v-177.182l-218.835 30.178v147.004zM0 38.445l209.829-28.883v200.283h-209.829v-171.399zM30.117 179.727h149.595v-135.62l-149.595 20.601v115.019zM0 235.685h209.829v202.752l-209.829-28.883v-173.869zM30.117 383.322l149.595 20.601v-138.089h-149.595v117.489zM232.93 441.54v-205.854h279.070v244.315l-279.070-38.46zM481.882 265.803h-218.835v149.474l218.835 30.178v-179.652z" />
-<glyph unicode="&#xe734;" d="M512 359.529v-30.117h-361.412v30.117h361.412zM150.588 208.941h361.412v30.118h-361.412v-30.118zM150.588 88.471h361.412v30.118h-361.412v-30.118zM62.735 375.19h0.271v-71.77h10.722v82.131h-9.457l-17.95-9.608 2.139-8.463 14.276 7.71zM49.363 191.714l6.596 6.053c17.287 16.685 28.281 28.943 28.281 44.123 0 11.746-7.469 23.884-25.178 23.884-9.457 0-17.529-3.524-23.221-8.343l3.524-7.831c3.825 3.162 9.999 6.957 17.468 6.957 12.228 0 16.293-7.71 16.293-16.053-0.121-12.379-9.638-23.010-30.599-42.978l-8.704-8.463v-6.837h52.404v9.246h-36.864v0.241zM67.343 106.812v0.271c10.12 3.644 15.18 10.842 15.18 19.336 0 9.969-7.319 19.577-23.492 19.577-8.855 0-17.197-3.132-21.504-6.325l2.922-8.101c3.524 2.53 9.849 5.452 16.444 5.452 10.24 0 14.396-5.813 14.396-12.378 0-9.728-10.24-13.914-18.311-13.914h-6.204v-8.313h6.174c10.752 0 21.112-4.94 21.233-16.444 0.15-6.837-4.307-15.902-18.552-15.902-7.74 0-15.059 3.132-18.191 5.18l-3.042-8.584c4.036-2.68 12.108-5.602 21.353-5.602 19.697 0 29.937 11.505 29.937 24.636 0 11.505-8.222 19.094-18.341 21.113z" />
-<glyph unicode="&#xe735;" d="M21.022 304.625h103.544v-310.904h-103.544v310.904zM73.427 454.279c-35.148 0-58.368-23.221-58.368-53.669 0-29.787 22.287-53.639 57.103-53.639h0.632c36.081 0 58.669 23.853 58.368 53.639-0.332 30.449-22.287 53.669-57.736 53.669zM378.036 311.853c-55.085 0-79.601-30.178-93.184-51.471v44.243h-103.213c0 0 1.265-29.184 0-310.904h103.213v173.508c0 9.397 0.964 18.522 3.433 25.389 7.56 18.522 24.456 37.647 53.067 37.647 37.286 0 52.344-28.551 52.344-70.264v-166.28h103.243v178.206c0 95.382-50.839 139.927-118.904 139.927z" />
-<glyph unicode="&#xe736;" d="M512 480v-512h-120.471v512h120.471zM0-32h90.353v512h-90.353v-512zM331.294-32h30.118v30.118h-30.118v-30.118zM228.020-32h25.811v30.118h-25.811v-30.118zM279.673-32h25.811v30.118h-25.811v-30.118zM176.399-32h25.811v30.118h-25.811v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM120.471 389.647h30.117v30.118h-30.118v-30.118zM120.471 88.471h30.117v30.118h-30.118v-30.118zM120.471 28.236h30.117v30.118h-30.118v-30.118zM120.471 148.706h30.117v30.118h-30.118v-30.118zM120.471 269.177h30.117v30.117h-30.118v-30.117zM120.471 329.412h30.117v30.117h-30.118v-30.117zM120.471 208.941h30.117v30.118h-30.118v-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM176.399 449.882h25.811v30.118h-25.811v-30.118zM279.673 449.882h25.811v30.118h-25.811v-30.118zM228.020 449.882h25.811v30.118h-25.811v-30.118zM331.294 449.882h30.118v30.118h-30.118v-30.118zM331.294 329.412h30.118v30.117h-30.118v-30.117zM331.294 389.647h30.118v30.118h-30.118v-30.118zM331.294 269.177h30.118v30.117h-30.118v-30.117zM331.294 208.941h30.118v30.118h-30.118v-30.118zM331.294 28.236h30.118v30.118h-30.118v-30.118zM331.294 88.471h30.118v30.118h-30.118v-30.118zM331.294 148.706h30.118v30.118h-30.118v-30.118z" />
-<glyph unicode="&#xe737;" d="M30.117 449.882h90.353v-90.353h-90.353v90.353zM150.588 359.529h90.353v90.353h-90.353v-90.353zM271.059 359.529h90.353v90.353h-90.353v-90.353zM391.529 449.882v-90.353h90.353v90.353h-90.353zM30.117 239.059h90.353v90.353h-90.353v-90.353zM150.588 239.059h90.353v90.353h-90.353v-90.353zM271.059 239.059h90.353v90.353h-90.353v-90.353zM391.529 239.059h90.353v90.353h-90.353v-90.353zM30.117 118.588h90.353v90.353h-90.353v-90.353zM150.588 118.588h90.353v90.353h-90.353v-90.353zM271.059 118.588h90.353v90.353h-90.353v-90.353zM391.529 118.588h90.353v90.353h-90.353v-90.353zM30.117-1.882h90.353v90.353h-90.353v-90.353zM150.588-1.882h90.353v90.353h-90.353v-90.353zM271.059-1.882h90.353v90.353h-90.353v-90.353zM391.529-1.882h90.353v90.353h-90.353v-90.353z" />
-<glyph unicode="&#xe738;" d="M0 480h150.588v-150.588h-150.588v150.588zM180.706 329.412h150.588v150.588h-150.588v-150.588zM361.412 480v-150.588h150.588v150.588h-150.588zM0 148.706h150.588v150.588h-150.588v-150.588zM180.706 148.706h150.588v150.588h-150.588v-150.588zM361.412 148.706h150.588v150.588h-150.588v-150.588zM0-32h150.588v150.588h-150.588v-150.588zM180.706-32h150.588v150.588h-150.588v-150.588zM361.412-32h150.588v150.588h-150.588v-150.588z" />
-<glyph unicode="&#xe739;" d="M0 480h210.823v-210.823h-210.823v210.823zM271.059 480v-210.823h210.824v210.823h-210.823zM0-1.882h210.823v210.824h-210.823v-210.823zM271.059-1.882h210.824v210.824h-210.823v-210.823z" />
-<glyph unicode="&#xe73a;" d="M30.117 480h90.353v-512h-90.353v512zM150.588-32h90.353v512h-90.353v-512zM271.059-32h90.353v512h-90.353v-512zM391.529 480v-512h90.353v512h-90.353z" />
-<glyph unicode="&#xe73b;" d="M0 480h150.588v-512h-150.588v512zM180.706-32h150.588v512h-150.588v-512zM361.412 480v-512h150.588v512h-150.588z" />
-<glyph unicode="&#xe73c;" d="M0 480h240.941v-512h-240.941v512zM271.059 480v-512h240.941v512h-240.941z" />
-<glyph unicode="&#xe73d;" d="M391.529 480h-271.059c-66.259 0-120.471-54.212-120.471-120.471v-271.059c0-66.259 54.212-120.47 120.471-120.47h271.059c66.259 0 120.471 54.212 120.471 120.471v271.059c0 66.259-54.212 120.471-120.471 120.471zM481.882 88.471c0-49.815-40.538-90.353-90.353-90.353h-271.059c-49.815 0-90.353 40.538-90.353 90.353v180.706h96.588c-8.614-18.372-13.764-38.641-13.764-60.236 0-78.878 64.18-143.059 143.059-143.059s143.059 64.18 143.059 143.059c0 21.595-5.15 41.863-13.764 60.236h96.587v-180.706zM368.941 208.941c0-62.284-50.658-112.941-112.941-112.941s-112.941 50.658-112.941 112.941 50.658 112.941 112.941 112.941 112.941-50.658 112.941-112.941zM365.99 299.294c-26.262 31.894-65.536 52.706-109.99 52.706s-83.727-20.812-109.99-52.706h-115.892v60.236c0 49.815 40.538 90.353 90.353 90.353h271.059c49.815 0 90.353-40.538 90.353-90.353v-60.236h-115.892zM435.32 398.020v-39.092c0-9.005-7.349-16.354-16.324-16.354h-41.201c-9.036 0.030-16.384 7.379-16.384 16.354v39.092c0 9.005 7.349 16.354 16.384 16.354h41.201c8.975 0 16.324-7.349 16.324-16.354z" />
-<glyph unicode="&#xe73e;" d="M512 401.243v-39.394h-78.757v-78.788h-39.394v78.788h-78.757v39.394h78.757v78.758h39.394v-78.758h78.757zM312.923 95.096c0-35.388-16.896-64-43.068-86.769-35.388-30.479-83.697-40.327-129.235-40.327-57.525 0-140.619 24.606-140.619 95.985 0 14.457 4.939 28.642 11.415 41.563 27.347 55.356 112.881 69.541 167.966 71.077-10.119 13.221-19.667 28.582-19.667 45.839 0 10.149 3.644 16.926 6.776 26.444-7.409-0.904-14.457-1.536-21.534-1.536-59.693 0-111.375 44.002-111.375 105.864 0 58.458 45.207 108.303 101.196 120.591 18.793 4.036 38.129 6.174 57.524 6.174h134.505l-41.532-24.305h-41.593c30.509-19.065 45.869-56.32 45.869-90.774 0-81.529-68.94-87.673-68.94-128.301 0-39.695 92.31-55.387 92.31-141.523zM232.659 333.839c0 46.772-25.268 123.995-82.191 123.995-40.267 0-59.964-35.69-59.964-72.012 0-46.743 30.75-119.988 85.534-119.988 42.105 0.030 56.621 30.479 56.621 68.005zM269.553 68.623c0 43.068-40.358 67.072-71.71 88.938-5.24 0.603-10.18 0.603-15.42 0.603-50.417 0-125.531-15.993-125.531-79.993 0-59.060 66.469-81.86 115.712-81.86 45.839 0 96.948 18.462 96.948 72.313z" />
-<glyph unicode="&#xe73f;" d="M393.849 145.243c0-22.468-11.716-59.091-39.394-59.091-27.708 0-39.424 36.623-39.424 59.091 0 22.438 11.716 59.091 39.424 59.091 27.678 0 39.394-36.653 39.394-59.091zM157.546 204.333c-27.678 0-39.394-36.653-39.394-59.091 0-22.468 11.716-59.091 39.394-59.091 27.678 0 39.394 36.623 39.394 59.091 0 22.438-11.716 59.091-39.394 59.091zM512 199.394c0-34.183-3.373-70.476-18.764-101.858-40.629-82.161-152.305-90.142-232.298-90.142-81.228 0-199.68 7.048-241.845 90.142-15.722 31.082-19.095 67.675-19.095 101.858 0 44.935 12.318 87.371 41.864 121.826-5.541 16.926-8.313 34.786-8.313 52.344 0 23.070 5.21 46.11 15.691 67.072 48.61 0 79.692-21.233 116.615-50.146 31.082 7.379 63.066 10.752 95.082 10.752 28.913 0 58.157-3.102 86.166-9.849 36.623 28.612 67.675 49.243 115.682 49.243 10.481-20.932 15.692-44.002 15.692-67.072 0-17.558-2.771-35.087-8.313-51.712 29.546-34.756 41.834-77.523 41.834-122.459zM443.060 145.243c0 47.074-28.582 88.606-78.757 88.606-20.3 0-39.665-3.704-59.995-6.476-15.993-2.47-31.985-3.373-48.309-3.373s-32.316 0.904-48.309 3.373c-19.998 2.771-39.695 6.476-59.995 6.476-50.146 0-78.757-41.532-78.757-88.606 0-94.148 86.137-108.604 161.22-108.604h51.712c75.084-0.030 161.19 14.457 161.19 108.604z" />
-<glyph unicode="&#xe740;" d="M219.708 224c0-60.657-49.212-109.839-109.809-109.839-60.687 0-109.9 49.182-109.9 109.839s49.212 109.839 109.9 109.839c60.596 0 109.809-49.182 109.809-109.839zM512 224c0-60.657-49.212-109.839-109.899-109.839-60.596 0-109.809 49.212-109.809 109.839s49.212 109.839 109.809 109.839c60.687 0 109.899-49.182 109.899-109.839zM481.882 224c0 43.972-35.78 79.721-79.781 79.721-43.942 0-79.692-35.78-79.692-79.721s35.75-79.721 79.692-79.721c44.002 0 79.781 35.75 79.781 79.721z" />
-<glyph unicode="&#xe741;" d="M375.296 312.245l-9.306-88.245h-70.536v-256h-105.954v256h-52.796v88.245h52.796v53.127c0 71.771 29.846 114.628 114.688 114.628h70.505v-88.245h-44.123c-32.918 0-35.117-12.438-35.117-35.418v-44.092h79.842z" />
-<glyph unicode="&#xe742;" d="M507.572 348.356l-159.503 104.026-92.070-76.439-91.738 76.439-159.834-104.026 93.365-74.572-93.335-74.752 103.725-67.554v-46.171l148.089-88.516 148.359 88.486v46.622l102.912 67.162-93.305 74.722 93.334 74.572zM350.178 415.036l106.014-69.15-67.222-53.669-107.219 65.957 68.428 56.862zM361.412 273.784l-105.412-65.024-105.412 65.024 105.412 64.874 105.412-64.874zM55.808 345.886l106.225 69.15 68.216-56.832-107.249-65.988-67.192 53.669zM55.778 201.563l67.222 53.88 107.279-66.198-68.246-56.923-106.255 69.24zM374.513 102.385l-118.212-70.565-117.971 70.536v9.487l25.962-16.896 91.769 76.499 92.040-76.499 26.443 17.257v-9.819zM456.222 201.532l-106.044-69.21-68.457 56.923 107.249 66.198 67.252-53.91z" />
-<glyph unicode="&#xe743;" d="M256 480c-141.372 0-256-114.628-256-256s114.628-256 256-256 256 114.628 256 256-114.628 256-256 256zM481.702 220.356c-62.494 13.733-117.339 12.74-164.714 2.771-7.56 18.884-16.143 38.34-25.57 58.127 50.628 19.516 99.147 47.767 136.975 88.365 33.31-39.394 53.489-90.172 53.489-145.619 0-1.235-0.18-2.409-0.18-3.644zM407.281 391.243c-34.937-37.858-80.956-64.301-129.416-82.522-22.889 44.212-50.899 89.148-84.751 132.066 19.998 5.813 41.050 9.095 62.886 9.095 58.248 0 111.195-22.347 151.281-58.639zM163.539 429.854c34.124-42.075 62.102-86.859 85.173-131.102-89.57-27.708-179.682-30.961-214.257-31.021 14.276 72.493 63.368 132.518 129.084 162.124zM30.117 224c0 4.548 0.422 9.036 0.663 13.523 1.958-0.030 4.036-0.030 6.385-0.030 39.334 0 132.578 3.764 225.34 33.551 9.036-18.823 17.408-37.496 24.697-55.537-108.574-33.159-172.755-111.586-196.156-145.348-37.677 40.358-60.928 94.358-60.928 153.841zM113.182 49.197c17.95 27.136 78.336 105.954 185.073 137.637 28.943-78.245 42.315-142.878 47.164-170.195-27.437-11.866-57.645-18.522-89.419-18.522-54.151 0-103.876 19.185-142.818 51.079zM373.459 31.428c-5.964 32.015-19.155 91.618-45.267 162.786 43.49 8.433 93.636 8.674 150.829-4.367-10.27-67.042-49.935-124.356-105.563-158.419z" />
-<glyph unicode="&#xe744;" d="M421.677 144.941c-14.125 20.3-21.203 43.37-21.203 68.608 0 23.371 6.776 44.635 19.998 63.699 7.379 10.752 19.065 22.769 35.087 36.292-10.451 12.951-21.263 23.402-32.015 30.78-19.094 13.221-40.9 19.998-65.536 19.998-15.089 0-32.918-3.704-53.218-10.451-20.329-7.077-35.087-10.481-44.002-10.481-7.108 0-21.263 3.072-42.496 9.246-21.534 6.144-39.394 9.216-54.453 9.216-35.418 0-64.332-14.788-87.371-44.303-23.070-29.846-34.756-68.005-34.756-115.079 0-50.447 15.39-101.828 45.207-154.774 30.449-52.916 60.928-79.692 92.612-79.692 10.149 0 23.703 3.373 40.629 10.481 16.655 6.747 31.382 10.149 43.7 10.149 12.62 0 28.281-3.072 46.442-9.849 18.492-6.445 32.618-9.849 43.099-9.849 26.142 0 52.615 20.028 79.089 60.325 17.829 26.774 30.148 52.615 37.828 76.921-18.131 5.512-34.454 18.432-48.64 38.762zM407.281 45.764c-19.788-30.118-38.942-46.743-53.911-46.743-4.428 0-13.824 1.416-32.557 7.951-20.872 7.8-40.057 11.746-56.983 11.746-16.293 0-34.786-4.156-55.356-12.499-17.468-7.319-26.052-8.101-28.943-8.101-18.914 0-42.526 22.95-66.379 64.362-27.799 49.363-41.322 95.142-41.322 139.987 0 40.237 9.337 71.891 28.371 96.557 17.438 22.317 37.677 32.708 63.639 32.708 12.077 0 27.166-2.65 46.050-8.041 31.654-9.186 43.49-10.421 50.868-10.421 12.8 0 30.419 3.976 53.519 12.017 17.74 5.903 32.437 8.915 43.671 8.915 18.341 0 34.183-4.788 48.49-14.728 1.988-1.386 4.066-2.952 6.144-4.668-6.867-7.108-12.469-13.884-16.926-20.389-16.866-24.275-25.389-51.471-25.389-80.896 0-31.563 8.945-60.416 26.624-85.836 10.661-15.209 22.528-27.347 35.599-36.322-6.536-15.029-14.998-30.298-25.209-45.598zM283.829 360.613c-7.077-2.168-17.529-4.005-31.985-5.24 0.632 30.449 8.613 56.923 24.004 79.059 15.39 22.197 41.201 37.255 76.95 45.568 0.603-2.771 1.204-4.94 1.506-6.776 0-2.139 0.332-3.976 0.332-6.144 0-12.62-3.072-26.774-8.915-41.863-6.144-15.39-15.692-29.546-28.642-42.466-11.084-11.053-22.166-18.432-33.25-22.137z" />
-<glyph unicode="&#xe745;" d="M114.718 308.45h282.594v-205.011c0-18.764-15.119-33.882-33.521-33.882h-23.161v-69.873c0-17.558-14.125-31.684-31.654-31.684-17.558 0-31.774 14.156-31.774 31.684v69.873h-42.406v-69.873c0-17.529-14.215-31.684-31.774-31.684-17.197 0-31.382 14.156-31.382 31.684l-0.271 69.873h-22.799c-18.733 0-33.852 15.089-33.852 33.882v205.011zM70.987 314.293c-17.529 0-31.714-14.186-31.714-31.383v-132.397c0-17.558 14.185-31.684 31.714-31.684s31.383 14.156 31.383 31.684v132.397c0 17.197-14.095 31.382-31.382 31.382zM398.216 319.533h-284.732c0 48.941 29.274 91.437 72.674 113.573l-21.895 40.298c-1.235 2.168-0.632 4.94 1.536 6.174 2.138 0.933 4.94 0.332 6.174-1.868l22.137-40.628c18.823 8.342 39.756 12.95 61.892 12.95s43.068-4.608 61.892-12.921l22.137 40.629c1.235 2.168 4.036 2.771 6.174 1.868 2.168-1.235 2.771-4.006 1.536-6.174l-21.895-40.298c43.129-22.166 72.373-64.662 72.373-113.604zM203.023 382.931c0 6.476-5.21 12.017-11.957 12.017-6.506 0-11.716-5.541-11.716-12.017 0-6.445 5.21-11.987 11.716-11.987 6.746-0.030 11.957 5.512 11.957 11.987zM332.649 382.931c0 6.476-5.211 12.017-11.716 12.017-6.776 0-11.957-5.541-11.957-12.017 0-6.445 5.211-11.987 11.957-11.987 6.505-0.030 11.716 5.512 11.716 11.987zM441.012 314.293c-17.257 0-31.382-13.854-31.382-31.383v-132.397c0-17.558 14.125-31.684 31.382-31.684 17.529 0 31.714 14.156 31.714 31.684v132.397c-0.030 17.529-14.185 31.382-31.714 31.382z" />
-<glyph unicode="&#xe746;" d="M426.587 480h-381.41c-24.907 0-45.176-20.269-45.176-45.176v-421.647c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v383.217l-85.413 83.606zM240.941 449.882v-120.47h90.353v120.47h30.118v-150.588h-240.941v150.588h120.47zM90.353-1.882v180.706h331.294v-180.706h-331.294zM481.882 13.176c0-8.283-6.776-15.059-15.059-15.059h-15.059v210.823h-391.529v-210.823h-15.059c-8.313 0-15.059 6.776-15.059 15.059v421.647c0 8.283 6.746 15.059 15.059 15.059h45.177v-180.706h301.176v180.706h22.769l67.584-66.138v-370.567z" />
-<glyph unicode="&#xe747;" d="M466.824 480h-381.41l-85.413-83.606v-383.217c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v421.647c0 24.907-20.269 45.176-45.176 45.176zM391.529 449.882v-60.236h-240.941v60.236h240.941zM90.353-1.882v30.118h331.294v-30.118h-331.294zM481.882 13.176c0-8.283-6.747-15.059-15.059-15.059h-15.059v60.236h-391.529v-60.236h-15.059c-8.313 0-15.059 6.776-15.059 15.059v370.567l67.584 66.138h22.769v-90.353h301.176v90.353h45.176c8.313 0 15.059-6.776 15.059-15.059v-421.647zM256 329.412c-58.127 0-105.412-47.285-105.412-105.412s47.285-105.412 105.412-105.412 105.412 47.284 105.412 105.412-47.284 105.412-105.412 105.412zM256 148.706c-41.502 0-75.294 33.762-75.294 75.294s33.792 75.294 75.294 75.294 75.294-33.762 75.294-75.294-33.792-75.294-75.294-75.294z" />
-<glyph unicode="&#xe748;" d="M286.118-16.941c-9.849 1.747-19.998 3.163-30.419 3.163-10.119 0-20.269-1.445-30.388-3.163l3.764 204.77c-53.88 92.943-104.569 187.603-163.9 277.113 10.12-2.62 20.54-4.337 31.262-4.337s21.715 2.048 32.136 4.337c40.538-71.861 84.57-141.613 127.126-212.269 42.857 70.084 88.335 139.867 127.157 212.269 10.12-2.62 20.57-4.066 30.961-4.066 11.023 0 22.317 1.445 33.009 4.066-23.19-31.865-42.285-66.59-62.253-100.473-34.484-58.789-68.367-117.609-102.25-176.64l3.795-204.77z" />
-<glyph unicode="&#xe749;" d="M496.941 224c0-132.819-108.092-240.941-240.941-240.941s-240.941 108.123-240.941 240.941 108.092 240.941 240.941 240.941 240.941-108.123 240.941-240.941zM485.918 224c0 126.644-103.243 229.918-229.918 229.918s-229.918-103.274-229.918-229.918 103.243-229.918 229.918-229.918 229.918 103.274 229.918 229.918zM67.222 308.179l98.696-270.276c-69.12 33.642-116.706 104.358-116.706 186.097 0 29.816 6.475 58.368 18.010 84.179zM379.693 167.529l-20.45-68.849-74.752 222.088c0 0 12.378 0.813 23.673 2.168 11.023 1.356 9.698 17.769-1.325 16.926-33.611-2.409-55.145-2.68-55.145-2.68s-20.148 0.301-54.302 2.71c-11.294 0.813-12.649-16.113-1.356-16.926 10.481-1.084 21.504-2.198 21.504-2.198l32.256-88.185-45.177-135.53-75.294 223.714c0 0 12.379 0.813 23.673 2.168 11.023 1.356 9.698 17.769-1.325 16.926-33.37-2.409-55.145-2.68-55.145-2.68-3.764 0-8.313 0.271-13.162 0.271 36.834 56.229 100.292 93.334 172.635 93.334 53.79 0 102.731-20.721 139.565-54.332-0.813 0-1.868 0-2.68 0-20.179 0-34.695-17.498-34.695-36.593 0-16.926 9.939-31.202 20.42-48.369 8.101-13.733 16.926-31.473 16.926-57.043 0.030-17.679-7.198-38.159-15.842-66.922zM323.192 31.97c0.271-1.054 0.813-2.108 1.356-2.952-21.504-7.529-44.363-11.836-68.578-11.836-20.148 0-39.785 3.012-58.368 8.613l61.862 180.133 63.729-173.959zM462.788 224c0-76.348-41.412-142.788-103.002-178.567l63.187 182.332c10.481 30.148 15.872 53.218 15.872 74.24 0 7.5-0.542 14.517-1.627 21.233 16.173-29.575 25.57-63.217 25.57-99.238z" />
-<glyph unicode="&#xe74a;" d="M485.858 410.7c-17.468 22.166-54.091 23.010-79.661 19.185-20.48-3.404-90.293-34.063-113.755-107.791 41.773 3.404 63.849-3.042 59.633-49.002-1.747-19.576-11.535-40.478-22.166-60.958-12.83-23.372-36.171-69.421-67.313-36.171-27.678 29.817-25.992 86.889-31.924 124.808-3.885 21.324-7.68 47.737-14.517 69.873-5.994 18.764-20.059 41.292-36.623 46.442-18.311 5.15-40.93-2.981-54.121-10.632-41.834-24.757-69.451-59.693-110.351-88.636v-3.012c13.613-6.837 9.396-17.89 20.028-19.606 25.148-3.373 48.941 23.492 65.626-4.638 10.21-17.017 13.192-35.78 19.547-54.151 8.915-24.666 15.39-51.531 22.588-79.661 11.927-48.188 26.444-119.717 68.156-137.246 20.932-8.945 52.887 3.012 68.638 12.83 43.399 25.6 78.005 62.644 106.496 100.954 66.892 89.54 103.123 191.759 108.664 221.154 3.825 20.058 3.404 40.508-8.945 56.26z" />
-<glyph unicode="&#xe74b;" d="M459.385 328.268c0.332-4.548 0.332-9.096 0.332-13.673 0-138.692-105.592-298.526-298.556-298.526-59.452 0-114.688 17.228-161.16 47.104 8.463-0.964 16.595-1.265 25.359-1.265 49.062 0 94.178 16.565 130.259 44.815-46.14 0.964-84.781 31.202-98.093 72.794 6.475-0.964 12.98-1.627 19.757-1.627 9.457 0 18.884 1.295 27.648 3.554-48.068 9.758-84.148 51.983-84.148 102.972 0 0.332 0 0.994 0 1.295 13.974-7.771 30.208-12.649 47.435-13.312-28.251 18.853-46.773 51.019-46.773 87.371 0 19.486 5.21 37.376 14.306 52.977 51.652-63.699 129.295-105.291 216.365-109.809-1.656 7.8-2.62 15.932-2.62 24.064 0 57.796 46.803 104.9 104.93 104.9 30.208 0 57.495-12.649 76.68-33.13 23.702 4.548 46.411 13.312 66.59 25.329-7.8-24.365-24.365-44.845-46.14-57.796 21.142 2.259 41.592 8.101 60.446 16.233-14.306-20.781-32.166-39.334-52.615-54.272z" />
-<glyph unicode="&#xe74c;" d="M274.191 464.941v-121.735h114.236v-75.596h-114.236v-123.603c0-27.919 1.265-45.809 4.397-53.971 2.831-7.861 8.463-14.095 16.293-18.824 10.661-6.565 22.919-9.728 36.714-9.728 24.486 0 48.64 7.861 72.795 23.884v-75.926c-20.721-9.728-39.213-16.625-55.838-20.42-16.655-4.066-34.816-5.933-54.302-5.933-21.956 0-41.382 2.831-58.368 8.463-16.926 5.331-31.382 13.493-43.279 23.522-11.897 10.33-20.359 21.324-24.756 32.918-4.698 11.625-6.897 28.522-6.897 50.507v169.111h-53.339v68.096c18.793 6.235 35.117 15.059 48.61 26.323 13.523 11.626 24.185 25.42 32.346 41.412 8.132 16.324 13.794 36.714 16.926 61.5h68.698z" />
-<glyph unicode="&#xe74d;" d="M496.941 3.147c0-10.993-9.096-20.089-20.089-20.089h-441.705c-10.963 0-20.088 9.096-20.088 20.089v441.705c0 10.993 9.095 20.089 20.088 20.089h441.736c10.963 0 20.089-9.096 20.089-20.089v-441.705zM235.911 404.706c0 5.662-4.397 10.029-10.029 10.029h-150.588c-5.662 0-10.029-4.397-10.029-10.029v-321.265c0-5.632 4.397-10.029 10.029-10.029h150.588c5.662 0 10.029 4.397 10.029 10.029v321.265zM446.735 404.706c0 5.662-4.397 10.029-10.029 10.029h-150.588c-5.662 0-10.029-4.397-10.029-10.029v-200.795c0-5.632 4.367-10.029 10.029-10.029h150.588c5.662 0 10.029 4.397 10.029 10.029v200.795z" />
-<glyph unicode="&#xe74e;" d="M381.289-7.274c0-9.397-0.271-9.397-0.271-9.397v-0.271h-304.369c-9.427 0-9.427 0.271-9.427 0.271h-0.271v197.933h32.557v-166.219h249.555v166.22h32.226v-188.536zM316.507 47.631l-190.102-0.271v40.599l190.102 0.271v-40.599zM321.084 140.092l-3.493-40.327-189.59 17.468 3.764 40.327 189.32-17.468zM333.733 193.34l-10.511-39.303-183.657 49.243 10.481 39.274 183.687-49.212zM357.647 239.601l-20.721-34.937-163.75 96.768 20.691 34.966 163.78-96.798zM397.704 268.092l-33.31-22.859-107.339 157.034 33.611 23.161 107.038-157.334zM445.048 277.489l-40.087-6.988-32.527 187.452 40.056 6.988 32.557-187.452z" />
-<glyph unicode="&#xe74f;" d="M26.564 174.848l-4.186-26.353c-0.211-1.054-0.813-1.868-1.867-1.868s-1.686 0.813-1.867 1.868l-3.584 26.353 3.554 26.774c0.211 1.054 0.843 1.868 1.867 1.868s1.657-0.813 1.867-1.868l4.216-26.774zM45.809 174.848l-5.421-42.436c-0.211-1.054-1.054-1.868-2.078-1.868-1.054 0-1.867 0.813-1.867 2.048l-4.819 42.255c4.819 43.309 4.819 43.309 4.819 43.309 0 1.024 0.813 1.868 1.867 1.868 1.024 0 1.867-0.844 2.078-1.868l5.421-43.309zM64.844 174.848l-5.21-49.574c0-1.235-1.054-2.289-2.319-2.289s-2.289 1.054-2.5 2.289l-4.397 49.574 4.397 51.23c0.211 1.476 1.265 2.5 2.5 2.5 1.265 0 2.319-1.024 2.319-2.5l5.21-51.23zM84.088 174.848l-4.819-51.019c-0.211-1.687-1.445-2.74-2.921-2.74-1.445 0-2.71 1.054-2.71 2.74l-4.397 51.019 4.397 52.706c0 1.686 1.265 2.71 2.71 2.71 1.476 0 2.71-1.024 2.921-2.71l4.819-52.706zM103.334 174.848l-4.397-51.471c-0.211-1.868-1.686-3.343-3.343-3.343s-3.132 1.476-3.132 3.343l-4.186 51.471 4.186 48.911c0 1.716 1.476 3.162 3.132 3.162 1.686 0 3.132-1.476 3.343-3.162l4.397-48.911zM122.971 174.848l-4.397-51.471c0-2.048-1.686-3.764-3.554-3.764-2.078 0-3.554 1.716-3.764 3.764l-3.764 51.471c3.764 79.51 3.764 79.51 3.764 79.51 0.241 2.048 1.686 3.734 3.764 3.734 1.868 0 3.554-1.686 3.554-3.734l4.397-79.51zM142.215 174.426l-3.976-51.050c0-2.289-1.898-3.945-3.976-3.945-2.289 0-3.946 1.656-4.186 3.945l-3.343 51.050c3.343 97.882 3.343 97.882 3.343 97.882 0.211 2.289 1.868 3.976 4.186 3.976 2.078 0 3.976-1.687 3.976-3.976l3.976-97.882zM162.515 174.848l-3.764-50.628c-0.211-2.5-2.078-4.397-4.608-4.397-2.289 0-4.186 1.868-4.397 4.397l-3.343 50.628 3.343 105.834c0 2.5 2.108 4.608 4.397 4.608 2.5 0 4.397-2.108 4.608-4.608l3.764-105.834zM182.393 174.848l-3.373 109.387c-0.18 2.711-2.289 5.029-5 5.029-2.5 0-4.819-2.319-4.819-5.029l-2.952-109.387 2.952-50.417c0.211-2.711 2.319-4.819 4.819-4.819 2.71 0 4.819 2.108 5.030 4.819l3.343 50.417zM202.451 174.848l-3.132-49.995c0-2.921-2.289-5.24-5.24-5.24-2.922 0-5.030 2.319-5.21 5.24l-2.952 49.995 2.952 106.676c0 2.952 2.289 5.24 5.21 5.24 2.952 0 5.24-2.289 5.24-5.24l3.132-106.676zM222.961 174.637l-2.952-49.393c0-3.132-2.5-5.662-5.632-5.662s-5.662 2.53-5.843 5.662l-2.5 49.393 2.5 102.882c0.211 3.343 2.71 5.873 5.843 5.873 3.132 0 5.421-2.53 5.632-5.873l2.952-102.882zM243.23 174.637l-2.5 122.579c0 2.078-1.054 3.976-2.71 5-1.054 0.632-2.108 1.054-3.343 1.054-1.265 0-2.289-0.421-3.343-1.054-1.686-1.054-2.74-2.922-2.74-5l-0.211-1.235-2.108-121.103c0 0 0-0.211 2.319-49.363 0 0 0 0 0-0.241 0-1.235 0.422-2.5 1.265-3.524 1.265-1.476 2.922-2.289 4.819-2.289 1.686 0 3.132 0.813 4.186 1.868 1.265 1.024 1.868 2.5 1.868 4.187l0.211 5 2.289 44.123zM261.452 126.329c0-3.554-2.921-6.476-6.476-6.476s-6.476 2.921-6.716 6.476l-1.235 23.823-1.265 24.486 2.5 133v0.662c0.211 1.868 1.054 3.764 2.53 5 1.024 0.813 2.5 1.476 4.156 1.476 1.054 0 2.319-0.421 3.132-1.054 1.868-1.024 3.132-3.132 3.343-5.421l2.921-133.662-2.892-48.308zM437.76 119.612c-164.202 0-164.382 0-164.382 0-3.554 0.421-6.476 3.132-6.476 6.897v188.084c0 3.524 1.265 5.21 5.873 6.897 11.505 4.578 24.456 7.077 37.858 7.077 54.573 0 99.358-41.803 104.147-95.142 7.108 2.922 14.848 4.608 23.010 4.608 32.618 0 59.181-26.594 59.181-59.422-0.030-32.647-26.594-59-59.212-59z" />
-<glyph unicode="&#xe750;" d="M496.941 83.411c0-55.507-44.875-100.352-100.382-100.352-55.537 0-100.382 44.845-100.382 100.352 0 3.493 0.301 7.228 0.603 10.661l-112.941 56.5c-17.86-16.625-42.044-26.986-68.397-26.986-55.537 0-100.382 44.845-100.382 100.412 0 55.507 44.845 100.352 100.382 100.352 26.353 0 50.508-10.33 68.397-26.955l112.941 56.44c-0.301 3.494-0.603 7.228-0.603 10.662 0 55.567 44.845 100.412 100.382 100.412 55.507 0 100.382-44.845 100.382-100.412 0-55.537-44.875-100.382-100.382-100.382-26.353 0-50.507 10.361-68.397 26.986l-112.941-56.47c0.301-3.464 0.632-7.228 0.632-10.661 0-3.464-0.332-7.228-0.632-10.661l112.941-56.531c17.89 16.655 42.075 27.015 68.397 27.015 55.507 0.060 100.382-44.785 100.382-100.382z" />
-<glyph unicode="&#xe751;" d="M496.941 73.412c0-49.875-40.478-90.353-90.353-90.353h-301.176c-49.875 0-90.353 40.478-90.353 90.353v301.176c0 49.875 40.478 90.353 90.353 90.353h301.176c49.875 0 90.353-40.478 90.353-90.353v-301.176zM349.786 197.316c-17.558 0-33.551-6.897-45.478-18.191l-75.596 37.647c0.301 2.53 0.602 4.699 0.602 7.228s-0.301 4.698-0.632 7.228l75.595 37.617c11.926-11.294 27.919-18.191 45.478-18.191 36.714 0 66.831 30.087 66.831 67.132 0 36.714-30.118 66.831-66.831 66.831-37.014 0-67.132-30.118-67.132-66.831 0-2.5 0.301-4.699 0.632-7.198l-75.596-37.647c-11.897 10.993-27.889 17.89-45.447 17.89-36.714 0-66.831-29.786-66.831-66.831s30.117-66.831 66.831-66.831c17.559 0 33.551 6.897 45.477 17.89l75.595-37.647c-0.332-2.5-0.632-4.699-0.632-7.198 0-36.714 30.118-66.831 67.132-66.831 36.714 0 66.831 30.118 66.831 66.831 0 37.014-30.118 67.102-66.831 67.102z" />
-<glyph unicode="&#xe752;" d="M469.263 180.751c0.723-4.849 1.204-9.939 1.204-14.788 0-39.394-23.070-75.806-64.603-103.002-40.569-26.474-93.997-41.050-150.829-41.050s-110.501 14.577-150.829 41.050c-41.803 27.196-64.603 63.608-64.603 103.002 0 5.331 0.482 10.661 1.205 16.022-15.3 9.698-25.75 26.955-25.75 46.411 0 30.328 24.546 54.875 54.874 54.875 13.613 0 26.263-5.12 35.96-13.372 38.882 24.787 89.63 38.882 143.781 39.876l32.557 102.701c1.445 4.608 6.325 7.288 11.173 6.325l84.3-19.908c7.017 16.023 23.070 27.196 41.532 27.196 25.028 0 45.176-20.42 45.176-45.207 0-24.998-20.149-45.418-45.176-45.418-24.787 0-44.935 20.179-45.176 44.936l-76.529 17.98-28.16-88.877c51.23-2.168 99.087-16.293 136.012-40.327 9.698 8.734 22.588 14.095 36.683 14.095 30.329 0 54.875-24.546 54.875-54.875 0-20.42-11.173-38.159-27.678-47.646zM46.14 201.412c7.77 20.872 22.588 40.327 43.7 57.103-5.541 3.855-12.62 6.053-19.908 6.053-19.908 0-36.172-16.263-36.172-36.172 0-10.722 4.849-20.42 12.379-26.985zM451.764 165.964c0 32.527-19.938 63.608-56.109 87.221-37.406 24.275-87.431 37.858-140.619 37.858s-103.244-13.613-140.649-37.858c-36.202-23.582-56.109-54.663-56.109-87.221 0-32.798 19.908-63.88 56.109-87.462 37.406-24.275 87.431-37.888 140.619-37.888s103.243 13.613 140.619 37.888c36.202 23.582 56.139 54.663 56.139 87.462zM183.627 158.916c-18.221 0-33.762 14.818-33.762 33.039 0 18.432 15.541 33.762 33.762 33.762s33.28-15.33 33.28-33.762c0-18.221-15.059-33.039-33.28-33.039zM333.733 110.547c3.644-3.614 3.644-9.698 0-13.342-16.264-16.264-41.532-24.034-77.493-24.034h-0.482c-35.96 0-61.229 7.771-77.493 24.034-3.644 3.644-3.644 9.728 0 13.342 3.644 3.675 9.457 3.675 13.131 0 12.619-12.62 33.521-18.673 64.362-18.673h0.482c30.63 0 51.742 6.053 64.361 18.673 3.644 3.675 9.457 3.675 13.132 0zM362.135 191.955c0-18.191-15.059-33.039-33.28-33.039s-33.762 14.818-33.762 33.039c0 18.432 15.541 33.762 33.762 33.762s33.28-15.33 33.28-33.762zM392.734 380.883c0-14.517 11.897-26.443 26.474-26.443s26.474 11.926 26.474 26.443c0 14.577-11.926 26.504-26.474 26.504-14.577 0-26.474-11.927-26.474-26.504zM478.238 228.397c0 19.908-16.264 36.171-36.171 36.171-7.771 0-15.059-2.439-20.901-6.806 20.901-16.775 35.69-36.442 43.249-57.826 8.493 6.837 13.824 17.046 13.824 28.461z" />
-<glyph unicode="&#xe753;" d="M256 464.941c-133.060 0-240.941-107.851-240.941-240.941 0-98.635 59.332-183.417 144.233-220.672-0.662 16.836-0.15 37.014 4.186 55.326 4.608 19.546 30.991 131.283 30.991 131.283s-7.71 15.39-7.71 38.129c0 35.72 20.721 62.343 46.501 62.343 21.925 0 32.497-16.444 32.497-36.141 0-22.016-14.065-54.995-21.293-85.504-6.024-25.57 12.83-46.411 38.038-46.411 45.659 0 76.409 58.609 76.409 128.090 0 52.796-35.599 92.34-100.262 92.34-73.096 0-118.603-54.543-118.603-115.38 0-21.022 6.174-35.81 15.872-47.255 4.428-5.271 5.060-7.409 3.464-13.433-1.144-4.428-3.825-15.119-4.909-19.336-1.626-6.114-6.565-8.283-12.047-6.053-33.702 13.764-49.363 50.628-49.363 92.070 0 68.428 57.706 150.528 172.213 150.528 91.979 0 152.516-66.59 152.516-138.029 0-94.54-52.555-165.135-129.988-165.135-26.022 0-50.507 14.095-58.88 30.058 0 0-13.975-55.537-16.926-66.228-5.12-18.582-15.119-37.135-24.275-51.622 21.655-6.445 44.544-9.909 68.276-9.909 133.060 0 240.941 107.851 240.941 240.941s-107.882 240.941-240.941 240.941z" />
-<glyph unicode="&#xe754;" d="M0 409.555l209.829 28.883v-202.752h-209.829v173.869zM0 38.445l209.829-28.883v200.283h-209.829v-171.399zM232.93 441.54v-205.854h279.070v244.315l-279.070-38.46zM232.93 6.46l279.070-38.46v241.845h-279.070v-203.385z" />
-<glyph unicode="&#xe755;" d="M417.099 20.706c-15.33-7.83-35.78-25.058-43.309-32.286-5.662-5.391-29.034-8.101-42.225-1.356-15.33 7.83-7.259 20.209-30.931 20.962-11.836 0.301-23.401 0.301-34.966 0.301-10.21-0.301-20.42-0.813-30.931-1.054-35.478-0.813-38.972-23.702-61.862-22.889-15.601 0.542-35.208 12.921-69.12 19.877-23.672 4.879-46.502 6.174-51.38 16.685-4.819 10.511 5.933 22.317 6.716 32.527 0.813 13.733-10.21 32.286-2.139 39.303 6.987 6.174 21.775 1.627 31.443 6.957 10.21 5.903 14.516 10.511 14.516 23.13 3.764-12.86-0.271-23.341-8.614-28.461-5.12-3.223-14.516-4.849-22.347-4.066-6.174 0.572-9.939-0.241-11.565-2.68-2.41-2.952-1.627-8.342 1.355-15.33 2.952-6.988 6.445-11.565 5.903-20.149-0.271-8.613-9.939-18.853-8.313-26.112 0.542-2.711 3.222-5.12 9.939-6.988 10.752-2.952 30.388-5.903 49.483-10.511 21.263-5.361 43.309-15.029 57.043-13.161 40.869 5.662 17.468 49.483 11.023 59.934-34.696 54.363-57.555 89.841-75.836 75.866-4.578-3.764-4.849 9.156-4.578 14.276 0.813 17.769 9.698 24.185 15.059 37.918 10.21 26.112 18.010 55.928 33.611 71.258 11.655 15.089 29.937 39.544 33.46 52.435-2.982 27.979-3.795 57.555-4.307 83.335-0.542 27.708 3.764 51.953 34.966 68.849 7.5 4.066 17.438 5.662 27.949 5.662 18.552 0.301 39.244-5.12 52.435-14.788 20.992-15.601 34.154-48.67 32.557-72.313-1.084-18.553 2.139-37.647 8.072-57.555 6.988-23.401 18.041-39.786 35.78-58.609 21.263-22.588 37.918-66.952 42.767-95.172 4.307-26.413-1.627-42.797-7.259-43.611-8.613-1.295-13.974-28.461-40.87-27.407-17.197 0.813-18.824 11.023-23.673 19.908-7.8 13.704-15.601 9.397-18.553-5.12-1.627-7.259-0.572-18.041 1.868-26.052 4.849-16.956 3.223-32.828 0.271-52.465-5.662-37.105 26.082-44.092 47.345-26.323 20.962 17.438 25.54 20.149 51.892 29.305 40.056 13.733 26.624 25.811 5.090 33.069-19.365 6.476-20.149 39.033-13.192 45.207 1.627-34.966 19.908-40.087 27.437-44.906 33.069-20.51-12.378-37.466-32.015-47.405zM371.923 150.573c7.259 24.245 4.036 33.882-0.783 56.772-3.764 17.197-19.637 40.629-32.015 47.857 3.223-2.68 9.156-10.481 15.33-22.287 10.752-20.209 21.504-50.026 14.517-74.782-2.68-9.637-9.125-10.993-13.433-11.264-18.824-2.168-7.8 22.588-15.601 56.17-8.885 37.677-18.010 40.358-20.149 43.309-11.084 48.911-23.161 44.062-26.684 62.344-2.952 16.414 14.276 29.846-9.125 34.424-7.259 1.356-17.468 8.613-21.504 9.156-4.036 0.512-6.204 27.166 8.854 27.979 14.788 1.084 17.498-16.685 14.788-23.702-4.276-6.957 0.271-9.668 7.56-7.228 5.903 1.867 2.139 17.468 3.493 19.606-3.764 22.588-13.192 25.811-22.86 27.708-37.135-2.952-20.45-43.851-24.214-40.087-5.391 5.662-20.962 0.542-20.962 4.066 0.271 20.962-6.746 33.069-16.414 33.34-10.752 0.271-15.059-14.788-15.601-23.371-0.813-8.072 4.578-25.058 8.613-23.703 2.68 0.813 7.258 6.204 2.41 5.903-2.41 0-6.174 5.933-6.716 12.921-0.271 7.017 2.44 14.005 11.565 13.733 10.481-0.271 10.481-21.233 9.397-22.046-3.464-2.41-7.8-7.018-8.343-7.801-3.464-5.662-10.18-7.228-12.891-9.698-4.578-4.819-5.632-10.21-2.138-12.077 12.348-6.988 8.313-15.029 25.54-15.631 11.294-0.542 19.607 1.626 27.437 4.036 5.903 1.868 25.028 5.903 29.033 12.921 1.868 2.952 4.036 2.952 5.361 2.138 2.68-1.325 3.223-6.445-3.493-8.072-9.397-2.71-18.824-7.83-27.407-11.053-8.343-3.464-11.023-4.819-18.823-6.144-17.739-3.223-30.9 6.445-19.095-5.12 4.036-3.764 7.8-6.174 18.011-5.933 22.588 0.813 47.616 28.010 50.026 15.902 0.512-2.68-7.017-5.903-12.921-8.885-20.962-10.21-35.75-30.66-49.212-23.642-12.107 6.445-24.185 36.322-23.944 22.829 0.271-20.691-27.166-38.972-14.517-62.644-8.343-2.108-26.895-41.683-29.576-62.103-1.626-11.836 1.084-26.353-1.898-34.425-4.036-11.836-22.317 11.294-16.384 39.514 1.054 4.819 0 5.933-1.356 3.464-7.258-13.161-3.222-31.714 2.68-44.604 2.44-5.662 8.613-8.072 13.191-12.921 9.397-10.722 46.501-38.189 52.977-44.906 8.343-7.8 5.933-26.052-11.294-27.949 8.885-16.685 17.468-18.312 17.227-45.447 10.21 5.361 6.204 17.197 1.868 24.697-2.982 5.421-6.716 7.83-5.933 9.156 0.542 0.813 5.933 5.421 8.885 1.868 9.125-10.21 26.353-12.077 44.635-9.668 18.553 2.168 38.46 8.613 47.586 23.401 4.307 6.988 7.259 9.397 9.156 8.072 2.139-1.054 2.981-5.903 2.68-13.974-0.271-8.613-3.764-17.498-6.174-24.757-2.44-8.342-3.223-13.974 4.849-14.276 2.139 15.089 6.445 29.877 7.529 44.935 1.356 17.197-11.023 48.911 2.44 64.813 3.493 4.307 7.771 4.819 13.704 4.819 0.783 21.534 33.882 19.877 44.906 11.023 0 4.879-10.481 9.427-14.788 11.324zM152.486 228.006c-1.898-3.464-6.716-6.144-2.982-6.716 1.356-0.271 5.12 3.012 6.746 6.716 1.325 4.578 2.68 7.018 0.542 7.831-2.44 0.783-1.898-4.036-4.307-7.831zM214.046 373.775c-3.222 0.813-2.68-4.005-1.054-3.493 1.084 0 2.44-1.627 1.868-4.036-0.542-3.222-0.271-5.421 2.168-5.421 0.271 0 0.783 0 0.783 0.813 1.114 6.776-2.138 11.596-3.764 12.137zM221.334 349.048c-2.68-0.271-2.168 5.933 6.445 5.391-5.391-0.542-3.494-5.391-6.445-5.391zM243.381 353.626c7.8 3.464 10.481-1.897 7.8-2.981-2.71-0.783-2.982 4.337-7.8 2.981zM275.908 375.401c-3.493-0.301-2.409-1.868-0.783-2.409 2.139-0.603 4.307-4.337 4.849-8.343 0-0.542 2.68 0.542 2.68 1.356 0.241 6.415-5.391 9.638-6.747 9.397zM291.509 433.468c-2.139 2.168-4.307 4.066-6.445 4.066-5.391-0.542-2.711-6.174-3.493-8.885-1.084-2.952-5.090-5.391-2.409-7.529 2.44-1.868 4.036 2.952 9.156 4.819 1.325 0.572 7.529-0.241 8.854 2.71 0.241 1.356-3.223 2.952-5.662 4.819zM321.356 314.654c-5.090 3.192-6.174 8.584-8.041 6.716-5.662-6.174 6.988-19.095 12.348-20.209 3.223-0.542 5.662 3.795 4.849 7.56-1.084 5.090-4.849 3.222-9.156 5.933z" />
-<glyph unicode="&#xe756;" d="M496.941 152.712c0-51.531-42.587-93.425-94.81-93.425-1.868 0-3.524 0.241-5.18 0.241h-286.358c-52.706 3.072-95.533 43.309-95.533 95.533 0 35.057 19.064 65.656 47.526 82.341-1.867 6.114-2.831 12.469-2.831 19.305 0 35.99 29.425 65.174 66.108 65.174 15.059 0 29.184-5.18 40.478-13.643 23.070 47.526 72.012 80.474 129.175 80.474 79.3 0 143.3-63.308 143.3-141.191 0-2.831-0.241-5.662-0.241-8.463 34.123-14.125 58.368-47.525 58.368-86.347zM193.898 114.341c23.070 0 39.756 7.288 56.47 23.281-6.837 8.463-14.366 16.716-21.413 25.178-9.637-9.397-20.239-15.3-33.882-15.3-16.715 0-31.052 11.053-31.052 28.461 0 17.167 14.366 28.461 30.6 28.461 51.772 0 62.825-90.353 138.12-90.353 36.714 0 67.764 23.070 67.764 61.651 0 39.063-31.292 61.892-68.457 61.892-23.070 0-40.237-6.596-56.712-22.829 7.529-8.222 14.577-16.926 21.895-25.419 9.397 9.186 19.998 15.059 33.401 15.059 15.541 0 31.051-11.053 31.051-27.527 0-18.131-13.192-29.636-30.81-29.636-50.116 0-63.518 90.353-136.945 90.353-36.472 0-68.698-22.348-68.698-61.169-0.060-39.725 31.232-62.103 68.668-62.103z" />
-<glyph unicode="&#xe757;" d="M300.544 118.257l-47.375-47.676-9.397-9.397c-27.618-27.286-66.198-36.714-101.316-27.919-6.626-28.883-32.346-50.206-63.066-50.206-35.449 0-64.332 28.883-64.332 64.632 0 30.389 21.022 56.139 49.573 62.705-9.096 35.478 0.301 74.391 27.919 101.978l3.764 3.764 47.375-47.707-3.434-3.433c-15.692-15.36-15.36-40.448 0-56.109 15.36-15.39 40.478-15.39 55.838 0l9.427 9.397 47.375 47.707 50.508 50.176 47.375-47.707-50.236-50.206zM247.537 378.654l-47.676-47.646-3.795 3.764c-15.36 15.36-40.478 15.36-55.838 0-15.36-15.39-15.36-40.81 0-56.17l106.978-106.978-47.345-47.676-50.507 50.206-47.375 47.646-9.427 9.397c-28.883 28.551-37.647 69.662-26.684 106.375-28.852 6.264-50.176 31.985-50.176 62.735 0 35.78 28.883 64.632 64.332 64.632 32.316 0 58.669-23.522 63.669-53.971 34.816 8.162 72.794-1.596 100.081-28.522l3.764-3.795zM440.471 336.308c10.361-36.051 1.235-76.529-27.286-105.080l-3.764-3.764-47.375 47.707 3.764 3.734c15.36 15.39 15.36 40.508 0 55.868-15.36 15.36-40.478 15.36-55.838 0l-107.309-107.34-47.676 47.707 50.507 50.206 47.676 47.646 9.096 9.427c28.551 28.522 69.331 37.647 105.743 26.956 4.367 31.413 31.353 55.567 64 55.567 35.449 0 64.332-28.883 64.332-64.632-0.030-32.618-24.486-59.603-55.868-64zM432.61-16.941c-31.353 0-57.404 22.257-63.368 51.772-36.382-11.264-78.125-2.53-106.978 26.353l-3.433 3.764 47.375 47.676 3.764-3.735c15.36-15.39 40.478-15.39 55.838 0 15.36 15.36 15.36 40.448 0 55.838l-9.397 9.427-97.913 97.852 47.676 47.707 97.882-97.913 9.125-9.397c27.286-27.286 37.014-65.897 28.22-101.014 31.382-4.397 55.537-31.082 55.537-63.668 0-35.78-28.853-64.662-64.332-64.662z" />
-<glyph unicode="&#xe758;" d="M468.028 464.941l-38.55-433.062-174.080-48.82-172.875 48.82-38.55 433.062h424.057zM389.12 376.425h-266.24l14.155-160.828h184.35l-6.686-68.638-59.302-16.022-59.030 15.993-3.916 42.135h-52.676l6.626-83.697 109.026-30.118h1.175v0.301l108.152 29.817 15.059 163.84h-193.988l-4.518 54.513h202.993l4.819 52.706z" />
-<glyph unicode="&#xe759;" d="M256 464.941c-133.060 0-240.941-107.911-240.941-240.941 0-133.060 107.882-240.941 240.941-240.941s240.941 107.882 240.941 240.941c0 133.029-107.882 240.941-240.941 240.941zM163.629 149.339c-41.894 0-75.867 33.913-75.867 75.836 0 41.894 33.972 75.836 75.867 75.836s75.806-33.942 75.806-75.836c0-41.924-33.942-75.836-75.806-75.836zM353.882 149.339c-41.894 0-75.836 33.913-75.836 75.836 0 41.894 33.942 75.836 75.836 75.836s75.836-33.942 75.836-75.836c0-41.924-33.942-75.836-75.836-75.836z" />
-<glyph unicode="&#xe75a;" d="M0 419.764v-391.529h512v391.529h-512zM255.82 184.335l-207.691 205.312h416.226l-208.535-205.312zM173.327 223.518l-143.209-141.011v282.594l143.209-141.583zM194.74 202.346l61.019-60.325 60.115 59.212 144.565-142.878h-411.919l146.221 143.993zM337.348 222.344l144.535 142.306v-285.124l-144.534 142.818z" />
-<glyph unicode="&#xe75b;" d="M257.897-16.941c-111.978 0-212.691 88.124-212.691 207.993 0 119.688 93.304 175.074 110.592 184.139 20.601 10.963 35.418 16.745 58.73 35.388 11.535 9.065 21.143 22.257 24.184 54.362 16.715-20.028 36.774-43.339 51.019-52.977 23.341-15.36 46.683-21.413 71.077-36.774 14.818-9.065 105.954-64.753 105.954-187.964 0-122.94-97.159-204.167-208.866-204.167zM422.55 181.745c-21.956 0-66.409-45.568-89.721-45.839-27.136-0.542-64.723 53.82-119.085 53.308-42.827-0.301-76.559-34.334-77.132-70.565-0.271-20.329 6.325-35.418 20.329-44.996 9.337-6.295 17.829-10.149 45.538-10.149 46.11 0 104.568 57.103 131.464 56.23 21.384-0.783 54.573-53.248 71.349-54.332 13.161-1.084 20.028 4.94 31.262 21.113 10.963 16.474 15.661 42.285 15.661 56.832 0 14.245-6.325 38.4-29.666 38.4zM358.912 36.036c-9.337-6.867-30.208-15.39-59.844-15.39s-43.611 6.325-52.947 13.462c-1.356 1.084-0.813 1.084-3.584 1.084-3.012 0-4.638-1.385-7.108-3.283-2.198-1.928-3.283-6.596 0-9.878 20.299-18.643 54.332-17.017 79.3-14.788 25.269 2.469 46.683 17.257 48.851 19.456 3.283 3.252 2.469 6.024 1.897 7.951-0.542 1.928-2.199 4.638-6.565 1.385zM344.064 82.929c-5.481 3.554-13.402 4.126-20.812 4.126-7.439 0-11.535 0.542-19.456-2.74-8.012-3.283-16.233-10.692-21.413-15.39-5.24-4.638-6.053-8.222-3.313-12.077 2.771-3.524 5.783-1.325 13.462 5.24 7.951 6.325 13.192 12.077 29.365 12.077s18.944-6.053 22.197-12.077c3.313-6.024 3.584-6.867 6.867-5.24 3.855 1.928 5.783 4.699 3.855 9.397-1.957 4.638-5.24 12.86-10.752 16.685z" />
-<glyph unicode="&#xe75c;" d="M15.059 198.58l141.764-92.461 99.177 82.703-142.908 88.245zM156.822 448.015l-141.764-92.491 98.033-78.457 142.908 88.154zM496.941 355.524l-141.733 92.491-99.207-82.793 142.938-88.154zM256 188.822l99.207-82.703 141.733 92.461-98.003 78.486zM256.301 171.023l-99.478-82.492-42.556 27.829v-31.172l142.035-85.203 142.065 85.203v31.172l-42.587-27.829z" />
-<glyph unicode="&#xe75d;" d="M496.941 442.052l-72.493-363.339-219.166-72.764-190.223 72.764 19.365 97.069h80.956l-7.921-40.057 114.989-43.882 132.457 43.882 18.492 92.401h-329.156l15.782 80.896h329.487l10.39 52.103h-329.216l16.052 80.926h410.202z" />
-<glyph unicode="&#xe75e;" d="M300.243 58.353h-30.118c0 97.37-80.655 176.58-179.772 176.58v30.118c115.742 0 209.89-92.732 209.89-206.697zM90.353 374.588v-30.117c160.436 0 286.118-125.681 286.118-286.118h30.118c0 177.333-138.902 316.236-316.236 316.236zM180.706 103.5c0 24.908-20.209 45.207-45.086 45.207-24.968 0-45.267-20.3-45.267-45.207s20.299-45.176 45.267-45.176c24.877 0 45.086 20.269 45.086 45.176zM150.588 103.5c0-8.283-6.716-15.059-14.969-15.059-8.343 0-15.149 6.776-15.149 15.059 0 8.313 6.806 15.089 15.149 15.089 8.252 0 14.969-6.776 14.969-15.089zM512 13.176v421.647c0 24.908-20.269 45.176-45.176 45.176h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-421.647c0-24.907 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176zM466.824 449.882c8.313 0 15.059-6.776 15.059-15.059v-421.647c0-8.283-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.776-15.059 15.059v421.647c0 8.282 6.746 15.059 15.059 15.059h421.647z" />
-<glyph unicode="&#xe75f;" d="M336.505-32h-30.118c0 166.068-137.457 301.176-306.387 301.176v30.118c185.555 0 336.505-148.63 336.505-331.294zM0 480v-30.118c270.216 0 481.882-211.667 481.882-481.882h30.118c0 287.082-224.918 512-512 512zM120.471 28.205c0 33.25-26.986 60.266-60.115 60.266-33.28 0-60.356-27.015-60.356-60.265 0-33.22 27.076-60.205 60.356-60.205 33.13 0 60.115 26.986 60.115 60.205zM90.353 28.205c0-16.595-13.463-30.087-29.997-30.087-16.685 0-30.238 13.493-30.238 30.087 0 16.625 13.553 30.148 30.238 30.148 16.535 0 29.997-13.523 29.997-30.148z" />
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="themify" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
+<glyph unicode="&#xe600;" d="M512 329.412h-99.178l70.114-70.114-21.293-21.293-70.114 70.114v-99.178h-30.118v98.966l-320.632-321.204-21.293 21.293 320.844 321.416h-99.388v30.118h99.177l-70.114 70.114 21.293 21.293 70.114-70.114v99.178h30.118v-99.298l68.879 68.999 21.293-21.293-68.758-68.879h99.057v-30.118z" />
+<glyph unicode="&#xe601;" d="M108.032 301.312c-28.793 0-46.682-15.059-46.682-39.334v-65.084c0-12.499 4.849-24.214 13.643-33.069 8.794-8.825 20.54-13.704 33.039-13.704h52.495l171.249-171.309v494.803l-169.563-172.303h-54.181zM301.659 400.068v-348.522l-128.662 128.692h-64.994c-9.126 0-16.535 7.469-16.535 16.655v65.084c0 2.74 0 9.216 16.564 9.216h66.771l126.856 128.873zM361.563 149.098v30.118c16.745 0 30.358 13.613 30.358 30.358s-13.613 30.358-30.358 30.358v30.118c33.34 0 60.476-27.136 60.476-60.476s-27.136-60.476-60.476-60.476zM482.756 209.332c0-66.44-54.031-120.471-120.471-120.471v30.118c49.815 0 90.353 40.538 90.353 90.353s-40.538 90.353-90.353 90.353v30.118c66.409 0 120.471-54.061 120.471-120.471z" />
+<glyph unicode="&#xe602;" d="M512-16.58c-1.897 80.926-83.667 150.558-196.397 168.93v41.382c14.818 14.245 25.359 36.352 32.256 55.206 9.999 5 18.793 16.143 23.913 31.112 7.168 20.721 4.397 39.846-6.204 49.061 0.844 7.168 1.385 14.487 0.452 21.775-2.38 19.968 1.957 31.262 5.843 41.201 3.192 8.343 6.897 17.8 3.192 28.461-13.312 38.34-52.013 59.452-108.966 59.452l-7.951-0.15c-39.544-1.416-51.411-18.071-59.362-33.581-0.994-1.868-2.319-4.397-2.319-4.548-51.561-4.608-51.109-47.255-50.718-81.529l0.090-11.113c0-6.174 0.271-12.619 0.783-19.245-12.8-9.036-15.179-30.268-5.391-52.315 5.572-12.499 13.613-21.956 22.558-26.865 7.319-20.299 18.823-44.273 35.508-59.181v-38.641c-114.387-17.74-197.391-87.552-199.288-169.412l-0.361-15.42h512.692l-0.332 15.42zM31.744-1.882c11.806 63.067 86.106 115.079 184.38 126.615l13.282 1.566v80.293l-6.506 4.517c-11.836 8.192-23.823 28.522-32.828 55.748l-2.5 8.463-8.855 1.536c-1.596 0.572-6.264 4.608-9.939 12.89-2.259 5.060-3.132 9.397-3.373 12.499l15.36-4.307-2.892 22.558c-1.265 9.939-1.928 19.606-1.928 28.612l-0.090 11.445c-0.452 40.388 1.536 49.212 23.281 51.17 16.414 1.446 22.648 13.523 26.383 20.751 4.518 8.794 8.433 16.354 33.732 17.287l6.837 0.12c24.967 0 68.638-5.090 80.384-38.611 0-1.295-1.566-5.331-2.711-8.282-4.367-11.264-10.963-28.281-7.65-55.808 0.723-5.662-0.211-12.77-1.204-20.329l-2.68-24.245 13.282 1.446c0.241-3.132-0.12-8.101-2.259-14.216-2.921-8.704-7.288-13.191-7.138-13.673h-10.842l-3.433-10.3c-8.524-25.691-19.577-45.086-30.389-53.248l-5.964-4.517v-82.101l13.192-1.656c96.708-12.077 169.893-63.94 181.609-126.253h-448.542z" />
+<glyph unicode="&#xe603;" d="M286.118 149.549c0-11.023-6.235-20.239-15.059-25.48v-64.874h-30.118v64.844c-8.855 5.24-15.059 14.457-15.059 25.51 0 16.625 13.463 30.118 30.118 30.118 16.595 0 30.117-13.462 30.117-30.118zM451.584 225.204v-213.233c0-24.908-20.269-45.177-45.176-45.177h-300.815c-24.907 0-45.176 20.269-45.176 45.176v213.233c0 24.907 20.269 45.177 45.176 45.177h270.878v59.874c0 66.44-54.031 120.471-120.471 120.471s-120.471-54.031-120.471-120.471h-30.118c0 83.034 67.554 150.588 150.588 150.588s150.588-67.554 150.588-150.588v-59.874c24.817-0.12 44.996-20.33 44.996-45.177zM421.466 225.204c0 8.313-6.776 15.059-15.059 15.059h-300.815c-8.282 0-15.059-6.746-15.059-15.059v-213.233c0-8.313 6.776-15.059 15.059-15.059h300.815c8.283 0 15.059 6.747 15.059 15.059v213.233z" />
+<glyph unicode="&#xe604;" d="M64.271 325.226l42.225 77.914c32.708 49.634 98.244 63.097 146.703 30.991l-16.595-25.088c-34.605 22.86-81.408 13.252-104.328-21.353l-42.225-77.915c-23.522-35.78-13.975-82.582 20.691-105.442 34.424-22.649 72.584-16.474 99.78 16.204l23.131-19.305c-22.347-26.865-51.019-40.719-80.655-40.719-19.727 0-39.846 6.144-58.85 18.673-48.489 32.045-61.922 97.551-29.876 146.041zM121.706 238.035l-3.915-3.885 21.233-21.354 3.946 3.916c29.364 29.364 77.132 29.364 106.466 0s29.365-77.132 0-106.466l-91.046-91.076c-29.364-29.365-77.132-29.365-106.466 0s-29.364 77.132 0 106.466l31.865 31.894-21.293 21.293-31.864-31.925c-41.081-41.080-41.081-107.972 0-149.052 20.57-20.57 47.525-30.811 74.541-30.811s53.971 10.27 74.541 30.81l91.046 91.076c41.081 41.081 41.081 107.972 0 149.052-41.171 41.171-108.032 41.081-149.052 0.060zM330.18 269.177h122.7v30.117h-122.7v-30.117zM316.084 228.608l58.76-33.942 15.059 26.052-58.76 33.942-15.059-26.052zM323.764 445.184l-47.586-82.432 26.052-15.059 47.586 82.402-26.052 15.089zM477.877 397.93l-15.059 26.052-150.347-86.799 15.059-26.052 150.348 86.799z" />
+<glyph unicode="&#xe605;" d="M329.337 419.283c-6.565 26.172-30.087 45.659-58.278 45.659-28.070 0-51.501-19.365-58.157-45.659h-107.49v-30.118h331.294v30.118h-107.37zM271.059 434.824c11.505 0 21.233-6.656 26.353-15.541h-52.194c5.18 9.125 14.607 15.541 25.841 15.541zM391.529 359.529h30.118v-316.717c0-24.908-20.269-45.176-45.176-45.176h-210.823c-24.907 0-45.177 20.269-45.177 45.176v316.717h30.118v-316.717c0-8.283 6.746-15.059 15.059-15.059h210.823c8.313 0 15.059 6.776 15.059 15.059v316.717zM240.941 329.412v-240.941h-30.118v240.941h30.118zM331.294 329.412v-240.941h-30.118v240.941h30.118z" />
+<glyph unicode="&#xe606;" d="M346.353 175.33c91.347 0 165.647 68.337 165.647 152.335s-74.3 152.335-165.647 152.335c-57.585 0-111.225-28.25-141.071-73.216-21.233 12.017-45.056 18.312-69.752 18.312-74.722 0-135.53-56.019-135.53-124.898 0-68.849 60.807-124.868 135.53-124.868 5.602 0 11.294 0.392 17.257 1.115 19.637-17.709 45.839-27.738 73.095-27.738 30.178 0 58.097 11.656 78.065 32.226 14.697-3.764 28.642-5.602 42.406-5.602zM293.497 215.416l-6.385-8.072c-14.185-17.86-37.075-28.522-61.229-28.522-21.805 0-42.587 8.734-57.073 24.004l-5.542 5.813-7.951-1.385c-6.445-1.115-12.981-1.807-19.787-1.807-58.127 0-105.412 42.496-105.412 94.72 0 52.254 47.285 94.78 105.412 94.78 23.853 0 46.652-7.409 65.928-21.474l14.215-10.331 8.042 15.661c22.227 43.159 70.355 71.077 122.639 71.077 74.722 0 135.529-54.814 135.529-122.247 0-67.373-60.808-122.218-135.529-122.218-13.644 0-27.738 2.259-43.038 6.957l-9.818 3.042zM346.353 163.764c-33.22 0-60.236-27.015-60.236-60.236s27.015-60.236 60.236-60.236 60.236 27.015 60.236 60.236-27.015 60.236-60.236 60.236zM346.353 73.412c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118zM459.294 58.353c-20.751 0-37.647-16.896-37.647-37.647s16.896-37.647 37.647-37.647 37.647 16.896 37.647 37.647-16.896 37.647-37.647 37.647zM451.764 20.706c0 4.156 3.373 7.529 7.529 7.529s7.529-3.373 7.529-7.529c0-8.283-15.059-8.283-15.059 0z" />
+<glyph unicode="&#xe607;" d="M512.602 239.059h-61.591c-7.379 96.196-84.51 173.026-180.827 180.013v62.103h-30.118v-62.193c-95.533-7.77-171.731-84.299-179.079-179.923h-61.59v-30.117h61.59c7.349-95.624 83.546-172.153 179.049-179.923v-61.019h30.117v60.928c96.316 6.957 173.447 83.788 180.827 180.013h61.59v30.118zM270.185 59.046v59.543h-30.118v-59.452c-78.939 7.589-141.794 70.776-148.962 149.805h58.88v30.118h-58.88c7.168 79.029 70.024 142.215 148.962 149.805v-58.278h30.118v58.368c79.721-6.837 143.481-70.264 150.709-149.896h-58.88v-30.118h58.88c-7.228-79.631-70.988-143.059-150.708-149.895z" />
+<glyph unicode="&#xe608;" d="M269.644 449.642l-119.476-86.799v-365.628l120.049 84.149 121.706-83.877v365.478l-122.278 86.678zM361.834 54.829l-91.708 63.247-89.811-62.976v292.412l89.6 65.084 91.949-65.204v-292.563zM218.474 299.264c0-29.063 23.642-52.706 52.706-52.706s52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706-52.706-23.642-52.706-52.706zM271.18 321.852c12.438 0 22.588-10.149 22.588-22.588s-10.149-22.588-22.588-22.588-22.588 10.149-22.588 22.588 10.15 22.588 22.588 22.588z" />
+<glyph unicode="&#xe609;" d="M278.588 43.294c0-12.499-10.089-22.588-22.588-22.588s-22.588 10.089-22.588 22.588 10.089 22.588 22.588 22.588 22.588-10.089 22.588-22.588zM481.882 434.824v-421.647c0-24.908-18.824-45.176-41.924-45.176h-367.917c-23.1 0-41.924 20.269-41.924 45.176v421.647c0 24.907 18.824 45.176 41.924 45.176h367.947c23.070 0 41.894-20.269 41.894-45.176zM451.764 434.824c0 8.162-5.391 15.059-11.806 15.059h-367.917c-6.415 0-11.806-6.897-11.806-15.059v-421.647c0-8.162 5.391-15.059 11.806-15.059h367.947c6.385 0 11.776 6.897 11.776 15.059v421.647zM90.353 419.764h331.294v-331.294h-331.294v331.294zM120.471 118.588h271.059v271.059h-271.059v-271.059z" />
+<glyph unicode="&#xe60a;" d="M501.368 268.664h-187.483l-57.886 178.297-57.916-178.297h-187.452l151.643-110.17-57.886-178.297 151.612 110.201 151.643-110.201-57.886 178.297 151.612 110.171zM350.358 59.046l-94.358 68.608-94.358-68.578 36.051 110.983-94.359 68.488h116.645l36.020 110.954 36.020-110.954h116.645l-94.358-68.517 36.051-110.983z" />
+<glyph unicode="&#xe60b;" d="M195.764 389.647c-42.948 0-82.582-23.431-103.996-60.236h-31.533v-316.236c0-24.907 20.269-45.176 45.177-45.176h180.706c24.907 0 45.176 20.269 45.176 45.176v316.236h-31.533c-21.413 36.774-61.108 60.236-103.996 60.236zM195.764 359.529c25.871 0 50.356-11.324 67.283-30.117h-134.536c16.896 18.793 41.351 30.117 67.252 30.117zM301.176 13.176c0-8.283-6.747-15.059-15.059-15.059h-180.706c-8.313 0-15.059 6.776-15.059 15.059v286.118h210.823v-286.118zM240.941 480h-90.353v-90.353h90.353v90.353zM210.823 419.764h-30.118v30.118h30.118v-30.118zM359.755 434.492l94.449-15.601-4.909-29.696-180.706 29.817 2.56 15.481-2.56 15.48 180.706 29.817 4.909-29.696-94.449-15.601z" />
+<glyph unicode="&#xe60c;" d="M346.353 359.529c0 49.815-40.538 90.353-90.353 90.353s-90.353-40.538-90.353-90.353c0-44.664 32.648-81.619 75.294-88.817v-242.477h-60.236v-30.118h150.588v30.118h-60.236v242.477c42.647 7.198 75.294 44.153 75.294 88.817zM195.764 359.529c0 33.22 27.016 60.236 60.236 60.236s60.236-27.015 60.236-60.236-27.015-60.236-60.236-60.236-60.236 27.015-60.236 60.236zM135.65 413.982c-11.385-13.854-17.378-30.238-17.378-47.405s5.993-33.551 17.378-47.405l-23.311-19.155c-15.812 19.305-24.184 42.315-24.184 66.53s8.373 47.255 24.184 66.53l23.311-19.094zM60.236 366.547c0-32.497 11.656-63.127 33.702-88.486l-22.709-19.757c-26.534 30.479-41.111 68.97-41.111 108.243s14.577 77.764 41.111 108.273l22.709-19.757c-22.046-25.389-33.702-56.019-33.702-88.516zM423.846 366.547c0-24.245-8.373-47.225-24.214-66.53l-23.281 19.125c11.385 13.854 17.378 30.238 17.378 47.405s-5.993 33.551-17.378 47.405l23.281 19.125c15.842-19.276 24.214-42.285 24.214-66.53zM481.882 366.547c0-39.304-14.577-77.764-41.111-108.273l-22.709 19.757c22.046 25.42 33.702 56.019 33.702 88.516s-11.656 63.126-33.702 88.486l22.709 19.757c26.534-30.479 41.111-68.94 41.111-108.243z" />
+<glyph unicode="&#xe60d;" d="M82.823 103.529c-29.064 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM82.823 28.236c-12.469 0-22.588 10.149-22.588 22.588s10.119 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.12-22.588-22.588-22.588zM338.824 103.529c-29.063 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM338.824 28.236c-12.469 0-22.588 10.149-22.588 22.588s10.12 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.12-22.588-22.588-22.588zM402.703 419.764l-9.096-60.236h-395.836l33.672-242.025h358.791l31.262 224.768 7.108 47.375h83.396v30.117h-109.297zM389.3 329.412l-4.187-30.118h-348.582l-4.187 30.118h356.954zM57.645 147.622l-16.896 121.555h340.179l-16.896-121.555h-306.387z" />
+<glyph unicode="&#xe60e;" d="M82.823 103.529c-29.064 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM82.823 28.236c-12.439 0-22.588 10.149-22.588 22.588s10.149 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.15-22.588-22.588-22.588zM338.824 103.529c-29.063 0-52.706-23.642-52.706-52.706s23.642-52.706 52.706-52.706 52.706 23.642 52.706 52.706-23.642 52.706-52.706 52.706zM338.824 28.236c-12.438 0-22.588 10.149-22.588 22.588s10.149 22.588 22.588 22.588 22.588-10.149 22.588-22.588-10.149-22.588-22.588-22.588zM402.673 419.764l-9.065-60.236h-395.836l33.642-242.025h358.822l31.413 225.882 6.957 46.261h83.396v30.117h-109.327zM364.002 147.622h-306.356l-25.299 181.79h356.954l-25.299-181.79zM331.294 178.824h-240.941v119.537h30.118v-89.419h180.706v89.45h30.118v-119.567zM120.471 390.581h-30.117v59.301h240.941v-57.404h-30.118v27.286h-180.706v-29.184z" />
+<glyph unicode="&#xe60f;" d="M256 300.137c-41.502 0-75.294-33.792-75.294-75.294s33.792-75.294 75.294-75.294 75.294 33.792 75.294 75.294-33.792 75.294-75.294 75.294zM256 179.667c-24.907 0-45.177 20.269-45.177 45.177s20.269 45.177 45.177 45.177 45.176-20.269 45.176-45.177-20.269-45.177-45.177-45.177zM510.193 195.509c1.115 9.668 1.807 19.426 1.807 29.334s-0.692 19.667-1.807 29.334l-77.945 23.432c-3.584 12.107-8.373 23.702-14.276 34.605l38.52 71.589c-12.228 15.36-26.172 29.305-41.563 41.563l-71.589-38.55c-10.933 5.903-22.528 10.661-34.635 14.276l-23.372 77.945c-9.637 1.115-19.396 1.807-29.334 1.807s-19.697-0.692-29.334-1.807l-23.371-77.945c-12.137-3.584-23.763-8.373-34.636-14.306l-71.59 38.55c-15.39-12.228-29.335-26.172-41.532-41.563l38.52-71.529c-5.903-10.903-10.662-22.528-14.276-34.636l-77.975-23.431c-1.115-9.637-1.807-19.396-1.807-29.334s0.693-19.697 1.807-29.335l77.945-23.372c3.614-12.137 8.373-23.763 14.276-34.666l-38.52-71.56c12.228-15.39 26.172-29.334 41.563-41.563l71.589 38.52c10.903-5.903 22.528-10.661 34.636-14.276l23.371-77.945c9.668-1.115 19.426-1.807 29.334-1.807s19.697 0.692 29.334 1.807l23.372 77.945c12.108 3.614 23.733 8.373 34.635 14.276l71.56-38.52c15.39 12.258 29.334 26.202 41.563 41.592l-38.49 71.56c5.903 10.902 10.661 22.528 14.276 34.635l77.945 23.372zM408.034 196.322l-4.638-15.601c-3.012-10.149-7.017-19.877-11.926-28.883l-7.71-14.306 7.68-14.306 28.672-53.308c-2.981-3.163-6.053-6.235-9.216-9.216l-67.554 36.412-14.306-7.71c-9.065-4.909-18.793-8.885-28.913-11.926l-15.601-4.638-4.668-15.601-17.438-58.188c-2.168-0.060-4.307-0.091-6.415-0.091s-4.246 0.030-6.415 0.091l-17.438 58.188-4.668 15.601-15.601 4.638c-10.119 3.012-19.847 7.017-28.883 11.926l-14.306 7.71-67.614-36.352c-3.132 2.981-6.234 6.053-9.216 9.216l36.382 67.584-7.71 14.306c-4.879 9.036-8.885 18.764-11.927 28.913l-4.608 15.571-73.758 22.106c-0.090 2.168-0.12 4.307-0.12 6.385 0 2.108 0.030 4.246 0.12 6.415l73.728 22.107 4.638 15.601c3.012 10.149 7.017 19.877 11.927 28.883l7.71 14.306-36.382 67.614c2.981 3.132 6.053 6.234 9.186 9.216l67.674-36.442 14.336 7.8c8.945 4.879 18.643 8.885 28.792 11.897l15.601 4.638 4.668 15.601 17.438 58.188c2.198 0.030 4.337 0.060 6.445 0.060s4.247-0.030 6.415-0.090l17.438-58.188 4.668-15.601 15.601-4.638c10.089-3.012 19.848-7.017 28.913-11.926l14.306-7.68 67.584 36.382c3.132-2.981 6.235-6.053 9.216-9.216l-28.702-53.308-7.68-14.306 7.74-14.306c4.909-9.036 8.885-18.733 11.897-28.822l4.638-15.601 15.601-4.668 58.188-17.499c0.030-2.168 0.060-4.307 0.060-6.415s-0.030-4.247-0.12-6.415l-73.728-22.106z" />
+<glyph unicode="&#xe610;" d="M500.074 2.093l-155.798 155.798c29.365 34.244 47.255 78.637 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.284 0-101.466-20.36-138.481-57.314-36.955-36.984-57.314-86.166-57.284-138.451 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.973 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 119.432c-91.317 0-165.647 74.3-165.647 165.647-0.030 44.273 17.197 85.865 48.489 117.127 31.262 31.292 72.885 48.519 117.157 48.519 91.317 0 165.647-74.3 165.647-165.647 0-91.317-74.33-165.647-165.647-165.647z" />
+<glyph unicode="&#xe611;" d="M500.074 1.25l-155.798 155.798c29.365 34.244 47.255 78.607 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.315 0-101.466-20.36-138.451-57.344-36.984-36.954-57.314-86.137-57.314-138.421 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.943 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 118.588c-91.347 0-165.647 74.3-165.647 165.647 0 44.273 17.197 85.865 48.489 117.158 31.292 31.262 72.885 48.489 117.157 48.489 91.347 0 165.647-74.3 165.647-165.647 0-91.347-74.3-165.647-165.647-165.647zM210.823 299.294h60.235v-30.117h-60.236v-60.236h-30.118v60.236h-60.236v30.118h60.236v60.236h30.118v-60.236z" />
+<glyph unicode="&#xe612;" d="M500.074 2.093l-155.798 155.798c29.365 34.244 47.255 78.637 47.255 127.187 0 107.942-87.823 195.764-195.764 195.764-52.284 0-101.466-20.36-138.481-57.314-36.955-36.984-57.314-86.166-57.284-138.451 0-107.942 87.823-195.764 195.764-195.764 48.549 0 92.973 17.89 127.217 47.255l155.798-155.798 21.293 21.324zM195.764 119.432c-91.317 0-165.647 74.3-165.647 165.647-0.030 44.273 17.197 85.865 48.489 117.127 31.262 31.292 72.885 48.519 117.157 48.519 91.317 0 165.647-74.3 165.647-165.647 0-91.317-74.33-165.647-165.647-165.647zM120.471 300.137h150.588v-30.118h-150.588v30.118z" />
+<glyph unicode="&#xe613;" d="M391.529 148.706c-16.414 0-31.594-4.728-44.875-12.409l-69.933 73.909 188.536 199.198-21.896 20.721-187.362-197.993-187.422 197.993-21.865-20.721 188.536-199.198-69.933-73.879c-13.252 7.65-28.461 12.378-44.845 12.378-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353c0 22.498-8.584 42.887-22.227 58.7l67.403 71.228 67.404-71.228c-13.673-15.842-22.227-36.202-22.227-58.7 0-49.815 40.538-90.353 90.353-90.353s90.353 40.538 90.353 90.353-40.538 90.353-90.353 90.353zM120.471-1.882c-33.22 0-60.236 27.015-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.016-60.236-60.236-60.236zM391.529-1.882c-33.22 0-60.236 27.015-60.236 60.236s27.015 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.015-60.236-60.236-60.236z" />
+<glyph unicode="&#xe614;" d="M150.588 480v-512h210.823v512h-210.823zM331.294-1.882h-150.588v29.636h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v29.636h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.117h60.236v30.118h-60.236v30.118h150.588v-451.764z" />
+<glyph unicode="&#xe615;" d="M135.288 480h-59.754c-24.907 0-45.176-20.269-45.176-45.176v-320.964l75.927-149.263 74.21 149.353v320.873c-0.030 24.908-20.299 45.176-45.207 45.176zM75.535 449.882h59.754c8.282 0 15.059-6.776 15.059-15.059v-30.69h-89.871v30.69c0 8.283 6.746 15.059 15.059 15.059zM60.476 342.964v31.051h89.871v-31.051h-89.871zM118.904 57.721h-26.203l-32.226 63.368v191.759h30.118v-195.192h30.118v195.192h29.636v-191.85l-31.443-63.277zM240.941 480v-512h210.823v512h-210.823zM421.647-1.882h-150.588v29.636h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v29.636h30.118v30.118h-30.118v30.118h60.236v30.118h-60.236v30.599h30.118v30.118h-30.118v30.117h60.236v30.118h-60.236v30.118h150.588v-451.764z" />
+<glyph unicode="&#xe616;" d="M362.496 479.548l-362.044-362.044 149.083-149.052 362.014 362.014-149.052 149.082zM43.038 117.504l20.962 20.962 42.587-42.587 21.293 21.293-42.587 42.587 21.654 21.654 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.587-42.587 21.293 21.293-42.587 42.587 20.962 20.962 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.587-42.587 21.293 21.293-42.587 42.587 21.625 21.625 21.293-21.293 21.293 21.293-21.293 21.293 21.293 21.293 42.616-42.587 21.293 21.293-42.616 42.587 21.324 21.323 106.466-106.496-319.428-319.428-106.496 106.466z" />
+<glyph unicode="&#xe617;" d="M107.279 449.882v-465.589l141.131 98.485 143.119-98.183v465.288h-284.25zM361.412 41.758l-113.122 77.644-110.863-77.342v377.705h223.985v-378.007z" />
+<glyph unicode="&#xe618;" d="M301.99 176.595v303.405h-182.332v-303.495l90.986 61.832 91.347-61.741zM149.775 233.397v216.486h122.127v-216.576l-61.35 41.442-60.778-41.352zM481.882 449.671v-451.554h-451.764v451.554h59.452v-30.118h-29.334v-391.318h391.529v391.318h-120.621v30.118h150.739z" />
+<glyph unicode="&#xe619;" d="M180.706 239.059h-180.706v180.706h30.117v-123.754c30.509 96.166 121.555 165.165 225.882 165.165 105.592 0 199.409-71.077 228.111-172.845l-29.003-8.162c-25.058 88.847-106.948 150.919-199.108 150.919-97.159-0.030-181.188-68.548-202.029-161.912h126.735v-30.118zM331.294 208.941v-30.118h126.735c-20.872-93.395-104.779-161.882-202.029-161.882-92.22 0-174.080 62.072-199.108 150.92l-29.003-8.162c28.672-101.767 122.489-172.845 228.111-172.845 104.177 0 195.012 68.668 225.882 165.105v-123.724h30.118v180.706h-180.706z" />
+<glyph unicode="&#xe61a;" d="M481.882 208.941h-210.824v-210.824h-30.118v210.823h-210.823v30.118h210.823v210.824h30.118v-210.824h210.823v-30.118z" />
+<glyph unicode="&#xe61b;" d="M361.412 344.471c0 58.127-47.284 105.412-105.412 105.412s-105.412-47.285-105.412-105.412c0-52.556 38.791-95.925 89.209-103.756v-242.598h30.118v242.357c51.501 6.867 91.498 50.658 91.498 103.996zM256 269.177c-41.532 0-75.294 33.762-75.294 75.294s33.762 75.294 75.294 75.294 75.294-33.762 75.294-75.294-33.762-75.294-75.294-75.294zM301.176 329.412h-30.118c0 16.625-13.493 30.117-30.118 30.117v30.118c33.22 0 60.236-27.016 60.236-60.236z" />
+<glyph unicode="&#xe61c;" d="M467.697 393.954l-42.255 42.285c-17.017 17.047-46.833 17.047-63.909 0l-272.776-272.805-51.862-159.262 158.058 53.157 272.716 272.745c17.649 17.589 17.649 46.26 0.030 63.88zM93.184 79.616l19.426 59.603 58.248-58.277-59.121-19.877-18.552 18.553zM131.162 163.223l165.436 165.436 63.579-63.548-165.466-165.466-63.548 63.579zM317.892 349.982l21.956 21.956 63.579-63.548-21.956-21.956-63.579 63.548zM446.404 351.368l-21.685-21.685-63.579 63.548 21.685 21.715c5.692 5.692 15.601 5.692 21.293 0l42.255-42.285c5.903-5.903 5.903-15.42 0.030-21.293z" />
+<glyph unicode="&#xe61d;" d="M496.911 424.493l-42.255 42.255c-17.046 17.047-46.833 17.047-63.909 0l-226.966-226.966-51.862-159.232 158.088 53.158 226.906 226.906c8.524 8.524 13.221 19.877 13.221 31.955s-4.699 23.401-13.221 31.925zM168.177 155.995l19.215 58.94 57.826-57.796-58.489-19.667-18.553 18.522zM205.764 239.179l120.049 120.049 63.548-63.548-120.049-120.049-63.548 63.548zM347.106 380.522l21.956 21.956 63.548-63.548-21.956-21.956-63.548 63.548zM475.618 381.907l-21.685-21.715-63.548 63.548 21.685 21.715c5.723 5.692 15.631 5.692 21.293 0l42.255-42.255c2.831-2.861 4.397-6.626 4.397-10.661s-1.566-7.771-4.397-10.632zM451.764 254.118h30.118v-286.118h-481.882v451.764h225.882v-30.118h-195.764v-391.529h421.647v256z" />
+<glyph unicode="&#xe61e;" d="M451.764 419.764v60.236h-391.529v-60.236h-15.541c-24.636 0-44.694-20.329-44.694-45.327v-90.052c0-24.998 20.058-45.327 44.694-45.327h181.429c8.282 0 15.059-6.776 15.059-15.059v-45.176h-30.358v-210.823h90.353v210.823h-29.877v45.176c0 24.907-20.269 45.176-45.177 45.176h-181.429c-8.011 0-14.577 6.837-14.577 15.21v90.052c0 8.373 6.566 15.209 14.577 15.209h15.541v-90.353h391.529v90.353h30.118v30.118h-30.118zM271.059-1.882h-30.118v150.588h30.118v-150.588zM421.647 329.412h-331.294v120.47h331.294v-120.47z" />
+<glyph unicode="&#xe61f;" d="M502.995 184.305l-267.084 268.77-4.036-4.005c-20.119 19.908-46.743 30.9-75.084 30.931 0 0 0 0-0.030 0-28.552 0-55.447-11.144-75.656-31.353-20.239-20.209-31.383-47.074-31.383-75.716 0-28.341 11.023-54.965 30.931-75.084l-66.5-66.53c-9.126-9.156-14.155-21.263-14.155-34.124 0-12.921 5-24.998 14.065-34.033l144.896-146.341c9.095-9.096 21.203-14.125 34.063-14.125 12.921 0 25.028 5.060 34.124 14.185l167.394 167.394 108.454 0.030zM79.842 372.962c0 20.54 8.011 39.846 22.558 54.393 14.547 14.516 33.822 22.528 54.362 22.528 0.030 0 0.030 0 0.030 0 20.299 0 39.333-7.891 53.79-22.106l-108.604-108.635c-14.246 14.487-22.136 33.521-22.136 53.82zM205.794 38.144c-3.404-3.404-7.981-5.331-12.8-5.331s-9.367 1.868-12.709 5.24l-109.508 110.652h245.579l-110.562-110.562zM346.474 178.824h-305.543l-5.511 5.602c-3.433 3.404-5.3 7.921-5.3 12.74 0 4.849 1.898 9.397 5.331 12.86l200.403 200.403 194.801-196.036-48.61-0.030-35.569-35.539zM472.486 119.823l-12.258 18.191-12.589-18.010c-9.608-13.764-41.050-60.567-41.050-84.269 0-29.063 23.642-52.706 52.706-52.706s52.706 23.673 52.706 52.736c0 23.552-30.238 70.295-39.514 84.058zM459.294 13.176c-12.438 0-22.588 10.149-22.588 22.588 0 7.228 10.511 27.708 23.070 47.917 12.047-20.179 22.106-40.629 22.106-47.917 0-12.438-10.149-22.588-22.588-22.588z" />
+<glyph unicode="&#xe620;" d="M256 464.941c-132.849 0-240.941-108.092-240.941-240.941s108.092-240.941 240.941-240.941 240.941 108.092 240.941 240.941-108.092 240.941-240.941 240.941zM256 434.824c52.706 0 100.834-19.577 137.849-51.682l-296.96-296.99c-32.136 36.984-51.712 85.142-51.712 137.849 0 116.224 94.57 210.823 210.823 210.823zM256 13.176c-52.706 0-100.834 19.577-137.849 51.682l296.96 296.99c32.135-36.984 51.712-85.142 51.712-137.849 0-116.224-94.57-210.823-210.823-210.823z" />
+<glyph unicode="&#xe621;" d="M376.471 480h-240.941c-24.907 0-45.177-20.269-45.177-45.176v-421.647c0-24.908 20.269-45.176 45.177-45.176h240.941c24.908 0 45.176 20.269 45.176 45.176v421.647c0 24.907-20.269 45.176-45.176 45.176zM135.53 449.882h240.941c8.313 0 15.059-6.746 15.059-15.059v-45.177h-271.059v45.177c0 8.313 6.746 15.059 15.059 15.059zM391.529 359.529v-240.941h-271.059v240.941h271.059zM376.471-1.882h-240.941c-8.313 0-15.059 6.747-15.059 15.059v75.294h271.059v-75.294c0-8.313-6.747-15.059-15.059-15.059zM271.059 43.294c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059 6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059z" />
+<glyph unicode="&#xe622;" d="M451.764 239.059v-30.117h-391.529v30.118h391.529z" />
+<glyph unicode="&#xe623;" d="M256 480c-83.034 0-150.588-67.554-150.588-150.588 0-41.412 16.715-80.083 47.044-108.906 2.56-2.469 5.421-4.638 8.313-6.806l3.102-2.349c5.391-4.247 11.113-7.74 16.836-11.173v-217.118l74.661 57.254 75.926-57.254v217.118c5.723 3.433 11.475 6.957 16.866 11.204l3.102 2.319c2.892 2.168 5.723 4.337 8.313 6.806 30.298 28.822 47.014 67.493 47.014 108.906 0 83.034-67.554 150.588-150.588 150.588zM301.176 43.505l-45.959 34.666-44.394-34.063v127.247c14.517-5.029 29.696-7.589 45.177-7.589s30.66 2.56 45.177 7.589v-127.85zM338.793 242.311c-1.716-1.656-3.644-3.042-5.572-4.428l-3.704-2.831c-43.52-34.183-103.544-34.154-147.004-0.030l-3.734 2.861c-1.928 1.416-3.855 2.801-5.572 4.428-24.305 23.1-37.677 54.001-37.677 87.1 0 66.44 54.031 120.471 120.47 120.471s120.471-54.031 120.471-120.471c0-33.099-13.372-64-37.677-87.1zM329.788 374.166l5.541-29.575-54.904-10.27 34.515-58.338-25.931-15.36-32.738 55.296-32.828-55.266-25.871 15.36 34.696 58.428-53.489 10.149 5.602 29.575 56.561-10.692v56.29h30.118v-56.561l58.729 10.963z" />
+<glyph unicode="&#xe624;" d="M256 480c-83.034 0-150.588-67.554-150.588-150.588 0-41.412 16.715-80.083 47.044-108.906 2.56-2.469 5.421-4.638 8.313-6.806l3.102-2.349c5.391-4.247 11.113-7.74 16.836-11.173v-217.118l74.661 57.254 75.926-57.254v217.118c5.723 3.433 11.475 6.957 16.866 11.204l3.102 2.319c2.892 2.168 5.723 4.337 8.313 6.806 30.298 28.822 47.014 67.493 47.014 108.906 0 83.034-67.554 150.588-150.588 150.588zM301.176 43.505l-45.959 34.666-44.394-34.063v127.247c14.517-5.029 29.696-7.589 45.177-7.589s30.66 2.56 45.177 7.589v-127.85zM338.793 242.311c-1.716-1.656-3.644-3.042-5.572-4.428l-3.704-2.831c-43.52-34.183-103.544-34.154-147.004-0.030l-3.734 2.861c-1.928 1.416-3.855 2.801-5.572 4.428-24.305 23.1-37.677 54.001-37.677 87.1 0 66.44 54.031 120.471 120.47 120.471s120.471-54.031 120.471-120.471c0-33.099-13.372-64-37.677-87.1zM308.706 329.412c0-29.094-23.612-52.706-52.706-52.706s-52.706 23.612-52.706 52.706 23.612 52.706 52.706 52.706 52.706-23.612 52.706-52.706z" />
+<glyph unicode="&#xe625;" d="M320.632 449.882h-23.13c-6.988 17.709-23.161 30.118-41.954 30.118h-74.3c-8.794 0-15.963-2.711-21.263-8.072-9.517-9.548-9.457-23.221-9.397-37.737v-354.756l55.748-70.024h4.488v-41.412l30.118 20.721v20.721h4.428l55.808 70.024v340.3h19.456c10.149 0 10.661-16.263 10.661-19.516v-128.482h30.118v128.482c0.030 29.214-16.745 49.634-40.779 49.634zM181.248 449.882h74.3c8.584 0 15.541-8.764 15.541-19.516v-100.954h-90.383v104.93c0 5.843-0.060 14.668 0.542 15.541zM230.912 39.529h-10.029l-40.147 50.447-0.030 209.317h90.353v-209.317l-40.147-50.447z" />
+<glyph unicode="&#xe626;" d="M471.763 308.812l-16.384 16.384c2.349 5.391 3.825 11.084 4.187 16.926 0.783 13.101-3.644 25.148-12.529 34.033l-52.555 52.555c-6.204 6.204-13.161 9.337-20.691 9.337-13.523 0-23.161-9.728-33.37-20.059l-272.143-272.143-10.090-88.998 3.163-3.132-29.274-29.274 35.931-6.686 14.668 14.637 3.132-3.132 88.968 10.029 261.933 261.964 13.733-13.733c2.168-2.168 2.831-4.337 2.289-7.379-0.783-4.247-3.885-9.337-8.524-13.975l-90.835-90.865 21.293-21.293 90.835 90.865c9.125 9.095 14.969 19.426 16.866 29.817 2.349 12.83-1.416 24.967-10.601 34.123zM160.918 68.081l-64.091-7.259-7.078 7.077 7.288 64.030 169.322 169.322 63.88-63.88-169.321-169.292zM351.533 258.666l-63.88 63.88 74.21 74.21c4.096 4.187 10.3 10.451 11.324 10.662l52.555-52.556c3.614-3.614 3.885-8.372 3.764-10.872-0.301-5.060-2.651-9.969-6.565-13.915l-71.409-71.409z" />
+<glyph unicode="&#xe627;" d="M456.162 213.339l-185.103 185.133v-400.354h-30.118v400.354l-185.103-185.133-21.323 21.323 221.485 221.455 221.485-221.485-21.324-21.293z" />
+<glyph unicode="&#xe628;" d="M473.058 224.844l-221.485-221.485-21.293 21.293 185.103 185.103h-385.265v30.118h385.295l-185.133 185.163 21.293 21.293 221.485-221.485z" />
+<glyph unicode="&#xe629;" d="M481.882 209.784h-385.295l185.103-185.103-21.293-21.293-221.455 221.455 221.485 221.485 21.293-21.293-185.133-185.133h385.295v-30.118z" />
+<glyph unicode="&#xe62a;" d="M477.485 213.339l-221.485-221.455-221.485 221.455 21.293 21.293 185.133-185.103v400.354h30.117v-400.354l185.103 185.103 21.324-21.293z" />
+<glyph unicode="&#xe62b;" d="M286.118 149.549c0-11.023-6.235-20.239-15.059-25.48v-64.874h-30.118v64.844c-8.855 5.24-15.059 14.457-15.059 25.51 0 16.625 13.463 30.118 30.118 30.118 16.595 0 30.117-13.462 30.117-30.118zM450.711 225.204v-213.233c0-24.908-20.269-45.177-45.176-45.177h-300.845c-24.907 0-45.176 20.269-45.176 45.176v213.233c0 24.907 20.269 45.177 45.176 45.177h0.723v59.874c0 83.034 67.554 150.588 150.588 150.588s150.588-67.554 150.588-150.588v-59.995c24.425-0.542 44.123-20.51 44.123-45.056zM135.53 270.381h240.941v59.874c0 66.44-54.031 120.471-120.471 120.471s-120.471-54.031-120.471-120.471v-59.874zM420.593 225.204c0 7.951-6.235 14.276-14.005 14.848v-0.12h-301.176v0.332h-0.723c-8.282 0-15.059-6.746-15.059-15.059v-213.233c0-8.313 6.776-15.059 15.059-15.059h300.845c8.283 0 15.059 6.747 15.059 15.059v213.233z" />
+<glyph unicode="&#xe62c;" d="M59.362 420.788l159.262-424.689 36.502 228.924 228.924 36.502-424.689 159.262zM228.834 251.347l-22.016-137.999-95.985 255.97 255.97-95.985-137.969-21.986z" />
+<glyph unicode="&#xe62d;" d="M391.017 270.983l-28.25-28.25-21.293 21.293 28.25 28.25c29.365 29.364 29.365 77.132 0 106.466s-77.132 29.364-106.466 0l-89.962-89.992c-29.364-29.365-29.364-77.132 0-106.466s77.132-29.365 106.466 0l21.293-21.293c-20.57-20.57-47.525-30.81-74.541-30.81s-53.971 10.27-74.511 30.81c-41.081 41.081-41.081 107.972 0 149.052l89.962 89.962c41.111 41.111 107.941 41.111 149.052 0 41.111-41.051 41.111-107.942 0-149.022zM181.971 238.035l-3.916-3.885 21.233-21.354 3.946 3.916c29.364 29.364 77.131 29.364 106.466 0s29.365-77.132 0-106.466l-91.046-91.106c-29.364-29.365-77.132-29.365-106.466 0s-29.365 77.132 0 106.466l31.865 31.894-21.293 21.293-31.864-31.894c-41.081-41.081-41.081-107.972 0-149.052 20.57-20.57 47.525-30.811 74.541-30.811s53.971 10.27 74.541 30.81l91.046 91.076c41.081 41.081 41.081 107.972 0 149.052-41.14 41.171-108.002 41.081-149.052 0.060z" />
+<glyph unicode="&#xe62e;" d="M0 480v-512h512v512h-512zM30.117 299.294h271.059v-301.176h-271.059v301.176zM481.882-1.882h-150.588v301.176h150.588v-301.176zM30.117 329.412v120.47h451.764v-120.47h-451.764z" />
+<glyph unicode="&#xe62f;" d="M391.529 449.882h-391.529v-331.294h391.529v331.294zM361.412 148.706h-331.294v271.059h331.294v-271.059zM512 329.412v-331.294h-391.529v91.286h30.118v-61.169h331.294v271.059h-60.717v30.118h90.835z" />
+<glyph unicode="&#xe630;" d="M331.294 449.882h-331.294v-271.059h331.294v271.059zM301.176 208.941h-271.059v210.824h271.059v-210.824zM421.647 88.471h-331.294v59.663h30.118v-29.546h271.059v210.824h-29.937v30.117h60.055v-271.059zM512 269.177v-271.059h-331.294v59.663h30.118v-29.546h271.059v210.823h-29.937v30.117h60.054z" />
+<glyph unicode="&#xe631;" d="M446.072 290.289l21.293 21.293-52.194 52.194 22.799 22.678-21.233 21.353-245.339-244.164c-14.577 10.12-32.226 16.113-51.291 16.113-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353c0 19.908-6.686 38.189-17.619 53.127l158.54 157.756 52.344-52.345 21.293 21.293-52.315 52.284 21.113 21.022 52.254-52.254zM120.079 29.169c-33.22 0-60.236 27.015-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.015 60.236-60.236-27.016-60.236-60.236-60.236z" />
+<glyph unicode="&#xe632;" d="M256 68.081l-146.161 145.468 21.233 21.353 109.869-109.357v325.18h30.117v-325.18l109.839 109.327 21.233-21.353-146.131-145.438zM481.882 208.038v-194.861c0-8.313-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.747-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
+<glyph unicode="&#xe633;" d="M30.117 449.882v-451.764h451.764v451.764h-451.764zM451.764 28.236h-391.529v60.236h391.529v-60.236zM60.236 118.588v301.176h391.529v-301.176h-391.529zM427.761 173.854l-20.992-21.594-72.794 70.746-46.803-50.477-74.873 132.97-102.43-149.836-24.877 16.986 129.807 189.832 78.426-139.204 39.665 42.827 94.87-92.25z" />
+<glyph unicode="&#xe634;" d="M376.471 460.183c-52.375 0-97.913-29.877-120.471-73.457-22.558 43.58-68.096 73.457-120.471 73.457-74.722 0-135.53-60.808-135.53-135.529 0-10.331 1.446-21.052 4.638-33.672l3.283-10.572c43.129-131.132 230.671-282.895 238.652-289.25l9.427-7.589 9.427 7.589c8.493 6.837 208.595 168.599 238.743 289.551l3.373 11.084c3.042 12.107 4.457 22.558 4.457 32.858 0 74.722-60.808 135.53-135.53 135.53zM478.539 299.897l-3.404-11.143c-24.365-97.762-179.079-232.719-219.136-266.331-38.611 32.618-184.38 160.738-219.407 267.204l-3.012 9.517c-2.319 9.366-3.463 17.709-3.463 25.51 0 58.127 47.284 105.412 105.412 105.412s105.412-47.315 105.412-105.412v-7.589h30.118v7.589c0 58.127 47.284 105.412 105.412 105.412s105.412-47.285 105.412-105.412c0-7.77-1.144-15.872-3.343-24.756z" />
+<glyph unicode="&#xe635;" d="M4.608 290.981c-3.163 12.62-4.608 23.341-4.608 33.672 0 74.722 60.807 135.529 135.53 135.529 52.374 0 97.912-29.876 120.47-73.457 22.558 43.58 68.096 73.457 120.471 73.457 74.722 0 135.529-60.808 135.529-135.529 0-10.3-1.416-20.721-4.428-32.858l-3.404-11.084c-2.44-9.969-6.867-21.715-13.644-36.111l-27.226 12.83c5.903 12.589 9.698 22.558 11.897 31.352l3.373 11.113c2.199 8.885 3.313 16.987 3.313 24.757 0 58.127-47.284 105.412-105.412 105.412s-105.412-47.315-105.412-105.412h-30.118c0 58.127-47.285 105.412-105.412 105.412s-105.412-47.315-105.412-105.412c0-7.801 1.145-16.143 3.493-25.51l3.012-9.517c2.831-8.644 7.078-18.612 13.282-31.111l-26.985-13.433c-6.867 13.854-11.626 25.088-14.998 35.328l-3.313 10.572zM255.97 21.88c-24.275 19.065-93.425 76.288-149.865 150.98l-24.004-18.191c72.102-95.382 161.25-161.19 164.984-163.93l8.975-6.565 8.915 6.626c3.885 2.861 95.985 71.5 166.731 163.78l-23.884 18.341c-55.658-72.553-127.067-131.494-151.853-151.040zM426.827 256.678l-85.293-60.236-85.293 60.236-85.323-60.236-85.444 60.205-94.148-66.319 17.348-24.636 76.8 54.151 85.444-60.265 85.323 60.236 85.293-60.236 85.293 60.236 76.469-54.091 17.408 24.576-93.876 66.38z" />
+<glyph unicode="&#xe636;" d="M421.647 347.392v-218.594c0-25.781-10.149-56.23-19.125-83.065-5.391-16.204-10.993-32.918-10.993-40.087v-22.588c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v22.588c0 12.047 5.541 28.612 12.559 49.604 7.8 23.492 17.558 52.676 17.558 73.548v218.594c0 8.283-6.204 14.547-14.396 14.547-8.373 0-15.42-6.325-15.692-14.095 0-0.091-0.060-0.18-0.060-0.271l0.030-116.254c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059l-0.030 123.061c0 0.15 0.091 0.271 0.091 0.452v42.345c0 6.988-4.216 14.547-13.433 14.547-8.252 0-15.902-6.325-16.384-13.553-0.030-0.392-0.301-0.753-0.361-1.174v-134.927c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.716-15.059 15.059v147.456c0 0.662 0.301 1.265 0.392 1.897v23.943c0 7.861-7.259 14.517-15.812 14.517-8.403 0-14.969-6.355-14.969-14.517v-26.082c0.060-0.452 0.271-0.844 0.271-1.325v0-147.456c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.746-15.059 15.059v0 138.3c0 0.12-0.090 0.211-0.12 0.332-0.994 7.168-7.469 12.589-15.059 12.589-8.403 0-15.209-6.536-15.209-14.547v-171.821c0-6.264-3.855-11.866-9.698-14.065-5.752-2.199-12.439-0.603-16.595 4.066l-33.642 37.767c-11.836 13.824-19.757 9.366-22.678 7.68-3.493-1.958-5.993-5.15-6.987-8.945-0.964-3.644-0.421-7.469 1.506-10.752l99.148-211.094c1.386-2.199 4.758-4.668 8.855-5.662 6.776-1.627 11.505-7.68 11.505-14.637v-26.654c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v16.444c-6.957 3.855-12.74 9.457-16.866 16.414l-99.117 211.125c-5.421 9.005-7.078 21.022-4.036 32.557 3.102 11.656 10.662 21.383 21.263 27.407 20.359 11.475 42.828 6.204 60.236-14.095l7.138-8.012v132.276c0 24.636 20.329 44.664 45.327 44.664 5.24 0 10.331-0.903 15.059-2.56 2.018 22.799 21.383 40.719 44.906 40.719 24.124 0 43.942-18.191 45.809-41.171 5.15 1.928 10.722 3.012 16.505 3.012 24.425 0 43.55-19.606 43.55-44.664v-7.891c4.909 1.777 10.18 2.74 15.661 2.74 24.938 0.030 44.484-19.577 44.484-44.635z" />
+<glyph unicode="&#xe637;" d="M459.053 316.762l-35.78-242.868c-3.554-18.432-11.716-26.503-17.649-32.406-5.752-5.723-9.577-9.517-9.577-28.1v-30.329c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v30.329c0 28.762 8.373 39.424 18.492 49.453 4.668 4.638 7.469 7.439 9.156 16.083l35.69 242.116c0.542 3.705 1.536 16.264-8.222 17.619-3.373 0.482-6.114-0.060-8.283-1.716-2.892-2.139-4.94-6.294-5.662-11.385l-14.969-99.87c-0.753-5.15-4.156-9.517-8.915-11.596s-10.27-1.506-14.577 1.476c-1.506-0.241-4.036 0.692-6.565 2.349-4.578 2.921-7.198 8.072-6.897 13.493l8.584 159.202c0.692 8.373-5.12 15.33-13.011 16.023-3.825 0.361-7.5-0.844-10.421-3.283-2.952-2.47-4.699-5.903-5.029-9.668l-13.945-144.023c-0.783-8.101-7.198-13.975-15.993-13.583-2.44 0.15-4.909 0.301-7.409 0.332-8.101 0.18-14.607 6.716-14.757 14.788l-3.464 184.29c0 8.072-6.325 14.396-14.095 14.396s-14.095-6.325-14.095-14.095l-3.554-198.355c-0.12-5.722-3.434-10.903-8.613-13.342-1.868-0.903-3.674-1.807-5.391-2.771-4.428-2.53-9.819-2.62-14.336-0.241-4.518 2.349-7.559 6.837-8.071 11.897l-15.511 160.497c-0.332 3.945-2.108 7.379-5 9.819-2.922 2.439-6.867 3.554-10.391 3.283-3.795-0.332-7.198-2.108-9.637-5.029-2.41-2.892-3.584-6.565-3.252-10.33l15.149-213.745c0.482-6.565-3.404-12.709-9.548-15.089-6.204-2.409-13.191-0.512-17.257 4.668l-46.713 58.82c-6.114 10.24-16.926 13.101-25.299 8.252-4.096-2.38-7.017-6.174-8.222-10.722-1.204-4.517-0.603-9.276 1.807-13.342l106.285-183.326c2.41-4.187 6.355-7.108 11.053-8.252 6.746-1.627 11.505-7.68 11.505-14.637v-20.781c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v10.541c-7.65 4.126-14.005 10.27-18.492 18.010l-106.316 183.326c-6.415 11.023-8.132 23.884-4.819 36.202 3.252 12.348 11.174 22.649 22.257 29.063 22.829 13.162 52.043 5.331 65.174-17.438l15.239-19.095-11.716 165.135c-1.024 11.505 2.59 23.010 10.18 32.106 7.589 9.036 18.311 14.607 30.088 15.661 11.957 1.084 23.341-2.62 32.436-10.24 4.397-3.704 7.921-8.101 10.541-12.981l0.422 22.678c0 24.154 19.847 43.972 44.212 43.972s44.212-19.848 44.212-44.243l0.421-22.468c2.651 4.909 6.204 9.337 10.632 13.071 9.125 7.65 20.721 11.324 32.467 10.24 24.425-2.139 42.526-23.732 40.388-48.128l-1.596-29.455c0.783 0.692 1.627 1.356 2.44 1.988 8.674 6.505 19.185 9.036 30.66 7.469 23.642-3.283 37.587-24.576 33.792-51.712z" />
+<glyph unicode="&#xe638;" d="M420.533 311.341v-176.007c0-23.401-11.535-37.376-19.968-47.556-7.048-8.553-10.722-13.342-10.722-20.901v-53.7c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v53.7c0 18.764 9.788 30.599 17.649 40.087 7.288 8.825 13.071 15.781 13.071 28.341v176.037c0 9.397-8.072 18.252-16.595 18.252-9.909 0-12.017-1.536-12.108-1.596-1.988-2.68-1.928-17.137-1.897-28.792 0.030-5.692 0.060-12.047-0.060-19.035-0.12-8.252-6.415-14.396-15.18-14.848-8.252 0.060-14.938 6.776-14.938 15.059v63.85c0 9.246-6.686 16.203-15.541 16.203-8.132 0-14.095-6.053-14.818-14.697v-60.325c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v0 60.566c0 0.091-0.060 0.181-0.060 0.301v23.281c0 1.988-0.421 19.336-14.276 19.336-13.553 0-15.601-12.108-15.601-19.336v-21.172c0-0.844-0.332-1.627-0.482-2.44v-78.125c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.746-15.059 15.059v0 80.836c-1.446 5.843-5.662 11.746-14.035 11.746-8.613 0-15.872-7.861-15.872-17.167v-100.894c0-0.211-0.18-0.392-0.18-0.602v-33.16c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v25.118c-5.3 1.928-12.981 3.494-17.378 2.5-3.554-0.692-7.138-3.825-9.367-8.162-1.777-3.404-4.156-10.451-0.271-19.185l51.14-111.947c0.482-1.054 0.813-2.139 1.054-3.252 1.686-8.283 9.397-13.733 17.709-12.981 4.186 0.542 8.463-0.904 11.655-3.764 3.162-2.861 5-6.927 5-11.204v-52.525c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v38.731c-16.143 4.187-29.184 16.896-33.34 33.882l-50.567 110.683c-6.626 14.938-6.234 31.412 0.964 45.387 6.445 12.439 17.709 21.353 30.148 23.883 6.325 1.295 14.878 0.934 23.341-0.783v21.685c0 0.301 0.15 0.572 0.18 0.874v55.717c0 26.082 20.661 47.284 45.989 47.284 6.024 0 11.806-1.204 17.047-3.373 5.994 19.396 22.076 31.834 43.159 31.834 20.118 0 35.9-12.709 41.834-31.955 5.361 2.259 11.234 3.493 17.438 3.493 20.751 0 37.888-13.372 43.58-32.286 5.512 1.204 11.113 1.476 16.143 1.476 25.359 0 46.743-22.137 46.743-48.369z" />
+<glyph unicode="&#xe639;" d="M240.941 359.529l-58.97 60.236h-181.971v-451.764h512v391.529h-271.059zM169.321 389.647l58.97-60.236h253.59v-61.048l-451.764 0.783v120.501h139.204zM30.117-1.882v240.911l451.764-0.783v-240.128h-451.764z" />
+<glyph unicode="&#xe63a;" d="M391.529 178.582v278.227l-357.767-139.113 357.767-139.113zM361.412 222.584l-244.585 95.112 244.585 95.141v-190.253zM451.764 480v-512h-30.118v512h30.118z" />
+<glyph unicode="&#xe63b;" d="M451.764 480v-512h-30.118v512h30.118zM45.989 450.605h345.54v-240.941h-346.052l87.673 119.025-87.16 121.916zM361.412 420.488h-256.844l65.807-92.040-65.295-88.666h256.332v180.706z" />
+<glyph unicode="&#xe63c;" d="M451.764 480v-512h-30.118v512h30.118zM150.107 449.882h240.941v-240.941h-150.107v-60.236h-210.823v240.941h119.988v60.236zM210.823 208.941h-60.236v150.588h-90.353v-180.706h150.588v30.118zM180.224 419.764v-30.118h0.482v-150.588h180.224v180.706h-180.706z" />
+<glyph unicode="&#xe63d;" d="M510.946 214.452c-38.671 98.394-141.161 164.533-254.946 164.533s-216.275-66.139-254.946-164.533c-1.385-3.524-1.385-7.469 0-10.993 38.701-98.425 141.161-164.563 254.946-164.563s216.245 66.108 254.946 164.532c1.415 3.554 1.415 7.469 0 11.023zM256 69.014c-99.328 0-188.808 55.988-224.648 139.927 35.81 83.938 125.29 139.927 224.648 139.927s188.837-55.989 224.648-139.927c-35.84-83.908-125.32-139.927-224.648-139.927zM256 318.66c-60.507 0-109.719-49.212-109.719-109.718s49.212-109.719 109.748-109.719c60.476 0 109.719 49.212 109.719 109.719s-49.243 109.719-109.749 109.719zM256 129.34c-43.911 0-79.631 35.719-79.631 79.601s35.749 79.601 79.631 79.601c43.882 0 79.601-35.719 79.601-79.601s-35.69-79.601-79.601-79.601zM256 249.811c-22.528 0-40.87-18.341-40.87-40.869s18.341-40.87 40.87-40.87 40.87 18.341 40.87 40.87-18.341 40.87-40.87 40.87zM256 198.189c-5.933 0-10.752 4.819-10.752 10.752s4.819 10.752 10.752 10.752 10.752-4.819 10.752-10.752-4.819-10.752-10.752-10.752z" />
+<glyph unicode="&#xe63e;" d="M131.283 300.62l-21.624 20.992 146.341 150.739 146.341-150.739-21.625-20.962-109.659 112.941v-324.277h-30.118v324.276l-109.659-112.971zM481.882 208.038v-194.861c0-8.313-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.747-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
+<glyph unicode="&#xe63f;" d="M180.706 26.94v212.119h-30.118v-212.119l-109.809 109.809-21.293-21.293 146.161-146.161 146.191 146.191-21.293 21.293-109.839-109.839zM165.286 12.243h0.692l-0.332-0.361-0.362 0.361zM471.221 311.221l-109.809 109.839v-213.715h-30.118v213.715l-109.809-109.839-21.323 21.323 146.191 146.161 146.191-146.191-21.324-21.293z" />
+<glyph unicode="&#xe640;" d="M60.236 148.706h391.529v240.941h-391.529v-240.941zM90.353 359.529h331.294v-180.706h-331.294v180.706zM466.824 449.882h-421.647c-24.907 0-45.176-19.215-45.176-42.858v-305.814c0-23.642 20.269-42.858 45.176-42.858h421.647c24.907 0 45.176 19.215 45.176 42.858v305.815c0 23.642-20.269 42.858-45.176 42.858zM481.882 101.211c0-7.048-6.776-12.74-15.059-12.74h-421.647c-8.282 0-15.059 5.692-15.059 12.74v305.815c0 7.048 6.776 12.74 15.059 12.74h421.647c8.283 0 15.059-5.692 15.059-12.74v-305.815zM150.588 28.236h210.823v-30.118h-210.823v30.118z" />
+<glyph unicode="&#xe641;" d="M511.97 449.882h-67.976c0.030 5.060 0.241 9.879 0.241 15.059v15.059h-376.471v-15.059c0-4.819 0.121-10.029 0.15-15.059h-67.885l-0.030-15.029c-0.090-32.708 1.867-66.228 5.873-99.69 10.601-88.455 38.279-190.976 84.179-213.444 5.843-2.892 11.897-4.337 17.95-4.337 7.168 0 14.427 2.048 21.293 6.204l6.294 4.216c25.088-38.46 59.332-64.421 105.351-69.21v-60.476h-88.938v-30.118h210.824v30.118h-91.769v60.145c42.616 4.488 77.854 28.16 105.201 69.632l7.048-4.668c6.505-3.916 13.462-5.843 20.51-5.843 6.053 0 12.168 1.445 18.131 4.367 45.899 22.468 73.577 124.988 84.179 213.444 4.005 33.43 5.963 66.981 5.873 99.689l-0.030 14.999zM120.109 153.705l-6.897-4.638c-3.373-1.988-6.144-2.108-9.879-0.301-23.642 11.596-54.453 80.565-67.554 190.012-3.252 27.106-5.090 54.272-5.541 80.986h38.34c2.921-88.064 15.451-194.801 53.971-269.733l-2.439 3.675zM256 87.236c-136.734 0-156.582 242.447-158.028 362.647h316.055c-1.476-142.185-25.238-362.647-158.028-362.647zM476.22 338.779c-13.132-109.447-43.911-178.417-67.554-190.012-3.704-1.837-6.505-1.747-9.276-0.091l-7.529 5.029-3.493-5.24c32.497 61.38 51.411 152.576 55.145 271.3h38.279c-0.482-26.714-2.319-53.88-5.572-80.986z" />
+<glyph unicode="&#xe642;" d="M380.265 276.917l-122.971 200.975-126.826-201.036-135.5 115.441 52.374-394.18h417.28l52.345 393.788-136.704-114.989zM73.698 28.236l-4.005 30.118h372.586l-4.005-30.118h-364.574zM446.284 88.471h-380.567l-30.57 230.009 102.279-87.1 119.476 189.44 115.983-189.5 104.026 87.522-30.63-230.37z" />
+<glyph unicode="&#xe643;" d="M512 434.824v-240.007c0-24.908-20.269-45.176-45.176-45.176h-15.3v30.118h15.3c8.313 0 15.059 6.776 15.059 15.059v240.007c0 8.283-6.747 15.059-15.059 15.059h-421.647c-8.313 0-15.059-6.776-15.059-15.059v-240.007c0-8.283 6.746-15.059 15.059-15.059h45.177v-87.1l53.579 47.255 19.908-22.588-103.605-91.407v123.724h-15.059c-24.907 0-45.176 20.269-45.176 45.176v240.007c0 24.907 20.269 45.176 45.176 45.176h421.647c24.907 0 45.176-20.269 45.176-45.176zM422.25 192.678v-91.648c0-24.908-20.269-45.176-45.176-45.176h-15.059v-92.281l-110.442 92.281h-25.69c-24.907 0-45.177 20.269-45.177 45.176v91.648c0 24.908 20.269 45.177 45.177 45.177h151.19c24.908 0 45.176-20.269 45.176-45.177zM392.132 192.678c0 8.283-6.747 15.059-15.059 15.059h-151.19c-8.313 0-15.059-6.776-15.059-15.059v-91.648c0-8.283 6.746-15.059 15.059-15.059h36.653l69.361-58.007v58.007h45.176c8.313 0 15.059 6.776 15.059 15.059v91.648z" />
+<glyph unicode="&#xe644;" d="M466.824 480h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-301.176c0-24.908 20.269-45.176 45.176-45.176h15.059v-123.542l141.191 123.543h265.397c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.908-20.269 45.176-45.176 45.176zM481.882 133.647c0-8.283-6.747-15.059-15.059-15.059h-276.721l-99.749-87.281v87.281h-45.176c-8.313 0-15.059 6.776-15.059 15.059v301.176c0 8.283 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.776 15.059-15.059v-301.176z" />
+<glyph unicode="&#xe645;" d="M466.824 480h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-301.176c0-24.908 20.269-45.176 45.176-45.176h15.059v-123.542l141.191 123.543h265.397c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.908-20.269 45.176-45.176 45.176zM481.882 133.647c0-8.283-6.747-15.059-15.059-15.059h-276.721l-99.749-87.281v87.281h-45.176c-8.313 0-15.059 6.776-15.059 15.059v301.176c0 8.283 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.776 15.059-15.059v-301.176zM90.353 389.647h331.294v-30.118h-331.294v30.118zM90.353 329.412h331.294v-30.118h-331.294v30.118zM90.353 269.177h180.706v-30.118h-180.706v30.118z" />
+<glyph unicode="&#xe646;" d="M277.293 224l200.162-200.162-21.293-21.293-200.162 200.162-200.162-200.162-21.293 21.293 200.162 200.162-200.192 200.162 21.293 21.293 200.192-200.162 200.162 200.162 21.293-21.293-200.162-200.162z" />
+<glyph unicode="&#xe647;" d="M362.044 352.482v-255.94h-30.118v255.94c0 32.858-24.064 68.247-76.921 68.247-58.459 0-74.060-42.888-74.060-68.247v-244.585h0.211v-43.882c0-18.673 20.871-36.322 42.948-36.322 25.419 0 47.194 20.57 47.194 37.376v8.132h-0.091l0.241 229.406c0 26.323-7.439 26.323-14.035 26.323-11.113 0-16.475-1.054-16.475-24.787v-154.986h-30.118v154.986c0 13.583 0 54.904 46.592 54.904 20.149 0 44.152-9.788 44.152-56.471l-0.211-193.656h0.060v-43.882c0-35.328-36.864-67.493-77.312-67.493-38.912 0-73.065 31.051-73.065 66.44v2.228h-0.211v286.268c0 47.375 32.588 98.364 104.177 98.364 70.264-0.030 107.038-49.483 107.038-98.364z" />
+<glyph unicode="&#xe648;" d="M492.544 121.721l-21.293-21.293-215.251 215.221-215.22-215.221-21.293 21.293 236.514 236.514 236.544-236.514z" />
+<glyph unicode="&#xe649;" d="M397.764 224.844l-236.544-236.544-21.293 21.293 215.22 215.22-215.22 215.281 21.293 21.293 236.544-236.544z" />
+<glyph unicode="&#xe64a;" d="M156.822 224.874l215.221-215.251-21.293-21.293-236.514 236.544 236.544 236.514 21.293-21.293-215.251-215.221z" />
+<glyph unicode="&#xe64b;" d="M492.544 327.153l-236.574-236.544-236.514 236.544 21.293 21.293 215.19-215.221 215.281 215.251 21.324-21.323z" />
+<glyph unicode="&#xe64c;" d="M464.354 426.572l-266.029-406.137-148.119 132.096 20.058 22.468 122.007-108.845 246.905 376.923 25.178-16.505z" />
+<glyph unicode="&#xe64d;" d="M421.647 306.492h30.118v-308.375h-421.647v421.647h252.777v-30.118h-222.66v-361.412h361.412v278.257zM146.191 234.661l-21.323-21.324 103.424-103.424 228.502 346.714-25.148 16.595-208.173-315.874-77.282 77.312z" />
+<glyph unicode="&#xe64e;" d="M179.441 389.647v30.118h-87.823v-30.118h-91.618v-361.412h512v361.412h-332.559zM481.882 58.353h-451.764v210.824h197.482c-10.391-17.8-16.775-38.22-16.775-60.236 0-66.44 54.031-120.471 120.471-120.471s120.471 54.031 120.471 120.471c0 22.016-6.385 42.436-16.776 60.236h46.893v-210.823zM421.647 208.941c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353 40.538 90.353 90.353 90.353 90.353-40.538 90.353-90.353zM410.142 299.294c-21.203 18.492-48.55 30.118-78.848 30.118s-57.645-11.625-78.848-30.118h-222.328v60.236h451.764v-60.236h-71.74z" />
+<glyph unicode="&#xe64f;" d="M496.007 413.079h-58.036c-8.794 0-15.993-7.048-15.993-15.692v-20.089l-331.144-121.374v8.132c0 12.951-10.782 23.522-24.004 23.522h-42.828c-13.222 0-24.004-10.572-24.004-23.522v-141.192c0-12.921 10.782-23.522 24.004-23.522h42.828c13.192 0 24.004 10.601 24.004 23.522v9.969l31.142-5.692c-0.692-4.909-1.144-9.819-1.144-14.788 0-57.133 47.013-103.635 104.779-103.635 49.905 0 91.257 33.973 101.798 80.776l94.57-17.348v-19.848c0-8.644 7.198-15.692 15.993-15.692h58.036c8.795 0 15.993 7.048 15.993 15.692v345.088c0 8.644-7.198 15.692-15.993 15.692zM225.612 38.837c-41.171 0-74.662 32.979-74.662 73.517 0 3.132 0.813 6.174 1.204 9.276l145.769-26.745c-7.951-32.587-37.195-56.049-72.313-56.049zM481.882 66.726h-29.786v30.509l-391.379 71.77v-39.514h-30.599v128h30.599v-44.695l391.379 143.45v26.715h29.786v-316.236z" />
+<glyph unicode="&#xe650;" d="M479.262 426.331l-195.764-286.118-24.847 16.986 195.764 286.118 24.847-16.986zM271.059 58.594c0-33.22-27.016-60.236-60.236-60.236-6.114 0-16.203-0.452-16.293-0.452h-164.262l137.125 103.334c4.518 3.132 25.871 17.589 43.429 17.589 33.22 0 60.235-27.015 60.235-60.236zM240.941 58.594c0 16.595-13.523 30.118-30.118 30.118-5.27 0-17.529-6.114-25.691-11.836l-64.844-48.881h73.276c1.898 0.091 11.324 0.482 17.257 0.482 16.595 0 30.118 13.523 30.118 30.118z" />
+<glyph unicode="&#xe651;" d="M210.823 88.471v45.176h30.118v-15.059h30.117v15.059h30.118v-45.176h-90.353zM512 148.706h-30.118v-180.706h-451.764v180.706h-30.117v240.941h108.906c28.25 55.115 84.48 90.353 147.094 90.353s118.875-35.268 147.095-90.353h108.905v-240.941zM143.631 389.647h224.798c-24.847 37.135-66.56 60.236-112.399 60.236s-87.552-23.13-112.399-60.236zM451.764 148.706h-391.529v-150.588h391.529v150.588zM481.882 359.529h-451.764v-180.706h451.764v180.706z" />
+<glyph unicode="&#xe652;" d="M431.074 419.404h-215.401l-70.204-211.245h50.176l-60.536-182.272 285.606 242.477h-87.462l97.822 151.040zM338.733 238.245l-141.161-119.838 39.815 119.838h-50.146l50.146 151.040h138.3l-97.822-151.040h60.868z" />
+<glyph unicode="&#xe653;" d="M356.292 239.059l-115.23-217.841-26.624 14.065 91.859 173.659h-153.871l147.576 219.226 24.967-16.836-115.983-172.273h147.305z" />
+<glyph unicode="&#xe654;" d="M271.059 419.764v60.236h-30.118v-60.236h-210.823v-301.176h451.764v301.176h-210.823zM451.764 148.706h-391.529v240.941h391.529v-240.941zM105.412 88.471h301.176v-30.118h-77.824l45.297-70.053-25.299-16.354-55.868 86.408h-21.836v-90.353h-30.118v90.353h-21.444l-56.29-86.438-25.238 16.414 45.598 70.024h-78.156v30.118z" />
+<glyph unicode="&#xe655;" d="M391.529 359.529v72.101c0 26.654-22.197 48.369-49.483 48.369h-171.641c-27.256 0-49.453-21.715-49.453-48.369v-72.101h-90.835v-391.529h451.764v391.529h-90.353zM151.070 431.631c0 10.060 8.674 18.252 19.335 18.252h171.641c10.692 0 19.365-8.192 19.365-18.252v-72.101h-210.341v72.101zM451.764-1.882h-391.529v240.941h391.529v-240.941zM451.764 269.177h-391.529v60.236h60.717v-19.365h30.117v19.365h210.341v-19.365h30.118v19.365h60.236v-60.236z" />
+<glyph unicode="&#xe656;" d="M409.69 138.195l-21.263 21.324 49.514 49.423h-166.882v-166.882l49.423 49.514 21.324-21.263-85.805-85.986-85.805 85.986 21.323 21.263 49.423-49.514v166.882h-166.882l49.513-49.423-21.263-21.324-85.986 85.805 85.986 85.805 21.263-21.324-49.513-49.423h166.882v166.882l-49.423-49.514-21.323 21.263 85.805 85.986 85.805-85.986-21.324-21.263-49.423 49.514v-166.882h166.882l-49.514 49.423 21.263 21.324 85.986-85.805-85.986-85.805z" />
+<glyph unicode="&#xe657;" d="M350.63 116.691l21.564-21.022-116.194-119.115-116.194 119.085 21.564 21.022 79.571-81.529v377.736l-79.571-81.558-21.564 21.052 116.194 119.085 116.194-119.085-21.564-21.022-79.571 81.529v-377.765l79.571 81.589z" />
+<glyph unicode="&#xe658;" d="M503.447 224l-119.085-116.194-21.022 21.564 81.529 79.571h-377.736l81.558-79.571-21.022-21.564-119.115 116.194 119.085 116.194 21.022-21.564-81.528-79.571h377.765l-81.558 79.571 21.022 21.564 119.085-116.194z" />
+<glyph unicode="&#xe659;" d="M481.762 138.104l0.12-139.987-140.017 0.12 0.030 30.118 88.546-0.091-174.441 174.411-174.441-174.442 88.546 0.091 0.030-30.118-140.017-0.091 0.12 140.017 30.117-0.030-0.090-88.516 174.441 174.411-174.441 174.442 0.090-88.516-30.117-0.030-0.12 139.987 140.017-0.12-0.030-30.118-88.546 0.091 174.441-174.442 174.441 174.442-88.546-0.091-0.030 30.118 140.017 0.12-0.12-140.017-30.118 0.030 0.091 88.516-174.441-174.411 174.442-174.442-0.091 88.516 30.118 0.030z" />
+<glyph unicode="&#xe65a;" d="M481.882 449.973v-271.149h-30.118v219.768l-310.724-310.121-21.293 21.324 310.663 310.061h-220.34v30.118h271.812z" />
+<glyph unicode="&#xe65b;" d="M370.206 88.471l-310.724 310.122v-219.768h-30.117v271.149h271.812v-30.118h-220.34l310.663-310.061-21.293-21.324z" />
+<glyph unicode="&#xe65c;" d="M256 305.529l131.132-131.132-21.293-21.293-109.839 109.839-109.809-109.809-21.293 21.293 131.102 131.102zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
+<glyph unicode="&#xe65d;" d="M206.427 355.132l131.102-131.132-131.132-131.132-21.293 21.293 109.839 109.839-109.839 109.809 21.323 21.324zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
+<glyph unicode="&#xe65e;" d="M326.897 333.809l-109.839-109.809 109.809-109.809-21.293-21.293-131.102 131.102 131.132 131.132 21.293-21.324zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
+<glyph unicode="&#xe65f;" d="M365.809 294.897l21.293-21.293-131.102-131.132-131.132 131.102 21.293 21.293 109.839-109.809 109.809 109.839zM512 224c0-141.161-114.839-256-256-256s-256 114.839-256 256 114.838 256 256 256 256-114.839 256-256zM481.882 224c0 124.567-101.316 225.882-225.882 225.882s-225.882-101.316-225.882-225.882 101.316-225.882 225.882-225.882 225.882 101.316 225.882 225.882z" />
+<glyph unicode="&#xe660;" d="M256 297.096l206.427-206.427-21.293-21.293-185.133 185.133-185.103-185.103-21.293 21.293 206.396 206.396zM256 400.369l185.103-185.103 21.293 21.293-206.396 206.427-206.427-206.427 21.323-21.293 185.103 185.103z" />
+<glyph unicode="&#xe661;" d="M290.454 224l-206.427-206.427-21.293 21.293 185.103 185.133-185.103 185.103 21.293 21.324 206.427-206.427zM229.918 430.426l-21.293-21.323 185.103-185.103-185.103-185.103 21.293-21.293 206.396 206.396-206.396 206.427z" />
+<glyph unicode="&#xe662;" d="M240.549 224l185.103-185.103-21.293-21.293-206.396 206.396 206.427 206.427 21.293-21.293-185.133-185.133zM279.793 409.133l-21.293 21.293-206.427-206.426 206.427-206.427 21.293 21.293-185.103 185.133 185.103 185.133z" />
+<glyph unicode="&#xe663;" d="M256 159.428l-206.427 206.427 21.293 21.293 185.133-185.103 185.103 185.103 21.293-21.293-206.396-206.426zM256 56.124l-185.103 185.133-21.323-21.293 206.427-206.427 206.427 206.427-21.293 21.293-185.133-185.133z" />
+<glyph unicode="&#xe664;" d="M291.147 480h-230.912v-512h391.529v352.135l-160.618 159.865zM301.176 427.535l98.575-98.123h-98.575v98.123zM90.353-1.882v451.764h90.353v-30.118h30.118v30.118h60.235v-150.588h150.588v-301.176h-331.294zM150.588 239.059h30.118v-30.117h-30.118v30.118zM180.706 239.059v30.118h30.118v-30.118h-30.118zM180.706 299.294v30.118h30.118v-30.118h-30.118zM150.588 299.294h30.118v-30.117h-30.118v30.117zM150.588 359.529h30.118v-30.117h-30.118v30.117zM180.706 359.529v30.118h30.118v-30.118h-30.118zM150.588 419.764h30.118v-30.118h-30.118v30.118zM180.706 197.226c-33.22 0-60.236-27.015-60.236-60.236s27.016-60.236 60.236-60.236c1.868 0 3.644 0.211 6.596 0.603 19.456 2.139 36.684 13.704 46.11 30.901 5 9.125 7.53 18.793 7.53 28.732 0 33.22-27.016 60.236-60.236 60.236zM206.999 122.684c-4.698-8.584-13.282-14.366-22.95-15.42l-3.373-0.421c-16.595 0-30.088 13.523-30.088 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118c0-4.788-1.295-9.608-3.825-14.276z" />
+<glyph unicode="&#xe665;" d="M256.482 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.868 256-256 256zM31.352 208.941h88.456c1.325-30.841 6.355-61.169 15.451-90.353h-78.396c-14.486 27.286-23.371 57.916-25.509 90.353zM119.808 239.059h-88.456c2.139 32.436 11.023 63.066 25.51 90.353h78.306c-9.066-29.184-14.065-59.512-15.36-90.353zM167.063 329.412h177.573c9.939-29.064 15.721-59.392 17.137-90.353h-211.847c1.386 30.961 7.198 61.29 17.137 90.353zM149.925 208.941h211.877c-1.476-30.961-7.259-61.289-17.228-90.353h-177.423c-9.969 29.063-15.781 59.392-17.227 90.353zM391.921 208.941h89.69c-2.139-32.437-11.023-63.067-25.51-90.353h-79.631c9.096 29.184 14.125 59.512 15.45 90.353zM391.921 239.059c-1.295 30.84-6.295 61.169-15.36 90.353h79.541c14.457-27.286 23.341-57.916 25.51-90.353h-89.69zM436.766 359.529h-70.897c-11.806 28.763-27.588 55.959-46.683 81.317 47.526-13.764 88.486-42.767 117.579-81.317zM273.288 449.039c24.817-27.015 44.695-57.224 59.392-89.51h-153.66c14.667 32.256 34.515 62.434 59.332 89.45 5.994 0.452 11.987 0.904 18.131 0.904 5.662 0 11.234-0.452 16.805-0.844zM192.241 440.456c-18.944-25.239-34.666-52.315-46.381-80.926h-69.692c28.763 38.159 69.18 66.981 116.074 80.926zM76.168 88.471h69.782c11.776-28.642 27.558-55.748 46.592-80.986-47.013 13.884-87.552 42.737-116.374 80.986zM238.713-0.979c-24.877 27.015-44.815 57.194-59.572 89.45h153.419c-14.757-32.286-34.695-62.494-59.603-89.51-5.452-0.392-10.933-0.844-16.474-0.844-6.024 0-11.897 0.452-17.769 0.904zM318.856 7.063c19.155 25.359 35.057 52.615 46.893 81.408h71.017c-29.154-38.641-70.234-67.674-117.911-81.408z" />
+<glyph unicode="&#xe666;" d="M328.313 92.988l29.425-6.415c-15.209-69.813-75.625-118.573-146.914-118.573-83.034 0-150.588 67.554-150.588 150.588 0 68.367 46.11 128.271 112.188 145.649l7.65-29.124c-52.827-13.915-89.721-61.831-89.721-116.525 0-66.44 54.031-120.471 120.471-120.471 57.013 0 105.321 39.002 117.489 94.87zM481.882 24.591v-30.118h-56.26l-28.762 124.024h-185.464l-16.384 243.411c-25.51 7.017-44.423 30.148-44.423 57.856 0 33.22 27.016 60.236 60.236 60.236s60.236-27.015 60.236-60.236c0-28.25-19.577-51.803-45.809-58.308l8.132-120.802 109.388 27.136 7.228-29.244-114.597-28.401 4.156-61.5h181.248l28.762-124.024h32.316zM210.823 389.647c16.625 0 30.118 13.523 30.118 30.118s-13.493 30.118-30.118 30.118-30.118-13.523-30.118-30.118 13.493-30.118 30.118-30.118z" />
+<glyph unicode="&#xe667;" d="M0 480v-120.471h512v120.471h-512zM481.882 389.647h-451.764v60.236h451.764v-60.236zM0 178.824h512v120.471h-512v-120.471zM30.117 269.177h451.764v-60.236h-451.764v60.236zM0-1.882h512v120.471h-512v-120.471zM30.117 88.471h451.764v-60.236h-451.764v60.236z" />
+<glyph unicode="&#xe668;" d="M150.588 480v-120.471h361.412v120.471h-361.412zM481.882 389.647h-301.176v60.236h301.176v-60.236zM150.588 178.824h361.412v120.471h-361.412v-120.471zM180.706 269.177h301.176v-60.236h-301.176v60.236zM150.588-1.882h361.412v120.471h-361.412v-120.471zM180.706 88.471h301.176v-60.236h-301.176v60.236zM0 359.529h120.471v120.471h-120.471v-120.471zM30.117 449.882h60.236v-60.236h-60.236v60.236zM0 178.824h120.471v120.471h-120.471v-120.471zM30.117 269.177h60.236v-60.236h-60.236v60.236zM0-1.882h120.471v120.471h-120.471v-120.471zM30.117 88.471h60.236v-60.236h-60.236v60.236z" />
+<glyph unicode="&#xe669;" d="M0 269.177h210.823v210.823h-210.823v-210.823zM30.117 449.882h150.588v-150.588h-150.588v150.588zM301.176 480v-210.823h210.824v210.823h-210.823zM481.882 299.294h-150.588v150.588h150.588v-150.588zM0-32h210.823v210.823h-210.823v-210.823zM30.117 148.706h150.588v-150.588h-150.588v150.588zM301.176-32h210.824v210.823h-210.823v-210.823zM331.294 148.706h150.588v-150.588h-150.588v150.588z" />
+<glyph unicode="&#xe66a;" d="M210.823 359.529h30.118v-60.236h-30.118v30.118h-60.236v-240.941h30.118v-30.118h-90.353v30.118h30.117v240.941h-60.236v-30.118h-30.117v60.236h180.706zM451.764 359.529h-180.706v-60.236h30.118v30.118h60.236v-240.941h-30.118v-30.118h90.353v30.118h-30.118v240.941h60.236v-30.118h30.118v60.236h-30.118z" />
+<glyph unicode="&#xe66b;" d="M512-1.882v-30.118h-512v30.118h512zM240.911 428.559v-340.088h30.118v340.149l109.839-109.839 21.293 21.293-146.161 146.161-146.191-146.161 21.293-21.293 109.809 109.779z" />
+<glyph unicode="&#xe66c;" d="M451.764 449.882v-30.118h-30.118v-194.53c0-91.317-74.3-165.647-165.647-165.647s-165.647 74.33-165.647 165.647v194.53h-30.117v30.118h90.353v-30.118h-30.118v-194.53c0-74.722 60.808-135.529 135.529-135.529s135.529 60.808 135.529 135.53v194.53h-30.118v30.118h90.353zM60.236-1.882h391.529v30.118h-391.529v-30.118z" />
+<glyph unicode="&#xe66d;" d="M512 389.647h-331.294v-90.353h-86.528l-35.84-120.47h-58.338v-149.896h60.295c0-0.241-0.060-0.452-0.060-0.692 0-33.22 27.016-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h150.739c-0.030-0.241-0.091-0.452-0.091-0.692 0-33.22 27.015-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h60.296v360.719zM116.645 269.177h64.060v-90.353h-90.956l26.895 90.353zM120.471-1.882c-16.595 0-30.117 13.523-30.117 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM391.529-1.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM481.882 59.046h-38.882c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-168.117c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-38.882v89.66h180.706v210.823h271.059v-300.484z" />
+<glyph unicode="&#xe66e;" d="M271.059 419.012v30.87h45.176v30.118h-120.471v-30.118h45.177v-30.87c-117.519-7.83-210.823-105.652-210.823-225.13 0-124.567 101.316-225.882 225.882-225.882s225.882 101.316 225.882 225.882c0 119.476-93.305 217.299-210.824 225.13zM256-1.882c-107.942 0-195.764 87.823-195.764 195.764s87.823 195.764 195.764 195.764 195.764-87.823 195.764-195.764-87.823-195.764-195.764-195.764zM271.059 208.941h120.471v-30.118h-150.588v120.471h30.117v-90.353z" />
+<glyph unicode="&#xe66f;" d="M286.118 449.882v-15.059c0-16.625-13.523-30.118-30.118-30.118s-30.118 13.493-30.118 30.118v15.059h-105.412v-451.764h105.412v15.059c0 16.625 13.523 30.118 30.118 30.118s30.118-13.493 30.118-30.118v-15.059h105.412v451.764h-105.412zM197.662 419.764c6.716-25.932 30.328-45.177 58.338-45.177s51.621 19.245 58.338 45.177h47.074v-180.706h-210.823v180.706h47.074zM314.338 28.236c-6.686 25.932-30.298 45.176-58.338 45.176s-51.621-19.245-58.338-45.176h-47.074v180.706h210.824v-180.706h-47.074z" />
+<glyph unicode="&#xe670;" d="M462.848 187.106c2.5-6.114 3.976-14.035 3.976-24.305 0-15.842-7.228-29.244-18.703-37.135 4.156-7.048 6.144-15.089 6.144-23.13 0-16.926-9.427-31.353-23.642-38.791 2.409-5.662 3.825-12.649 3.885-21.233 0.060-13.523-3.885-24.396-11.776-32.316-8.313-8.342-20.089-12.589-34.966-12.589h-169.412c-22.708 0-38.34 12.168-49.785 21.082-6.596 5.12-12.83 9.999-17.167 9.999h-63.308c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h63.308c14.667 0 25.811-8.674 35.66-16.324 9.728-7.56 18.914-14.728 31.292-14.728h169.412c6.385 0 11.234 1.295 13.613 3.704 2.048 2.048 3.072 5.723 3.042 10.902-0.091 13.161-2.771 15.993-30.931 15.993h-3.192c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h37.888c9.246 0 15.962 5.933 15.962 14.095 0 13.553-13.523 15.571-21.594 15.571h-22.588c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h43.279c9.969 0 13.493 7.529 13.493 14.577 0 14.818 0 14.818-13.221 15.209-1.536 0.030-3.132 0.151-4.699 0.211h-32.406c-8.313 0-15.059 6.747-15.059 15.059s6.747 15.059 15.059 15.059h29.575c0.211 0 0.392 0.12 0.603 0.12h19.004c8.885 0 16.143 6.837 16.143 15.209s-7.228 15.209-16.143 15.209h-134.114c-4.488 0-8.734 1.988-11.596 5.452-2.861 3.464-4.036 8.012-3.192 12.409l15.661 82.341c1.868 8.222 7.168 31.533 0.994 41.863-1.596 2.68-5.481 5.542-10.24 5.542 0 0 0 0 0 0-5.903 0-11.957-4.729-17.046-13.252l-97.612-157.636c-2.74-4.428-7.589-7.138-12.8-7.138h-77.372c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h68.999l93.004 150.287c14.336 24.094 32.979 27.738 42.767 27.738 0 0 0 0 0.030 0 14.607 0 28.762-7.951 36.081-20.209 10.963-18.341 7.168-43.52 2.62-63.428l-12.137-63.97h115.923c25.51 0 46.26-20.329 46.26-45.327 0.030-14.998-7.469-28.341-18.974-36.593z" />
+<glyph unicode="&#xe671;" d="M438.754 193.852c0-8.313-6.747-15.059-15.059-15.059h-69l-93.003-150.287c-14.366-24.094-32.979-27.738-42.767-27.738 0 0-0.030 0-0.030 0-14.607 0-28.762 7.951-36.111 20.209-10.963 18.372-7.168 43.55-2.62 63.428l12.137 63.97h-115.923c-25.51 0-46.23 20.329-46.23 45.327 0 16.505 9.035 30.991 22.528 38.912-4.608 6.294-7.529 13.703-7.529 21.956 0 15.842 7.228 29.244 18.703 37.135-4.156 7.077-6.144 15.119-6.144 23.161 0 17.317 9.878 31.985 24.606 39.303-4.005 7.71-4.879 15.541-4.879 20.781 0 28.070 17.499 44.815 46.773 44.815h169.412c22.709 0 38.37-12.168 49.784-21.082 6.596-5.12 12.83-9.999 17.137-9.999h63.337c8.313 0 15.059-6.746 15.059-15.059s-6.747-15.059-15.059-15.059h-63.337c-14.668 0-25.811 8.674-35.659 16.324-9.698 7.62-18.884 14.757-31.262 14.757h-169.412c-14.065 0-16.655-4.969-16.655-14.697 0-4.759 0-15.872 30.931-15.872h3.162c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-37.888c-9.246 0-15.932-5.933-15.932-14.095 0-13.553 13.523-15.571 21.594-15.571h22.588c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-43.249c-9.939 0-13.493-7.53-13.493-14.577 0-5.060 11.023-13.764 21.233-15.451h29.094c8.313 0 15.059-6.746 15.059-15.059s-6.746-15.059-15.059-15.059h-29.606c-0.211 0-0.391-0.12-0.603-0.12h-19.004c-8.885 0-16.113-6.837-16.113-15.209s7.228-15.209 16.113-15.209h134.114c4.488 0 8.734-1.988 11.595-5.452 2.861-3.464 4.036-8.012 3.192-12.409l-15.661-82.341c-1.868-8.222-7.168-31.503-0.994-41.863 1.596-2.651 5.482-5.541 10.24-5.541 5.903 0 11.957 4.728 17.047 13.252l97.551 157.636c2.74 4.428 7.589 7.138 12.8 7.138h77.372c8.403 0 15.119-6.747 15.119-15.059z" />
+<glyph unicode="&#xe672;" d="M421.647 419.764v-90.353h-30.118v60.236h-120.471v-361.412h49.483v-30.118h-129.084v30.118h49.483v361.412h-120.471v-60.236h-30.117v90.353h331.294z" />
+<glyph unicode="&#xe673;" d="M512-1.882v-30.118h-512v30.118h512zM156.702 239.781l126.615-91.136 168.448 188.265v-68.788h30.118v121.525h-121.555v-30.118h71.259l-152.697-170.616-124.356 89.57-131.674-119.146 20.209-22.317 113.634 102.762z" />
+<glyph unicode="&#xe674;" d="M155.588 214.875l-131.644 119.145 20.179 22.317 113.634-102.791 126.615 91.136 168.448-188.236v68.819h30.118v-121.555h-121.555v30.118h71.259l-152.667 170.617-124.386-89.57zM0-1.882v-30.118h512v30.118h-512z" />
+<glyph unicode="&#xe675;" d="M320.632 84.074l21.293-21.293-85.925-85.956-85.956 85.956 21.293 21.293 49.604-49.604v113.604h30.118v-113.604l49.574 49.604zM240.941 413.531v-113.604h30.117v113.604l49.574-49.574 21.293 21.293-85.925 85.925-85.956-85.925 21.293-21.293 49.604 49.573zM0 239.059v-30.117h512v30.118h-512z" />
+<glyph unicode="&#xe676;" d="M66.469 239.059h113.604v-30.117h-113.604l49.574-49.574-21.293-21.293-85.925 85.925 85.956 85.956 21.293-21.293-49.604-49.604zM417.25 309.956l-21.293-21.293 49.574-49.604h-113.604v-30.118h113.604l-49.574-49.574 21.293-21.293 85.925 85.925-85.925 85.956zM240.941-32h30.117v512h-30.118v-512z" />
+<glyph unicode="&#xe677;" d="M180.706 301.553h30.118v-60.236h-30.118v30.118h-60.236v-240.941h30.118v-30.118h-90.353v30.118h30.117v240.941h-60.236v-30.118h-30.117v60.235h180.706zM481.882 419.764h-301.176v-77.613h30.118v47.495h120.471v-361.412h-30.118v-30.118h90.353v30.118h-30.118v361.412h120.471v-47.495h30.117v77.613h-30.118z" />
+<glyph unicode="&#xe678;" d="M256 329.412c-58.127 0-105.412-47.285-105.412-105.412s47.285-105.412 105.412-105.412 105.412 47.284 105.412 105.412-47.284 105.412-105.412 105.412zM256 148.706c-41.502 0-75.294 33.792-75.294 75.294s33.792 75.294 75.294 75.294 75.294-33.792 75.294-75.294-33.792-75.294-75.294-75.294zM271.059 359.529h-30.118v90.353h30.118v-90.353zM240.941 88.471h30.117v-90.353h-30.118v90.353zM481.882 239.059v-30.117h-90.353v30.118h90.353zM120.471 208.941h-90.353v30.118h90.353v-30.118zM362.496 309.203l-21.293 21.293 63.88 63.88 21.293-21.293-63.88-63.88zM149.504 138.797l21.293-21.293-63.88-63.88-21.293 21.293 63.88 63.88zM362.496 138.797l63.88-63.88-21.293-21.293-63.88 63.88 21.293 21.293zM149.504 309.203l-63.88 63.88 21.293 21.293 63.88-63.88-21.293-21.293z" />
+<glyph unicode="&#xe679;" d="M251.603 370.191l146.161-146.191-146.191-146.191-21.293 21.293 109.839 109.839h-340.118v30.118h340.089l-109.809 109.809 21.323 21.324zM481.882 480v-512h30.118v512h-30.118z" />
+<glyph unicode="&#xe67a;" d="M512 208.911h-340.089l109.809-109.809-21.293-21.293-146.191 146.191 146.191 146.191 21.293-21.293-109.869-109.869h340.149v-30.118zM0-32h30.117v512h-30.117v-512z" />
+<glyph unicode="&#xe67b;" d="M451.764 449.401c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353h-30.118c0-49.815-40.538-90.353-90.353-90.353s-90.353 40.538-90.353 90.353h-30.117v-206.216c0-162.786 210.884-240.941 219.889-244.164l5-1.837 5.030 1.747c9.036 3.102 221.846 77.914 221.846 245.097v205.372h-30.118zM60.236 243.215v126.614c22.076-25.058 54.422-40.9 90.353-40.9 36.020 0 68.246 16.053 90.353 41.231v-334.728c-49.965 22.498-180.706 92.371-180.706 207.781zM451.764 244.028c0-117.308-129.295-185.615-180.706-208.173v334.336c22.106-25.178 54.332-41.231 90.353-41.231 35.93 0 68.276 15.812 90.353 40.87v-125.802z" />
+<glyph unicode="&#xe67c;" d="M30.117 480v-512h451.764v512h-451.764zM451.764-1.882h-391.529v451.764h60.236v-32.889c-17.499-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.177-45.176s45.177 20.269 45.177 45.176c0 19.607-12.619 36.172-30.118 42.406v32.889h90.353v-32.889c-17.499-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.176-45.176s45.176 20.269 45.176 45.176c0 19.607-12.62 36.172-30.118 42.406v32.889h90.353v-32.889c-17.498-6.234-30.118-22.799-30.118-42.406 0-24.907 20.269-45.176 45.176-45.176s45.176 20.269 45.176 45.176c0 19.607-12.62 36.172-30.118 42.406v32.889h60.236v-451.764zM150.588 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059zM271.059 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059zM391.529 374.588c0-8.282-6.776-15.059-15.059-15.059s-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059z" />
+<glyph unicode="&#xe67d;" d="M512 374.588c0 68.458-131.916 105.412-256 105.412s-256-36.954-256-105.412c0-4.487 0.723-9.577 2.409-15.059h-2.409v-286.118c0-68.457 131.916-105.412 256-105.412s256 36.954 256 105.412v286.118h-2.409c1.687 5.481 2.409 10.572 2.409 15.059zM256 449.882c129.295 0 225.882-39.755 225.882-75.294 0-11.987-11.685-25.148-32.918-37.014-42.737-23.974-114.868-38.279-192.964-38.279s-150.227 14.306-192.964 38.279c-21.233 11.867-32.919 25.028-32.919 37.014 0 35.539 96.588 75.294 225.882 75.294zM256-1.882c-129.295 0-225.882 39.755-225.882 75.294v49.182c5.27-4.066 11.053-8.162 18.191-12.137 47.044-26.323 124.687-42.044 207.691-42.044 10.39 0 20.691 0.241 30.81 0.723 71.108 3.343 135.68 18.281 176.851 41.322v0c0 0.030 0.030 0.030 0.030 0.030 7.108 4.005 12.95 8.072 18.191 12.137v-49.212c0-35.539-96.587-75.294-225.882-75.294zM448.964 136.749c-42.767-23.943-114.868-38.25-192.964-38.25-9.758 0-19.456 0.241-28.973 0.663-66.68 3.072-126.585 16.625-163.99 37.557v0c-21.203 11.926-32.919 25.088-32.919 37.075v49.212c5.27-4.066 11.084-8.162 18.221-12.137 47.014-26.323 124.657-42.044 207.661-42.044s160.648 15.721 207.661 42.044c7.138 3.976 12.95 8.072 18.221 12.137v-49.212c0-11.987-11.716-25.148-32.918-37.045zM448.933 237.161c-42.737-23.944-114.839-38.25-192.934-38.25s-150.196 14.306-192.934 38.25c-21.233 11.867-32.949 25.058-32.949 37.045v49.212c5.27-4.096 11.053-8.162 18.191-12.168 47.044-26.353 124.657-42.074 207.691-42.074s160.647 15.721 207.691 42.074c7.138 4.006 12.921 8.072 18.191 12.168v-49.212c0-11.987-11.716-25.178-32.949-37.044z" />
+<glyph unicode="&#xe67e;" d="M220.070 273.332c0 58.609-47.676 106.285-106.285 106.285-58.579 0-106.255-47.676-106.255-106.285 0-58.579 47.676-106.255 106.255-106.255 22.107 0 42.647 6.837 59.663 18.402-37.075-104.508-120.169-116.766-124.476-117.339l3.705-29.877c1.536 0.18 154.353 21.173 167.544 232.628l-0.392 0.030c0.030 0.813 0.241 1.566 0.241 2.41zM113.784 197.165c-41.984 0-76.138 34.154-76.138 76.137s34.154 76.168 76.138 76.168c42.014 0 76.168-34.183 76.168-76.168s-34.154-76.137-76.168-76.137zM503.988 270.923c0.030 0.813 0.241 1.596 0.241 2.409 0 58.609-47.676 106.285-106.255 106.285s-106.255-47.676-106.255-106.285c0-58.579 47.676-106.255 106.255-106.255 22.106 0 42.647 6.837 59.663 18.402-37.045-104.508-120.17-116.766-124.476-117.339l3.704-29.877c1.536 0.18 154.353 21.173 167.544 232.628l-0.421 0.030zM397.974 197.165c-41.984 0-76.137 34.154-76.137 76.137s34.154 76.168 76.137 76.168 76.137-34.183 76.137-76.168-34.154-76.137-76.137-76.137z" />
+<glyph unicode="&#xe67f;" d="M396.62 250.684c-22.106 0-42.676-6.837-59.693-18.432 37.044 104.569 120.2 116.856 124.507 117.399l-3.704 29.877c-1.536-0.181-154.383-21.203-167.544-232.659l0.452-0.030c0-0.813-0.241-1.627-0.241-2.44 0-58.579 47.676-106.255 106.255-106.255s106.255 47.676 106.255 106.255-47.707 106.285-106.285 106.285zM396.62 68.262c-42.014 0-76.137 34.154-76.137 76.137s34.154 76.137 76.137 76.137 76.137-34.154 76.137-76.137-34.154-76.137-76.137-76.137zM112.429 250.684c-22.106 0-42.647-6.837-59.663-18.432 37.044 104.569 120.169 116.856 124.476 117.399l-3.704 29.877c-1.536-0.181-154.353-21.203-167.575-232.659l0.452-0.030c0-0.813-0.241-1.627-0.241-2.44 0-58.579 47.676-106.255 106.255-106.255s106.255 47.676 106.255 106.255-47.646 106.285-106.255 106.285zM112.429 68.262c-42.014 0-76.138 34.154-76.138 76.137s34.153 76.137 76.138 76.137 76.138-34.154 76.138-76.137-34.124-76.137-76.138-76.137z" />
+<glyph unicode="&#xe680;" d="M431.586 239.059l-56.5 131.825-103.544-294.641-120.923 394.842-71.379-232.026h-79.24v-30.118h101.466l49.092 159.503 118.964-388.608 108.333 308.103 33.852-78.998h100.292v30.118z" />
+<glyph unicode="&#xe681;" d="M512 299.294h-90.594v54.754l-135.62 125.952h-195.674v-180.706h-90.112v-240.941h90.353v-93.364h331.294v93.365h90.353v240.941zM300.935 424.825l70.325-65.295h-70.325v65.295zM120.23 449.882h150.588v-120.47h120.471v-30.118h-271.059v150.588zM391.529-4.894h-271.059v150.588h271.059v-150.588zM481.882 88.471h-60.236v87.341h-331.294v-87.341h-60.236v180.706h451.764v-180.706zM331.475 88.471h-180.887v30.118h180.887v-30.118zM271.059 28.236h-120.471v30.118h120.471v-30.118zM90.353 208.941h-30.117v30.118h30.117v-30.118zM150.588 208.941h-30.118v30.118h30.118v-30.118z" />
+<glyph unicode="&#xe682;" d="M481.882 193.882c0-124.567-101.316-225.882-225.882-225.882s-225.882 101.316-225.882 225.882c0 105.351 74.572 198.144 177.333 220.642l6.445-29.425c-89.028-19.486-153.66-99.9-153.66-191.217 0-107.942 87.823-195.764 195.764-195.764s195.764 87.823 195.764 195.764c0 91.196-64.542 171.611-153.48 191.187l6.476 29.425c102.641-22.619 177.122-115.38 177.122-220.612zM271.059 480h-30.118v-301.176h30.118v301.176z" />
+<glyph unicode="&#xe683;" d="M90.353 359.529v-151.010c0-82.793 74.33-150.167 165.647-150.167s165.647 67.373 165.647 150.167v151.010h-331.294zM391.529 208.519c0-66.198-60.808-120.049-135.53-120.049s-135.53 53.851-135.53 120.049v120.892h271.059v-120.892zM211.305 389.647h-30.118v90.353h30.118v-90.353zM330.812 389.647h-30.118v90.353h30.118v-90.353zM240.941 58.353h30.117v-90.353h-30.118v90.353zM331.294 239.059h-150.588v30.118h150.588v-30.118zM331.294 178.824h-150.588v30.118h150.588v-30.118z" />
+<glyph unicode="&#xe684;" d="M451.313 210.658l30.058-2.018c-7.921-118.061-106.918-210.522-225.37-210.522-124.567 0-225.882 101.316-225.882 225.882 0 117.609 91.769 216.546 208.956 225.25l2.228-30.027c-101.526-7.53-181.067-93.275-181.067-195.223 0-107.942 87.823-195.764 195.764-195.764 102.671 0 188.446 80.113 195.313 182.423zM512 254.148v-15.059l-15.089-0.512h-225.34v241.453l15.089-0.030c124.266-0.271 225.34-101.617 225.34-225.852zM481.461 268.695c-6.716 95.473-83.606 172.965-179.772 180.555v-180.555h179.772z" />
+<glyph unicode="&#xe685;" d="M481.882 449.099h-331.535c-65.686 0-119.115-53.428-119.115-119.115s53.428-119.085 119.115-119.085h90.594v-212.781h30.118v420.864h60.687v-420.864h30.118v420.864h120.019v30.118zM240.941 240.987h-90.594c-49.092 0-88.998 39.906-88.998 88.968 0 49.092 39.906 88.998 88.998 88.998h90.594v-177.965z" />
+<glyph unicode="&#xe686;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764zM120.471 171.836v-83.365h30.117v83.365c22.227 6.565 38.581 26.925 38.581 51.23s-16.354 44.664-38.581 51.23v85.233h-30.118v-85.233c-22.227-6.566-38.581-26.925-38.581-51.23s16.354-44.695 38.581-51.23zM135.53 246.588c12.981 0 23.522-10.571 23.522-23.522s-10.541-23.522-23.522-23.522-23.522 10.541-23.522 23.522 10.541 23.522 23.522 23.522zM240.941 235.836v-147.365h30.117v147.365c22.227 6.565 38.581 26.925 38.581 51.23s-16.354 44.664-38.581 51.23v21.233h-30.118v-21.233c-22.227-6.565-38.581-26.925-38.581-51.23s16.354-44.695 38.581-51.23zM256 310.588c12.981 0 23.522-10.571 23.522-23.522s-10.541-23.552-23.522-23.552-23.522 10.572-23.522 23.552 10.541 23.522 23.522 23.522zM376.471 75.911c29.575 0 53.639 24.064 53.639 53.639 0 24.335-16.354 44.664-38.581 51.23v178.748h-30.118v-178.748c-22.227-6.565-38.58-26.925-38.58-51.23 0-29.575 24.064-53.639 53.639-53.639zM376.471 153.103c12.981 0 23.522-10.572 23.522-23.522s-10.572-23.522-23.522-23.522-23.522 10.572-23.522 23.522 10.541 23.522 23.522 23.522z" />
+<glyph unicode="&#xe687;" d="M256.512 481.054l-256.512-97.009v-322.048l256-96.015 256 96.015v322.018l-255.488 97.039zM454.295 373.745l-77.884-29.214-197.482 74.963 77.553 29.334 197.813-75.084zM256 299.385l-198.204 74.331 78.577 29.696 197.3-74.902-77.673-29.124zM30.117 351.909l210.823-79.059v-269.011l-210.823 79.059v269.011zM271.059 3.84v269.011l210.824 79.059v-269.011l-210.823-79.059z" />
+<glyph unicode="&#xe688;" d="M444.687 345.706l12.68 27.286-216.425 100.472v-297.502c-15.39 13.372-35.238 21.745-57.163 21.745-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763 87.763 39.394 87.763 87.763c0 1.596-0.392 3.102-0.482 4.638v311.717l173.628-80.595zM183.778 52.3c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645 57.645-25.841 57.645-57.645-25.871-57.645-57.645-57.645z" />
+<glyph unicode="&#xe689;" d="M180.706 472.019v-277.745c-15.42 13.433-35.328 21.865-57.344 21.865-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763c47.285 0 85.684 37.677 87.431 84.54v0 0.18c0.030 1.024 0.301 1.988 0.301 3.072s-0.241 2.018-0.271 3.042v183.537l271.059-53.037v-140.529c-15.45 13.583-35.478 22.106-57.645 22.106-48.399 0-87.763-39.394-87.763-87.763s39.364-87.763 87.763-87.763c47.736 0 86.498 38.34 87.552 85.805l0.211-0.060v353.461l-331.294 64.813zM123.362 70.731c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645c30.75 0 55.718-24.245 57.344-54.573v-6.114c-1.626-30.358-26.594-54.603-57.344-54.603zM210.823 345.645v89.811l271.059-53.067v-89.75l-271.059 53.007zM424.237-1.882c-31.804 0-57.645 25.841-57.645 57.645s25.841 57.645 57.645 57.645 57.645-25.841 57.645-57.645-25.841-57.645-57.645-57.645z" />
+<glyph unicode="&#xe68a;" d="M256 480c-91.347 0-165.647-74.3-165.647-165.647v-180.706c0-91.347 74.3-165.647 165.647-165.647s165.647 74.3 165.647 165.647v180.706c0 91.347-74.3 165.647-165.647 165.647zM391.529 133.647c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.529v180.706c0 74.722 60.808 135.529 135.53 135.529s135.53-60.808 135.53-135.529v-180.706zM256 374.588c-24.907 0-45.177-20.269-45.177-45.176v-60.236c0-24.907 20.269-45.176 45.177-45.176s45.176 20.269 45.176 45.177v60.236c0 24.907-20.269 45.176-45.177 45.176zM271.059 269.177c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v60.236c0 8.313 6.746 15.059 15.059 15.059s15.059-6.746 15.059-15.059v-60.236z" />
+<glyph unicode="&#xe68b;" d="M256 480c-91.347 0-165.647-74.3-165.647-165.647v-180.706c0-91.347 74.3-165.647 165.647-165.647s165.647 74.3 165.647 165.647v180.706c0 91.347-74.3 165.647-165.647 165.647zM391.529 314.353v-15.059h-120.471v149.052c67.584-7.589 120.471-64.421 120.471-133.994zM240.941 448.346v-149.052h-120.471v15.059c0 69.572 52.886 126.404 120.471 133.993zM256-1.882c-74.722 0-135.53 60.808-135.53 135.53v135.529h271.059v-135.529c0-74.722-60.808-135.529-135.53-135.529z" />
+<glyph unicode="&#xe68c;" d="M322.831 191.563v0l-0.301 0.301c-0.392 0.332-0.663 0.723-1.084 1.024l-0.091-0.12-50.296 38.611v171.882c34.334-6.566 60.236-35.057 60.236-69.15l15.029-1.807 15.089 1.807c0 50.598-39.424 92.22-90.353 99.268v46.622h-30.118v-46.622c-50.929-7.047-90.353-48.67-90.353-99.268 0-28.371 12.679-55.356 34.666-74.481l-0.15-0.151 1.204-0.933c0 0 0 0 0 0v0l54.633-41.984v-171.821c-34.334 6.565-60.236 35.057-60.236 69.15h-30.118c0-50.597 39.424-92.22 90.353-99.268v-46.652h30.118v46.652c50.929 7.048 90.353 48.67 90.353 99.268 0 30.298-14.125 58.398-38.581 77.673zM205.463 281.796c-15.721 13.433-24.756 32.436-24.756 52.315 0 34.093 25.901 62.584 60.236 69.15v-148.721l-35.478 27.256zM271.059 44.74v148.661l33.25-25.57c17.077-13.462 26.986-33.009 26.986-53.94 0-34.093-25.901-62.584-60.236-69.15z" />
+<glyph unicode="&#xe68d;" d="M256 118.588c74.722 0 135.529 60.808 135.529 135.53v90.353c0 69.602-52.887 126.404-120.471 133.994v1.536h-30.118v-1.536c-67.584-7.59-120.471-64.392-120.471-133.994v-90.353c0-74.722 60.807-135.53 135.53-135.53zM180.706 417.988v-58.459h30.118v79.752c9.397 4.488 19.456 7.529 30.118 9.065v-88.817h30.117v88.817c10.661-1.536 20.721-4.548 30.118-9.065v-79.752h30.118v58.459c18.582-19.004 30.118-44.906 30.118-73.517v-15.059h-210.823v15.059c0 28.612 11.535 54.543 30.118 73.517zM150.588 299.294h210.823v-45.176c0-58.127-47.284-105.412-105.412-105.412s-105.412 47.284-105.412 105.412v45.177zM451.764 269.177v-97.883c0-62.253-60.808-112.941-135.529-112.941h-45.176v-90.353h-30.118v90.353h-45.177c-74.722 0-135.53 50.688-135.53 112.941v97.882h30.118v-97.882c0-45.688 47.285-82.823 105.412-82.823h120.47c58.127 0 105.412 37.135 105.412 82.823v97.882h30.118z" />
+<glyph unicode="&#xe68e;" d="M481.882 389.647v-60.236h-451.764v60.236h451.764zM30.117 178.824h451.764v60.236h-451.764v-60.236zM30.117 28.236h451.764v60.236h-451.764v-60.236z" />
+<glyph unicode="&#xe68f;" d="M481.882 419.764v-60.236h-331.294v60.236h331.294zM150.588 208.941h331.294v60.236h-331.294v-60.236zM150.588 58.353h331.294v60.236h-331.294v-60.236zM60.236 419.764c-16.625 0-30.117-13.462-30.117-30.118s13.492-30.118 30.117-30.118 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118zM60.236 269.177c-16.625 0-30.117-13.463-30.117-30.118s13.492-30.117 30.117-30.117 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118zM60.236 118.588c-16.625 0-30.117-13.462-30.117-30.118s13.492-30.118 30.117-30.118 30.118 13.462 30.118 30.118-13.493 30.118-30.117 30.118z" />
+<glyph unicode="&#xe690;" d="M316.205 346.338l-147.637 42.707-168.569 0.603v-331.294h161.069l156.491-44.544 164.322 48.339v332.529l-165.677-48.339zM180.706 354.198l120.47-34.846v-269.553l-120.471 34.304v270.095zM30.117 359.529h120.47v-271.571l-120.471 0.512v271.059zM451.764 84.676l-120.471-35.449v270.125l120.471 35.148v-269.824z" />
+<glyph unicode="&#xe691;" d="M451.764 359.529v-2.078l-0.392 1.747-30.57-6.656c-4.187 54.302-49.212 97.34-104.568 97.34-55.447 0-100.563-43.219-104.629-97.642l-30.9 6.716v0.572h-180.706v-331.294h161.069l156.492-44.544 164.322 48.339v327.5h-30.118zM316.236 419.764c41.532 0 75.294-33.792 75.294-75.294 0-54.392-51.772-126.765-75.294-156.822-23.522 30.058-75.294 102.43-75.294 156.822 0 41.502 33.762 75.294 75.294 75.294zM180.706 328.147l32.557-7.077c12.409-68.337 72.463-144.204 87.913-162.816v-138.601l-120.471 34.304v274.191zM30.117 329.412h120.47v-271.571l-120.471 0.512v271.059zM331.294 19.11v139.173c15.481 18.643 75.685 94.72 87.974 163.117l32.497 7.048v-273.89l-120.471-35.449zM357.135 341.971c0 22.558-18.341 40.9-40.9 40.9s-40.9-18.341-40.9-40.9 18.341-40.93 40.9-40.93 40.9 18.341 40.9 40.93zM305.453 341.971c0 5.964 4.849 10.782 10.782 10.782s10.782-4.849 10.782-10.782-4.849-10.812-10.782-10.812-10.782 4.849-10.782 10.812z" />
+<glyph unicode="&#xe692;" d="M30.117 208.941c0-66.44 51.532-120.471 114.838-120.471v-30.118c-79.932 0-144.956 67.554-144.956 150.588s65.024 150.588 144.956 150.588h127.367l-49.573 49.574 21.293 21.293 85.956-85.925-85.925-85.956-21.323 21.323 49.604 49.574h-127.397c-63.308 0-114.838-54.031-114.838-120.471zM367.044 359.529v-30.117c63.308 0 114.839-54.031 114.839-120.471s-51.531-120.471-114.839-120.471h-127.397l49.574 49.574-21.293 21.293-85.925-85.925 85.956-85.956 21.293 21.293-49.604 49.604h127.368c79.963 0 144.987 67.554 144.987 150.588s-65.024 150.588-144.956 150.588z" />
+<glyph unicode="&#xe693;" d="M256 464.941c-91.317 0-165.647-74.3-165.647-165.647 0-131.704 147.968-303.766 154.262-311.055l11.385-13.101 11.385 13.132c6.295 7.259 154.262 179.32 154.262 311.025 0 91.347-74.33 165.647-165.647 165.647zM256 21.76c-34.515 42.887-135.53 177.062-135.53 277.534 0 74.722 60.808 135.529 135.53 135.529s135.529-60.808 135.529-135.529c0-100.382-101.014-234.647-135.53-277.534zM256 385.461c-49.815 0-90.353-40.538-90.353-90.353s40.538-90.353 90.353-90.353 90.353 40.538 90.353 90.353-40.538 90.353-90.353 90.353zM256 234.873c-33.22 0-60.236 27.016-60.236 60.236s27.016 60.236 60.236 60.236 60.236-27.016 60.236-60.236-27.015-60.236-60.236-60.236z" />
+<glyph unicode="&#xe694;" d="M512 359.529v-30.117h-361.412v30.117h361.412zM90.353 344.471c0-24.908-20.269-45.177-45.176-45.177s-45.176 20.269-45.176 45.177 20.269 45.176 45.176 45.176 45.176-20.269 45.176-45.176zM60.236 344.471c0 8.282-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059zM150.588 208.941h361.412v30.118h-361.412v-30.118zM90.353 224c0-24.908-20.269-45.176-45.176-45.176s-45.176 20.269-45.176 45.177 20.269 45.177 45.176 45.177 45.176-20.269 45.176-45.177zM60.236 224c0 8.282-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059zM150.588 88.471h361.412v30.118h-361.412v-30.118zM90.353 103.529c0-24.908-20.269-45.176-45.176-45.176s-45.176 20.269-45.176 45.176 20.269 45.176 45.176 45.176 45.176-20.269 45.176-45.176zM60.236 103.529c0 8.283-6.746 15.059-15.059 15.059s-15.059-6.776-15.059-15.059 6.746-15.059 15.059-15.059 15.059 6.776 15.059 15.059z" />
+<glyph unicode="&#xe695;" d="M256 480c-91.317 0-165.647-78.818-165.647-175.676 0-70.897 29.034-110.532 54.633-145.498 19.185-26.142 35.72-48.731 35.72-80.505v-63.127c0-26.022 20.269-47.195 45.177-47.195h60.236c24.908 0 45.176 21.173 45.176 47.195v64.030c0 31.473 15.571 52.254 35.238 78.577 24.546 32.858 55.115 73.698 55.115 146.523 0 96.858-74.331 175.676-165.647 175.676zM286.118-1.882h-60.236c-8.282 0-15.059 7.65-15.059 17.077v49.182h90.353v-49.182c0-9.427-6.776-17.077-15.059-17.077zM342.408 175.842c-17.679-23.642-35.84-47.978-40.237-81.348h-92.522c-4.578 33.19-22.709 58.036-40.358 82.131-24.004 32.768-48.821 66.65-48.821 127.699 0 80.263 60.808 145.559 135.53 145.559s135.529-65.295 135.529-145.559c0-62.796-24.967-96.196-49.122-128.482z" />
+<glyph unicode="&#xe696;" d="M358.25 419.343l-171.399-391.108h23.974v-30.118h-90.353v30.118h33.461l171.399 391.108h-24.154v30.118h90.353v-30.118h-33.28z" />
+<glyph unicode="&#xe697;" d="M325.271 50.041v-30.118h-138.541v30.118h54.212v223.804h-52.706v30.117h82.823v-253.922h54.212zM240.58 358.174c25.54 0 46.14 20.661 46.14 46.14 0 25.51-20.63 46.2-46.14 46.2-25.57 0-46.201-20.691-46.201-46.2 0-25.48 20.66-46.14 46.201-46.14z" />
+<glyph unicode="&#xe698;" d="M512 239.059c0-66.439-54.031-120.47-120.471-120.47-36.051 0-69.572 16.022-92.582 43.731l-0.060-0.030-0.421 0.542c-0.332 0.421-0.783 0.692-1.144 1.144l0.12 0.091-109.447 134.988c-17.137 19.276-41.743 30.358-67.524 30.358-49.815 0-90.353-40.538-90.353-90.353 0-49.815 40.538-90.353 90.353-90.353 27.558 0 53.278 12.348 70.536 33.882l0.271-0.211 24.606 30.479 23.431-18.914-24.787-30.69-0.301 0.241c-22.98-28.522-57.133-44.906-93.756-44.906-66.439 0-120.471 54.031-120.471 120.471 0 66.44 54.031 120.471 120.471 120.471 33.732 0 65.837-14.366 88.636-39.183l0.241 0.18 1.265-1.566 111.375-137.337c17.257-20.872 42.436-32.918 69.541-32.918 49.815 0 90.353 40.538 90.353 90.353 0 49.815-40.538 90.353-90.353 90.353-25.48 0-49.694-10.902-66.861-29.786l-28.551-35.388-23.431 18.914 28.551 35.388-0.12 0.091c22.889 25.991 55.868 40.9 90.413 40.9 66.44 0 120.47-54.031 120.47-120.47z" />
+<glyph unicode="&#xe699;" d="M0 389.647v-361.412h512v361.412h-512zM481.882 58.353h-451.764v301.176h451.764v-301.176zM77.162 73.080l-30.117 0.663c0.994 43.068 42.105 79.872 99.659 90.865v9.819c-7.469 7.8-12.8 18.372-16.414 27.798-4.879 3.493-9.096 8.854-12.017 15.541-5.572 12.348-4.608 24.726 1.897 32.166-0.121 2.228-0.18 4.428-0.18 6.536l-0.060 5.541c-0.18 16.173-0.482 42.767 27.98 47.707 5.843 10.21 14.547 18.884 35.508 19.607 33.822 1.054 57.706-11.385 65.807-34.666 2.74-7.981 0.18-14.607-1.686-19.426-1.777-4.578-3.464-8.885-2.47-16.987 0.392-3.222 0.332-6.385 0.090-9.396 5.27-7.138 6.355-17.98 2.47-29.364-2.861-8.222-7.5-14.577-13.071-18.312-3.343-8.644-8.132-18.191-14.667-25.45v-11.354c57.495-11.294 97.22-47.315 98.214-90.594l-30.118-0.692c-0.692 30.75-36.442 57.464-85.022 63.518l-13.191 1.656v51.471l6.024 4.517c3.192 2.409 8.162 9.668 12.499 22.919l4.066 10.361 2.228 19.004c0.422 3.192 0.813 6.234 0.572 8.071-1.868 15.661 1.988 25.6 4.276 31.503 0.15 0.422 0.271 0.692 0.362 0.933-6.325 11.927-26.474 12.439-35.268 12.228-8.343-0.332-8.945-1.506-10.571-4.608-2.048-3.976-6.897-13.312-19.185-14.396-2.771-0.241-3.644-0.813-3.644-0.813-1.235-1.928-1.144-11.053-1.084-17.107l0.030-5.873c0-4.246 0.301-8.794 0.874-13.432l2.108-17.257 3.614-0.632 0.090-7.469c4.638-14.035 10.21-21.715 13.583-24.034l6.476-4.488v-50.808l-13.312-1.566c-48.549-5.692-85.654-33.069-86.347-63.699zM451.764 239.059h-150.588v30.118h150.588v-30.118zM421.647 178.824h-120.471v30.118h120.471v-30.118z" />
+<glyph unicode="&#xe69a;" d="M271.059 359.529h169.412l-108.695 120.471h-211.305v-120.471h120.471v-112.128h-33.882v-279.401h97.882v279.401h-33.882v112.128zM150.588 449.882h167.786l54.363-60.236h-222.148v60.236zM274.824-1.882h-37.647v219.166h37.647v-219.166z" />
+<glyph unicode="&#xe69b;" d="M421.647-1.882h-90.353v180.706h-150.588v-180.706h-90.353v271.059h-30.117v-301.176h391.529v301.176h-30.118v-271.059zM210.823-1.882v150.588h90.353v-150.588h-90.353zM505.856 285.048l-17.829-24.305-232.026 170.466-232.026-170.406-17.829 24.275 249.856 183.476 249.856-183.507z" />
+<glyph unicode="&#xe69c;" d="M310.543 33.325c0-27.046-21.986-49.031-49.062-49.031-27.166 0-49.122 21.986-49.122 49.031 0 27.106 21.956 49.092 49.122 49.092 27.046 0 49.062-21.986 49.062-49.092zM351.413 408.531c-15.42 19.426-43.49 42.587-89.841 42.587-123.422 0-127.85-113.182-127.88-114.327l30.118-0.783c0.090 3.463 3.313 84.992 97.762 84.992 34.334 0 54.964-16.956 66.228-31.172 16.716-21.083 21.082-45.418 18.793-55.206-8.764-37.014-30.449-56.531-53.399-77.192-28.16-25.329-57.224-51.501-57.224-107.159h30.118c0 42.225 20.841 61.019 47.255 84.781 24.214 21.805 51.652 46.501 62.555 92.702 4.488 19.095-2.5 53.007-24.486 80.775z" />
+<glyph unicode="&#xe69d;" d="M481.31 236.499c-5.783 135.319-104.478 243.501-225.31 243.501s-219.528-108.183-225.31-243.501c-17.77-6.054-30.69-22.769-30.69-42.617v-120.471c0-24.907 20.179-45.176 44.996-45.176h45.357v30.118h30.117v150.588h-30.118v30.118h-29.455c6.776 117.519 91.557 210.824 195.102 210.824s188.326-93.305 195.102-210.824h-29.455v-30.118h-30.118v-150.588h30.118v-30.118h45.357c24.817 0 44.996 20.269 44.996 45.176v120.471c0 19.848-12.921 36.563-30.69 42.617zM60.236 58.353h-15.239c-8.192 0-14.878 6.776-14.878 15.059v120.471c0 8.283 6.686 15.059 14.878 15.059h15.239v-150.588zM481.882 73.412c0-8.283-6.686-15.059-14.878-15.059h-15.24v150.588h15.24c8.192 0 14.878-6.776 14.878-15.059v-120.471z" />
+<glyph unicode="&#xe69e;" d="M406.588 103.529c-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176-20.269 45.176-45.176 45.176zM406.588 43.294c-8.283 0-15.059 6.776-15.059 15.059s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.059-15.059-15.059zM512 385.13l-88.034 94.87h-335.842l-88.124-92.973v-193.747h28.19l-28.19-35.298v-189.982h512v188.536l-31.503 36.743h31.503v191.85zM101.044 449.882h309.79l55.838-60.236h-422.701l57.073 60.236zM30.117-1.882v120.471h451.764v-120.471h-451.764zM479.051 148.706h-447.94l35.569 44.574h374.182l38.189-44.574zM30.117 223.397v136.132h451.764v-136.132h-451.764zM406.588 329.412c-24.907 0-45.176-20.269-45.176-45.177 0-24.877 20.269-45.147 45.176-45.147s45.176 20.269 45.176 45.147c0 24.908-20.269 45.177-45.176 45.177zM406.588 269.207c-8.283 0-15.059 6.746-15.059 15.029s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.029-15.059-15.029z" />
+<glyph unicode="&#xe69f;" d="M425.683 389.767h-339.305l-86.377-131.734v-199.8h512v197.843l-86.317 133.692zM102.671 359.65h306.598l58.488-90.594h-424.478l59.392 90.594zM30.117 88.35v150.588h451.764v-150.588h-451.764zM406.588 208.82c-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176-20.269 45.176-45.176 45.176zM406.588 148.586c-8.283 0-15.059 6.776-15.059 15.059s6.776 15.059 15.059 15.059 15.059-6.776 15.059-15.059-6.776-15.059-15.059-15.059z" />
+<glyph unicode="&#xe6a0;" d="M236.092 311.010l-1.024-5.964 20.269 2.59c0.12 0 0.632 0.091 0.934 0.12l19.185-2.439-0.933 5.452c32.828 6.084 99.629 21.835 137.788 54.513 14.878 12.709 23.070 29.817 23.070 48.188s-8.192 35.478-23.070 48.219c-28.371 24.335-77.132 24.305-105.502 0-24.516-20.992-40.93-51.983-51.531-79.149-10.601 27.106-27.016 58.007-51.531 78.938-28.34 24.275-77.041 24.245-105.382 0-14.878-12.709-23.070-29.786-23.070-48.098 0-18.312 8.192-35.358 23.070-48.038 38.159-32.587 104.96-48.279 137.728-54.332zM326.385 438.799c8.764 7.5 20.51 11.626 33.159 11.626 12.62 0 24.425-4.126 33.159-11.626 8.101-6.897 12.529-15.902 12.529-25.329 0-9.397-4.428-18.372-12.529-25.299-31.082-26.594-88.214-40.81-119.447-46.923 7.379 26.745 23.582 72.252 53.127 97.551zM117.91 438.588c8.764 7.469 20.51 11.595 33.159 11.595 12.619 0 24.395-4.126 33.13-11.595 29.395-25.088 45.598-70.385 53.007-97.069-31.202 6.053-88.185 20.179-119.296 46.743-8.072 6.867-12.499 15.781-12.499 25.118 0 9.366 4.427 18.312 12.499 25.209zM512 299.294h-512v-120.47h30.117v-210.824h451.764v210.823h30.118v120.471zM210.101 269.177h90.534l32.106-175.978-49.634 20.63-39.183-36.292-33.822 191.639zM30.117 269.177h149.383l10.631-60.236h-160.015v60.236zM451.764-1.882h-391.529v180.706h135.228l28.371-160.918 65.536 60.687 82.884-34.485-24.546 134.716h104.056v-180.706zM481.882 208.941h-139.685l-10.993 60.236h150.679v-60.236z" />
+<glyph unicode="&#xe6a1;" d="M271.059 359.891v89.991h-30.118v-89.991c-107.339-3.163-240.941-38.611-240.941-74.903v-212.059c0-24.908 20.269-45.176 45.176-45.176h53.91l60.115 118.392c17.077-3.132 51.591-8.252 95.564-8.252 44.544 0 81.137 5.24 99.027 8.342l57.464-118.483h55.567c24.907 0 45.176 20.269 45.176 45.176v212.059c0 36.292-133.632 71.77-240.941 74.902zM481.882 72.93c0-8.283-6.776-15.059-15.059-15.059h-36.683l-59.512 122.579-11.625-2.56c-0.452-0.091-45.628-9.909-104.267-9.909-58.459 0-99.84 9.728-100.262 9.849l-11.565 2.801-62.284-122.73h-35.449c-8.282 0-15.059 6.776-15.059 15.059v208.263c15.119 13.162 101.797 45.719 210.823 48.519v-0.332h30.117v0.392c108.996-2.831 195.704-35.388 210.823-48.55v-208.324zM150.588 268.574h30.058v-30.118h-30.058v-30.72h-30.118v30.72h-30.118v30.117h30.118v30.72h30.118v-30.72zM376.471 208.339c24.908 0 45.176 20.269 45.176 45.177s-20.269 45.177-45.176 45.177-45.176-20.239-45.176-45.177 20.269-45.177 45.176-45.177zM376.471 268.574c8.283 0 15.059-6.776 15.059-15.059s-6.776-15.059-15.059-15.059-15.059 6.776-15.059 15.059 6.776 15.059 15.059 15.059z" />
+<glyph unicode="&#xe6a2;" d="M16.264 480l194.56-277.956v-234.044h90.353v234.044l194.56 277.956h-479.473zM271.059 211.531v-213.413h-30.118v213.413l-166.852 238.351h363.821l-166.852-238.351z" />
+<glyph unicode="&#xe6a3;" d="M376.38 480h-195.674v-60.536h30.118v30.419h150.588v-120.47h120.471v-240.941h-120.983v-30.118h151.1v295.695l-135.62 125.952zM391.529 424.825l70.325-65.295h-70.325v65.295zM0 389.647v-421.647h331.294v295.695l-135.62 125.952h-195.674zM210.823 334.471l70.325-65.295h-70.325v65.295zM30.117-1.882v361.412h150.588v-120.471h120.47v-240.941h-271.059z" />
+<glyph unicode="&#xe6a4;" d="M291.147 480h-230.912v-512h391.529v352.135l-160.618 159.865zM301.176 427.535l98.575-98.123h-98.575v98.123zM90.353-1.882v451.764h180.706v-150.588h150.588v-301.176h-331.294z" />
+<glyph unicode="&#xe6a5;" d="M404.962 353.476l-156.492 90.383c-20.781 11.957-49.694 4.247-61.681-16.565l-180.706-313.012c-12.469-21.564-5.029-49.243 16.564-61.741l95.744-54.935 131.222 0.542 171.911 293.617c12.438 21.564 5.029 49.243-16.565 61.711zM232.298 28.205l-105.954-0.421-88.697 50.868c-7.198 4.187-9.668 13.372-5.511 20.601l82.823 143.481 181.519-104.81-64.18-109.719zM395.445 306.914l-83.757-143.059-181.669 104.9 82.823 143.481c2.68 4.638 7.71 7.53 13.071 7.53 2.65 0 5.18-0.663 7.5-1.988l156.492-90.353c7.198-4.186 9.668-13.402 5.541-20.51zM512 28.236v-30.118h-210.823v30.118h210.823z" />
+<glyph unicode="&#xe6a6;" d="M60.236 480v-512h391.529v512h-391.529zM141.403 359.529l-42.406 90.353h314.007l-42.466-90.353h-229.135zM122.308 329.412h118.634v-271.059h-120.531l-30.058-34.786v373.88l31.955-68.036zM134.174 28.236h243.712l25.962-30.118h-295.635l25.962 30.118zM391.71 58.353h-120.651v271.059h118.603l31.985 68.096v-373.911l-29.937 34.756z" />
+<glyph unicode="&#xe6a7;" d="M512-1.882v-30.118h-512v30.118h512zM402.191 213.339l-21.293 21.293-109.809-109.809v355.178h-30.118v-355.207l-109.839 109.869-21.323-21.323 146.191-146.161 146.191 146.161z" />
+<glyph unicode="&#xe6a8;" d="M501.188 317.094l-84.661 102.671h-145.468v60.236h-30.118v-60.236h-210.823v-210.823h210.823v-240.941h30.118v240.941h145.709l84.42 108.153zM271.059 239.059h-210.823v150.588h342.076l60.265-73.065-60.507-77.523h-131.012z" />
+<glyph unicode="&#xe6a9;" d="M271.059 299.294h141.402l58.368 77.192-58.609 73.397h-141.161v30.118h-30.118v-30.118h-180.706v-150.588h180.706v-60.236h-141.161l-58.609-73.397 58.368-77.192h141.402v-120.471h30.118v120.471h180.706v150.588h-180.706v60.235zM90.353 419.764h307.38l34.966-43.791-35.207-46.562h-307.14v90.353zM421.647 118.588h-307.14l-35.208 46.562 34.966 43.791h307.38v-90.353z" />
+<glyph unicode="&#xe6aa;" d="M512 133.647v-15.059h-185.765v30.118h155.166c-3.373 50.959-23.763 97.31-55.476 133.541l-24.275-24.275-21.293 21.293 24.154 24.154c-36.202 31.714-82.522 51.983-133.452 55.387v-89.63h-30.118v89.63c-50.929-3.404-97.25-23.673-133.421-55.387l23.974-23.974-21.293-21.293-24.094 24.094c-31.714-36.231-52.133-82.582-55.477-133.542h155.738v-30.118h-186.368v15.059c0 141.161 114.838 256 256 256s256-114.839 256-256zM316.236 133.647c0-33.22-27.015-60.236-60.236-60.236s-60.236 27.015-60.236 60.236c0 19.396 9.367 36.442 23.612 47.495l-62.705 109.327 26.112 14.969 64.482-112.429c2.861 0.421 5.722 0.873 8.734 0.873 33.22 0 60.236-27.015 60.236-60.236zM286.118 133.647c0 16.595-13.523 30.118-30.118 30.118s-30.118-13.523-30.118-30.118 13.523-30.118 30.118-30.118 30.118 13.523 30.118 30.118z" />
+<glyph unicode="&#xe6ab;" d="M90.353 389.647v-331.294h331.294v331.294h-331.294zM391.529 88.471h-271.059v271.059h271.059v-271.059z" />
+<glyph unicode="&#xe6ac;" d="M269.252 273.062l32.557 40.357-0.12 0.091c25.75 29.244 62.856 46.020 101.738 46.020h57.163l-49.574 49.573 21.293 21.293 85.925-85.925-85.956-85.956-21.293 21.293 49.604 49.604h-57.163c-29.786 0-58.157-12.8-78.156-34.906l-32.527-40.327-23.492 18.884zM176.219 157.861l-0.332 0.241c-20.089-25.088-50.085-39.514-82.311-39.514h-93.576v-30.118h93.576c41.231 0 79.661 18.402 105.502 50.477l0.332-0.271 28.34 35.117-23.401 18.944-28.13-34.876zM410.986 168.162l49.604-49.574h-57.163c-31.684 0-61.169 14.125-81.317 38.581l-128.572 158.57-0.301-0.241c-25.6 27.889-61.681 44.032-99.659 44.032h-93.576v-30.118h93.576c30.058 0 58.669-12.891 78.637-35.238l125.32-154.564-0.151-0.12c25.901-32.406 64.542-51.019 106.014-51.019h57.163l-49.574-49.574 21.293-21.293 85.956 85.956-85.956 85.956-21.293-21.353z" />
+<glyph unicode="&#xe6ad;" d="M90.353 398.923v-349.907l349.907 175.797-349.907 174.11zM120.471 350.253l252.446-125.591-252.446-126.825v252.416z" />
+<glyph unicode="&#xe6ae;" d="M90.353 28.236h120.471v391.529h-120.471v-391.529zM120.471 389.647h60.236v-331.294h-60.236v331.294zM301.176 419.764v-391.529h120.471v391.529h-120.471zM391.529 58.353h-60.236v331.294h60.236v-331.294z" />
+<glyph unicode="&#xe6af;" d="M90.353 406.634v-365.508l219.286 183.657-219.286 181.851zM120.471 342.543l142.125-117.851-142.125-119.025v236.875zM460.228 224.783l-194.56-162.936-19.365 23.13 166.852 139.716-166.762 138.3 19.245 23.19 194.59-161.4z" />
+<glyph unicode="&#xe6b0;" d="M202.361 224.783l219.286-183.628v365.478l-219.286-181.851zM391.529 105.668l-142.125 118.995 142.125 117.88v-236.875zM98.816 224.662l166.852-139.716-19.365-23.13-194.56 162.936 194.62 161.371 19.245-23.191-166.792-138.27z" />
+<glyph unicode="&#xe6b1;" d="M384 344.471c-17.408 0-34.515-3.705-50.929-11.053-26.774 26.292-62.494 41.171-99.659 41.171-59.212 0-110.954-35.84-132.428-90.413-54.302 2.228-100.984-42.797-100.984-97.822 0-53.971 43.911-97.882 97.882-97.882h286.117c70.565 0 128 57.435 128 128s-57.435 128-128 128zM384 118.588h-286.118c-37.376 0-67.764 30.389-67.764 67.764s30.389 67.764 67.764 67.764c3.764 0 7.349-0.572 10.933-1.144l13.101-2.168 3.795 12.709c14.396 48.429 57.676 80.956 107.7 80.956 32.316 0 63.308-14.366 84.962-39.364l7.981-9.216 10.661 5.873c15.149 8.342 30.931 12.589 46.983 12.589 53.971 0 97.882-43.911 97.882-97.882s-43.911-97.882-97.882-97.882z" />
+<glyph unicode="&#xe6b2;" d="M512 276.706c0-70.566-57.404-128-128-128h-83.034v30.118h83.034c53.971 0 97.882 43.911 97.882 97.882s-43.911 97.882-97.882 97.882c-16.022 0-31.834-4.247-46.983-12.559l-10.661-5.873-7.981 9.216c-21.654 24.968-52.645 39.334-84.962 39.334-50.025 0-93.334-32.527-107.701-80.956l-3.795-12.709-13.101 2.168c-3.584 0.572-7.168 1.144-10.933 1.144-37.346 0-67.764-30.388-67.764-67.764s30.419-67.764 67.764-67.764h111.405v-30.118h-111.405c-53.971 0-97.882 43.911-97.882 97.882 0 54.995 46.050 100.442 100.984 97.822 21.474 54.573 73.216 90.413 132.428 90.413 37.165 0 72.885-14.878 99.659-41.171 16.444 7.348 33.521 11.053 50.929 11.053 70.596 0 128-57.435 128-128zM320.632 213.339l21.293 21.293-85.925 85.956-85.956-85.925 21.293-21.293 49.604 49.573v-234.707h30.118v234.707l49.574-49.604z" />
+<glyph unicode="&#xe6b3;" d="M512 276.706c0-70.566-57.404-128-128-128h-83.034v30.118h83.034c53.971 0 97.882 43.911 97.882 97.882s-43.911 97.882-97.882 97.882c-16.022 0-31.834-4.247-46.983-12.559l-10.661-5.873-7.981 9.216c-21.654 24.968-52.645 39.334-84.962 39.334-50.025 0-93.334-32.527-107.701-80.956l-3.795-12.709-13.101 2.168c-3.584 0.572-7.168 1.144-10.933 1.144-37.346 0-67.764-30.388-67.764-67.764s30.419-67.764 67.764-67.764h111.405v-30.118h-111.405c-53.971 0-97.882 43.911-97.882 97.882 0 54.995 45.508 100.442 100.984 97.822 21.474 54.573 73.216 90.413 132.428 90.413 37.165 0 72.885-14.878 99.659-41.171 16.444 7.348 33.521 11.053 50.929 11.053 70.596 0 128-57.435 128-128zM271.059 66.485v232.81h-30.118v-232.81l-49.573 49.574-21.293-21.293 85.925-85.925 85.956 85.956-21.293 21.293-49.604-49.604z" />
+<glyph unicode="&#xe6b4;" d="M481.882 419.764v-451.764h-451.764v451.764h67.584v-30.118h-37.467v-391.529h391.529v391.529h-38.49v30.118h68.608zM391.529 329.412h-271.059v120.47h92.913c6.234 17.529 22.98 30.118 42.617 30.118s36.382-12.589 42.617-30.118h92.913v-120.47zM361.412 419.764h-90.353v15.059c0 8.313-6.747 15.059-15.059 15.059s-15.059-6.747-15.059-15.059v-15.059h-90.353v-60.236h210.823v60.236z" />
+<glyph unicode="&#xe6b5;" d="M512 179.305l-58.971-0.060-61.772 120.049h-239.405l-89.389-120.44-62.464-0.030v-149.896h60.295c0-0.241-0.060-0.452-0.060-0.692 0-33.22 27.015-60.236 60.235-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h150.739c-0.030-0.241-0.091-0.452-0.091-0.692 0-33.22 27.015-60.236 60.236-60.236s60.236 27.015 60.236 60.236c0 0.241-0.060 0.452-0.060 0.692h60.296v150.377zM419.178 179.215l-117.368-0.12v90.082h71.077l46.291-89.962zM166.972 269.177h104.719v-90.112l-171.701-0.151 66.982 90.262zM120.471-1.882c-16.595 0-30.117 13.523-30.117 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM391.529-1.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM481.882 59.046h-38.882c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-168.117c-10.541 17.529-29.546 29.425-51.471 29.425s-40.93-11.897-51.471-29.425h-38.882v89.66l451.764 0.452v-90.112z" />
+<glyph unicode="&#xe6b6;" d="M421.647 419.764v30.118h-90.353v-30.118h-150.588v30.118h-90.353v-30.118h-90.353v-451.764h512v451.764h-90.353zM361.412 419.764h30.118v-60.236h-30.118v60.236zM120.471 419.764h30.117v-60.236h-30.118v60.236zM481.882-1.882h-451.764v268.68h451.764v-268.68zM30.117 296.915v92.732h60.236v-60.236h90.353v60.236h150.588v-60.236h90.353v60.236h60.236v-92.732h-451.764z" />
+<glyph unicode="&#xe6b7;" d="M499.712 445.305c-1.596 0.301-39.786 7.349-89.781 7.349-63.397 0-115.291-11.023-154.353-32.768-45.719 23.040-98.304 34.696-156.492 34.696-50.628 0-86.317-9.096-87.793-9.487l-11.294-2.952 0.030-418.816 18.794 4.849c0.331 0.060 33.732 8.524 80.263 8.524 43.58 0 83.456-7.228 119.266-21.173v-24.938h75.294v25.781c38.581 14.697 82.733 18.402 116.254 18.402 47.044 0 83.908-6.776 84.269-6.837l17.829-3.313v418.364l-12.288 2.319zM30.117 61.154v357.135c13.583 2.53 38.46 6.174 68.969 6.174 53.037 0 100.563-10.842 141.854-31.443v-354.666c-42.255 18.582-89.66 28.461-141.854 28.461-29.184 0-53.398-3.042-68.969-5.662zM481.882 60.22c-16.143 2.108-41.954 4.638-71.981 4.638-55.657 0-101.828-8.975-138.843-25.75v354.575c42.827 23.492 98.515 28.853 138.842 28.853 30.81 0 57.284-2.922 71.981-4.94v-357.376z" />
+<glyph unicode="&#xe6b8;" d="M461.161 54.588c-0.421 0.392-39.514 38.972-39.514 96.678v99.147c0 93.395-74.33 169.351-165.647 169.351s-165.647-75.957-165.647-169.351v-99.147c0-56.049-39.334-96.467-39.695-96.858l-25.389-25.69h462.517l-26.624 25.871zM91.919 58.835c13.372 20.841 28.552 53.127 28.552 92.431v99.147c0 76.77 60.807 139.234 135.529 139.234s135.529-62.464 135.529-139.234v-99.147c0-39.755 14.908-71.77 28.25-92.431h-327.861zM271.059 419.764h-30.118v30.118h30.118v-30.118zM271.059 28.236h30.118c0-24.908-20.269-45.176-45.176-45.176s-45.177 20.269-45.177 45.176h30.118c0-8.313 6.776-15.059 15.059-15.059s15.059 6.747 15.059 15.059z" />
+<glyph unicode="&#xe6b9;" d="M256.482 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.868 256-256 256zM391.198 239.059c2.952 43.972 18.522 85.986 45.086 121.073 25.901-34.123 42.285-75.746 45.297-121.073h-90.383zM481.581 208.941c-3.012-45.327-19.396-86.98-45.327-121.103-26.534 35.117-42.105 77.132-45.026 121.103h90.353zM416.406 383.353c-32.949-41.291-52.194-91.558-55.326-144.293h-90.022v210.101c56.591-3.675 107.64-27.979 145.348-65.807zM240.941 449.099v-210.040h-89.148c-3.072 52.766-22.317 103.003-55.236 144.293 37.466 37.617 88.154 61.892 144.384 65.747zM31.352 239.059c3.012 45.327 19.396 86.98 45.327 121.103 26.534-35.087 42.075-77.101 45.026-121.103h-90.353zM121.675 208.941c-2.921-44.032-18.432-86.016-44.996-121.103-25.931 34.123-42.316 75.776-45.327 121.103h90.323zM96.527 64.647c32.979 41.291 52.194 91.527 55.266 144.293h89.148v-210.041c-56.23 3.855-106.917 28.13-144.414 65.747zM271.059-1.159v210.101h90.052c3.102-52.736 22.348-103.002 55.266-144.324-37.707-37.798-88.726-62.103-145.317-65.777z" />
+<glyph unicode="&#xe6ba;" d="M512-1.882v-30.118h-512v30.118h512zM60.236 178.824h60.236v-150.588h30.118v180.706h-120.471v-180.706h30.117v150.588zM210.823 269.177h60.235v-240.941h30.118v271.059h-120.471v-271.059h30.118v240.941zM361.412 389.647h60.236v-361.412h30.118v391.529h-120.471v-391.529h30.118v361.412z" />
+<glyph unicode="&#xe6bb;" d="M512-1.882v-30.118h-512v30.118h512zM361.412 178.824h60.236v-150.588h30.118v180.706h-120.471v-180.706h30.118v150.588zM210.823 269.177h60.235v-240.941h30.118v271.059h-120.471v-271.059h30.118v240.941zM60.236 389.647h60.236v-361.412h30.118v391.529h-120.471v-391.529h30.117v361.412z" />
+<glyph unicode="&#xe6bc;" d="M439.205 28.236v-30.118h-213.323c-91.316 0-165.647 74.3-165.647 165.647s74.331 165.647 165.647 165.647h87.703l-79.692 79.692 21.293 21.293 116.043-116.044-116.043-116.073-21.293 21.324 79.692 79.692h-87.702c-74.722 0-135.53-60.808-135.53-135.53s60.808-135.529 135.53-135.529h213.324z" />
+<glyph unicode="&#xe6bd;" d="M451.764 254.118c0-91.347-74.3-165.647-165.647-165.647h-87.702l79.692-79.692-21.293-21.293-116.043 116.043 116.074 116.073 21.293-21.293-79.721-79.721h87.702c74.722 0 135.529 60.808 135.529 135.53s-60.808 135.53-135.529 135.53h-213.323v30.118h213.323c91.347 0 165.647-74.3 165.647-165.647z" />
+<glyph unicode="&#xe6be;" d="M451.764 193.882v-165.647h-165.647v30.118h114.537l-310.302 310.302v-114.537h-30.117v165.647h165.647v-30.117h-113.935l309.7-309.7v113.935h30.118z" />
+<glyph unicode="&#xe6bf;" d="M512 419.764h-512v-120.471h30.117v-331.294h451.764v331.294h30.118v120.471zM451.764-1.882h-391.529v301.176h391.529v-301.176zM481.882 329.412h-451.764v60.236h451.764v-60.236zM180.706 148.706h151.070c33.22 0 60.236 27.015 60.236 60.236s-27.015 60.236-60.236 60.236h-151.070c-33.22 0-60.236-27.016-60.236-60.236s27.016-60.236 60.236-60.236zM180.706 239.059h151.070c16.625 0 30.118-13.493 30.118-30.117s-13.493-30.118-30.118-30.118h-151.070c-16.625 0-30.118 13.493-30.118 30.118s13.493 30.118 30.118 30.118z" />
+<glyph unicode="&#xe6c0;" d="M460.529 100.759l-47.284 94.178-94.178-47.224 13.493-26.955 56.35 28.281c-11.234-57.435-58.91-101.346-117.851-107.972v228.111h45.176v30.118h-45.176v31.654c34.334 6.988 60.236 37.376 60.236 73.758 0 41.532-33.792 75.294-75.294 75.294s-75.294-33.762-75.294-75.294c0-36.382 25.901-66.771 60.236-73.758v-31.654h-45.177v-30.118h45.177v-228.111c-58.88 6.626-106.556 50.477-117.82 107.821l56.019-28.13 13.493 26.956-94.178 47.224-47.285-94.178 26.925-13.523 19.606 39.093c20.871-67.614 83.938-116.916 158.298-116.916 74.21 0 137.216 49.092 158.178 116.465l19.426-38.641 26.925 13.523zM210.823 404.706c0 24.907 20.269 45.176 45.177 45.176s45.176-20.269 45.176-45.176-20.269-45.177-45.177-45.177-45.177 20.269-45.177 45.177z" />
+<glyph unicode="&#xe6c1;" d="M512 419.764v-30.118h-512v30.118h512zM90.353 269.177h421.647v30.117h-421.647v-30.117zM0 148.706h512v30.118h-512v-30.118zM210.823 28.236h301.177v30.118h-301.176v-30.118z" />
+<glyph unicode="&#xe6c2;" d="M512 419.764v-30.118h-512v30.118h512zM421.647 299.294h-421.647v-30.117h421.647v30.117zM0 148.706h512v30.118h-512v-30.118zM0 28.236h301.176v30.118h-301.176v-30.118z" />
+<glyph unicode="&#xe6c3;" d="M512 419.764v-30.118h-512v30.118h512zM0 269.177h512v30.117h-512v-30.117zM0 148.706h512v30.118h-512v-30.118zM0 28.236h512v30.118h-512v-30.118z" />
+<glyph unicode="&#xe6c4;" d="M512 419.764v-30.118h-512v30.118h512zM45.176 299.294v-30.117h421.647v30.117h-421.647zM0 148.706h512v30.118h-512v-30.118zM105.412 28.236h301.176v30.118h-301.176v-30.118z" />
+<glyph unicode="&#xe6c5;" d="M254.614 435.065l-248.23-436.947h499.38l-251.151 436.947zM254.765 374.347l198.927-346.112h-395.565l196.638 346.112zM271.059 150.573h-30.118v118.603h30.118v-118.603zM286.118 87.537c0-16.625-13.462-30.118-30.118-30.118s-30.118 13.493-30.118 30.118 13.463 30.118 30.118 30.118 30.118-13.493 30.118-30.118z" />
+<glyph unicode="&#xe6c6;" d="M443.151 275.471c15.18 15.42 23.673 35.569 23.673 57.314 0 45.267-36.834 82.101-82.070 82.101-26.684 0-51.050-13.071-66.469-34.635-15.089 4.668-30.901 7.5-47.224 8.644v30.87h30.118v30.118h-90.353v-30.118h30.118v-30.87c-16.324-1.144-32.136-3.976-47.225-8.644-15.42 21.594-39.756 34.635-66.469 34.635-45.236 0-82.070-36.834-82.070-82.1 0-21.775 8.493-41.924 23.672-57.314-15.029-28.973-23.672-61.801-23.672-96.647 0-51.411 18.552-98.515 49.243-135.138l-38.701-51.591 24.094-18.070 35.9 47.887c37.316-33.401 86.377-53.911 140.288-53.911s102.972 20.51 140.288 53.911l35.9-47.887 24.094 18.070-38.701 51.591c30.69 36.623 49.243 83.727 49.243 135.138 0 34.846-8.644 67.674-23.673 96.647zM384.753 384.768c28.642 0 51.953-23.311 51.953-51.983 0-11.234-3.614-21.805-10.089-30.63-20.42 28.19-47.616 51.019-79.209 66.319 9.698 10.21 22.95 16.294 37.346 16.294zM75.294 332.785c0 28.642 23.311 51.983 51.953 51.983 14.396 0 27.648-6.084 37.346-16.264-31.594-15.3-58.76-38.159-79.21-66.319-6.475 8.825-10.090 19.365-10.090 30.599zM256-1.882c-99.659 0-180.706 81.046-180.706 180.706s81.047 180.706 180.706 180.706 180.706-81.047 180.706-180.706-81.046-180.706-180.706-180.706zM271.059 178.824h120.471v-30.118h-150.588v120.471h30.117v-90.353z" />
+<glyph unicode="&#xe6c7;" d="M421.647 419.764v60.236h-391.529v-512h391.529v60.236h60.236v391.529h-60.236zM60.236-1.882v451.764h60.236v-451.764h-60.236zM391.529-1.882h-240.941v451.764h240.941v-451.764zM451.764 58.353h-30.118v90.353h30.118v-90.353zM451.764 178.824h-30.118v90.353h30.118v-90.353zM421.647 299.294v90.353h30.118v-90.353h-30.118zM180.706 359.529h150.588v-30.117h-150.588v30.117zM180.706 299.294h120.47v-30.117h-120.471v30.117z" />
+<glyph unicode="&#xe6c8;" d="M351.382 480h-260.548v-59.754h-15.54c-24.907 0-45.176-20.269-45.176-45.176v-258.651l75.927-149.263 74.21 149.353v258.56c0 24.908-20.269 45.176-45.177 45.176h-14.125v29.636h210.341v-150.588h150.588v-301.177h-346.353v-30.118h376.471v352.135l-160.618 159.864zM117.7 58.293h-24.215l-33.25 65.356v176.128h30.118v-181.519h30.118v181.519h29.636v-176.219l-32.406-65.265zM150.107 375.070v-45.176h-89.871v45.176c0 8.282 6.776 15.059 15.059 15.059h59.753c8.313 0 15.059-6.777 15.059-15.059zM361.412 427.535l98.575-98.123h-98.575v98.123z" />
+<glyph unicode="&#xe6c9;" d="M0 449.882v-451.764h512v451.764h-512zM481.882 419.764v-90.353h-451.764v90.353h451.764zM30.117 28.236v271.059h451.764v-271.059h-451.764zM210.823 359.529h-30.118v30.118h30.118v-30.118zM150.588 359.529h-30.118v30.118h30.118v-30.118zM90.353 359.529h-30.117v30.118h30.117v-30.118z" />
+<glyph unicode="&#xe6ca;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236 208.941h30.118v30.118h-30.117v-30.118zM120.471 208.941h30.117v30.118h-30.118v-30.118zM180.706 208.941h30.118v30.118h-30.118v-30.118zM301.176 208.941h30.118v30.118h-30.118v-30.118zM361.412 208.941h30.118v30.118h-30.118v-30.118zM421.647 208.941h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM240.941 389.647h30.117v30.118h-30.118v-30.118zM240.941 329.412h30.117v30.117h-30.118v-30.117zM240.941 269.177h30.117v30.117h-30.118v-30.117zM240.941 208.941h30.117v30.118h-30.118v-30.118zM240.941 148.706h30.117v30.118h-30.118v-30.118zM240.941 88.471h30.117v30.118h-30.118v-30.118zM240.941 28.236h30.117v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118z" />
+<glyph unicode="&#xe6cb;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM150.588 480h-30.118v-30.118h30.118v30.118zM210.823 480h-30.118v-30.118h30.118v30.118zM271.059 480h-30.118v-30.118h30.118v30.118zM331.294 480h-30.118v-30.118h30.118v30.118zM391.529 480h-30.118v-30.118h30.118v30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM405.534 241.197c0.632-5.632 1.054-11.355 1.054-17.197s-0.421-11.565-1.054-17.197l-1.115-9.878-43.339-13.011c-0.753-1.957-1.536-3.885-2.409-5.813l21.413-39.815-6.174-7.771c-7.168-9.005-15.39-17.228-24.425-24.425l-7.771-6.204-39.815 21.444c-1.897-0.844-3.855-1.656-5.813-2.409l-12.981-43.309-9.849-1.144c-5.662-0.663-11.414-1.054-17.257-1.054s-11.595 0.392-17.257 1.054l-9.849 1.144-13.011 43.309c-1.958 0.753-3.885 1.536-5.813 2.409l-39.845-21.413-7.77 6.174c-9.005 7.168-17.227 15.39-24.395 24.425l-6.144 7.74 21.413 39.815c-0.874 1.957-1.656 3.885-2.41 5.843l-43.34 13.011-1.115 9.878c-0.632 5.632-1.054 11.354-1.054 17.197s0.421 11.565 1.054 17.197l1.115 9.879 43.34 13.011c0.753 1.958 1.536 3.885 2.41 5.813l-21.413 39.815 6.144 7.77c7.138 8.975 15.36 17.197 24.425 24.426l7.77 6.204 39.816-21.444c1.898 0.874 3.855 1.656 5.813 2.409l13.011 43.309 9.849 1.144c11.324 1.325 23.191 1.325 34.515 0l9.849-1.144 13.011-43.309c1.957-0.723 3.885-1.536 5.813-2.409l39.815 21.444 7.771-6.204c9.005-7.168 17.228-15.39 24.395-24.396l6.174-7.771-21.413-39.845c0.844-1.897 1.656-3.855 2.409-5.782l43.339-13.041 1.115-9.879zM376.471 224c0 1.356-0.030 2.71-0.091 4.066l-39.243 11.776-2.289 7.831c-1.566 5.27-3.704 10.481-6.355 15.42l-3.825 7.138 19.336 35.93c-1.868 1.988-3.795 3.945-5.813 5.813l-35.9-19.335-7.198 3.855c-4.94 2.651-10.149 4.819-15.45 6.385l-7.83 2.319-11.746 39.183c-2.68 0.12-5.452 0.12-8.132 0l-11.746-39.213-7.831-2.319c-5.361-1.596-10.541-3.734-15.42-6.355l-7.138-3.885-35.96 19.365c-2.018-1.897-3.946-3.825-5.813-5.813l19.335-35.93-3.855-7.138c-2.65-4.939-4.819-10.119-6.385-15.48l-2.319-7.8-39.183-11.746c-0.060-1.356-0.090-2.71-0.090-4.066s0.030-2.711 0.090-4.036l39.213-11.776 2.319-7.83c1.566-5.331 3.734-10.541 6.385-15.481l3.825-7.138-19.335-35.93c1.868-1.988 3.795-3.945 5.813-5.813l35.93 19.336 7.138-3.825c4.94-2.651 10.149-4.819 15.451-6.385l7.831-2.319 11.776-39.213c2.68-0.12 5.452-0.12 8.132 0l11.776 39.183 7.8 2.319c5.331 1.566 10.541 3.735 15.481 6.385l7.138 3.825 35.9-19.336c2.018 1.868 3.945 3.825 5.813 5.813l-19.336 35.93 3.825 7.138c2.651 4.94 4.819 10.12 6.385 15.481l2.319 7.8 39.183 11.776c0.060 1.385 0.091 2.74 0.091 4.096z" />
+<glyph unicode="&#xe6cc;" d="M60.236 480h30.118v-30.118h-30.117v30.118zM150.588 480h-30.118v-30.118h30.118v30.118zM210.823 480h-30.118v-30.118h30.118v30.118zM271.059 480h-30.118v-30.118h30.118v30.118zM331.294 480h-30.118v-30.118h30.118v30.118zM391.529 480h-30.118v-30.118h30.118v30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 269.177h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM255.94 177.529l-124.808 124.898-21.323-21.324 146.131-146.191 146.221 146.191-21.293 21.293-124.928-124.868z" />
+<glyph unicode="&#xe6cd;" d="M47.104 419.764c-25.721 0-46.682-20.781-46.682-46.321h-0.421v-329.457c0-25.54 20.932-46.321 46.682-46.321h406.348v49.844h58.97v372.254h-464.896zM46.682 27.813c-9.126 0-16.564 7.259-16.564 16.204v288.618c0.723-0.211 1.627-0.15 2.349-0.361 4.307-1.265 8.825-2.048 13.644-2.139 0.211 0 0.361-0.091 0.572-0.091h376.26v-91.407h-86.106c-25.962 0-47.074-20.269-47.074-45.176v-30.118c0-24.907 21.113-45.176 47.074-45.176h86.106v-90.353h-376.26zM336.805 148.284c-9.366 0-16.956 6.747-16.956 15.059v30.118c0 8.313 7.62 15.059 16.956 15.059h145.077v-60.236h-145.077zM481.882 77.659h-28.853v40.508h28.853v-40.508zM453.029 238.637v121.524h-405.925c-8.222 0-16.564 4.126-16.564 13.282 0.030 8.945 7.469 16.204 16.564 16.204h434.779v-151.010h-28.853z" />
+<glyph unicode="&#xe6ce;" d="M0 449.882v-451.764h512v451.764h-512zM481.882 359.529h-8.072l-70.957 60.236h79.029v-60.236zM263.318 269.177l70.988 60.236h87.913l-70.988-60.236h-87.913zM204.891 359.529l-70.987 60.236h87.883l70.987-60.236h-87.883zM287.744 329.412l-70.988-60.236h-87.913l70.957 60.236h87.944zM339.365 359.529l-70.988 60.236h87.883l70.988-60.236h-87.883zM30.117 419.764h57.224l70.988-60.236h-128.211v60.236zM30.117 329.412h123.151l-70.987-60.236h-52.164v60.236zM481.882 28.236h-451.764v210.823h451.764v-210.823zM481.882 269.177h-84.089l70.957 60.236h13.132v-60.236z" />
+<glyph unicode="&#xe6cf;" d="M391.259 276.706v67.764c0 24.907-20.42 45.176-45.538 45.176h-225.25v15.059c0 8.313 6.776 15.059 15.059 15.059h166.882v30.118h-166.882c-24.907 0-45.177-20.269-45.177-45.176v-15.059h-44.815c-25.118 0-45.538-20.269-45.538-45.176v-60.266c0-24.907 20.42-45.177 45.538-45.177h15.18v-165.617c0-24.907 20.269-45.176 45.176-45.176h239.857c25.118 0 45.538 20.269 45.538 45.176v67.795l120.712-83.817v303.134l-120.741-83.817zM481.882 114.944l-120.742 83.817v-125.349c0-8.313-6.897-15.059-15.42-15.059h-239.827c-8.282 0-15.059 6.747-15.059 15.059v195.735h-45.297c-8.523 0-15.42 6.746-15.42 15.059v60.265c0 8.313 6.897 15.059 15.42 15.059h300.212c8.493 0 15.42-6.747 15.42-15.059v-125.38l120.712 83.847v-187.994z" />
+<glyph unicode="&#xe6d0;" d="M449.957 299.294c-31.082 19.486-66.68 30.118-103.605 30.118-23.432 0-46.050-4.337-67.433-12.168l77.372 77.372c6.114-3.072 12.89-4.969 20.179-4.969 24.907 0 45.176 20.269 45.176 45.176s-20.269 45.176-45.176 45.176-45.176-20.269-45.176-45.176c0-6.626 1.506-12.891 4.096-18.553l-117.76-117.73c-2.44 0.421-4.94 0.753-7.53 0.753-24.907 0-45.177-20.269-45.177-45.177 0-2.56 0.332-5.060 0.753-7.53l-101.978-101.978c-5.662 2.59-11.897 4.096-18.523 4.096-24.907 0-45.176-20.269-45.176-45.176s20.269-45.176 45.176-45.176 45.176 20.269 45.176 45.176c0 7.288-1.897 14.065-4.969 20.149l77.402 77.403c-7.891-21.534-12.197-44.363-12.197-67.433 0-44.243 18.432-82.372 30.118-102.129v-63.518h90.353v90.353h-70.355c-12.589 24.877-19.998 51.591-19.998 75.294 0 26.714 6.626 53.127 18.914 76.649 3.404-0.813 6.867-1.356 10.481-1.356 24.907 0 45.177 20.269 45.177 45.177 0 5.421-1.114 10.541-2.861 15.36 49.513 34.063 115.862 38.189 169.231 11.234v-71.771h90.353v90.353h-62.043zM376.471 449.882c8.313 0 15.059-6.746 15.059-15.059s-6.747-15.059-15.059-15.059-15.059 6.747-15.059 15.059 6.747 15.059 15.059 15.059zM45.176 88.471c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059-6.746-15.059-15.059-15.059zM210.823 28.236h30.118v-30.118h-30.118v30.118zM210.101 239.059c-8.313 0-15.059 6.746-15.059 15.059s6.746 15.059 15.059 15.059 15.059-6.747 15.059-15.059-6.746-15.059-15.059-15.059zM481.882 239.059h-30.118v30.118h30.118v-30.118z" />
+<glyph unicode="&#xe6d1;" d="M79.149 274.779c-2.771 0-6.596-0.091-9.005-0.512l-0.723-0.12-0.362-0.632c-12.288-22.528-36.743-88.365-40.629-98.063-8.433 0.603-19.667 0.572-19.667 11.264 0 7.771 27.227 71.379 30.991 81.829l0.723 1.988h-2.108c-2.53 0-4.999-0.15-7.409-0.332-2.259-0.15-4.397-0.301-6.476-0.301-5.482 0-22.317-0.662-24.335 12.86-0.813 5.602 1.506 11.716 4.186 14.697 0.512-7.349 11.957-7.017 15.059-7.017 6.837 0 21.293 2.861 30.449 4.036 10.632 1.356 22.558 4.458 33.521 4.458 10.993 0 18.974-6.686 18.974-15.842 0-3.192-1.024-6.716-2.981-10.149-5.813 1.325-14.366 1.837-20.209 1.837zM196.488 191.232c-6.234-1.476-14.065-0.783-14.065 12.047 0.060 15.661 17.257 33.822 25.841 33.822 1.536 0 6.053-1.114 5.060-6.114-5.27-26.594-29.516-22.468-27.678-25.509 8.734-14.517 51.531 7.048 47.375 37.587-1.386 10.421-7.68 17.438-19.697 17.438-22.287 0-47.797-33.1-52.315-57.464-9.125-9.276-19.486-8.613-20.269-8.524-0.632 0.873-0.662 2.62 0.392 6.114 1.868 6.144 6.174 15.51 11.113 23.793 4.638 7.74 9.487 15.812 9.487 21.775 0 7.198-4.246 10.843-12.559 10.843-10.873 0-30.87-13.312-30.87-13.312 0.783 6.355 20.992 47.224 20.992 52.736 0 6.445-2.922 10.873-10.933 10.873-2.078 0-8.162-2.078-11.656-3.343-3.343-25.721-16.655-46.954-21.925-58.73-9.849-21.956-20.751-44.935-20.751-54.513 0-9.036 8.704-17.679 18.1-18.070 8.433 31.865 29.034 66.44 43.159 66.44 0 0-16.293-33.942-16.293-49.483 0-7.65 1.626-15.51 13.643-15.51 0.060 0 0.12 0 0.18 0 10.873-1.115 22.648 13.583 27.558 20.54 0.662-16.534 15.089-18.372 21.383-18.372 18.341 0 34.575 11.173 46.893 30.991-6.837-5.662-23.643-14.035-32.166-16.053zM322.59 201.382c0.632 2.469 2.409 7.379 6.686 15.661 5.361 10.421 12.68 24.636 12.68 33.25 0 5.030-2.38 7.259-7.771 7.259-6.897 0-16.776-6.295-25.811-16.414l-2.53-2.801v3.825c0 9.999-2.952 15.059-8.674 15.059-7.349 0-19.365-8.313-30.539-21.203 0 0 2.289 11.505 2.289 15.209 0 7.831-6.867 8.975-10.933 8.975-2.168 0-4.428-0.271-6.776-0.783-0.753-8.764-9.036-27.98-16.354-45.026-4.728-11.053-9.607-22.407-9.607-24.907 0-8.012 5.452-13.192 13.824-13.192 0.422 0 0.844 0 1.295 0.030 6.174 20.751 22.709 51.2 34.425 51.2h2.018l-0.692-1.958c-1.656-5.030-4.276-9.969-6.837-14.758-4.307-8.072-8.313-15.692-8.313-23.823 0-6.626 6.174-10.21 11.987-10.21 1.476 0 2.68 0.151 3.735 0.452 4.247 19.245 26.413 51.591 35.599 51.591h2.711l-1.506-2.319c-2.711-4.277-13.673-24.606-13.673-39.032 0-8.975 4.397-13.312 13.372-13.312 12.469 0 21.384 11.505 24.877 24.004-4.066-2.801-7.62-3.373-11.414-3.373-3.042-0.030-5.572 0.603-4.066 6.596zM377.495 191.744c-6.656-5.512-15.721-0.542-15.872 4.517-0.12 5.541 4.759 15.39 10.812 27.196 4.759 9.367 10.933 15.751 10.361 20.48-0.783 6.686-9.969 11.927-15.692 11.927-0.512 0-0.994-0.030-1.506-0.090-0.271 0-0.482-0.030-0.692-0.030-3.132-8.072-7.168-16.805-11.084-25.299-6.988-15.149-13.613-29.485-13.613-36.984 0-9.397 6.355-19.577 16.625-19.577 10.722 0.542 16.324 5.211 20.661 17.86zM380.596 266.135c2.771 0 6.084 0.301 9.728 0.844 4.728 5.752 7.108 10.601 7.108 14.366 0 3.885-6.084 6.024-23.612 6.174-5.541-5.602-5.24-9.638-5.24-14.125 0.030-4.849 3.976-7.259 12.017-7.259zM493.598 263.183l-0.904-0.030-0.12-0.844c-1.897-14.456-31.594-63.367-37.105-49.483-1.235 3.132 2.289 11.505 5.271 18.462 3.404 7.951 7.228 16.956 6.837 22.016-0.091 1.144-0.482 2.108-1.054 2.952-0.332 0.723-0.964 1.536-2.108 2.259-0.933 0.603-2.168 1.054-3.704 1.445-3.524 1.024-7.83 1.205-11.324 1.084-3.976 0.060-8.342-0.091-12.8-0.362l0.271 0.813c4.247 13.854 15.541 26.774 18.733 28.732 7.861 4.849 18.372 6.024 20.721-4.699 1.988 4.517 2.56 5.813 1.988 9.216-1.687 10.391-9.397 16.022-21.534 16.685-22.046 1.144-37.798-31.111-45.357-49.573l-0.18-0.422-0.361-0.271c-2.139-1.506-6.114-2.5-8.493-3.132-0.512-0.12-0.904-0.241-1.175-0.332-4.608-1.656-5.572-6.144-5.662-8.162-0.12-3.343 3.885-5.813 5.662-8.855 0 0-7.771-19.306-13.402-31.021-8.825-18.281-22.86-49.243-23.1-56.139-0.332-8.403 11.926-16.173 18.613-17.046 2.048 14.035 41.652 103.484 41.652 103.484 1.416 2.168 3.825 5.18 7.62 7.469 3.554 1.446 6.264 1.928 8.342 1.868 0.512-0.12 0.904-0.271 1.265-0.482 1.084-0.602 1.777-1.536 2.168-2.47-1.356-4.819-3.132-9.909-4.909-14.908-3.855-10.903-8.915-27.708-8.252-35.569 0.421-5.029 0.873-7.409 3.554-10.18 8.041-8.252 28.19 5.903 34.183 13.974l0.994-0.421c-7.168-20.42-18.191-34.244-29.967-34.605-15.692-0.542-22.227 9.608-22.227 9.608s-2.651-9.758 7.921-20.57c4.728-4.819 11.746-6.807 18.914-6.264 0.482 0.030 0.964 0.091 1.445 0.12 28.913 3.132 41.502 35.93 51.652 66.771 1.416 4.337 6.295 15.812 7.74 19.938 0.813 2.228 1.837 4.638 2.801 6.957l0.12 0.271c2.289 5.572 3.795 9.337 3.675 11.234-0.632 7.138-9.728 10.692-18.402 10.481z" />
+<glyph unicode="&#xe6d2;" d="M283.136 440.726c-29.997 0-63.156-5.090-99.539-16.444-288.738-90.233-160.106-289.672-122.278-309.369 64.18-33.28-34.666-107.64-34.666-107.64s84.841 24.817 192.874 35.9c129.868 13.252 275.727 32.166 288.889 104.418 20.601 113.272-46.954 293.135-225.28 293.135zM478.78 152.983c-9.849-54.061-180.375-71.469-262.325-79.812-40.749-4.187-78.095-10.24-109.147-16.204 4.246 10.572 6.505 21.654 5.572 32.918-1.054 12.589-7.349 36.020-37.466 51.682-11.204 6.686-51.441 58.73-44.544 116.796 8.855 74.361 92.823 115.652 161.702 137.186 32.045 9.999 62.524 15.059 90.564 15.059 59.362 0 107.851-22.046 144.173-65.566 49.002-58.73 61.169-138.782 51.471-192.060zM120.471 284.236c0 16.595 13.492 30.118 30.117 30.118s30.118-13.523 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.523-30.118 30.118zM271.059 299.294c0 16.655 13.462 30.118 30.118 30.118 16.625 0 30.118-13.463 30.118-30.118 0-16.595-13.493-30.117-30.118-30.117-16.655 0-30.118 13.523-30.118 30.117zM400.565 224c-166.912-184.982-289.13-28.612-289.13-28.612 96.376-86.257 289.13 28.612 289.13 28.612z" />
+<glyph unicode="&#xe6d3;" d="M183.597 424.283c-288.708-90.233-160.106-289.672-122.248-309.369 64.18-33.28-34.696-107.64-34.696-107.64s84.841 24.817 192.874 35.9c129.867 13.252 275.757 32.166 288.889 104.418 24.064 132.307-72.192 355.599-324.819 276.691zM301.176 329.412c16.625 0 30.118-13.463 30.118-30.118 0-16.595-13.493-30.117-30.118-30.117-16.655 0-30.118 13.523-30.118 30.117 0 16.655 13.462 30.118 30.118 30.118zM150.588 314.353c16.625 0 30.118-13.523 30.118-30.118s-13.493-30.118-30.118-30.118-30.118 13.523-30.118 30.118 13.493 30.118 30.118 30.118zM111.436 195.388c96.377-86.257 289.13 28.612 289.13 28.612-166.912-184.982-289.13-28.612-289.13-28.612z" />
+<glyph unicode="&#xe6d4;" d="M403.094 389.647c-28.22 55.085-84.48 90.353-147.095 90.353s-118.844-35.238-147.095-90.353h-108.906v-391.529h512v391.529h-108.906zM256 449.882c45.839 0 87.552-23.1 112.399-60.236h-224.798c24.877 37.105 66.56 60.236 112.399 60.236zM481.882 28.236h-451.764v331.294h451.764v-331.294zM240.941 178.824h-60.236v30.118h60.236v60.236h30.117v-60.236h60.236v-30.118h-60.236v-60.236h-30.118v60.236z" />
+<glyph unicode="&#xe6d5;" d="M512 121.058c0 31.503-25.66 57.163-57.133 57.163h-132.397l37.948 136.042 0.572 106.014c-0.060 32.377-27.558 59.724-60.115 59.724h-90.082c-32.618 0-60.145-27.347-60.145-59.724v-101.225l38.49-140.83h-132.006c-31.473 0-57.133-25.66-57.133-57.163v-122.94h30.117v-30.118h451.764v30.118h30.118v122.94zM481.882 28.236h-451.764v92.822c0 14.908 12.108 27.046 27.016 27.046h171.58l-47.947 172.996v99.177c0 15.781 14.035 29.606 30.028 29.606h90.082c15.932 0 29.937-13.824 29.937-29.606v-99.9l-48.007-172.273h172.062c14.908 0 27.015-12.137 27.015-27.046v-92.822z" />
+<glyph unicode="&#xe6d6;" d="M161.25 303.692l-79.722-79.692 79.692-79.692-21.293-21.293-100.984 100.985 101.014 101.014 21.293-21.323zM372.074 325.014l-21.293-21.293 79.692-79.721-79.692-79.692 21.293-21.293 100.984 100.985-100.985 101.014zM240.941-32h30.117v512h-30.118v-512z" />
+<glyph unicode="&#xe6d7;" d="M498.779 364.228l-42.255 42.285c-16.956 17.017-46.803 17.077-63.88 0l-379.121-379.241 163.66 0.091 65.747 65.295 24.817-23.341 231.032 231.063c8.524 8.493 13.221 19.847 13.221 31.924s-4.699 23.402-13.221 31.925zM204.077 175.33l24.817 24.817 63.518-63.518-24.787-24.847-63.548 63.548zM164.774 57.479l-78.547-0.030 96.557 96.588 39.484-39.484-57.494-57.073zM477.485 321.642l-163.75-163.75-63.548 63.548 163.75 163.78c2.831 2.861 6.596 4.427 10.632 4.427s7.8-1.566 10.661-4.397l42.255-42.285c5.873-5.903 5.873-15.42 0-21.324z" />
+<glyph unicode="&#xe6d8;" d="M0.783 449.882h90.353v-30.118h-60.236v-391.529h60.236v-30.118h-90.353v451.764zM422.43 449.882v-30.118h60.236v-391.529h-60.236v-30.118h90.353v451.764h-90.353zM268.348 240.053c-33.581 13.041-48.399 24.214-48.399 46.983 0 16.625 12.649 36.473 45.869 36.473 22.016 0 38.279-7.198 46.231-11.565l8.674 25.66c-10.812 6.144-28.913 11.926-53.82 11.926-47.315 0-78.728-28.19-78.728-66.108 0-34.334 24.546-54.905 64.301-69 32.858-12.62 45.869-25.63 45.869-48.369 0-24.546-18.793-41.563-50.929-41.563-21.684 0-42.255 7.228-56.35 15.902l-7.951-26.383c13.011-8.644 38.641-15.541 62.102-15.541 57.435 0 85.263 32.497 85.263 70.084 0.030 35.78-20.962 55.627-62.132 71.5z" />
+<glyph unicode="&#xe6d9;" d="M457.999 224l-101.014-101.014-21.293 21.293 79.721 79.721-79.692 79.692 21.293 21.293 100.985-100.984zM210.823-32h30.118v512h-30.118v-512z" />
+<glyph unicode="&#xe6da;" d="M176.309 303.692l-79.722-79.692 79.692-79.692-21.293-21.293-100.984 100.985 101.014 101.014 21.293-21.323zM271.059 480v-512h30.118v512h-30.118z" />
+<glyph unicode="&#xe6db;" d="M0 471.175v-503.175h503.175l-503.175 503.175zM30.117 398.471l89.058-89.058-19.727-19.727 21.293-21.293 19.727 19.727 21.353-21.353-19.727-19.757 21.293-21.293 19.727 19.727 21.383-21.353-19.727-19.727 21.293-21.293 19.727 19.727 21.383-21.384-19.727-19.727 21.293-21.293 19.727 19.727 21.353-21.353-19.727-19.727 21.293-21.293 19.727 19.727 21.384-21.384-19.727-19.727 21.293-21.293 19.727 19.727 76.68-76.68h-400.354v400.354zM60.236 28.236h232.116l-232.117 232.116v-232.116zM90.353 187.648l129.295-129.295h-129.295v129.295z" />
+<glyph unicode="&#xe6dc;" d="M60.236 480v-509.048l61.078 74.722 45.267-56.621 45.207 56.471 45.146-56.471 45.176 56.471 45.176-56.471 45.147 56.471 59.332-74.089v508.567h-391.529zM421.647 57.269l-29.214 36.472-45.147-56.471-45.176 56.471-45.176-56.471-45.147 56.471-45.207-56.471-45.026 56.32-31.202-38.189v394.481h331.294v-392.613zM331.204 359.529h-180.706v30.118h180.706v-30.118zM270.969 239.059h-120.471v30.118h120.471v-30.118zM360.749 299.294h-210.823v30.118h210.823v-30.118zM150.588 178.824h210.823v-30.118h-210.823v30.118z" />
+<glyph unicode="&#xe6dd;" d="M240.941 133.647h30.117v-165.647h-30.118v165.647zM421.647 214.964v-66.259h-331.294v66.259l32.948 14.667 33.31 190.133-12.921 23.462-20.209 36.773h265.036l-20.239-36.773-12.89-23.462 33.31-190.103 32.949-14.697zM391.529 195.418l-29.696 13.252-2.771 15.781-35.178 200.553 5.12 9.307 8.584 15.571h-163.178l13.703-24.908-1.807-10.421-36.141-205.884-29.696-13.252v-16.595h271.059v16.595z" />
+<glyph unicode="&#xe6de;" d="M162.756 152.049l21.293-21.293-158.358-158.328-21.293 21.293 158.358 158.328zM512 292.608l-66.018-19.185-110.893-157.997 12.921-33.671-46.833-46.833-234.255 234.255 46.863 46.863 33.672-12.921 157.967 110.893 7.469 25.72 11.685 40.267 187.422-187.392zM454.716 307.305l-115.411 115.38-4.94-17.076-2.952-10.18-179.803-126.193-30.388 11.655-11.716-11.716 191.668-191.668 11.716 11.746-5.873 15.42-5.752 14.969 9.246 13.132 116.947 166.671 10.18 2.952 17.077 4.909z" />
+<glyph unicode="&#xe6df;" d="M285.877 480h-59.754c-24.907 0-45.177-20.269-45.177-45.176v-320.964l75.927-149.263 74.21 149.353v320.873c-0.030 24.908-20.3 45.176-45.207 45.176zM226.124 449.882h59.754c8.283 0 15.059-6.776 15.059-15.059v-30.69h-89.871v30.69c0 8.283 6.746 15.059 15.059 15.059zM243.291 57.721l-28.13 55.266h81.769l-27.437-55.266h-26.202zM211.065 143.074v169.773h89.871v-169.773h-89.871zM211.065 342.964v31.051h89.871v-31.051h-89.871z" />
+<glyph unicode="&#xe6e0;" d="M256 464.941c-132.849 0-240.941-108.092-240.941-240.941 0-128.933 100.954-234.526 229.828-240.399l38.791-1.777-82.010 82.010c-8.524 8.524-13.221 19.877-13.221 31.955s4.698 23.401 13.221 31.955c17.047 17.046 46.833 17.046 63.88 0l112.007-112.007 10.24 6.716c68.367 44.755 109.147 120.109 109.147 201.548 0 132.849-108.092 240.941-240.941 240.941zM381.289 54.588l-94.419 94.419c-28.401 28.431-78.065 28.431-106.466 0-14.215-14.216-22.046-33.13-22.046-53.248s7.831-39.033 22.046-53.248l22.317-22.317c-91.136 23.582-157.546 106.014-157.546 203.806 0 116.254 94.57 210.823 210.823 210.823s210.823-94.57 210.823-210.823c0-67.162-31.744-129.656-85.534-169.412zM346.353 284.236c-33.22 0-60.236-27.015-60.236-60.236s27.015-60.236 60.236-60.236 60.236 27.015 60.236 60.236-27.015 60.236-60.236 60.236zM346.353 193.882c-16.595 0-30.118 13.523-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.523 30.118-30.118-13.523-30.118-30.118-30.118zM256 299.294c-24.938 0-45.177 20.209-45.177 45.177s20.239 45.177 45.177 45.177c24.967 0 45.176-20.209 45.176-45.177s-20.209-45.177-45.177-45.177zM173.177 302.577c0-16.625-13.493-30.118-30.118-30.118s-30.118 13.493-30.118 30.118 13.493 30.118 30.118 30.118 30.118-13.463 30.118-30.118z" />
+<glyph unicode="&#xe6e1;" d="M60.236 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.985-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM60.236 208.941c-16.595 0-30.117 13.493-30.117 30.118s13.523 30.118 30.117 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.117-30.118zM256 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM256 208.941c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118zM451.764 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM451.764 208.941c-16.595 0-30.118 13.493-30.118 30.118s13.523 30.118 30.118 30.118 30.118-13.493 30.118-30.118-13.523-30.118-30.118-30.118z" />
+<glyph unicode="&#xe6e2;" d="M120.471 239.059c0-33.25-26.986-60.236-60.236-60.236s-60.236 26.986-60.236 60.236 26.985 60.236 60.236 60.236 60.236-26.986 60.236-60.236zM256 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236zM451.764 299.294c-33.25 0-60.236-26.986-60.236-60.235s26.986-60.236 60.236-60.236 60.236 26.986 60.236 60.236-26.986 60.236-60.236 60.236z" />
+<glyph unicode="&#xe6e3;" d="M349.786 268.544c20.721 22.709 33.732 52.615 33.732 85.745 0 70.325-57.193 127.518-127.518 127.518s-127.518-57.193-127.518-127.518c0-33.13 13.011-63.036 33.732-85.745l34.244-240.308h44.484v-59.754h30.118v59.754h44.484l34.244 240.308zM180.706 415.337v-55.808h30.118v80.535c9.306 4.94 19.365 8.433 30.118 10.119v-120.772h30.117v120.772c10.752-1.686 20.812-5.18 30.118-10.12v-80.534h30.118v55.808c13.613-16.775 22.106-37.828 22.106-61.018 0-53.73-43.7-97.43-97.4-97.43s-97.4 43.671-97.4 97.4c0 23.221 8.493 44.273 22.107 61.048zM222.6 58.353l-26.203 183.838c17.86-9.517 37.948-15.451 59.603-15.451s41.743 5.933 59.603 15.481l-26.202-183.868h-66.801z" />
+<glyph unicode="&#xe6e4;" d="M331.294 480v-304.851c0-40.026-33.792-72.553-75.294-72.553s-75.294 32.527-75.294 72.553v304.851h-150.588v-314.188c0-128.482 116.374-197.813 225.882-197.813s225.882 69.331 225.882 197.813v314.188h-150.588zM451.764 449.882v-90.353h-90.353v90.353h90.353zM150.588 449.882v-90.353h-90.353v90.353h90.353zM256-1.882c-78.697 0-195.764 44.664-195.764 167.695v163.599h90.353v-154.262c0-56.621 47.285-102.671 105.412-102.671s105.412 46.050 105.412 102.671v154.262h90.353v-163.599c0-123.031-117.067-167.695-195.764-167.695z" />
+<glyph unicode="&#xe6e5;" d="M512 299.294v-30.117h-512v30.117h512zM0 178.824h512v30.118h-512v-30.118z" />
+<glyph unicode="&#xe6e6;" d="M0 239.119h15.059v-30.117h-15.059v30.118zM71.77 208.971h28.34v30.118h-28.34v-30.118zM156.792 208.971h28.34v30.118h-28.34v-30.118zM326.897 208.941h28.341v30.118h-28.341v-30.118zM241.845 208.971h28.311v30.088h-28.31v-30.088zM411.919 208.941h28.341v30.118h-28.341v-30.118zM496.941 239.059v-30.117h15.059v30.118h-15.059z" />
+<glyph unicode="&#xe6e7;" d="M0 239.059h120.471v-30.117h-120.471v30.118zM195.764 208.941h120.471v30.118h-120.471v-30.118zM391.529 239.059v-30.117h120.471v30.118h-120.471z" />
+<glyph unicode="&#xe6e8;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764z" />
+<glyph unicode="&#xe6e9;" d="M0 480v-512h512v512h-512zM481.882-1.882h-451.764v451.764h451.764v-451.764zM90.353 239.059h30.117v-30.117h-30.118v30.118zM90.353 359.529h30.117v-30.117h-30.118v30.117zM90.353 178.824h30.117v-30.118h-30.118v30.118zM90.353 299.294h30.117v-30.117h-30.118v30.117zM90.353 419.764h30.117v-30.118h-30.118v30.118zM90.353 58.353h30.117v-30.118h-30.118v30.118zM90.353 118.588h30.117v-30.118h-30.118v30.118zM391.529 419.764h30.118v-30.118h-30.118v30.118zM391.529 299.294h30.118v-30.117h-30.118v30.117zM391.529 359.529h30.118v-30.117h-30.118v30.117zM391.529 239.059h30.118v-30.117h-30.118v30.118zM391.529 178.824h30.118v-30.118h-30.118v30.118zM391.529 118.588h30.118v-30.118h-30.118v30.118zM391.529 58.353h30.118v-30.118h-30.118v30.118z" />
+<glyph unicode="&#xe6ea;" d="M60.236-1.882h30.118v-30.118h-30.117v30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM421.647 389.647h30.118v30.118h-30.118v-30.118zM421.647 329.412h30.118v30.117h-30.118v-30.117zM421.647 88.471h30.118v30.118h-30.118v-30.118zM421.647 269.177h30.118v30.117h-30.118v-30.117zM421.647 208.941h30.118v30.118h-30.118v-30.118zM421.647 28.236h30.118v30.118h-30.118v-30.118zM421.647 148.706h30.118v30.118h-30.118v-30.118zM421.647 480v-30.118h30.118v30.118h-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM60.236 449.882h30.118v30.118h-30.117v-30.118zM60.236 88.471h30.118v30.118h-30.117v-30.118zM60.236 28.236h30.118v30.118h-30.117v-30.118zM60.236 148.706h30.118v30.118h-30.117v-30.118zM60.236 389.647h30.118v30.118h-30.117v-30.118zM60.236 329.412h30.118v30.117h-30.117v-30.117zM60.236 269.177h30.118v30.117h-30.117v-30.117zM60.236 208.941h30.118v30.118h-30.117v-30.118z" />
+<glyph unicode="&#xe6eb;" d="M210.823 389.647v30.118h-210.823v-421.647h512v391.529h-301.176zM331.294 359.529v-30.117h-120.471v30.117h120.471zM481.882 28.236h-451.764v361.412h150.588v-90.353h301.176v-271.059zM361.412 329.412v30.117h120.471v-30.117h-120.471z" />
+<glyph unicode="&#xe6ec;" d="M361.412 419.764h-361.412v-421.647h512v421.647h-150.588zM481.882 389.647v-60.236h-120.471v60.236h120.471zM331.294 389.647v-60.236h-150.588v60.236h150.588zM30.117 389.647h120.47v-60.236h-120.471v60.236zM481.882 28.236h-451.764v271.059h451.764v-271.059z" />
+<glyph unicode="&#xe6ed;" d="M180.706 449.882v-30.118h-180.706v-120.471h30.117v-120.47h150.588v-181.248h331.294v452.307h-331.294zM60.236 299.294h120.471v-30.117h-120.471v30.117zM60.236 208.941v30.118h120.471v-30.118h-120.471zM481.882 27.693h-271.059v301.719h-180.706v60.236h180.706v30.118h271.059v-392.072z" />
+<glyph unicode="&#xe6ee;" d="M210.823 419.764v30.118h-210.823v-120.38h30.117v90.262h150.588v-90.353h331.294v90.353h-301.176zM210.823 389.647h120.47v-30.118h-120.471v30.118zM361.412 359.529v30.118h120.471v-30.118h-120.471z" />
+<glyph unicode="&#xe6ef;" d="M0 449.882v-421.647h512v421.647h-512zM481.882 58.353h-451.764v361.412h451.764v-361.412zM139.927 168.162l-70.867 70.897 70.897 70.897 21.293-21.293-49.604-49.604 49.574-49.574-21.293-21.324zM350.75 189.485l49.604 49.573-49.574 49.573 21.293 21.293 70.867-70.867-70.897-70.897-21.293 21.324z" />
+<glyph unicode="&#xe6f0;" d="M60.236 58.353h391.529v331.294h-391.529v-331.294zM90.353 359.529h331.294v-271.059h-331.294v271.059zM481.882 343.537h30.118v-239.074h-30.118v239.074zM0 343.537h30.117v-239.074h-30.117v239.074z" />
+<glyph unicode="&#xe6f1;" d="M512 480v-512h-150.588v512h150.588zM271.059-32h30.118v30.118h-30.118v-30.118zM217.54-32h26.774v30.118h-26.774v-30.118zM56.892-32h26.774v30.118h-26.775v-30.118zM110.442-32h26.775v30.118h-26.775v-30.118zM163.99-32h26.774v30.118h-26.774v-30.118zM0-32h30.117v30.118h-30.117v-30.118zM0 208.941h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 269.177h30.117v30.117h-30.117v-30.117zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 449.882h30.117v30.118h-30.117v-30.118zM244.284 480h-26.774v-30.118h26.774v30.118zM190.735 480h-26.774v-30.118h26.774v30.118zM83.636 480h-26.745v-30.118h26.775v30.118zM137.186 480h-26.745v-30.118h26.775v30.118zM271.059 449.882h30.118v30.118h-30.118v-30.118zM271.059 28.236h30.118v30.118h-30.118v-30.118zM271.059 88.471h30.118v30.118h-30.118v-30.118zM271.059 208.941h30.118v30.118h-30.118v-30.118zM271.059 148.706h30.118v30.118h-30.118v-30.118zM271.059 329.412h30.118v30.117h-30.118v-30.117zM271.059 269.177h30.118v30.117h-30.118v-30.117zM271.059 389.647h30.118v30.118h-30.118v-30.118z" />
+<glyph unicode="&#xe6f2;" d="M0-1.882h30.117v-30.118h-30.117v30.118zM421.647-32h30.118v30.118h-30.118v-30.118zM361.412-32h30.118v30.118h-30.118v-30.118zM301.176-32h30.118v30.118h-30.118v-30.118zM240.941-32h30.117v30.118h-30.118v-30.118zM180.706-32h30.118v30.118h-30.118v-30.118zM60.236-32h30.118v30.118h-30.117v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM60.236 449.882h30.118v30.118h-30.117v-30.118zM361.412 449.882h30.118v30.118h-30.118v-30.118zM301.176 449.882h30.118v30.118h-30.118v-30.118zM180.706 449.882h30.118v30.118h-30.118v-30.118zM421.647 449.882h30.118v30.118h-30.118v-30.118zM240.941 449.882h30.117v30.118h-30.118v-30.118zM0 449.882h30.117v30.118h-30.117v-30.118zM0 88.471h30.117v30.118h-30.117v-30.118zM0 28.236h30.117v30.118h-30.117v-30.118zM0 148.706h30.117v30.118h-30.117v-30.118zM0 329.412h30.117v30.117h-30.117v-30.117zM0 208.941h30.117v30.118h-30.117v-30.118zM0 389.647h30.117v30.118h-30.117v-30.118zM0 269.177h30.117v30.117h-30.117v-30.117z" />
+<glyph unicode="&#xe6f3;" d="M0 480h150.588v-512h-150.588v512zM210.823-32h30.118v30.118h-30.118v-30.118zM428.333-32h26.774v30.118h-26.774v-30.118zM374.784-32h26.774v30.118h-26.774v-30.118zM267.716-32h26.774v30.118h-26.774v-30.118zM321.265-32h26.774v30.118h-26.774v-30.118zM481.882-32h30.118v30.118h-30.118v-30.118zM481.882 389.647h30.118v30.118h-30.118v-30.118zM481.882 28.236h30.118v30.118h-30.118v-30.118zM481.882 269.177h30.118v30.117h-30.118v-30.117zM481.882 329.412h30.118v30.117h-30.118v-30.117zM481.882 208.941h30.118v30.118h-30.118v-30.118zM481.882 148.706h30.118v30.118h-30.118v-30.118zM481.882 88.471h30.118v30.118h-30.118v-30.118zM481.882 480v-30.118h30.118v30.118h-30.118zM428.363 449.882h26.774v30.118h-26.774v-30.118zM374.814 449.882h26.774v30.118h-26.774v-30.118zM321.265 449.882h26.774v30.118h-26.774v-30.118zM267.716 449.882h26.774v30.118h-26.774v-30.118zM210.823 449.882h30.118v30.118h-30.118v-30.118zM210.823 28.236h30.118v30.118h-30.118v-30.118zM210.823 88.471h30.118v30.118h-30.118v-30.118zM210.823 269.177h30.118v30.117h-30.118v-30.117zM210.823 148.706h30.118v30.118h-30.118v-30.118zM210.823 329.412h30.118v30.117h-30.118v-30.117zM210.823 389.647h30.118v30.118h-30.118v-30.118zM210.823 208.941h30.118v30.118h-30.118v-30.118z" />
+<glyph unicode="&#xe6f4;" d="M0.632 449.521v-451.764h512v451.764h-512zM245.067 223.729l-214.317-186.639v373.82l214.317-187.181zM43.941 419.404h425.803l-213.203-185.675-212.601 185.675zM256.512 213.73l212.811-185.856h-426.225l213.413 185.856zM267.987 223.729l214.528 186.85v-374.212l-214.528 187.362z" />
+<glyph unicode="&#xe6f5;" d="M0 269.177v-90.353h391.529v90.353h-391.529zM240.941 239.059v-30.117h-90.353v30.118h90.353zM30.117 239.059h90.353v-30.117h-90.353v30.118zM361.412 208.941h-90.353v30.118h90.353v-30.118z" />
+<glyph unicode="&#xe6f6;" d="M90.353 449.882v-90.353h331.294v90.353h-331.294zM391.529 389.647h-271.059v30.118h271.059v-30.118zM90.353 239.059h331.294v90.353h-331.294v-90.353zM120.471 299.294h271.059v-30.117h-271.059v30.117zM90.353 118.678h331.294v90.353h-331.294v-90.353zM120.471 178.914h271.059v-30.118h-271.059v30.118zM90.353-1.792h331.294v90.353h-331.294v-90.353zM120.471 58.443h271.059v-30.118h-271.059v30.118z" />
+<glyph unicode="&#xe6f7;" d="M0 178.824h150.588v90.353h-150.588v-90.353zM30.117 239.059h90.353v-30.117h-90.353v30.118zM180.706 178.824h150.588v90.353h-150.588v-90.353zM210.823 239.059h90.353v-30.117h-90.353v30.118zM361.412 269.177v-90.353h150.588v90.353h-150.588zM481.882 208.941h-90.353v30.118h90.353v-30.118z" />
+<glyph unicode="&#xe6f8;" d="M0 269.177v-90.353h512v90.353h-512zM271.059 239.059h90.353v-30.117h-90.353v30.118zM240.941 208.941h-90.353v30.118h90.353v-30.118zM30.117 239.059h90.353v-30.117h-90.353v30.118zM481.882 208.941h-90.353v30.118h90.353v-30.118z" />
+<glyph unicode="&#xe6f9;" d="M60.236 88.471h451.764v-30.118h-451.764v30.118zM210.823-1.671h301.177v30.118h-301.176v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
+<glyph unicode="&#xe6fa;" d="M240.941 359.529v-271.059h271.059v271.059h-271.059zM481.882 118.588h-210.824v210.824h210.823v-210.824zM35.358 359.529h175.465v-30.117h-175.465v30.117zM105.502 239.179h105.322v-30.117h-105.322v30.118zM210.553 269.236h-210.553v30.118h210.553v-30.118zM0.271 179.034h210.553v-30.118h-210.553v30.118zM35.358 118.588h175.465v-30.118h-175.465v30.118z" />
+<glyph unicode="&#xe6fb;" d="M451.764 118.588h-391.529v30.118h391.529v-30.118zM361.412 88.682h-301.176v-30.118h301.176v30.118zM512 449.882v-451.764h-512v451.764h512zM481.882 419.764h-451.764v-391.529h451.764v391.529z" />
+<glyph unicode="&#xe6fc;" d="M0 419.764v-361.412h512v361.412h-512zM30.117 178.522v211.125h451.764v-211.125h-451.764z" />
+<glyph unicode="&#xe6fd;" d="M361.412 208.941h-301.176v30.118h301.176v-30.118zM361.412 178.824h-301.176v-30.118h301.176v30.118zM512 449.882v-451.764h-512v451.764h512zM481.882 419.764h-451.764v-391.529h451.764v391.529z" />
+<glyph unicode="&#xe6fe;" d="M0 88.471h451.764v-30.118h-451.764v30.118zM0-1.671h301.176v30.118h-301.176v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
+<glyph unicode="&#xe6ff;" d="M301.176 359.529h175.465v-30.117h-175.466v30.117zM301.176 239.179h105.322v-30.117h-105.322v30.118zM301.447 299.355h210.553v-30.118h-210.553v30.118zM301.176 179.034h210.553v-30.118h-210.553v30.118zM301.176 118.588h175.465v-30.118h-175.466v30.118zM0 88.471h271.059v271.059h-271.059v-271.059zM30.117 329.412h210.823v-210.824h-210.823v210.824z" />
+<glyph unicode="&#xe700;" d="M30.117 88.471h451.764v-30.118h-451.764v30.118zM120.471-1.671h271.059v30.118h-271.059v-30.118zM512 449.882v-331.294h-512v331.294h512zM481.882 419.764h-451.764v-271.059h451.764v271.059z" />
+<glyph unicode="&#xe701;" d="M30.117 359.529v-180.706h451.764v180.706h-451.764zM451.764 208.941h-391.529v120.471h391.529v-120.471zM421.647 148.706v-30.118h-331.294v30.118h331.294zM60.236 88.471h391.529v-30.118h-391.529v30.118z" />
+<glyph unicode="&#xe702;" d="M451.764 359.529h-271.059v30.118h271.059v-30.118zM180.706 329.412v-30.118h331.294v30.118h-331.294zM0 419.764h150.588v-150.588h-150.588v150.588zM30.117 299.294h90.353v90.353h-90.353v-90.353zM451.764 178.824h-271.059v-30.118h271.059v30.118zM180.706 88.471h331.294v30.118h-331.294v-30.118zM0 208.941h150.588v-150.588h-150.588v150.588zM30.117 88.471h90.353v90.353h-90.353v-90.353z" />
+<glyph unicode="&#xe703;" d="M451.764 329.412h-271.059v30.117h271.059v-30.117zM180.706 299.294v-30.117h331.294v30.117h-331.294zM0 239.059h150.588v150.588h-150.588v-150.588zM451.764 148.706h-271.059v-30.118h271.059v30.118zM180.706 58.353h331.294v30.118h-331.294v-30.118zM0 28.236h150.588v150.588h-150.588v-150.588z" />
+<glyph unicode="&#xe704;" d="M421.647 329.412h-421.647v60.236h421.647v-60.236zM0 299.294v-30.117h512v30.117h-512zM421.647 178.824h-421.647v-60.236h421.647v60.236zM0 58.353h512v30.118h-512v-30.118z" />
+<glyph unicode="&#xe705;" d="M496.851 329.412h-75.204v30.117h75.204v-30.117zM466.793 239.179h-45.147v-30.117h45.147v30.118zM421.767 299.355v-30.118h90.233v30.118h-90.233zM421.647 148.916h90.233v30.118h-90.233v-30.118zM421.647 88.471h75.204v30.118h-75.204v-30.118zM0 359.529h391.529v-271.059h-391.529v271.059zM30.117 118.588h331.294v210.824h-331.294v-210.824z" />
+<glyph unicode="&#xe706;" d="M512 239.059v-30.117h-512v30.118h512z" />
+<glyph unicode="&#xe707;" d="M30.117 359.529h90.353v90.353h-90.353v-90.353zM60.236 419.764h30.118v-30.118h-30.117v30.118zM150.588 359.529h90.353v90.353h-90.353v-90.353zM180.706 419.764h30.118v-30.118h-30.118v30.118zM271.059 359.529h90.353v90.353h-90.353v-90.353zM301.176 419.764h30.118v-30.118h-30.118v30.118zM391.529 449.882v-90.353h90.353v90.353h-90.353zM451.764 389.647h-30.118v30.118h30.118v-30.118zM30.117 239.059h90.353v90.353h-90.353v-90.353zM60.236 299.294h30.118v-30.117h-30.117v30.117zM150.588 239.059h90.353v90.353h-90.353v-90.353zM180.706 299.294h30.118v-30.117h-30.118v30.117zM271.059 239.059h90.353v90.353h-90.353v-90.353zM301.176 299.294h30.118v-30.117h-30.118v30.117zM391.529 239.059h90.353v90.353h-90.353v-90.353zM421.647 299.294h30.118v-30.117h-30.118v30.117zM30.117 118.588h90.353v90.353h-90.353v-90.353zM60.236 178.824h30.118v-30.118h-30.117v30.118zM150.588 118.588h90.353v90.353h-90.353v-90.353zM180.706 178.824h30.118v-30.118h-30.118v30.118zM271.059 118.588h90.353v90.353h-90.353v-90.353zM301.176 178.824h30.118v-30.118h-30.118v30.118zM391.529 118.588h90.353v90.353h-90.353v-90.353zM421.647 178.824h30.118v-30.118h-30.118v30.118zM30.117-1.882h90.353v90.353h-90.353v-90.353zM60.236 58.353h30.118v-30.118h-30.117v30.118zM150.588-1.882h90.353v90.353h-90.353v-90.353zM180.706 58.353h30.118v-30.118h-30.118v30.118zM271.059-1.882h90.353v90.353h-90.353v-90.353zM301.176 58.353h30.118v-30.118h-30.118v30.118zM391.529-1.882h90.353v90.353h-90.353v-90.353zM421.647 58.353h30.118v-30.118h-30.118v30.118z" />
+<glyph unicode="&#xe708;" d="M0 329.412h150.588v150.588h-150.588v-150.588zM30.117 449.882h90.353v-90.353h-90.353v90.353zM180.706 329.412h150.588v150.588h-150.588v-150.588zM210.823 449.882h90.353v-90.353h-90.353v90.353zM361.412 480v-150.588h150.588v150.588h-150.588zM481.882 359.529h-90.353v90.353h90.353v-90.353zM0 148.706h150.588v150.588h-150.588v-150.588zM30.117 269.177h90.353v-90.353h-90.353v90.353zM180.706 148.706h150.588v150.588h-150.588v-150.588zM210.823 269.177h90.353v-90.353h-90.353v90.353zM361.412 148.706h150.588v150.588h-150.588v-150.588zM391.529 269.177h90.353v-90.353h-90.353v90.353zM0-32h150.588v150.588h-150.588v-150.588zM30.117 88.471h90.353v-90.353h-90.353v90.353zM180.706-32h150.588v150.588h-150.588v-150.588zM210.823 88.471h90.353v-90.353h-90.353v90.353zM361.412-32h150.588v150.588h-150.588v-150.588zM391.529 88.471h90.353v-90.353h-90.353v90.353z" />
+<glyph unicode="&#xe709;" d="M0 269.177h210.823v210.823h-210.823v-210.823zM30.117 449.882h150.588v-150.588h-150.588v150.588zM271.059 480v-210.823h210.824v210.823h-210.823zM451.764 299.294h-150.588v150.588h150.588v-150.588zM0-1.882h210.823v210.824h-210.823v-210.823zM30.117 178.824h150.588v-150.588h-150.588v150.588zM271.059-1.882h210.824v210.824h-210.823v-210.823zM301.176 178.824h150.588v-150.588h-150.588v150.588z" />
+<glyph unicode="&#xe70a;" d="M0 419.764h90.353v-90.353h-90.353v90.353zM271.059 329.412h90.353v90.353h-90.353v-90.353zM0 88.471h90.353v90.353h-90.353v-90.353zM271.059 88.471h90.353v90.353h-90.353v-90.353zM120.471 389.647h120.471v30.118h-120.471v-30.118zM120.471 329.412h120.471v30.117h-120.471v-30.117zM391.529 419.764v-30.118h120.471v30.118h-120.471zM391.529 329.412h120.471v30.117h-120.471v-30.117zM210.823 299.324h-90.353v-30.118h90.353v30.118zM481.882 299.324h-90.353v-30.118h90.353v30.118zM120.471 148.706h120.471v30.118h-120.471v-30.118zM120.471 88.471h120.471v30.118h-120.471v-30.118zM391.529 148.706h120.471v30.118h-120.471v-30.118zM391.529 88.471h120.471v30.118h-120.471v-30.118zM120.471 28.265h90.353v30.118h-90.353v-30.118zM391.529 28.265h90.353v30.118h-90.353v-30.118z" />
+<glyph unicode="&#xe70b;" d="M0 389.647v-331.294h512v331.294h-512zM481.882 88.471h-451.764v271.059h451.764v-271.059zM421.647 239.059h-301.176v30.118h301.176v-30.118zM271.059 208.941h150.588v-60.236h-150.588v60.236z" />
+<glyph unicode="&#xe70c;" d="M0 389.647v-331.294h512v331.294h-512zM481.882 88.471h-451.764v271.059h451.764v-271.059zM391.529 239.059h-301.176v30.118h301.176v-30.118zM240.941 148.706h-150.588v60.236h150.588v-60.236z" />
+<glyph unicode="&#xe70d;" d="M421.647 239.059h-331.294v30.118h331.294v-30.118zM512 389.647v-331.294h-512v331.294h512zM481.882 359.529h-451.764v-271.059h451.764v271.059zM191.458 148.706h129.084v60.236h-129.084v-60.236z" />
+<glyph unicode="&#xe70e;" d="M271.059 269.177h-210.823v30.117h210.823v-30.117zM120.26 208.941h150.588v30.118h-150.588v-30.118zM512 389.647v-301.176h-512v301.176h512zM481.882 359.529h-451.764v-240.941h451.764v240.941zM451.764 299.294h-150.588v-60.235h150.588v60.235z" />
+<glyph unicode="&#xe70f;" d="M451.764 269.177h-210.823v30.117h210.823v-30.117zM241.152 208.941h150.588v30.118h-150.588v-30.118zM512 389.647v-301.176h-512v301.176h512zM481.882 359.529h-451.764v-240.941h451.764v240.941zM210.823 299.294h-150.588v-60.235h150.588v60.235z" />
+<glyph unicode="&#xe710;" d="M30.117-32h90.353v512h-90.353v-512zM60.236 449.882h30.118v-451.764h-30.117v451.764zM150.588-32h90.353v512h-90.353v-512zM180.706 449.882h30.118v-451.764h-30.118v451.764zM271.059-32h90.353v512h-90.353v-512zM301.176 449.882h30.118v-451.764h-30.118v451.764zM391.529 480v-512h90.353v512h-90.353zM451.764-1.882h-30.118v451.764h30.118v-451.764z" />
+<glyph unicode="&#xe711;" d="M0-32h150.588v512h-150.588v-512zM30.117 449.882h90.353v-451.764h-90.353v451.764zM180.706-32h150.588v512h-150.588v-512zM210.823 449.882h90.353v-451.764h-90.353v451.764zM361.412 480v-512h150.588v512h-150.588zM481.882-1.882h-90.353v451.764h90.353v-451.764z" />
+<glyph unicode="&#xe712;" d="M0-32h240.941v512h-240.941v-512zM30.117 449.882h180.706v-451.764h-180.706v451.764zM271.059 480v-512h240.941v512h-240.941zM481.882-1.882h-180.706v451.764h180.706v-451.764z" />
+<glyph unicode="&#xe713;" d="M0 480v-90.353h512v90.353h-512zM481.882 419.764h-451.764v30.118h451.764v-30.118zM0 88.471h512v271.059h-512v-271.059zM30.117 329.412h451.764v-210.824h-451.764v210.824zM0-32h512v90.353h-512v-90.353zM30.117 28.236h451.764v-30.118h-451.764v30.118z" />
+<glyph unicode="&#xe714;" d="M0 480v-512h512v512h-512zM481.882 449.882v-271.059h-451.764v271.059h451.764zM481.882 148.706v-60.236h-451.764v60.236h451.764zM30.117-1.882v60.236h451.764v-60.236h-451.764z" />
+<glyph unicode="&#xe715;" d="M120.471 480v-271.059h391.529v271.059h-391.529zM481.882 239.059h-331.294v210.823h331.294v-210.823zM0 389.647h90.353v90.353h-90.353v-90.353zM30.117 449.882h30.117v-30.118h-30.117v30.118zM120.471 88.471h391.529v90.353h-391.529v-90.353zM150.588 148.706h331.294v-30.118h-331.294v30.118zM0 88.471h90.353v90.353h-90.353v-90.353zM30.117 148.706h30.117v-30.118h-30.117v30.118zM120.471-32h391.529v90.353h-391.529v-90.353zM150.588 28.236h331.294v-30.118h-331.294v30.118zM0-32h90.353v90.353h-90.353v-90.353zM30.117 28.236h30.117v-30.118h-30.117v30.118z" />
+<glyph unicode="&#xe716;" d="M90.353 480v-195.735l164.623-286.087 166.671 286.058v195.764h-331.294zM255.126 58.353h0.060l-0.030-0.060-0.030 0.060zM256 299.294c-16.625 0-30.118 13.523-30.118 30.118s13.493 30.117 30.118 30.117 30.118-13.523 30.118-30.117-13.493-30.118-30.118-30.118zM391.529 292.367l-120.471-206.788v185.736c25.901 6.716 45.176 30.118 45.176 58.097 0 33.22-27.015 60.236-60.236 60.236s-60.236-27.015-60.236-60.236c0-27.979 19.275-51.38 45.177-58.097v-188.356l-120.471 209.378v157.546h271.059v-157.515z" />
+<glyph unicode="&#xe717;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM271.059 107.475h29.485v-30.118h-89.088v30.118h29.485v133.12h-28.492v30.118h58.609v-163.238zM216.395 329.833c0 16.414 13.282 29.696 29.696 29.696s29.666-13.282 29.666-29.696c0-16.354-13.252-29.636-29.666-29.636s-29.696 13.282-29.696 29.636z" />
+<glyph unicode="&#xe718;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM290.876 111.993c0-17.107-13.914-31.051-31.051-31.051-17.197 0-31.112 13.945-31.112 31.051 0 17.167 13.915 31.082 31.112 31.082 17.137 0 31.051-13.884 31.051-31.082zM321.115 353.054c13.493-17.016 20.3-39.996 16.565-55.868-7.319-30.931-25.359-47.195-41.291-61.531-16.354-14.728-28.13-25.299-28.13-49.604h-30.118c0 37.677 20.209 55.899 38.069 71.981 13.884 12.499 26.986 24.305 32.106 46.050 1.024 4.307-1.175 18.070-10.842 30.268-9.246 11.716-21.925 17.649-37.587 17.649-53.579 0-56.29-43.49-56.411-48.459l-30.118 0.813c0.723 26.895 19.727 77.764 86.528 77.764 24.636 0 46.351-10.33 61.229-29.063z" />
+<glyph unicode="&#xe719;" d="M471.884 298.782c-28.822 107.128-116.344 181.218-215.884 181.218-99.238 0-187.091-74.21-215.883-181.218-22.498-2.47-40.117-21.444-40.117-44.665v-120.471c0-18.824 11.505-34.937 27.828-41.713 5.843-52.615 50.086-93.817 104.237-93.817h81.529c6.234-17.498 22.799-30.117 42.406-30.117h90.353c24.907 0 45.176 20.269 45.176 45.176s-20.269 45.176-45.176 45.176h-90.353c-19.607 0-36.172-12.62-42.406-30.118h-81.529c-36.382 0-66.771 25.901-73.758 60.236h32.045v30.118h30.118v150.588h-30.118v30.118h-18.251c27.498 89.178 100.954 150.588 183.899 150.588 83.185 0 156.401-61.35 183.899-150.588h-18.252v-30.118h-30.118v-150.588h30.118v-30.118h45.357c24.817 0 44.996 20.269 44.996 45.176v120.471c0 23.221-17.619 42.195-40.116 44.664zM256 28.236h90.353c8.283 0 15.059-6.747 15.059-15.059s-6.776-15.059-15.059-15.059h-90.353c-8.282 0-15.059 6.747-15.059 15.059s6.776 15.059 15.059 15.059zM60.236 118.588h-15.239c-8.192 0-14.878 6.747-14.878 15.059v120.471c0 8.313 6.686 15.059 14.878 15.059h15.239v-150.588zM481.882 133.647c0-8.313-6.686-15.059-14.878-15.059h-15.24v150.588h15.24c8.192 0 14.878-6.746 14.878-15.059v-120.471z" />
+<glyph unicode="&#xe71a;" d="M436.706 231.951v-95.955c0-20.179-9.698-46.833-18.252-70.325-5.572-15.269-11.866-32.587-11.866-39.454v-25.75c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v25.75c0 12.168 6.053 28.762 13.673 49.755 7.71 21.142 16.444 45.116 16.444 59.995v95.985c0 8.734-7.108 16.113-15.541 16.113-8.795 0-13.673-7.891-13.945-15.661-0.271-8.192-6.295-15.269-15.3-14.517-8.192 0.151-14.788 6.867-14.788 15.059v47.044c0 8.915-6.837 16.173-15.209 16.173-7.951 0-14.577-6.626-15.119-15.059-0.512-8.132-6.867-14.607-15.51-14.095-8.132 0.271-14.577 6.927-14.577 15.059v38.159c0 8.885-6.747 16.113-15.059 16.113-7.8 0-14.668-6.084-15.691-13.884-1.024-7.831-7.891-13.884-15.902-13.071-7.921 0.512-14.095 7.077-14.095 15.029v109.357c0 8.885-6.837 16.113-15.209 16.113s-15.209-7.228-15.209-16.113v-186.127c0-6.204-3.795-11.776-9.577-14.035-5.752-2.259-12.348-0.723-16.565 3.825l-33.551 36.472c-13.824 13.915-18.281 11.264-22.528 8.644-7.409-4.397-9.969-14.577-5.662-22.287l99.027-213.775c1.596-2.74 4.97-5.361 8.945-6.355 6.716-1.716 11.385-7.71 11.385-14.607v-25.058c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059v15.029c-7.018 4.036-12.86 9.939-17.017 17.288l-98.996 213.775c-11.836 20.902-4.427 49.122 17.017 61.862 28.913 17.317 51.291-5.21 59.693-13.673l7.831-8.493v147.516c0 25.51 20.359 46.231 45.327 46.231s45.327-20.721 45.327-46.231v-70.023c4.879 1.747 10.119 2.71 15.571 2.71 23.823 0 43.37-18.944 45.056-42.887 4.759 1.777 9.878 2.71 15.209 2.71 24.998 0 45.327-20.751 45.327-46.291v-4.096c4.367 1.476 9.036 2.259 13.945 2.259 25.148 0.030 45.628-20.721 45.628-46.201z" />
+<glyph unicode="&#xe71b;" d="M509.651 254.298c0-24.968-20.721-45.297-46.231-45.297h-70.024c1.777-4.879 2.74-10.149 2.74-15.601 0-23.823-18.944-43.37-42.887-45.056 1.747-4.759 2.68-9.849 2.68-15.18 0-24.998-20.751-45.357-46.26-45.357h-4.096c1.476-4.367 2.259-9.036 2.259-13.945 0-25.148-20.781-45.628-46.26-45.628h-95.924c-20.179 0-46.833 9.698-70.355 18.252-15.27 5.572-32.557 11.866-39.424 11.866h-25.75c-8.313 0-15.059 6.747-15.059 15.059s6.746 15.059 15.059 15.059h25.75c12.137 0 28.732-6.024 49.694-13.673 21.203-7.71 45.207-16.444 60.084-16.444h95.924c8.764 0 16.143 7.108 16.143 15.541 0 8.795-7.891 13.673-15.661 13.945-8.192 0.301-14.667 7.108-14.517 15.33s6.867 14.788 15.059 14.788h47.044c8.915 0 16.143 6.837 16.143 15.24 0 7.951-6.596 14.547-14.998 15.089-8.162 0.512-14.396 7.349-14.156 15.51 0.271 8.132 6.897 14.577 15.059 14.577h38.189c8.885 0 16.113 6.776 16.113 15.059 0 7.8-6.114 14.697-13.914 15.692-7.861 1.024-13.583 8.012-13.071 15.902 0.542 7.951 7.077 14.095 15.029 14.095h109.357c8.885 0 16.113 6.806 16.113 15.179 0 8.403-7.228 15.24-16.113 15.24h-186.127c-6.204 0-11.776 3.795-14.035 9.577s-0.692 12.348 3.855 16.565l36.472 33.521c13.854 13.824 11.204 18.221 8.644 22.528-4.457 7.499-14.457 10.089-22.348 5.662l-213.745-98.997c-2.68-1.566-5.3-4.939-6.355-8.945-1.656-6.716-7.65-11.385-14.577-11.385h-25.058c-8.313 0-15.059 6.746-15.059 15.059s6.746 15.059 15.059 15.059h15.029c4.036 7.018 9.909 12.891 17.258 16.987l213.775 99.027c20.872 11.746 49.152 4.397 61.892-17.016 17.288-28.822-5.211-51.26-13.644-59.693l-8.493-7.83h147.486c25.479 0 46.231-20.36 46.231-45.357z" />
+<glyph unicode="&#xe71c;" d="M494.592 73.412c0-8.313-6.747-15.059-15.059-15.059h-25.75c-6.837 0-24.154-6.295-39.424-11.866-23.522-8.553-50.176-18.252-70.355-18.252h-95.924c-25.51 0-46.261 20.48-46.261 45.659 0 4.909 0.783 9.577 2.259 13.945h-4.066c-25.51 0-46.261 20.36-46.261 45.357 0 5.331 0.934 10.421 2.68 15.18-23.944 1.656-42.888 21.203-42.888 45.026 0 5.452 0.964 10.692 2.74 15.601h-70.053c-25.509 0-46.23 20.329-46.23 45.297 0 24.997 20.721 45.357 46.23 45.357h147.486l-8.012 7.379c-8.915 8.885-31.412 31.322-14.095 60.175 12.74 21.384 40.96 28.763 62.886 16.475l211.667-97.942c8.072-4.488 14.185-10.481 18.281-17.559h15.059c8.313 0 15.059-6.747 15.059-15.059s-6.747-15.059-15.059-15.059h-25.028c-6.897 0-12.921 4.668-14.607 11.385-1.024 4.006-3.644 7.379-7.379 9.487l-211.667 97.913c-8.855 4.94-18.884 2.409-23.341-5.090-2.59-4.337-5.24-8.734 9.036-23.010l36.020-33.069c4.578-4.216 6.084-10.752 3.825-16.565s-7.831-9.577-14.035-9.577h-186.127c-8.855 0-16.083-6.837-16.083-15.239 0-8.373 7.228-15.179 16.113-15.179h109.357c7.951 0 14.517-6.144 15.029-14.095 0.512-7.921-5.21-14.878-13.071-15.902-7.8-0.994-13.884-7.921-13.884-15.721 0-8.283 7.228-15.059 16.113-15.059h38.189c8.132 0 14.818-6.476 15.059-14.577 0.241-8.162-6.024-14.998-14.125-15.51-8.433-0.542-15.029-7.138-15.029-15.089 0-8.403 7.258-15.24 16.143-15.24h47.044c8.222 0 14.908-6.596 15.059-14.788s-6.325-15.029-14.517-15.33c-7.77-0.271-15.661-5.15-15.661-13.945 0-8.403 7.409-15.51 16.143-15.51h95.924c14.878 0 38.882 8.734 60.055 16.444 20.962 7.65 37.556 13.673 49.694 13.673h25.75c8.342 0 15.089-6.747 15.089-15.059z" />
+<glyph unicode="&#xe71d;" d="M414.208 139.58c-28.793-17.378-51.26 5.211-59.693 13.673l-7.83 8.493v-147.516c0-25.51-20.329-46.231-45.327-46.231s-45.327 20.721-45.327 46.231v70.024c-4.879-1.777-10.119-2.74-15.571-2.74-23.793 0-43.369 18.944-45.056 42.887-4.758-1.777-9.879-2.711-15.209-2.711-24.998 0-45.327 20.751-45.327 46.291v4.096c-4.367-1.476-9.035-2.259-13.945-2.259-25.148 0-45.628 20.751-45.628 46.231v95.955c0 20.179 9.698 46.833 18.252 70.325 5.572 15.269 11.867 32.587 11.867 39.424v25.781c0 8.313 6.746 15.059 15.059 15.059s15.059-6.747 15.059-15.059v-25.75c0-12.168-6.024-28.762-13.674-49.755-7.71-21.173-16.444-45.147-16.444-60.024v-95.955c0-8.734 7.108-16.113 15.54-16.113 8.794 0 13.674 7.891 13.944 15.661 0.301 8.132 6.957 14.517 15.059 14.517 0.090 0 0.18 0 0.271 0 8.192-0.15 14.788-6.867 14.788-15.059v-47.044c0-8.915 6.837-16.173 15.209-16.173 7.951 0 14.577 6.626 15.119 15.059 0.482 8.101 7.077 14.156 15.481 14.095 8.132-0.271 14.577-6.927 14.577-15.059v-38.189c0-8.885 6.776-16.113 15.059-16.113 7.8 0 14.667 6.084 15.691 13.884 1.024 7.861 8.041 13.974 15.902 13.101 7.921-0.512 14.095-7.077 14.095-15.029v-109.357c0-8.885 6.837-16.113 15.209-16.113s15.209 7.228 15.209 16.113v186.127c0 6.204 3.795 11.776 9.577 14.035 5.692 2.259 12.318 0.723 16.565-3.825l33.551-36.473c13.824-13.914 18.281-11.234 22.528-8.644 7.409 4.397 9.969 14.577 5.662 22.287l-99.027 213.775c-1.596 2.74-4.94 5.361-8.945 6.355-6.686 1.687-11.385 7.68-11.385 14.607v25.058c0 8.313 6.747 15.059 15.059 15.059s15.059-6.746 15.059-15.059v-15.029c7.017-4.036 12.89-9.939 16.986-17.288l99.027-213.775c11.836-20.901 4.457-49.122-17.017-61.861z" />
+<glyph unicode="&#xe71e;" d="M391.529 178.824v301.176h-391.529v-391.529h391.529v90.353zM30.117 449.882h331.294v-240.941h-22.739l-77.221 99.961-34.906-36.563-67.704 116.887-107.701-180.284h-21.022v240.941zM300.635 208.941h-214.407l72.222 120.892 62.163-107.339 38.4 40.267 41.623-53.82zM30.117 118.588v60.236h331.294v-60.236h-331.294zM512 389.647v-391.529h-391.529v59.753h30.118v-29.636h331.294v331.294h-60.236v30.118h90.353z" />
+<glyph unicode="&#xe71f;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM391.529 208.941c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.529c0 8.313 6.746 15.059 15.059 15.059s15.059-6.747 15.059-15.059c0-58.127 47.285-105.412 105.412-105.412s105.412 47.284 105.412 105.412c0 8.313 6.747 15.059 15.059 15.059s15.059-6.747 15.059-15.059zM135.53 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118zM316.236 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118z" />
+<glyph unicode="&#xe720;" d="M256 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256-114.839 256-256 256zM256-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM391.529 88.471c0-8.313-6.747-15.059-15.059-15.059s-15.059 6.747-15.059 15.059c0 58.127-47.284 105.412-105.412 105.412s-105.412-47.284-105.412-105.412c0-8.313-6.746-15.059-15.059-15.059s-15.059 6.747-15.059 15.059c0 74.722 60.808 135.53 135.53 135.53s135.53-60.807 135.53-135.53zM135.53 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118zM316.236 314.353c0 16.625 13.493 30.118 30.118 30.118s30.118-13.493 30.118-30.118-13.493-30.118-30.118-30.118-30.118 13.493-30.118 30.118z" />
+<glyph unicode="&#xe721;" d="M466.824 419.764h-421.647c-24.907 0-45.176-20.269-45.176-45.177v-301.176c0-24.908 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176v301.176c0 24.907-20.269 45.176-45.176 45.176zM481.882 73.412c0-8.283-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.776-15.059 15.059v165.647h451.764v-165.647zM30.117 329.412v45.176c0 8.282 6.746 15.059 15.059 15.059h421.647c8.313 0 15.059-6.777 15.059-15.059v-45.176h-451.764z" />
+<glyph unicode="&#xe722;" d="M90.353 41.156l219.286 183.627-219.286 181.851v-365.478zM120.471 342.543l142.125-117.88-142.125-118.995v236.875zM421.647 419.764v-391.529h-30.118v391.529h30.118z" />
+<glyph unicode="&#xe723;" d="M202.361 223.217l219.286-181.851v365.478l-219.286-183.627zM391.529 105.457l-142.125 117.88 142.125 118.995v-236.875zM90.353 419.764h30.117v-391.529h-30.118v391.529z" />
+<glyph unicode="&#xe724;" d="M256 404.706c-99.659 0-180.706-81.047-180.706-180.706s81.047-180.706 180.706-180.706 180.706 81.046 180.706 180.706-81.046 180.706-180.706 180.706zM256 73.412c-83.034 0-150.588 67.554-150.588 150.588s67.554 150.588 150.588 150.588 150.588-67.554 150.588-150.588-67.554-150.588-150.588-150.588z" />
+<glyph unicode="&#xe725;" d="M255.217 398.11l-181.851-219.286h365.478l-183.627 219.286zM255.338 351.067l118.995-142.125h-236.875l117.88 142.125zM451.764 88.471v-30.118h-391.529v30.118h391.529z" />
+<glyph unicode="&#xe726;" d="M391.529 239.059h30.118c0-74.722-60.808-135.53-135.53-135.53s-135.53 60.808-135.53 135.53h30.118c0-58.127 47.285-105.412 105.412-105.412s105.412 47.284 105.412 105.412zM225.882 284.236c16.655 0 30.118 13.462 30.118 30.118s-13.463 30.118-30.118 30.118-30.118-13.462-30.118-30.118 13.463-30.118 30.118-30.118zM346.353 284.236c16.655 0 30.118 13.462 30.118 30.118s-13.462 30.118-30.118 30.118-30.118-13.462-30.118-30.118 13.462-30.118 30.118-30.118zM512 254.118c0-124.567-101.316-225.882-225.882-225.882-40.358 0-79.751 10.812-114.537 31.353l-165.647-85.625 85.624 165.617c-20.51 34.786-31.323 74.18-31.323 114.537 0 124.566 101.316 225.882 225.882 225.882s225.882-101.316 225.882-225.882zM481.882 254.118c0 107.942-87.823 195.764-195.764 195.764s-195.764-87.823-195.764-195.764c0-37.466 10.782-74.060 31.202-105.743l4.728-7.318-50.116-96.918 96.888 50.116 7.319-4.728c31.714-20.389 68.246-31.172 105.743-31.172 107.942 0 195.764 87.823 195.764 195.764z" />
+<glyph unicode="&#xe727;" d="M512 253.184c0 24.907-20.269 45.177-45.176 45.177h-144.805l8.584 27.528 0.692 108.935c0 24.907-20.269 45.176-45.176 45.176h-60.236c-24.907 0-45.177-20.269-45.177-45.176v-103.966l9.337-32.527h-144.866c-24.907 0-45.176-20.269-45.176-45.177v-104.99h28.070l-23.070-180.164h502.001l-23.070 180.164h28.070v105.020zM472.787-1.882h-51.14v60.236h-30.118v-60.236h-30.118v90.353h-30.118v-90.353h-30.118v120.471h-30.118v-120.471h-150.588v60.236h-30.118v-60.236h-51.14l19.215 150.046h395.144l19.215-150.046zM31.924 178.281h-1.807v74.903c0 8.312 6.746 15.059 15.059 15.059h185.675l-20.028 64.904v101.677c0 8.313 6.746 15.059 15.059 15.059h60.236c8.313 0 15.059-6.746 15.059-15.059v-102.189l-20.089-64.392h185.736c8.313 0 15.059-6.747 15.059-15.059v-74.872h-449.957zM240.941 419.764h30.117v-30.118h-30.118v30.118z" />
+<glyph unicode="&#xe728;" d="M250.006 286.584c13.162 0 23.16 4.849 30.299 14.577 5.452 7.138 7.981 18.583 7.981 33.732v49.995c0 15.149-2.53 26.292-7.981 33.43-7.168 9.668-17.167 14.547-30.298 14.547-12.891 0-22.889-4.849-29.967-14.547-5.452-7.168-8.012-18.312-8.012-33.461v-49.995c0-15.149 2.56-26.292 8.012-33.732 7.077-9.698 17.077-14.547 29.967-14.547zM237.719 390.009c0 13.131 4.006 19.697 12.288 19.697 8.584 0 12.288-6.566 12.288-19.697v-59.995c0-13.161-3.704-19.998-12.288-19.998-8.282 0-12.288 6.867-12.288 19.998v59.995zM311.717 297.156c-1.445 4.307-2.259 11.143-2.259 21.413v112.58h25.991v-104.839c0-6.024 0-9.427 0.301-10.029 0.572-4.006 2.56-6.264 5.993-6.264 5.12 0 10.541 4.006 16.264 12.288v108.845h25.991v-142.577h-25.991v15.721c-10.27-11.987-19.968-17.709-29.455-17.709-8.283 0-14.276 3.404-16.836 10.571zM410.594 124.281v-13.132h-25.721v13.132c0 12.86 4.307 19.456 12.86 19.456 8.553-0.030 12.86-6.596 12.86-19.456zM131.132 426.572c-6.264 17.709-12.529 35.719-18.582 53.428h30.329l20.269-75.144 19.426 75.144h29.154l-34.575-113.995v-77.433h-28.552v77.433c-2.59 14.005-8.313 34.003-17.468 60.567zM460.288 215.416c-5.15 22.588-23.733 39.153-45.719 41.713-52.586 5.722-105.743 5.722-158.6 5.722s-106.014 0-158.298-5.722c-22.227-2.56-40.538-19.125-45.959-41.713-7.138-31.985-7.439-66.861-7.439-99.99 0-32.858 0-67.976 7.439-99.99 5.15-22.588 23.732-39.153 45.718-41.442 52.556-5.993 105.713-5.993 158.57-5.993s106.014 0 158.6 5.993c21.956 2.289 40.267 18.853 45.719 41.442 7.138 31.985 7.439 67.132 7.439 99.99-0.030 33.13-0.030 68.005-7.469 99.99zM165.135 186.564h-30.54v-162.575h-28.582v162.575h-30.028v26.865h89.148v-26.865zM242.297 23.988h-25.45v15.42c-10.3-11.716-19.998-17.438-29.154-17.438-8.252 0-14.276 3.433-16.565 10.572-1.446 4.276-2.289 10.873-2.289 20.841v111.707h25.45v-103.996c0-6.024 0-9.156 0.271-10.029 0.602-3.976 2.59-5.993 5.994-5.993 5.18 0 10.601 3.976 16.293 11.987v108.002h25.45v-141.071zM339.456 66.274c0-13.161-0.603-22.558-2.59-28.551-3.132-10.3-10.3-15.721-20.3-15.721-9.125 0-18.010 5.15-26.594 15.721v-13.733h-25.389v189.44h25.389v-62.012c8.283 10.3 17.167 15.42 26.594 15.42 9.999 0 17.167-5.421 20.3-15.993 1.988-5.723 2.59-15.119 2.59-28.281v-56.29zM436.013 89.705h-51.14v-24.847c0-13.161 4.307-19.697 13.161-19.697 6.295 0 9.999 3.404 11.445 10.27 0.271 1.416 0.572 7.138 0.572 17.438h25.991v-3.735c0-8.283 0-14.005-0.572-16.565-0.603-5.692-2.892-10.842-5.993-15.42-6.897-9.999-17.438-15.149-30.841-15.149-13.433 0-23.462 4.849-30.87 14.577-5.421 6.867-8.283 18.010-8.283 33.159v49.423c0 15.149 2.59 25.991 8.012 33.159 7.439 9.728 17.438 14.577 30.599 14.577 12.89 0 22.86-4.849 30.268-14.577 5.18-7.138 7.74-17.98 7.74-33.159v-29.455zM314.007 124.582v-60.296c0-12.86-3.735-19.125-11.144-19.125-4.307 0-8.584 1.988-12.89 6.264v85.986c4.307 4.307 8.584 6.295 12.89 6.295 7.409 0 11.144-6.565 11.144-19.125z" />
+<glyph unicode="&#xe729;" d="M471.763 398.983c-12.529 15.902-34.033 24.335-62.132 24.335-7.951 0-15.692-0.693-22.829-1.777-26.172-4.397-90.925-37.105-112.82-105.954-1.536-4.758-0.572-9.999 2.56-13.944 3.132-3.916 8.101-6.054 13.041-5.632 16.926 1.356 29.575 0.362 33.491-4.005 3.132-3.404 4.276-11.625 3.192-23.13-1.385-15.36-10.029-33.1-19.094-50.447-4.367-7.951-17.709-32.377-25.962-32.377-1.957 0-5.090 2.078-8.313 5.541-15.481 16.716-18.673 48.58-21.413 76.74-0.964 9.276-1.837 18.131-3.132 26.504l-2.078 11.776c-2.861 16.565-6.114 35.328-11.264 52.074-6.204 19.396-21.052 44.394-42.797 51.14-4.698 1.325-9.819 1.988-15.149 1.988-20.721 0-39.334-9.909-44.604-12.981-22.076-13.101-39.936-29.154-57.224-44.694-13.041-11.686-26.504-23.823-41.743-34.575-3.976-2.831-6.355-10.089-6.355-14.969 0-5.692 3.192-10.902 8.313-13.463 1.687-0.873 1.928-1.265 3.283-3.915 2.169-4.216 6.656-12.921 19.276-14.939 11.173-1.656 21.655 1.627 30.358 4.367 4.728 1.506 9.216 2.891 12.138 2.891 1.054 0 2.289 0 4.788-4.186 5.21-8.704 8.072-18.643 11.084-29.184 1.566-5.361 3.102-10.722 4.999-16.263 6.686-18.402 11.806-38.49 17.197-59.753l4.728-18.884c10.782-44.423 25.57-105.201 66.831-122.519 6.234-2.651 13.342-4.005 21.173-4.005 20.149 0 41.472 8.854 53.308 16.264 35.117 20.691 67.493 51.26 98.906 93.485 57.555 77.041 93.004 169.863 99.178 202.451 4.909 26.082 1.356 46.381-10.933 62.042zM453.12 342.543c-4.397-23.13-34.726-111.074-93.726-190.012-29.003-39.002-58.428-66.981-90.383-85.805-11.866-7.409-35.75-15.089-47.104-10.27-27.316 11.475-40.026 63.729-49.303 101.918l-4.849 19.245c-5.572 21.956-10.873 42.737-17.95 62.344-1.686 4.819-3.072 9.698-4.488 14.517-3.404 11.897-6.957 24.214-14.185 36.262-7.409 12.529-17.709 18.884-30.63 18.884-7.559 0-14.457-2.168-21.142-4.276-4.788-1.506-9.337-2.922-14.427-3.222-0.391 0.692-0.813 1.506-1.325 2.349 11.385 8.975 21.684 18.221 31.744 27.287 16.926 15.239 32.918 29.606 52.345 41.111 6.988 4.066 18.853 8.824 29.364 8.824 2.59 0 4.94-0.301 6.626-0.753 7.71-2.379 17.86-16.474 22.588-31.262 4.548-14.757 7.62-32.527 10.3-48.219l2.078-11.656c1.174-7.439 1.958-15.751 2.861-24.455 3.222-32.888 6.927-70.114 29.364-94.298 9.396-10.029 19.607-15.119 30.359-15.119 26.142 0 41.954 28.973 53.73 50.597 9.366 17.98 19.456 38.882 21.324 59.633 1.928 21.203-1.536 35.84-10.933 46.17-9.457 10.391-22.92 13.372-34.274 14.186 24.335 46.351 71.168 63.699 80.444 65.265 5.541 0.813 11.746 1.385 18.131 1.385 10.632 0 29.696-1.687 38.46-12.83 6.565-8.403 8.192-20.751 5-37.798z" />
+<glyph unicode="&#xe72a;" d="M512 382.539c-18.853-8.132-39.303-13.974-60.446-16.233 21.775 12.981 38.34 33.43 46.14 57.796-20.149-12.017-42.887-20.781-66.59-25.329-19.155 20.48-46.442 33.13-76.649 33.13-58.157 0-104.93-47.104-104.93-104.9 0-8.132 0.994-16.263 2.59-24.064-87.070 4.518-164.714 46.11-216.365 109.809-9.096-15.571-14.306-33.46-14.306-52.977 0-36.382 18.523-68.517 46.772-87.371-17.197 0.663-33.461 5.542-47.435 13.312 0-0.301 0-0.964 0-1.295 0-50.959 36.051-93.214 84.148-102.972-8.764-2.259-18.191-3.554-27.618-3.554-6.806 0-13.312 0.632-19.788 1.627 13.312-41.592 51.983-71.8 98.093-72.794-36.081-28.25-81.228-44.815-130.289-44.815-8.764 0-16.896 0.301-25.329 1.265 46.471-29.877 101.677-47.104 161.16-47.104 192.964 0 298.556 159.834 298.556 298.526 0 4.578 0 9.095-0.301 13.673 20.42 14.939 38.279 33.491 52.586 54.272zM429.568 314.624c0-111.466-83.275-268.409-268.438-268.409-14.818 0-29.485 1.204-43.911 3.554 20.179 8.313 39.303 19.456 56.952 33.25 10.029 7.83 14.035 21.142 9.999 33.22-4.036 12.077-15.209 20.329-27.949 20.601-16.414 0.332-31.774 5.933-44.183 15.33 0.121 0.030 0.241 0.060 0.362 0.091 13.613 3.493 22.98 15.902 22.619 29.937-0.332 14.065-10.331 25.962-24.094 28.762-19.636 3.976-36.231 15.541-46.953 31.503 1.054-0.060 2.078-0.12 3.132-0.15 0.391 0 0.753 0 1.144 0 13.011 0 24.606 8.373 28.642 20.841 4.156 12.83-0.723 26.835-11.957 34.334-18.974 12.649-31.021 33.009-33.069 55.446 54.934-47.646 124.868-76.228 198.686-80.052 0.512-0.030 1.054-0.030 1.566-0.030 8.764 0 17.107 3.825 22.86 10.511 6.084 7.077 8.524 16.595 6.626 25.72-1.325 6.295-1.988 12.348-1.988 17.92 0 41.231 33.551 74.782 74.812 74.782 21.022 0 40.418-8.373 54.663-23.612 3.493-3.735 7.861-6.476 12.559-8.012-0.572-4.397-0.18-8.945 1.295-13.372 1.897-5.752 5.421-10.601 9.939-14.156-2.68-4.939-3.976-10.631-3.584-16.384 0.301-3.885 0.271-7.74 0.271-11.625z" />
+<glyph unicode="&#xe72b;" d="M261 480c-141.161 0-256-114.839-256-256s114.838-256 256-256 256 114.839 256 256c0 141.161-114.839 256-256 256zM261-1.882c-124.567 0-225.882 101.316-225.882 225.882s101.316 225.882 225.882 225.882 225.882-101.316 225.882-225.882-101.316-225.882-225.882-225.882zM421.647 208.941v-30.118h-180.706v150.588h30.117v-120.47h150.588z" />
+<glyph unicode="&#xe72c;" d="M396.047 97.897c-21.685-14.396-42.767-21.384-64.482-21.384-11.173 0-20.601 2.469-28.913 7.56-5.12 3.102-8.342 6.716-10.029 11.354-1.566 4.036-3.404 15.721-3.404 48.55v108.574h114.236v105.713h-114.206v121.736h-97.009l-1.686-13.192c-2.892-22.829-8.132-41.894-15.42-56.561-7.379-14.486-16.775-26.503-28.552-36.653-11.987-9.999-26.715-17.95-43.701-23.582l-10.331-3.434v-94.027h53.339v-154.052c0-24.456 2.62-42.858 7.891-55.838 5.15-13.644 14.908-26.774 29.184-39.123 13.975-11.806 30.268-20.691 48.219-26.323 18.402-6.084 39.635-9.216 63.097-9.216 21.052 0 40.538 2.139 57.645 6.325 17.288 3.945 36.563 10.963 58.88 21.474l8.644 4.066v113.574l-23.401-15.541zM389.331 19.079c-16.655-7.379-31.172-12.438-44.333-15.481-31.232-7.62-74.572-7.71-104.599 2.259-14.336 4.517-27.136 11.475-37.918 20.57-10.27 8.915-17.197 17.95-20.691 27.196-3.885 9.517-5.813 24.606-5.813 44.845v184.2h-53.308v42.496c16.354 6.505 30.87 14.998 43.369 25.449 14.757 12.71 26.865 28.19 35.96 46.080 7.5 14.998 12.951 32.467 16.475 53.188h40.659v-121.736h114.236v-45.477h-114.236v-138.662c0-32.166 1.566-49.393 5.3-59.060 3.945-10.933 11.565-19.877 22.588-26.564 27.98-17.197 67.012-15.119 102.31 1.265v-40.568z" />
+<glyph unicode="&#xe72d;" d="M487.876 180.54c2.68 14.757 4.036 29.365 4.036 43.46 0 144.203-128.572 259.253-279.401 231.876-22.769 15.812-49.243 24.124-76.981 24.124-74.722 0-135.53-60.808-135.53-135.53 0-27.738 8.313-54.212 24.124-77.011-2.68-14.758-4.036-29.335-4.036-43.46 0-144.203 128.602-259.252 279.401-231.876 22.769-15.812 49.243-24.124 76.981-24.124 74.722 0 135.53 60.808 135.53 135.529 0 27.738-8.313 54.212-24.124 77.011zM376.471-1.882c-23.341 0-45.538 7.589-64.241 21.956l-5.481 4.216-6.776-1.416c-15.029-3.102-29.817-4.668-44.002-4.668-113.483 0-205.794 92.31-205.794 205.794 0 14.185 1.566 28.973 4.699 44.002l1.386 6.776-4.216 5.482c-14.336 18.643-21.925 40.9-21.925 64.211 0 58.127 47.285 105.412 105.412 105.412 23.341 0 45.538-7.589 64.241-21.956l5.482-4.216 6.776 1.416c14.999 3.072 29.786 4.668 43.972 4.668 113.483 0 205.794-92.311 205.794-205.794 0-14.185-1.566-28.973-4.699-44.002l-1.385-6.776 4.216-5.481c14.366-18.643 21.956-40.9 21.956-64.211 0-58.127-47.284-105.412-105.412-105.412zM383.067 171.625c0-63.699-61.5-93.184-120.471-93.184-70.596 0-129.596 31.382-129.596 69.964 0 17.228 9.728 32.918 31.714 32.918 33.581 0 36.714-48.308 94.75-48.308 27.588 0 45.478 12.197 45.478 28.22 0 20.089-17.257 23.221-45.176 30.118l-45.809 11.294c-45.779 10.993-80.956 29.816-80.956 82.522 0 63.668 63.066 87.221 117.339 87.221 59.301 0 119.206-23.522 119.206-59.603 0-18.191-12.228-34.214-32.618-34.214-30.449 0-31.382 36.051-80.655 36.051-27.588 0-45.177-7.5-45.177-24.124 0-18.221 17.89-22.287 41.773-27.949l32.587-7.529c44.574-10.029 97.611-28.822 97.611-83.396z" />
+<glyph unicode="&#xe72e;" d="M204.649 76.544c-33.43 31.232-52.615 75.355-52.615 121.103 0 91.347 74.331 165.647 165.647 165.647h87.702l-79.692 79.692 21.293 21.293 116.074-116.074-116.073-116.073-21.293 21.293 79.692 79.691h-87.702c-74.722 0-135.53-60.808-135.53-135.529 0-37.978 15.3-73.156 43.038-99.087l-20.54-21.956zM483.328 208.038v-194.861c0-8.283-6.776-15.059-15.059-15.059h-421.647c-8.282 0-15.059 6.776-15.059 15.059v195.012h-30.117v-195.012c0-24.908 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176v194.861h-30.118z" />
+<glyph unicode="&#xe72f;" d="M166.46 232.162l-116.043 116.073 116.073 116.073 21.293-21.293-79.722-79.722h87.703c91.317 0 165.647-74.3 165.647-165.647 0-45.748-19.185-89.841-52.615-121.103l-20.54 21.986c27.738 25.962 43.038 61.139 43.038 99.117 0 74.722-60.808 135.529-135.53 135.529h-87.703l79.692-79.691-21.293-21.323zM481.882 208.188v-195.012c0-8.283-6.776-15.059-15.059-15.059h-421.647c-8.282 0-15.059 6.776-15.059 15.059v194.861h-30.117v-194.861c0-24.907 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v195.012h-30.118z" />
+<glyph unicode="&#xe730;" d="M361.412 148.706c0 30.118 0 150.588 0 180.706 0 150.588-90.353 150.588-90.353 150.588s-90.353 0-90.353-150.588 0-60.236 0-180.706c0 0-60.236 0-60.236-180.706 0 0 71.65 71.529 129.868 87.19 0.12-17.529 9.337-31.654 20.721-31.654s20.601 14.156 20.721 31.654c58.217-15.661 129.868-87.19 129.868-87.19 0 180.706-60.236 180.706-60.236 180.706zM271.059 449.852c7.83-0.632 50.206-8.132 58.639-90.323h-117.278c8.433 82.191 50.808 89.691 58.639 90.323zM271.059 88.471c-38.279 0-82.582-26.142-116.766-51.712 7.921 63.88 25.871 79.18 29.907 81.829h26.624v210.824h120.471v-210.824h26.624c4.036-2.651 21.986-17.95 29.907-81.829-34.183 25.57-78.486 51.712-116.766 51.712z" />
+<glyph unicode="&#xe731;" d="M452.517 292.518c0-115.019-63.94-200.644-157.997-200.644-31.594 0-61.29 17.107-71.228 36.533-17.107-67.404-20.54-80.324-20.54-80.324-6.114-22.468-18.643-44.966-29.666-62.464-31.412-22.197-34.334 12.168-34.334 12.168-0.723 20.601-0.362 45.327 5 67.373 0 0 5.692 23.642 37.647 159.172-9.487 18.673-9.487 46.471-9.487 46.471 0 43.4 25.148 75.776 56.38 75.776 26.654 0 39.575-20.179 39.575-44.183 0-26.654-17.167-66.65-25.871-103.575-7.228-31.232 15.601-56.35 46.050-56.35 55.627 0 92.883 71.168 92.883 155.347 0 64.362-43.37 112.309-121.826 112.309-88.697 0-143.902-66.259-143.902-140.108 0-25.54 7.59-43.429 19.396-57.524 5.361-6.476 6.114-8.734 4.186-16.354-1.476-5.331-4.518-18.281-6.054-23.221-1.898-7.62-8.011-10.27-14.457-7.62-40.749 16.805-59.813 61.711-59.813 111.978 0 83.004 70.024 182.754 208.655 182.754 111.947 0 185.404-81.077 185.404-167.514z" />
+<glyph unicode="&#xe732;" d="M451.764 419.764v-225.882h-30.118v170.707l-281.118-281.118-21.293 21.293 284.883 284.883h-178.236v30.118h225.882zM331.294-1.882h-301.176v301.176h197.994v30.118h-228.111v-361.412h361.412v232.327h-30.118v-202.21z" />
+<glyph unicode="&#xe733;" d="M232.93 6.46l279.070-38.46v241.845h-279.070v-203.385zM263.048 179.727h218.835v-177.182l-218.835 30.178v147.004zM0 38.445l209.829-28.883v200.283h-209.829v-171.399zM30.117 179.727h149.595v-135.62l-149.595 20.601v115.019zM0 235.685h209.829v202.752l-209.829-28.883v-173.869zM30.117 383.322l149.595 20.601v-138.089h-149.595v117.489zM232.93 441.54v-205.854h279.070v244.315l-279.070-38.46zM481.882 265.803h-218.835v149.474l218.835 30.178v-179.652z" />
+<glyph unicode="&#xe734;" d="M512 359.529v-30.117h-361.412v30.117h361.412zM150.588 208.941h361.412v30.118h-361.412v-30.118zM150.588 88.471h361.412v30.118h-361.412v-30.118zM62.735 375.19h0.271v-71.77h10.722v82.131h-9.457l-17.95-9.608 2.139-8.463 14.276 7.71zM49.363 191.714l6.596 6.053c17.287 16.685 28.281 28.943 28.281 44.123 0 11.746-7.469 23.884-25.178 23.884-9.457 0-17.529-3.524-23.221-8.343l3.524-7.831c3.825 3.162 9.999 6.957 17.468 6.957 12.228 0 16.293-7.71 16.293-16.053-0.121-12.379-9.638-23.010-30.599-42.978l-8.704-8.463v-6.837h52.404v9.246h-36.864v0.241zM67.343 106.812v0.271c10.12 3.644 15.18 10.842 15.18 19.336 0 9.969-7.319 19.577-23.492 19.577-8.855 0-17.197-3.132-21.504-6.325l2.922-8.101c3.524 2.53 9.849 5.452 16.444 5.452 10.24 0 14.396-5.813 14.396-12.378 0-9.728-10.24-13.914-18.311-13.914h-6.204v-8.313h6.174c10.752 0 21.112-4.94 21.233-16.444 0.15-6.837-4.307-15.902-18.552-15.902-7.74 0-15.059 3.132-18.191 5.18l-3.042-8.584c4.036-2.68 12.108-5.602 21.353-5.602 19.697 0 29.937 11.505 29.937 24.636 0 11.505-8.222 19.094-18.341 21.113z" />
+<glyph unicode="&#xe735;" d="M21.022 304.625h103.544v-310.904h-103.544v310.904zM73.427 454.279c-35.148 0-58.368-23.221-58.368-53.669 0-29.787 22.287-53.639 57.103-53.639h0.632c36.081 0 58.669 23.853 58.368 53.639-0.332 30.449-22.287 53.669-57.736 53.669zM378.036 311.853c-55.085 0-79.601-30.178-93.184-51.471v44.243h-103.213c0 0 1.265-29.184 0-310.904h103.213v173.508c0 9.397 0.964 18.522 3.433 25.389 7.56 18.522 24.456 37.647 53.067 37.647 37.286 0 52.344-28.551 52.344-70.264v-166.28h103.243v178.206c0 95.382-50.839 139.927-118.904 139.927z" />
+<glyph unicode="&#xe736;" d="M512 480v-512h-120.471v512h120.471zM0-32h90.353v512h-90.353v-512zM331.294-32h30.118v30.118h-30.118v-30.118zM228.020-32h25.811v30.118h-25.811v-30.118zM279.673-32h25.811v30.118h-25.811v-30.118zM176.399-32h25.811v30.118h-25.811v-30.118zM120.471-32h30.117v30.118h-30.118v-30.118zM120.471 389.647h30.117v30.118h-30.118v-30.118zM120.471 88.471h30.117v30.118h-30.118v-30.118zM120.471 28.236h30.117v30.118h-30.118v-30.118zM120.471 148.706h30.117v30.118h-30.118v-30.118zM120.471 269.177h30.117v30.117h-30.118v-30.117zM120.471 329.412h30.117v30.117h-30.118v-30.117zM120.471 208.941h30.117v30.118h-30.118v-30.118zM120.471 449.882h30.117v30.118h-30.118v-30.118zM176.399 449.882h25.811v30.118h-25.811v-30.118zM279.673 449.882h25.811v30.118h-25.811v-30.118zM228.020 449.882h25.811v30.118h-25.811v-30.118zM331.294 449.882h30.118v30.118h-30.118v-30.118zM331.294 329.412h30.118v30.117h-30.118v-30.117zM331.294 389.647h30.118v30.118h-30.118v-30.118zM331.294 269.177h30.118v30.117h-30.118v-30.117zM331.294 208.941h30.118v30.118h-30.118v-30.118zM331.294 28.236h30.118v30.118h-30.118v-30.118zM331.294 88.471h30.118v30.118h-30.118v-30.118zM331.294 148.706h30.118v30.118h-30.118v-30.118z" />
+<glyph unicode="&#xe737;" d="M30.117 449.882h90.353v-90.353h-90.353v90.353zM150.588 359.529h90.353v90.353h-90.353v-90.353zM271.059 359.529h90.353v90.353h-90.353v-90.353zM391.529 449.882v-90.353h90.353v90.353h-90.353zM30.117 239.059h90.353v90.353h-90.353v-90.353zM150.588 239.059h90.353v90.353h-90.353v-90.353zM271.059 239.059h90.353v90.353h-90.353v-90.353zM391.529 239.059h90.353v90.353h-90.353v-90.353zM30.117 118.588h90.353v90.353h-90.353v-90.353zM150.588 118.588h90.353v90.353h-90.353v-90.353zM271.059 118.588h90.353v90.353h-90.353v-90.353zM391.529 118.588h90.353v90.353h-90.353v-90.353zM30.117-1.882h90.353v90.353h-90.353v-90.353zM150.588-1.882h90.353v90.353h-90.353v-90.353zM271.059-1.882h90.353v90.353h-90.353v-90.353zM391.529-1.882h90.353v90.353h-90.353v-90.353z" />
+<glyph unicode="&#xe738;" d="M0 480h150.588v-150.588h-150.588v150.588zM180.706 329.412h150.588v150.588h-150.588v-150.588zM361.412 480v-150.588h150.588v150.588h-150.588zM0 148.706h150.588v150.588h-150.588v-150.588zM180.706 148.706h150.588v150.588h-150.588v-150.588zM361.412 148.706h150.588v150.588h-150.588v-150.588zM0-32h150.588v150.588h-150.588v-150.588zM180.706-32h150.588v150.588h-150.588v-150.588zM361.412-32h150.588v150.588h-150.588v-150.588z" />
+<glyph unicode="&#xe739;" d="M0 480h210.823v-210.823h-210.823v210.823zM271.059 480v-210.823h210.824v210.823h-210.823zM0-1.882h210.823v210.824h-210.823v-210.823zM271.059-1.882h210.824v210.824h-210.823v-210.823z" />
+<glyph unicode="&#xe73a;" d="M30.117 480h90.353v-512h-90.353v512zM150.588-32h90.353v512h-90.353v-512zM271.059-32h90.353v512h-90.353v-512zM391.529 480v-512h90.353v512h-90.353z" />
+<glyph unicode="&#xe73b;" d="M0 480h150.588v-512h-150.588v512zM180.706-32h150.588v512h-150.588v-512zM361.412 480v-512h150.588v512h-150.588z" />
+<glyph unicode="&#xe73c;" d="M0 480h240.941v-512h-240.941v512zM271.059 480v-512h240.941v512h-240.941z" />
+<glyph unicode="&#xe73d;" d="M391.529 480h-271.059c-66.259 0-120.471-54.212-120.471-120.471v-271.059c0-66.259 54.212-120.47 120.471-120.47h271.059c66.259 0 120.471 54.212 120.471 120.471v271.059c0 66.259-54.212 120.471-120.471 120.471zM481.882 88.471c0-49.815-40.538-90.353-90.353-90.353h-271.059c-49.815 0-90.353 40.538-90.353 90.353v180.706h96.588c-8.614-18.372-13.764-38.641-13.764-60.236 0-78.878 64.18-143.059 143.059-143.059s143.059 64.18 143.059 143.059c0 21.595-5.15 41.863-13.764 60.236h96.587v-180.706zM368.941 208.941c0-62.284-50.658-112.941-112.941-112.941s-112.941 50.658-112.941 112.941 50.658 112.941 112.941 112.941 112.941-50.658 112.941-112.941zM365.99 299.294c-26.262 31.894-65.536 52.706-109.99 52.706s-83.727-20.812-109.99-52.706h-115.892v60.236c0 49.815 40.538 90.353 90.353 90.353h271.059c49.815 0 90.353-40.538 90.353-90.353v-60.236h-115.892zM435.32 398.020v-39.092c0-9.005-7.349-16.354-16.324-16.354h-41.201c-9.036 0.030-16.384 7.379-16.384 16.354v39.092c0 9.005 7.349 16.354 16.384 16.354h41.201c8.975 0 16.324-7.349 16.324-16.354z" />
+<glyph unicode="&#xe73e;" d="M512 401.243v-39.394h-78.757v-78.788h-39.394v78.788h-78.757v39.394h78.757v78.758h39.394v-78.758h78.757zM312.923 95.096c0-35.388-16.896-64-43.068-86.769-35.388-30.479-83.697-40.327-129.235-40.327-57.525 0-140.619 24.606-140.619 95.985 0 14.457 4.939 28.642 11.415 41.563 27.347 55.356 112.881 69.541 167.966 71.077-10.119 13.221-19.667 28.582-19.667 45.839 0 10.149 3.644 16.926 6.776 26.444-7.409-0.904-14.457-1.536-21.534-1.536-59.693 0-111.375 44.002-111.375 105.864 0 58.458 45.207 108.303 101.196 120.591 18.793 4.036 38.129 6.174 57.524 6.174h134.505l-41.532-24.305h-41.593c30.509-19.065 45.869-56.32 45.869-90.774 0-81.529-68.94-87.673-68.94-128.301 0-39.695 92.31-55.387 92.31-141.523zM232.659 333.839c0 46.772-25.268 123.995-82.191 123.995-40.267 0-59.964-35.69-59.964-72.012 0-46.743 30.75-119.988 85.534-119.988 42.105 0.030 56.621 30.479 56.621 68.005zM269.553 68.623c0 43.068-40.358 67.072-71.71 88.938-5.24 0.603-10.18 0.603-15.42 0.603-50.417 0-125.531-15.993-125.531-79.993 0-59.060 66.469-81.86 115.712-81.86 45.839 0 96.948 18.462 96.948 72.313z" />
+<glyph unicode="&#xe73f;" d="M393.849 145.243c0-22.468-11.716-59.091-39.394-59.091-27.708 0-39.424 36.623-39.424 59.091 0 22.438 11.716 59.091 39.424 59.091 27.678 0 39.394-36.653 39.394-59.091zM157.546 204.333c-27.678 0-39.394-36.653-39.394-59.091 0-22.468 11.716-59.091 39.394-59.091 27.678 0 39.394 36.623 39.394 59.091 0 22.438-11.716 59.091-39.394 59.091zM512 199.394c0-34.183-3.373-70.476-18.764-101.858-40.629-82.161-152.305-90.142-232.298-90.142-81.228 0-199.68 7.048-241.845 90.142-15.722 31.082-19.095 67.675-19.095 101.858 0 44.935 12.318 87.371 41.864 121.826-5.541 16.926-8.313 34.786-8.313 52.344 0 23.070 5.21 46.11 15.691 67.072 48.61 0 79.692-21.233 116.615-50.146 31.082 7.379 63.066 10.752 95.082 10.752 28.913 0 58.157-3.102 86.166-9.849 36.623 28.612 67.675 49.243 115.682 49.243 10.481-20.932 15.692-44.002 15.692-67.072 0-17.558-2.771-35.087-8.313-51.712 29.546-34.756 41.834-77.523 41.834-122.459zM443.060 145.243c0 47.074-28.582 88.606-78.757 88.606-20.3 0-39.665-3.704-59.995-6.476-15.993-2.47-31.985-3.373-48.309-3.373s-32.316 0.904-48.309 3.373c-19.998 2.771-39.695 6.476-59.995 6.476-50.146 0-78.757-41.532-78.757-88.606 0-94.148 86.137-108.604 161.22-108.604h51.712c75.084-0.030 161.19 14.457 161.19 108.604z" />
+<glyph unicode="&#xe740;" d="M219.708 224c0-60.657-49.212-109.839-109.809-109.839-60.687 0-109.9 49.182-109.9 109.839s49.212 109.839 109.9 109.839c60.596 0 109.809-49.182 109.809-109.839zM512 224c0-60.657-49.212-109.839-109.899-109.839-60.596 0-109.809 49.212-109.809 109.839s49.212 109.839 109.809 109.839c60.687 0 109.899-49.182 109.899-109.839zM481.882 224c0 43.972-35.78 79.721-79.781 79.721-43.942 0-79.692-35.78-79.692-79.721s35.75-79.721 79.692-79.721c44.002 0 79.781 35.75 79.781 79.721z" />
+<glyph unicode="&#xe741;" d="M375.296 312.245l-9.306-88.245h-70.536v-256h-105.954v256h-52.796v88.245h52.796v53.127c0 71.771 29.846 114.628 114.688 114.628h70.505v-88.245h-44.123c-32.918 0-35.117-12.438-35.117-35.418v-44.092h79.842z" />
+<glyph unicode="&#xe742;" d="M507.572 348.356l-159.503 104.026-92.070-76.439-91.738 76.439-159.834-104.026 93.365-74.572-93.335-74.752 103.725-67.554v-46.171l148.089-88.516 148.359 88.486v46.622l102.912 67.162-93.305 74.722 93.334 74.572zM350.178 415.036l106.014-69.15-67.222-53.669-107.219 65.957 68.428 56.862zM361.412 273.784l-105.412-65.024-105.412 65.024 105.412 64.874 105.412-64.874zM55.808 345.886l106.225 69.15 68.216-56.832-107.249-65.988-67.192 53.669zM55.778 201.563l67.222 53.88 107.279-66.198-68.246-56.923-106.255 69.24zM374.513 102.385l-118.212-70.565-117.971 70.536v9.487l25.962-16.896 91.769 76.499 92.040-76.499 26.443 17.257v-9.819zM456.222 201.532l-106.044-69.21-68.457 56.923 107.249 66.198 67.252-53.91z" />
+<glyph unicode="&#xe743;" d="M256 480c-141.372 0-256-114.628-256-256s114.628-256 256-256 256 114.628 256 256-114.628 256-256 256zM481.702 220.356c-62.494 13.733-117.339 12.74-164.714 2.771-7.56 18.884-16.143 38.34-25.57 58.127 50.628 19.516 99.147 47.767 136.975 88.365 33.31-39.394 53.489-90.172 53.489-145.619 0-1.235-0.18-2.409-0.18-3.644zM407.281 391.243c-34.937-37.858-80.956-64.301-129.416-82.522-22.889 44.212-50.899 89.148-84.751 132.066 19.998 5.813 41.050 9.095 62.886 9.095 58.248 0 111.195-22.347 151.281-58.639zM163.539 429.854c34.124-42.075 62.102-86.859 85.173-131.102-89.57-27.708-179.682-30.961-214.257-31.021 14.276 72.493 63.368 132.518 129.084 162.124zM30.117 224c0 4.548 0.422 9.036 0.663 13.523 1.958-0.030 4.036-0.030 6.385-0.030 39.334 0 132.578 3.764 225.34 33.551 9.036-18.823 17.408-37.496 24.697-55.537-108.574-33.159-172.755-111.586-196.156-145.348-37.677 40.358-60.928 94.358-60.928 153.841zM113.182 49.197c17.95 27.136 78.336 105.954 185.073 137.637 28.943-78.245 42.315-142.878 47.164-170.195-27.437-11.866-57.645-18.522-89.419-18.522-54.151 0-103.876 19.185-142.818 51.079zM373.459 31.428c-5.964 32.015-19.155 91.618-45.267 162.786 43.49 8.433 93.636 8.674 150.829-4.367-10.27-67.042-49.935-124.356-105.563-158.419z" />
+<glyph unicode="&#xe744;" d="M421.677 144.941c-14.125 20.3-21.203 43.37-21.203 68.608 0 23.371 6.776 44.635 19.998 63.699 7.379 10.752 19.065 22.769 35.087 36.292-10.451 12.951-21.263 23.402-32.015 30.78-19.094 13.221-40.9 19.998-65.536 19.998-15.089 0-32.918-3.704-53.218-10.451-20.329-7.077-35.087-10.481-44.002-10.481-7.108 0-21.263 3.072-42.496 9.246-21.534 6.144-39.394 9.216-54.453 9.216-35.418 0-64.332-14.788-87.371-44.303-23.070-29.846-34.756-68.005-34.756-115.079 0-50.447 15.39-101.828 45.207-154.774 30.449-52.916 60.928-79.692 92.612-79.692 10.149 0 23.703 3.373 40.629 10.481 16.655 6.747 31.382 10.149 43.7 10.149 12.62 0 28.281-3.072 46.442-9.849 18.492-6.445 32.618-9.849 43.099-9.849 26.142 0 52.615 20.028 79.089 60.325 17.829 26.774 30.148 52.615 37.828 76.921-18.131 5.512-34.454 18.432-48.64 38.762zM407.281 45.764c-19.788-30.118-38.942-46.743-53.911-46.743-4.428 0-13.824 1.416-32.557 7.951-20.872 7.8-40.057 11.746-56.983 11.746-16.293 0-34.786-4.156-55.356-12.499-17.468-7.319-26.052-8.101-28.943-8.101-18.914 0-42.526 22.95-66.379 64.362-27.799 49.363-41.322 95.142-41.322 139.987 0 40.237 9.337 71.891 28.371 96.557 17.438 22.317 37.677 32.708 63.639 32.708 12.077 0 27.166-2.65 46.050-8.041 31.654-9.186 43.49-10.421 50.868-10.421 12.8 0 30.419 3.976 53.519 12.017 17.74 5.903 32.437 8.915 43.671 8.915 18.341 0 34.183-4.788 48.49-14.728 1.988-1.386 4.066-2.952 6.144-4.668-6.867-7.108-12.469-13.884-16.926-20.389-16.866-24.275-25.389-51.471-25.389-80.896 0-31.563 8.945-60.416 26.624-85.836 10.661-15.209 22.528-27.347 35.599-36.322-6.536-15.029-14.998-30.298-25.209-45.598zM283.829 360.613c-7.077-2.168-17.529-4.005-31.985-5.24 0.632 30.449 8.613 56.923 24.004 79.059 15.39 22.197 41.201 37.255 76.95 45.568 0.603-2.771 1.204-4.94 1.506-6.776 0-2.139 0.332-3.976 0.332-6.144 0-12.62-3.072-26.774-8.915-41.863-6.144-15.39-15.692-29.546-28.642-42.466-11.084-11.053-22.166-18.432-33.25-22.137z" />
+<glyph unicode="&#xe745;" d="M114.718 308.45h282.594v-205.011c0-18.764-15.119-33.882-33.521-33.882h-23.161v-69.873c0-17.558-14.125-31.684-31.654-31.684-17.558 0-31.774 14.156-31.774 31.684v69.873h-42.406v-69.873c0-17.529-14.215-31.684-31.774-31.684-17.197 0-31.382 14.156-31.382 31.684l-0.271 69.873h-22.799c-18.733 0-33.852 15.089-33.852 33.882v205.011zM70.987 314.293c-17.529 0-31.714-14.186-31.714-31.383v-132.397c0-17.558 14.185-31.684 31.714-31.684s31.383 14.156 31.383 31.684v132.397c0 17.197-14.095 31.382-31.382 31.382zM398.216 319.533h-284.732c0 48.941 29.274 91.437 72.674 113.573l-21.895 40.298c-1.235 2.168-0.632 4.94 1.536 6.174 2.138 0.933 4.94 0.332 6.174-1.868l22.137-40.628c18.823 8.342 39.756 12.95 61.892 12.95s43.068-4.608 61.892-12.921l22.137 40.629c1.235 2.168 4.036 2.771 6.174 1.868 2.168-1.235 2.771-4.006 1.536-6.174l-21.895-40.298c43.129-22.166 72.373-64.662 72.373-113.604zM203.023 382.931c0 6.476-5.21 12.017-11.957 12.017-6.506 0-11.716-5.541-11.716-12.017 0-6.445 5.21-11.987 11.716-11.987 6.746-0.030 11.957 5.512 11.957 11.987zM332.649 382.931c0 6.476-5.211 12.017-11.716 12.017-6.776 0-11.957-5.541-11.957-12.017 0-6.445 5.211-11.987 11.957-11.987 6.505-0.030 11.716 5.512 11.716 11.987zM441.012 314.293c-17.257 0-31.382-13.854-31.382-31.383v-132.397c0-17.558 14.125-31.684 31.382-31.684 17.529 0 31.714 14.156 31.714 31.684v132.397c-0.030 17.529-14.185 31.382-31.714 31.382z" />
+<glyph unicode="&#xe746;" d="M426.587 480h-381.41c-24.907 0-45.176-20.269-45.176-45.176v-421.647c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v383.217l-85.413 83.606zM240.941 449.882v-120.47h90.353v120.47h30.118v-150.588h-240.941v150.588h120.47zM90.353-1.882v180.706h331.294v-180.706h-331.294zM481.882 13.176c0-8.283-6.776-15.059-15.059-15.059h-15.059v210.823h-391.529v-210.823h-15.059c-8.313 0-15.059 6.776-15.059 15.059v421.647c0 8.283 6.746 15.059 15.059 15.059h45.177v-180.706h301.176v180.706h22.769l67.584-66.138v-370.567z" />
+<glyph unicode="&#xe747;" d="M466.824 480h-381.41l-85.413-83.606v-383.217c0-24.908 20.269-45.176 45.176-45.176h421.647c24.908 0 45.176 20.269 45.176 45.176v421.647c0 24.907-20.269 45.176-45.176 45.176zM391.529 449.882v-60.236h-240.941v60.236h240.941zM90.353-1.882v30.118h331.294v-30.118h-331.294zM481.882 13.176c0-8.283-6.747-15.059-15.059-15.059h-15.059v60.236h-391.529v-60.236h-15.059c-8.313 0-15.059 6.776-15.059 15.059v370.567l67.584 66.138h22.769v-90.353h301.176v90.353h45.176c8.313 0 15.059-6.776 15.059-15.059v-421.647zM256 329.412c-58.127 0-105.412-47.285-105.412-105.412s47.285-105.412 105.412-105.412 105.412 47.284 105.412 105.412-47.284 105.412-105.412 105.412zM256 148.706c-41.502 0-75.294 33.762-75.294 75.294s33.792 75.294 75.294 75.294 75.294-33.762 75.294-75.294-33.792-75.294-75.294-75.294z" />
+<glyph unicode="&#xe748;" d="M286.118-16.941c-9.849 1.747-19.998 3.163-30.419 3.163-10.119 0-20.269-1.445-30.388-3.163l3.764 204.77c-53.88 92.943-104.569 187.603-163.9 277.113 10.12-2.62 20.54-4.337 31.262-4.337s21.715 2.048 32.136 4.337c40.538-71.861 84.57-141.613 127.126-212.269 42.857 70.084 88.335 139.867 127.157 212.269 10.12-2.62 20.57-4.066 30.961-4.066 11.023 0 22.317 1.445 33.009 4.066-23.19-31.865-42.285-66.59-62.253-100.473-34.484-58.789-68.367-117.609-102.25-176.64l3.795-204.77z" />
+<glyph unicode="&#xe749;" d="M496.941 224c0-132.819-108.092-240.941-240.941-240.941s-240.941 108.123-240.941 240.941 108.092 240.941 240.941 240.941 240.941-108.123 240.941-240.941zM485.918 224c0 126.644-103.243 229.918-229.918 229.918s-229.918-103.274-229.918-229.918 103.243-229.918 229.918-229.918 229.918 103.274 229.918 229.918zM67.222 308.179l98.696-270.276c-69.12 33.642-116.706 104.358-116.706 186.097 0 29.816 6.475 58.368 18.010 84.179zM379.693 167.529l-20.45-68.849-74.752 222.088c0 0 12.378 0.813 23.673 2.168 11.023 1.356 9.698 17.769-1.325 16.926-33.611-2.409-55.145-2.68-55.145-2.68s-20.148 0.301-54.302 2.71c-11.294 0.813-12.649-16.113-1.356-16.926 10.481-1.084 21.504-2.198 21.504-2.198l32.256-88.185-45.177-135.53-75.294 223.714c0 0 12.379 0.813 23.673 2.168 11.023 1.356 9.698 17.769-1.325 16.926-33.37-2.409-55.145-2.68-55.145-2.68-3.764 0-8.313 0.271-13.162 0.271 36.834 56.229 100.292 93.334 172.635 93.334 53.79 0 102.731-20.721 139.565-54.332-0.813 0-1.868 0-2.68 0-20.179 0-34.695-17.498-34.695-36.593 0-16.926 9.939-31.202 20.42-48.369 8.101-13.733 16.926-31.473 16.926-57.043 0.030-17.679-7.198-38.159-15.842-66.922zM323.192 31.97c0.271-1.054 0.813-2.108 1.356-2.952-21.504-7.529-44.363-11.836-68.578-11.836-20.148 0-39.785 3.012-58.368 8.613l61.862 180.133 63.729-173.959zM462.788 224c0-76.348-41.412-142.788-103.002-178.567l63.187 182.332c10.481 30.148 15.872 53.218 15.872 74.24 0 7.5-0.542 14.517-1.627 21.233 16.173-29.575 25.57-63.217 25.57-99.238z" />
+<glyph unicode="&#xe74a;" d="M485.858 410.7c-17.468 22.166-54.091 23.010-79.661 19.185-20.48-3.404-90.293-34.063-113.755-107.791 41.773 3.404 63.849-3.042 59.633-49.002-1.747-19.576-11.535-40.478-22.166-60.958-12.83-23.372-36.171-69.421-67.313-36.171-27.678 29.817-25.992 86.889-31.924 124.808-3.885 21.324-7.68 47.737-14.517 69.873-5.994 18.764-20.059 41.292-36.623 46.442-18.311 5.15-40.93-2.981-54.121-10.632-41.834-24.757-69.451-59.693-110.351-88.636v-3.012c13.613-6.837 9.396-17.89 20.028-19.606 25.148-3.373 48.941 23.492 65.626-4.638 10.21-17.017 13.192-35.78 19.547-54.151 8.915-24.666 15.39-51.531 22.588-79.661 11.927-48.188 26.444-119.717 68.156-137.246 20.932-8.945 52.887 3.012 68.638 12.83 43.399 25.6 78.005 62.644 106.496 100.954 66.892 89.54 103.123 191.759 108.664 221.154 3.825 20.058 3.404 40.508-8.945 56.26z" />
+<glyph unicode="&#xe74b;" d="M459.385 328.268c0.332-4.548 0.332-9.096 0.332-13.673 0-138.692-105.592-298.526-298.556-298.526-59.452 0-114.688 17.228-161.16 47.104 8.463-0.964 16.595-1.265 25.359-1.265 49.062 0 94.178 16.565 130.259 44.815-46.14 0.964-84.781 31.202-98.093 72.794 6.475-0.964 12.98-1.627 19.757-1.627 9.457 0 18.884 1.295 27.648 3.554-48.068 9.758-84.148 51.983-84.148 102.972 0 0.332 0 0.994 0 1.295 13.974-7.771 30.208-12.649 47.435-13.312-28.251 18.853-46.773 51.019-46.773 87.371 0 19.486 5.21 37.376 14.306 52.977 51.652-63.699 129.295-105.291 216.365-109.809-1.656 7.8-2.62 15.932-2.62 24.064 0 57.796 46.803 104.9 104.93 104.9 30.208 0 57.495-12.649 76.68-33.13 23.702 4.548 46.411 13.312 66.59 25.329-7.8-24.365-24.365-44.845-46.14-57.796 21.142 2.259 41.592 8.101 60.446 16.233-14.306-20.781-32.166-39.334-52.615-54.272z" />
+<glyph unicode="&#xe74c;" d="M274.191 464.941v-121.735h114.236v-75.596h-114.236v-123.603c0-27.919 1.265-45.809 4.397-53.971 2.831-7.861 8.463-14.095 16.293-18.824 10.661-6.565 22.919-9.728 36.714-9.728 24.486 0 48.64 7.861 72.795 23.884v-75.926c-20.721-9.728-39.213-16.625-55.838-20.42-16.655-4.066-34.816-5.933-54.302-5.933-21.956 0-41.382 2.831-58.368 8.463-16.926 5.331-31.382 13.493-43.279 23.522-11.897 10.33-20.359 21.324-24.756 32.918-4.698 11.625-6.897 28.522-6.897 50.507v169.111h-53.339v68.096c18.793 6.235 35.117 15.059 48.61 26.323 13.523 11.626 24.185 25.42 32.346 41.412 8.132 16.324 13.794 36.714 16.926 61.5h68.698z" />
+<glyph unicode="&#xe74d;" d="M496.941 3.147c0-10.993-9.096-20.089-20.089-20.089h-441.705c-10.963 0-20.088 9.096-20.088 20.089v441.705c0 10.993 9.095 20.089 20.088 20.089h441.736c10.963 0 20.089-9.096 20.089-20.089v-441.705zM235.911 404.706c0 5.662-4.397 10.029-10.029 10.029h-150.588c-5.662 0-10.029-4.397-10.029-10.029v-321.265c0-5.632 4.397-10.029 10.029-10.029h150.588c5.662 0 10.029 4.397 10.029 10.029v321.265zM446.735 404.706c0 5.662-4.397 10.029-10.029 10.029h-150.588c-5.662 0-10.029-4.397-10.029-10.029v-200.795c0-5.632 4.367-10.029 10.029-10.029h150.588c5.662 0 10.029 4.397 10.029 10.029v200.795z" />
+<glyph unicode="&#xe74e;" d="M381.289-7.274c0-9.397-0.271-9.397-0.271-9.397v-0.271h-304.369c-9.427 0-9.427 0.271-9.427 0.271h-0.271v197.933h32.557v-166.219h249.555v166.22h32.226v-188.536zM316.507 47.631l-190.102-0.271v40.599l190.102 0.271v-40.599zM321.084 140.092l-3.493-40.327-189.59 17.468 3.764 40.327 189.32-17.468zM333.733 193.34l-10.511-39.303-183.657 49.243 10.481 39.274 183.687-49.212zM357.647 239.601l-20.721-34.937-163.75 96.768 20.691 34.966 163.78-96.798zM397.704 268.092l-33.31-22.859-107.339 157.034 33.611 23.161 107.038-157.334zM445.048 277.489l-40.087-6.988-32.527 187.452 40.056 6.988 32.557-187.452z" />
+<glyph unicode="&#xe74f;" d="M26.564 174.848l-4.186-26.353c-0.211-1.054-0.813-1.868-1.867-1.868s-1.686 0.813-1.867 1.868l-3.584 26.353 3.554 26.774c0.211 1.054 0.843 1.868 1.867 1.868s1.657-0.813 1.867-1.868l4.216-26.774zM45.809 174.848l-5.421-42.436c-0.211-1.054-1.054-1.868-2.078-1.868-1.054 0-1.867 0.813-1.867 2.048l-4.819 42.255c4.819 43.309 4.819 43.309 4.819 43.309 0 1.024 0.813 1.868 1.867 1.868 1.024 0 1.867-0.844 2.078-1.868l5.421-43.309zM64.844 174.848l-5.21-49.574c0-1.235-1.054-2.289-2.319-2.289s-2.289 1.054-2.5 2.289l-4.397 49.574 4.397 51.23c0.211 1.476 1.265 2.5 2.5 2.5 1.265 0 2.319-1.024 2.319-2.5l5.21-51.23zM84.088 174.848l-4.819-51.019c-0.211-1.687-1.445-2.74-2.921-2.74-1.445 0-2.71 1.054-2.71 2.74l-4.397 51.019 4.397 52.706c0 1.686 1.265 2.71 2.71 2.71 1.476 0 2.71-1.024 2.921-2.71l4.819-52.706zM103.334 174.848l-4.397-51.471c-0.211-1.868-1.686-3.343-3.343-3.343s-3.132 1.476-3.132 3.343l-4.186 51.471 4.186 48.911c0 1.716 1.476 3.162 3.132 3.162 1.686 0 3.132-1.476 3.343-3.162l4.397-48.911zM122.971 174.848l-4.397-51.471c0-2.048-1.686-3.764-3.554-3.764-2.078 0-3.554 1.716-3.764 3.764l-3.764 51.471c3.764 79.51 3.764 79.51 3.764 79.51 0.241 2.048 1.686 3.734 3.764 3.734 1.868 0 3.554-1.686 3.554-3.734l4.397-79.51zM142.215 174.426l-3.976-51.050c0-2.289-1.898-3.945-3.976-3.945-2.289 0-3.946 1.656-4.186 3.945l-3.343 51.050c3.343 97.882 3.343 97.882 3.343 97.882 0.211 2.289 1.868 3.976 4.186 3.976 2.078 0 3.976-1.687 3.976-3.976l3.976-97.882zM162.515 174.848l-3.764-50.628c-0.211-2.5-2.078-4.397-4.608-4.397-2.289 0-4.186 1.868-4.397 4.397l-3.343 50.628 3.343 105.834c0 2.5 2.108 4.608 4.397 4.608 2.5 0 4.397-2.108 4.608-4.608l3.764-105.834zM182.393 174.848l-3.373 109.387c-0.18 2.711-2.289 5.029-5 5.029-2.5 0-4.819-2.319-4.819-5.029l-2.952-109.387 2.952-50.417c0.211-2.711 2.319-4.819 4.819-4.819 2.71 0 4.819 2.108 5.030 4.819l3.343 50.417zM202.451 174.848l-3.132-49.995c0-2.921-2.289-5.24-5.24-5.24-2.922 0-5.030 2.319-5.21 5.24l-2.952 49.995 2.952 106.676c0 2.952 2.289 5.24 5.21 5.24 2.952 0 5.24-2.289 5.24-5.24l3.132-106.676zM222.961 174.637l-2.952-49.393c0-3.132-2.5-5.662-5.632-5.662s-5.662 2.53-5.843 5.662l-2.5 49.393 2.5 102.882c0.211 3.343 2.71 5.873 5.843 5.873 3.132 0 5.421-2.53 5.632-5.873l2.952-102.882zM243.23 174.637l-2.5 122.579c0 2.078-1.054 3.976-2.71 5-1.054 0.632-2.108 1.054-3.343 1.054-1.265 0-2.289-0.421-3.343-1.054-1.686-1.054-2.74-2.922-2.74-5l-0.211-1.235-2.108-121.103c0 0 0-0.211 2.319-49.363 0 0 0 0 0-0.241 0-1.235 0.422-2.5 1.265-3.524 1.265-1.476 2.922-2.289 4.819-2.289 1.686 0 3.132 0.813 4.186 1.868 1.265 1.024 1.868 2.5 1.868 4.187l0.211 5 2.289 44.123zM261.452 126.329c0-3.554-2.921-6.476-6.476-6.476s-6.476 2.921-6.716 6.476l-1.235 23.823-1.265 24.486 2.5 133v0.662c0.211 1.868 1.054 3.764 2.53 5 1.024 0.813 2.5 1.476 4.156 1.476 1.054 0 2.319-0.421 3.132-1.054 1.868-1.024 3.132-3.132 3.343-5.421l2.921-133.662-2.892-48.308zM437.76 119.612c-164.202 0-164.382 0-164.382 0-3.554 0.421-6.476 3.132-6.476 6.897v188.084c0 3.524 1.265 5.21 5.873 6.897 11.505 4.578 24.456 7.077 37.858 7.077 54.573 0 99.358-41.803 104.147-95.142 7.108 2.922 14.848 4.608 23.010 4.608 32.618 0 59.181-26.594 59.181-59.422-0.030-32.647-26.594-59-59.212-59z" />
+<glyph unicode="&#xe750;" d="M496.941 83.411c0-55.507-44.875-100.352-100.382-100.352-55.537 0-100.382 44.845-100.382 100.352 0 3.493 0.301 7.228 0.603 10.661l-112.941 56.5c-17.86-16.625-42.044-26.986-68.397-26.986-55.537 0-100.382 44.845-100.382 100.412 0 55.507 44.845 100.352 100.382 100.352 26.353 0 50.508-10.33 68.397-26.955l112.941 56.44c-0.301 3.494-0.603 7.228-0.603 10.662 0 55.567 44.845 100.412 100.382 100.412 55.507 0 100.382-44.845 100.382-100.412 0-55.537-44.875-100.382-100.382-100.382-26.353 0-50.507 10.361-68.397 26.986l-112.941-56.47c0.301-3.464 0.632-7.228 0.632-10.661 0-3.464-0.332-7.228-0.632-10.661l112.941-56.531c17.89 16.655 42.075 27.015 68.397 27.015 55.507 0.060 100.382-44.785 100.382-100.382z" />
+<glyph unicode="&#xe751;" d="M496.941 73.412c0-49.875-40.478-90.353-90.353-90.353h-301.176c-49.875 0-90.353 40.478-90.353 90.353v301.176c0 49.875 40.478 90.353 90.353 90.353h301.176c49.875 0 90.353-40.478 90.353-90.353v-301.176zM349.786 197.316c-17.558 0-33.551-6.897-45.478-18.191l-75.596 37.647c0.301 2.53 0.602 4.699 0.602 7.228s-0.301 4.698-0.632 7.228l75.595 37.617c11.926-11.294 27.919-18.191 45.478-18.191 36.714 0 66.831 30.087 66.831 67.132 0 36.714-30.118 66.831-66.831 66.831-37.014 0-67.132-30.118-67.132-66.831 0-2.5 0.301-4.699 0.632-7.198l-75.596-37.647c-11.897 10.993-27.889 17.89-45.447 17.89-36.714 0-66.831-29.786-66.831-66.831s30.117-66.831 66.831-66.831c17.559 0 33.551 6.897 45.477 17.89l75.595-37.647c-0.332-2.5-0.632-4.699-0.632-7.198 0-36.714 30.118-66.831 67.132-66.831 36.714 0 66.831 30.118 66.831 66.831 0 37.014-30.118 67.102-66.831 67.102z" />
+<glyph unicode="&#xe752;" d="M469.263 180.751c0.723-4.849 1.204-9.939 1.204-14.788 0-39.394-23.070-75.806-64.603-103.002-40.569-26.474-93.997-41.050-150.829-41.050s-110.501 14.577-150.829 41.050c-41.803 27.196-64.603 63.608-64.603 103.002 0 5.331 0.482 10.661 1.205 16.022-15.3 9.698-25.75 26.955-25.75 46.411 0 30.328 24.546 54.875 54.874 54.875 13.613 0 26.263-5.12 35.96-13.372 38.882 24.787 89.63 38.882 143.781 39.876l32.557 102.701c1.445 4.608 6.325 7.288 11.173 6.325l84.3-19.908c7.017 16.023 23.070 27.196 41.532 27.196 25.028 0 45.176-20.42 45.176-45.207 0-24.998-20.149-45.418-45.176-45.418-24.787 0-44.935 20.179-45.176 44.936l-76.529 17.98-28.16-88.877c51.23-2.168 99.087-16.293 136.012-40.327 9.698 8.734 22.588 14.095 36.683 14.095 30.329 0 54.875-24.546 54.875-54.875 0-20.42-11.173-38.159-27.678-47.646zM46.14 201.412c7.77 20.872 22.588 40.327 43.7 57.103-5.541 3.855-12.62 6.053-19.908 6.053-19.908 0-36.172-16.263-36.172-36.172 0-10.722 4.849-20.42 12.379-26.985zM451.764 165.964c0 32.527-19.938 63.608-56.109 87.221-37.406 24.275-87.431 37.858-140.619 37.858s-103.244-13.613-140.649-37.858c-36.202-23.582-56.109-54.663-56.109-87.221 0-32.798 19.908-63.88 56.109-87.462 37.406-24.275 87.431-37.888 140.619-37.888s103.243 13.613 140.619 37.888c36.202 23.582 56.139 54.663 56.139 87.462zM183.627 158.916c-18.221 0-33.762 14.818-33.762 33.039 0 18.432 15.541 33.762 33.762 33.762s33.28-15.33 33.28-33.762c0-18.221-15.059-33.039-33.28-33.039zM333.733 110.547c3.644-3.614 3.644-9.698 0-13.342-16.264-16.264-41.532-24.034-77.493-24.034h-0.482c-35.96 0-61.229 7.771-77.493 24.034-3.644 3.644-3.644 9.728 0 13.342 3.644 3.675 9.457 3.675 13.131 0 12.619-12.62 33.521-18.673 64.362-18.673h0.482c30.63 0 51.742 6.053 64.361 18.673 3.644 3.675 9.457 3.675 13.132 0zM362.135 191.955c0-18.191-15.059-33.039-33.28-33.039s-33.762 14.818-33.762 33.039c0 18.432 15.541 33.762 33.762 33.762s33.28-15.33 33.28-33.762zM392.734 380.883c0-14.517 11.897-26.443 26.474-26.443s26.474 11.926 26.474 26.443c0 14.577-11.926 26.504-26.474 26.504-14.577 0-26.474-11.927-26.474-26.504zM478.238 228.397c0 19.908-16.264 36.171-36.171 36.171-7.771 0-15.059-2.439-20.901-6.806 20.901-16.775 35.69-36.442 43.249-57.826 8.493 6.837 13.824 17.046 13.824 28.461z" />
+<glyph unicode="&#xe753;" d="M256 464.941c-133.060 0-240.941-107.851-240.941-240.941 0-98.635 59.332-183.417 144.233-220.672-0.662 16.836-0.15 37.014 4.186 55.326 4.608 19.546 30.991 131.283 30.991 131.283s-7.71 15.39-7.71 38.129c0 35.72 20.721 62.343 46.501 62.343 21.925 0 32.497-16.444 32.497-36.141 0-22.016-14.065-54.995-21.293-85.504-6.024-25.57 12.83-46.411 38.038-46.411 45.659 0 76.409 58.609 76.409 128.090 0 52.796-35.599 92.34-100.262 92.34-73.096 0-118.603-54.543-118.603-115.38 0-21.022 6.174-35.81 15.872-47.255 4.428-5.271 5.060-7.409 3.464-13.433-1.144-4.428-3.825-15.119-4.909-19.336-1.626-6.114-6.565-8.283-12.047-6.053-33.702 13.764-49.363 50.628-49.363 92.070 0 68.428 57.706 150.528 172.213 150.528 91.979 0 152.516-66.59 152.516-138.029 0-94.54-52.555-165.135-129.988-165.135-26.022 0-50.507 14.095-58.88 30.058 0 0-13.975-55.537-16.926-66.228-5.12-18.582-15.119-37.135-24.275-51.622 21.655-6.445 44.544-9.909 68.276-9.909 133.060 0 240.941 107.851 240.941 240.941s-107.882 240.941-240.941 240.941z" />
+<glyph unicode="&#xe754;" d="M0 409.555l209.829 28.883v-202.752h-209.829v173.869zM0 38.445l209.829-28.883v200.283h-209.829v-171.399zM232.93 441.54v-205.854h279.070v244.315l-279.070-38.46zM232.93 6.46l279.070-38.46v241.845h-279.070v-203.385z" />
+<glyph unicode="&#xe755;" d="M417.099 20.706c-15.33-7.83-35.78-25.058-43.309-32.286-5.662-5.391-29.034-8.101-42.225-1.356-15.33 7.83-7.259 20.209-30.931 20.962-11.836 0.301-23.401 0.301-34.966 0.301-10.21-0.301-20.42-0.813-30.931-1.054-35.478-0.813-38.972-23.702-61.862-22.889-15.601 0.542-35.208 12.921-69.12 19.877-23.672 4.879-46.502 6.174-51.38 16.685-4.819 10.511 5.933 22.317 6.716 32.527 0.813 13.733-10.21 32.286-2.139 39.303 6.987 6.174 21.775 1.627 31.443 6.957 10.21 5.903 14.516 10.511 14.516 23.13 3.764-12.86-0.271-23.341-8.614-28.461-5.12-3.223-14.516-4.849-22.347-4.066-6.174 0.572-9.939-0.241-11.565-2.68-2.41-2.952-1.627-8.342 1.355-15.33 2.952-6.988 6.445-11.565 5.903-20.149-0.271-8.613-9.939-18.853-8.313-26.112 0.542-2.711 3.222-5.12 9.939-6.988 10.752-2.952 30.388-5.903 49.483-10.511 21.263-5.361 43.309-15.029 57.043-13.161 40.869 5.662 17.468 49.483 11.023 59.934-34.696 54.363-57.555 89.841-75.836 75.866-4.578-3.764-4.849 9.156-4.578 14.276 0.813 17.769 9.698 24.185 15.059 37.918 10.21 26.112 18.010 55.928 33.611 71.258 11.655 15.089 29.937 39.544 33.46 52.435-2.982 27.979-3.795 57.555-4.307 83.335-0.542 27.708 3.764 51.953 34.966 68.849 7.5 4.066 17.438 5.662 27.949 5.662 18.552 0.301 39.244-5.12 52.435-14.788 20.992-15.601 34.154-48.67 32.557-72.313-1.084-18.553 2.139-37.647 8.072-57.555 6.988-23.401 18.041-39.786 35.78-58.609 21.263-22.588 37.918-66.952 42.767-95.172 4.307-26.413-1.627-42.797-7.259-43.611-8.613-1.295-13.974-28.461-40.87-27.407-17.197 0.813-18.824 11.023-23.673 19.908-7.8 13.704-15.601 9.397-18.553-5.12-1.627-7.259-0.572-18.041 1.868-26.052 4.849-16.956 3.223-32.828 0.271-52.465-5.662-37.105 26.082-44.092 47.345-26.323 20.962 17.438 25.54 20.149 51.892 29.305 40.056 13.733 26.624 25.811 5.090 33.069-19.365 6.476-20.149 39.033-13.192 45.207 1.627-34.966 19.908-40.087 27.437-44.906 33.069-20.51-12.378-37.466-32.015-47.405zM371.923 150.573c7.259 24.245 4.036 33.882-0.783 56.772-3.764 17.197-19.637 40.629-32.015 47.857 3.223-2.68 9.156-10.481 15.33-22.287 10.752-20.209 21.504-50.026 14.517-74.782-2.68-9.637-9.125-10.993-13.433-11.264-18.824-2.168-7.8 22.588-15.601 56.17-8.885 37.677-18.010 40.358-20.149 43.309-11.084 48.911-23.161 44.062-26.684 62.344-2.952 16.414 14.276 29.846-9.125 34.424-7.259 1.356-17.468 8.613-21.504 9.156-4.036 0.512-6.204 27.166 8.854 27.979 14.788 1.084 17.498-16.685 14.788-23.702-4.276-6.957 0.271-9.668 7.56-7.228 5.903 1.867 2.139 17.468 3.493 19.606-3.764 22.588-13.192 25.811-22.86 27.708-37.135-2.952-20.45-43.851-24.214-40.087-5.391 5.662-20.962 0.542-20.962 4.066 0.271 20.962-6.746 33.069-16.414 33.34-10.752 0.271-15.059-14.788-15.601-23.371-0.813-8.072 4.578-25.058 8.613-23.703 2.68 0.813 7.258 6.204 2.41 5.903-2.41 0-6.174 5.933-6.716 12.921-0.271 7.017 2.44 14.005 11.565 13.733 10.481-0.271 10.481-21.233 9.397-22.046-3.464-2.41-7.8-7.018-8.343-7.801-3.464-5.662-10.18-7.228-12.891-9.698-4.578-4.819-5.632-10.21-2.138-12.077 12.348-6.988 8.313-15.029 25.54-15.631 11.294-0.542 19.607 1.626 27.437 4.036 5.903 1.868 25.028 5.903 29.033 12.921 1.868 2.952 4.036 2.952 5.361 2.138 2.68-1.325 3.223-6.445-3.493-8.072-9.397-2.71-18.824-7.83-27.407-11.053-8.343-3.464-11.023-4.819-18.823-6.144-17.739-3.223-30.9 6.445-19.095-5.12 4.036-3.764 7.8-6.174 18.011-5.933 22.588 0.813 47.616 28.010 50.026 15.902 0.512-2.68-7.017-5.903-12.921-8.885-20.962-10.21-35.75-30.66-49.212-23.642-12.107 6.445-24.185 36.322-23.944 22.829 0.271-20.691-27.166-38.972-14.517-62.644-8.343-2.108-26.895-41.683-29.576-62.103-1.626-11.836 1.084-26.353-1.898-34.425-4.036-11.836-22.317 11.294-16.384 39.514 1.054 4.819 0 5.933-1.356 3.464-7.258-13.161-3.222-31.714 2.68-44.604 2.44-5.662 8.613-8.072 13.191-12.921 9.397-10.722 46.501-38.189 52.977-44.906 8.343-7.8 5.933-26.052-11.294-27.949 8.885-16.685 17.468-18.312 17.227-45.447 10.21 5.361 6.204 17.197 1.868 24.697-2.982 5.421-6.716 7.83-5.933 9.156 0.542 0.813 5.933 5.421 8.885 1.868 9.125-10.21 26.353-12.077 44.635-9.668 18.553 2.168 38.46 8.613 47.586 23.401 4.307 6.988 7.259 9.397 9.156 8.072 2.139-1.054 2.981-5.903 2.68-13.974-0.271-8.613-3.764-17.498-6.174-24.757-2.44-8.342-3.223-13.974 4.849-14.276 2.139 15.089 6.445 29.877 7.529 44.935 1.356 17.197-11.023 48.911 2.44 64.813 3.493 4.307 7.771 4.819 13.704 4.819 0.783 21.534 33.882 19.877 44.906 11.023 0 4.879-10.481 9.427-14.788 11.324zM152.486 228.006c-1.898-3.464-6.716-6.144-2.982-6.716 1.356-0.271 5.12 3.012 6.746 6.716 1.325 4.578 2.68 7.018 0.542 7.831-2.44 0.783-1.898-4.036-4.307-7.831zM214.046 373.775c-3.222 0.813-2.68-4.005-1.054-3.493 1.084 0 2.44-1.627 1.868-4.036-0.542-3.222-0.271-5.421 2.168-5.421 0.271 0 0.783 0 0.783 0.813 1.114 6.776-2.138 11.596-3.764 12.137zM221.334 349.048c-2.68-0.271-2.168 5.933 6.445 5.391-5.391-0.542-3.494-5.391-6.445-5.391zM243.381 353.626c7.8 3.464 10.481-1.897 7.8-2.981-2.71-0.783-2.982 4.337-7.8 2.981zM275.908 375.401c-3.493-0.301-2.409-1.868-0.783-2.409 2.139-0.603 4.307-4.337 4.849-8.343 0-0.542 2.68 0.542 2.68 1.356 0.241 6.415-5.391 9.638-6.747 9.397zM291.509 433.468c-2.139 2.168-4.307 4.066-6.445 4.066-5.391-0.542-2.711-6.174-3.493-8.885-1.084-2.952-5.090-5.391-2.409-7.529 2.44-1.868 4.036 2.952 9.156 4.819 1.325 0.572 7.529-0.241 8.854 2.71 0.241 1.356-3.223 2.952-5.662 4.819zM321.356 314.654c-5.090 3.192-6.174 8.584-8.041 6.716-5.662-6.174 6.988-19.095 12.348-20.209 3.223-0.542 5.662 3.795 4.849 7.56-1.084 5.090-4.849 3.222-9.156 5.933z" />
+<glyph unicode="&#xe756;" d="M496.941 152.712c0-51.531-42.587-93.425-94.81-93.425-1.868 0-3.524 0.241-5.18 0.241h-286.358c-52.706 3.072-95.533 43.309-95.533 95.533 0 35.057 19.064 65.656 47.526 82.341-1.867 6.114-2.831 12.469-2.831 19.305 0 35.99 29.425 65.174 66.108 65.174 15.059 0 29.184-5.18 40.478-13.643 23.070 47.526 72.012 80.474 129.175 80.474 79.3 0 143.3-63.308 143.3-141.191 0-2.831-0.241-5.662-0.241-8.463 34.123-14.125 58.368-47.525 58.368-86.347zM193.898 114.341c23.070 0 39.756 7.288 56.47 23.281-6.837 8.463-14.366 16.716-21.413 25.178-9.637-9.397-20.239-15.3-33.882-15.3-16.715 0-31.052 11.053-31.052 28.461 0 17.167 14.366 28.461 30.6 28.461 51.772 0 62.825-90.353 138.12-90.353 36.714 0 67.764 23.070 67.764 61.651 0 39.063-31.292 61.892-68.457 61.892-23.070 0-40.237-6.596-56.712-22.829 7.529-8.222 14.577-16.926 21.895-25.419 9.397 9.186 19.998 15.059 33.401 15.059 15.541 0 31.051-11.053 31.051-27.527 0-18.131-13.192-29.636-30.81-29.636-50.116 0-63.518 90.353-136.945 90.353-36.472 0-68.698-22.348-68.698-61.169-0.060-39.725 31.232-62.103 68.668-62.103z" />
+<glyph unicode="&#xe757;" d="M300.544 118.257l-47.375-47.676-9.397-9.397c-27.618-27.286-66.198-36.714-101.316-27.919-6.626-28.883-32.346-50.206-63.066-50.206-35.449 0-64.332 28.883-64.332 64.632 0 30.389 21.022 56.139 49.573 62.705-9.096 35.478 0.301 74.391 27.919 101.978l3.764 3.764 47.375-47.707-3.434-3.433c-15.692-15.36-15.36-40.448 0-56.109 15.36-15.39 40.478-15.39 55.838 0l9.427 9.397 47.375 47.707 50.508 50.176 47.375-47.707-50.236-50.206zM247.537 378.654l-47.676-47.646-3.795 3.764c-15.36 15.36-40.478 15.36-55.838 0-15.36-15.39-15.36-40.81 0-56.17l106.978-106.978-47.345-47.676-50.507 50.206-47.375 47.646-9.427 9.397c-28.883 28.551-37.647 69.662-26.684 106.375-28.852 6.264-50.176 31.985-50.176 62.735 0 35.78 28.883 64.632 64.332 64.632 32.316 0 58.669-23.522 63.669-53.971 34.816 8.162 72.794-1.596 100.081-28.522l3.764-3.795zM440.471 336.308c10.361-36.051 1.235-76.529-27.286-105.080l-3.764-3.764-47.375 47.707 3.764 3.734c15.36 15.39 15.36 40.508 0 55.868-15.36 15.36-40.478 15.36-55.838 0l-107.309-107.34-47.676 47.707 50.507 50.206 47.676 47.646 9.096 9.427c28.551 28.522 69.331 37.647 105.743 26.956 4.367 31.413 31.353 55.567 64 55.567 35.449 0 64.332-28.883 64.332-64.632-0.030-32.618-24.486-59.603-55.868-64zM432.61-16.941c-31.353 0-57.404 22.257-63.368 51.772-36.382-11.264-78.125-2.53-106.978 26.353l-3.433 3.764 47.375 47.676 3.764-3.735c15.36-15.39 40.478-15.39 55.838 0 15.36 15.36 15.36 40.448 0 55.838l-9.397 9.427-97.913 97.852 47.676 47.707 97.882-97.913 9.125-9.397c27.286-27.286 37.014-65.897 28.22-101.014 31.382-4.397 55.537-31.082 55.537-63.668 0-35.78-28.853-64.662-64.332-64.662z" />
+<glyph unicode="&#xe758;" d="M468.028 464.941l-38.55-433.062-174.080-48.82-172.875 48.82-38.55 433.062h424.057zM389.12 376.425h-266.24l14.155-160.828h184.35l-6.686-68.638-59.302-16.022-59.030 15.993-3.916 42.135h-52.676l6.626-83.697 109.026-30.118h1.175v0.301l108.152 29.817 15.059 163.84h-193.988l-4.518 54.513h202.993l4.819 52.706z" />
+<glyph unicode="&#xe759;" d="M256 464.941c-133.060 0-240.941-107.911-240.941-240.941 0-133.060 107.882-240.941 240.941-240.941s240.941 107.882 240.941 240.941c0 133.029-107.882 240.941-240.941 240.941zM163.629 149.339c-41.894 0-75.867 33.913-75.867 75.836 0 41.894 33.972 75.836 75.867 75.836s75.806-33.942 75.806-75.836c0-41.924-33.942-75.836-75.806-75.836zM353.882 149.339c-41.894 0-75.836 33.913-75.836 75.836 0 41.894 33.942 75.836 75.836 75.836s75.836-33.942 75.836-75.836c0-41.924-33.942-75.836-75.836-75.836z" />
+<glyph unicode="&#xe75a;" d="M0 419.764v-391.529h512v391.529h-512zM255.82 184.335l-207.691 205.312h416.226l-208.535-205.312zM173.327 223.518l-143.209-141.011v282.594l143.209-141.583zM194.74 202.346l61.019-60.325 60.115 59.212 144.565-142.878h-411.919l146.221 143.993zM337.348 222.344l144.535 142.306v-285.124l-144.534 142.818z" />
+<glyph unicode="&#xe75b;" d="M257.897-16.941c-111.978 0-212.691 88.124-212.691 207.993 0 119.688 93.304 175.074 110.592 184.139 20.601 10.963 35.418 16.745 58.73 35.388 11.535 9.065 21.143 22.257 24.184 54.362 16.715-20.028 36.774-43.339 51.019-52.977 23.341-15.36 46.683-21.413 71.077-36.774 14.818-9.065 105.954-64.753 105.954-187.964 0-122.94-97.159-204.167-208.866-204.167zM422.55 181.745c-21.956 0-66.409-45.568-89.721-45.839-27.136-0.542-64.723 53.82-119.085 53.308-42.827-0.301-76.559-34.334-77.132-70.565-0.271-20.329 6.325-35.418 20.329-44.996 9.337-6.295 17.829-10.149 45.538-10.149 46.11 0 104.568 57.103 131.464 56.23 21.384-0.783 54.573-53.248 71.349-54.332 13.161-1.084 20.028 4.94 31.262 21.113 10.963 16.474 15.661 42.285 15.661 56.832 0 14.245-6.325 38.4-29.666 38.4zM358.912 36.036c-9.337-6.867-30.208-15.39-59.844-15.39s-43.611 6.325-52.947 13.462c-1.356 1.084-0.813 1.084-3.584 1.084-3.012 0-4.638-1.385-7.108-3.283-2.198-1.928-3.283-6.596 0-9.878 20.299-18.643 54.332-17.017 79.3-14.788 25.269 2.469 46.683 17.257 48.851 19.456 3.283 3.252 2.469 6.024 1.897 7.951-0.542 1.928-2.199 4.638-6.565 1.385zM344.064 82.929c-5.481 3.554-13.402 4.126-20.812 4.126-7.439 0-11.535 0.542-19.456-2.74-8.012-3.283-16.233-10.692-21.413-15.39-5.24-4.638-6.053-8.222-3.313-12.077 2.771-3.524 5.783-1.325 13.462 5.24 7.951 6.325 13.192 12.077 29.365 12.077s18.944-6.053 22.197-12.077c3.313-6.024 3.584-6.867 6.867-5.24 3.855 1.928 5.783 4.699 3.855 9.397-1.957 4.638-5.24 12.86-10.752 16.685z" />
+<glyph unicode="&#xe75c;" d="M15.059 198.58l141.764-92.461 99.177 82.703-142.908 88.245zM156.822 448.015l-141.764-92.491 98.033-78.457 142.908 88.154zM496.941 355.524l-141.733 92.491-99.207-82.793 142.938-88.154zM256 188.822l99.207-82.703 141.733 92.461-98.003 78.486zM256.301 171.023l-99.478-82.492-42.556 27.829v-31.172l142.035-85.203 142.065 85.203v31.172l-42.587-27.829z" />
+<glyph unicode="&#xe75d;" d="M496.941 442.052l-72.493-363.339-219.166-72.764-190.223 72.764 19.365 97.069h80.956l-7.921-40.057 114.989-43.882 132.457 43.882 18.492 92.401h-329.156l15.782 80.896h329.487l10.39 52.103h-329.216l16.052 80.926h410.202z" />
+<glyph unicode="&#xe75e;" d="M300.243 58.353h-30.118c0 97.37-80.655 176.58-179.772 176.58v30.118c115.742 0 209.89-92.732 209.89-206.697zM90.353 374.588v-30.117c160.436 0 286.118-125.681 286.118-286.118h30.118c0 177.333-138.902 316.236-316.236 316.236zM180.706 103.5c0 24.908-20.209 45.207-45.086 45.207-24.968 0-45.267-20.3-45.267-45.207s20.299-45.176 45.267-45.176c24.877 0 45.086 20.269 45.086 45.176zM150.588 103.5c0-8.283-6.716-15.059-14.969-15.059-8.343 0-15.149 6.776-15.149 15.059 0 8.313 6.806 15.089 15.149 15.089 8.252 0 14.969-6.776 14.969-15.089zM512 13.176v421.647c0 24.908-20.269 45.176-45.176 45.176h-421.647c-24.907 0-45.176-20.269-45.176-45.176v-421.647c0-24.907 20.269-45.176 45.176-45.176h421.647c24.907 0 45.176 20.269 45.176 45.176zM466.824 449.882c8.313 0 15.059-6.776 15.059-15.059v-421.647c0-8.283-6.747-15.059-15.059-15.059h-421.647c-8.313 0-15.059 6.776-15.059 15.059v421.647c0 8.282 6.746 15.059 15.059 15.059h421.647z" />
+<glyph unicode="&#xe75f;" d="M336.505-32h-30.118c0 166.068-137.457 301.176-306.387 301.176v30.118c185.555 0 336.505-148.63 336.505-331.294zM0 480v-30.118c270.216 0 481.882-211.667 481.882-481.882h30.118c0 287.082-224.918 512-512 512zM120.471 28.205c0 33.25-26.986 60.266-60.115 60.266-33.28 0-60.356-27.015-60.356-60.265 0-33.22 27.076-60.205 60.356-60.205 33.13 0 60.115 26.986 60.115 60.205zM90.353 28.205c0-16.595-13.463-30.087-29.997-30.087-16.685 0-30.238 13.493-30.238 30.087 0 16.625 13.553 30.148 30.238 30.148 16.535 0 29.997-13.523 29.997-30.148z" />
</font></defs></svg> \ No newline at end of file
diff --git a/static/plugins/themify-icons/themify-icons.css b/static/plugins/themify-icons/themify-icons.css
index 9f2ea36..088bc0c 100644
--- a/static/plugins/themify-icons/themify-icons.css
+++ b/static/plugins/themify-icons/themify-icons.css
@@ -1,1434 +1,1434 @@
-@font-face {
- font-family: 'themify';
- src: url('fonts/themify.eot?-fvbane');
- src: url('fonts/themify.eot?#iefix-fvbane') format('embedded-opentype'),
- url('fonts/themify.woff?-fvbane') format('woff'),
- url('fonts/themify.ttf?-fvbane') format('truetype'),
- url('fonts/themify.svg?-fvbane#themify') format('svg');
- font-weight: normal;
- font-style: normal;
- font-display: swap;
-}
-
-[class^="ti-"],
-[class*=" ti-"] {
- font-family: 'themify';
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
-
- /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.ti-wand:before {
- content: "\e600";
-}
-
-.ti-volume:before {
- content: "\e601";
-}
-
-.ti-user:before {
- content: "\e602";
-}
-
-.ti-unlock:before {
- content: "\e603";
-}
-
-.ti-unlink:before {
- content: "\e604";
-}
-
-.ti-trash:before {
- content: "\e605";
-}
-
-.ti-thought:before {
- content: "\e606";
-}
-
-.ti-target:before {
- content: "\e607";
-}
-
-.ti-tag:before {
- content: "\e608";
-}
-
-.ti-tablet:before {
- content: "\e609";
-}
-
-.ti-star:before {
- content: "\e60a";
-}
-
-.ti-spray:before {
- content: "\e60b";
-}
-
-.ti-signal:before {
- content: "\e60c";
-}
-
-.ti-shopping-cart:before {
- content: "\e60d";
-}
-
-.ti-shopping-cart-full:before {
- content: "\e60e";
-}
-
-.ti-settings:before {
- content: "\e60f";
-}
-
-.ti-search:before {
- content: "\e610";
-}
-
-.ti-zoom-in:before {
- content: "\e611";
-}
-
-.ti-zoom-out:before {
- content: "\e612";
-}
-
-.ti-cut:before {
- content: "\e613";
-}
-
-.ti-ruler:before {
- content: "\e614";
-}
-
-.ti-ruler-pencil:before {
- content: "\e615";
-}
-
-.ti-ruler-alt:before {
- content: "\e616";
-}
-
-.ti-bookmark:before {
- content: "\e617";
-}
-
-.ti-bookmark-alt:before {
- content: "\e618";
-}
-
-.ti-reload:before {
- content: "\e619";
-}
-
-.ti-plus:before {
- content: "\e61a";
-}
-
-.ti-pin:before {
- content: "\e61b";
-}
-
-.ti-pencil:before {
- content: "\e61c";
-}
-
-.ti-pencil-alt:before {
- content: "\e61d";
-}
-
-.ti-paint-roller:before {
- content: "\e61e";
-}
-
-.ti-paint-bucket:before {
- content: "\e61f";
-}
-
-.ti-na:before {
- content: "\e620";
-}
-
-.ti-mobile:before {
- content: "\e621";
-}
-
-.ti-minus:before {
- content: "\e622";
-}
-
-.ti-medall:before {
- content: "\e623";
-}
-
-.ti-medall-alt:before {
- content: "\e624";
-}
-
-.ti-marker:before {
- content: "\e625";
-}
-
-.ti-marker-alt:before {
- content: "\e626";
-}
-
-.ti-arrow-up:before {
- content: "\e627";
-}
-
-.ti-arrow-right:before {
- content: "\e628";
-}
-
-.ti-arrow-left:before {
- content: "\e629";
-}
-
-.ti-arrow-down:before {
- content: "\e62a";
-}
-
-.ti-lock:before {
- content: "\e62b";
-}
-
-.ti-location-arrow:before {
- content: "\e62c";
-}
-
-.ti-link:before {
- content: "\e62d";
-}
-
-.ti-layout:before {
- content: "\e62e";
-}
-
-.ti-layers:before {
- content: "\e62f";
-}
-
-.ti-layers-alt:before {
- content: "\e630";
-}
-
-.ti-key:before {
- content: "\e631";
-}
-
-.ti-import:before {
- content: "\e632";
-}
-
-.ti-image:before {
- content: "\e633";
-}
-
-.ti-heart:before {
- content: "\e634";
-}
-
-.ti-heart-broken:before {
- content: "\e635";
-}
-
-.ti-hand-stop:before {
- content: "\e636";
-}
-
-.ti-hand-open:before {
- content: "\e637";
-}
-
-.ti-hand-drag:before {
- content: "\e638";
-}
-
-.ti-folder:before {
- content: "\e639";
-}
-
-.ti-flag:before {
- content: "\e63a";
-}
-
-.ti-flag-alt:before {
- content: "\e63b";
-}
-
-.ti-flag-alt-2:before {
- content: "\e63c";
-}
-
-.ti-eye:before {
- content: "\e63d";
-}
-
-.ti-export:before {
- content: "\e63e";
-}
-
-.ti-exchange-vertical:before {
- content: "\e63f";
-}
-
-.ti-desktop:before {
- content: "\e640";
-}
-
-.ti-cup:before {
- content: "\e641";
-}
-
-.ti-crown:before {
- content: "\e642";
-}
-
-.ti-comments:before {
- content: "\e643";
-}
-
-.ti-comment:before {
- content: "\e644";
-}
-
-.ti-comment-alt:before {
- content: "\e645";
-}
-
-.ti-close:before {
- content: "\e646";
-}
-
-.ti-clip:before {
- content: "\e647";
-}
-
-.ti-angle-up:before {
- content: "\e648";
-}
-
-.ti-angle-right:before {
- content: "\e649";
-}
-
-.ti-angle-left:before {
- content: "\e64a";
-}
-
-.ti-angle-down:before {
- content: "\e64b";
-}
-
-.ti-check:before {
- content: "\e64c";
-}
-
-.ti-check-box:before {
- content: "\e64d";
-}
-
-.ti-camera:before {
- content: "\e64e";
-}
-
-.ti-announcement:before {
- content: "\e64f";
-}
-
-.ti-brush:before {
- content: "\e650";
-}
-
-.ti-briefcase:before {
- content: "\e651";
-}
-
-.ti-bolt:before {
- content: "\e652";
-}
-
-.ti-bolt-alt:before {
- content: "\e653";
-}
-
-.ti-blackboard:before {
- content: "\e654";
-}
-
-.ti-bag:before {
- content: "\e655";
-}
-
-.ti-move:before {
- content: "\e656";
-}
-
-.ti-arrows-vertical:before {
- content: "\e657";
-}
-
-.ti-arrows-horizontal:before {
- content: "\e658";
-}
-
-.ti-fullscreen:before {
- content: "\e659";
-}
-
-.ti-arrow-top-right:before {
- content: "\e65a";
-}
-
-.ti-arrow-top-left:before {
- content: "\e65b";
-}
-
-.ti-arrow-circle-up:before {
- content: "\e65c";
-}
-
-.ti-arrow-circle-right:before {
- content: "\e65d";
-}
-
-.ti-arrow-circle-left:before {
- content: "\e65e";
-}
-
-.ti-arrow-circle-down:before {
- content: "\e65f";
-}
-
-.ti-angle-double-up:before {
- content: "\e660";
-}
-
-.ti-angle-double-right:before {
- content: "\e661";
-}
-
-.ti-angle-double-left:before {
- content: "\e662";
-}
-
-.ti-angle-double-down:before {
- content: "\e663";
-}
-
-.ti-zip:before {
- content: "\e664";
-}
-
-.ti-world:before {
- content: "\e665";
-}
-
-.ti-wheelchair:before {
- content: "\e666";
-}
-
-.ti-view-list:before {
- content: "\e667";
-}
-
-.ti-view-list-alt:before {
- content: "\e668";
-}
-
-.ti-view-grid:before {
- content: "\e669";
-}
-
-.ti-uppercase:before {
- content: "\e66a";
-}
-
-.ti-upload:before {
- content: "\e66b";
-}
-
-.ti-underline:before {
- content: "\e66c";
-}
-
-.ti-truck:before {
- content: "\e66d";
-}
-
-.ti-timer:before {
- content: "\e66e";
-}
-
-.ti-ticket:before {
- content: "\e66f";
-}
-
-.ti-thumb-up:before {
- content: "\e670";
-}
-
-.ti-thumb-down:before {
- content: "\e671";
-}
-
-.ti-text:before {
- content: "\e672";
-}
-
-.ti-stats-up:before {
- content: "\e673";
-}
-
-.ti-stats-down:before {
- content: "\e674";
-}
-
-.ti-split-v:before {
- content: "\e675";
-}
-
-.ti-split-h:before {
- content: "\e676";
-}
-
-.ti-smallcap:before {
- content: "\e677";
-}
-
-.ti-shine:before {
- content: "\e678";
-}
-
-.ti-shift-right:before {
- content: "\e679";
-}
-
-.ti-shift-left:before {
- content: "\e67a";
-}
-
-.ti-shield:before {
- content: "\e67b";
-}
-
-.ti-notepad:before {
- content: "\e67c";
-}
-
-.ti-server:before {
- content: "\e67d";
-}
-
-.ti-quote-right:before {
- content: "\e67e";
-}
-
-.ti-quote-left:before {
- content: "\e67f";
-}
-
-.ti-pulse:before {
- content: "\e680";
-}
-
-.ti-printer:before {
- content: "\e681";
-}
-
-.ti-power-off:before {
- content: "\e682";
-}
-
-.ti-plug:before {
- content: "\e683";
-}
-
-.ti-pie-chart:before {
- content: "\e684";
-}
-
-.ti-paragraph:before {
- content: "\e685";
-}
-
-.ti-panel:before {
- content: "\e686";
-}
-
-.ti-package:before {
- content: "\e687";
-}
-
-.ti-music:before {
- content: "\e688";
-}
-
-.ti-music-alt:before {
- content: "\e689";
-}
-
-.ti-mouse:before {
- content: "\e68a";
-}
-
-.ti-mouse-alt:before {
- content: "\e68b";
-}
-
-.ti-money:before {
- content: "\e68c";
-}
-
-.ti-microphone:before {
- content: "\e68d";
-}
-
-.ti-menu:before {
- content: "\e68e";
-}
-
-.ti-menu-alt:before {
- content: "\e68f";
-}
-
-.ti-map:before {
- content: "\e690";
-}
-
-.ti-map-alt:before {
- content: "\e691";
-}
-
-.ti-loop:before {
- content: "\e692";
-}
-
-.ti-location-pin:before {
- content: "\e693";
-}
-
-.ti-list:before {
- content: "\e694";
-}
-
-.ti-light-bulb:before {
- content: "\e695";
-}
-
-.ti-Italic:before {
- content: "\e696";
-}
-
-.ti-info:before {
- content: "\e697";
-}
-
-.ti-infinite:before {
- content: "\e698";
-}
-
-.ti-id-badge:before {
- content: "\e699";
-}
-
-.ti-hummer:before {
- content: "\e69a";
-}
-
-.ti-home:before {
- content: "\e69b";
-}
-
-.ti-help:before {
- content: "\e69c";
-}
-
-.ti-headphone:before {
- content: "\e69d";
-}
-
-.ti-harddrives:before {
- content: "\e69e";
-}
-
-.ti-harddrive:before {
- content: "\e69f";
-}
-
-.ti-gift:before {
- content: "\e6a0";
-}
-
-.ti-game:before {
- content: "\e6a1";
-}
-
-.ti-filter:before {
- content: "\e6a2";
-}
-
-.ti-files:before {
- content: "\e6a3";
-}
-
-.ti-file:before {
- content: "\e6a4";
-}
-
-.ti-eraser:before {
- content: "\e6a5";
-}
-
-.ti-envelope:before {
- content: "\e6a6";
-}
-
-.ti-download:before {
- content: "\e6a7";
-}
-
-.ti-direction:before {
- content: "\e6a8";
-}
-
-.ti-direction-alt:before {
- content: "\e6a9";
-}
-
-.ti-dashboard:before {
- content: "\e6aa";
-}
-
-.ti-control-stop:before {
- content: "\e6ab";
-}
-
-.ti-control-shuffle:before {
- content: "\e6ac";
-}
-
-.ti-control-play:before {
- content: "\e6ad";
-}
-
-.ti-control-pause:before {
- content: "\e6ae";
-}
-
-.ti-control-forward:before {
- content: "\e6af";
-}
-
-.ti-control-backward:before {
- content: "\e6b0";
-}
-
-.ti-cloud:before {
- content: "\e6b1";
-}
-
-.ti-cloud-up:before {
- content: "\e6b2";
-}
-
-.ti-cloud-down:before {
- content: "\e6b3";
-}
-
-.ti-clipboard:before {
- content: "\e6b4";
-}
-
-.ti-car:before {
- content: "\e6b5";
-}
-
-.ti-calendar:before {
- content: "\e6b6";
-}
-
-.ti-book:before {
- content: "\e6b7";
-}
-
-.ti-bell:before {
- content: "\e6b8";
-}
-
-.ti-basketball:before {
- content: "\e6b9";
-}
-
-.ti-bar-chart:before {
- content: "\e6ba";
-}
-
-.ti-bar-chart-alt:before {
- content: "\e6bb";
-}
-
-.ti-back-right:before {
- content: "\e6bc";
-}
-
-.ti-back-left:before {
- content: "\e6bd";
-}
-
-.ti-arrows-corner:before {
- content: "\e6be";
-}
-
-.ti-archive:before {
- content: "\e6bf";
-}
-
-.ti-anchor:before {
- content: "\e6c0";
-}
-
-.ti-align-right:before {
- content: "\e6c1";
-}
-
-.ti-align-left:before {
- content: "\e6c2";
-}
-
-.ti-align-justify:before {
- content: "\e6c3";
-}
-
-.ti-align-center:before {
- content: "\e6c4";
-}
-
-.ti-alert:before {
- content: "\e6c5";
-}
-
-.ti-alarm-clock:before {
- content: "\e6c6";
-}
-
-.ti-agenda:before {
- content: "\e6c7";
-}
-
-.ti-write:before {
- content: "\e6c8";
-}
-
-.ti-window:before {
- content: "\e6c9";
-}
-
-.ti-widgetized:before {
- content: "\e6ca";
-}
-
-.ti-widget:before {
- content: "\e6cb";
-}
-
-.ti-widget-alt:before {
- content: "\e6cc";
-}
-
-.ti-wallet:before {
- content: "\e6cd";
-}
-
-.ti-video-clapper:before {
- content: "\e6ce";
-}
-
-.ti-video-camera:before {
- content: "\e6cf";
-}
-
-.ti-vector:before {
- content: "\e6d0";
-}
-
-.ti-themify-logo:before {
- content: "\e6d1";
-}
-
-.ti-themify-favicon:before {
- content: "\e6d2";
-}
-
-.ti-themify-favicon-alt:before {
- content: "\e6d3";
-}
-
-.ti-support:before {
- content: "\e6d4";
-}
-
-.ti-stamp:before {
- content: "\e6d5";
-}
-
-.ti-split-v-alt:before {
- content: "\e6d6";
-}
-
-.ti-slice:before {
- content: "\e6d7";
-}
-
-.ti-shortcode:before {
- content: "\e6d8";
-}
-
-.ti-shift-right-alt:before {
- content: "\e6d9";
-}
-
-.ti-shift-left-alt:before {
- content: "\e6da";
-}
-
-.ti-ruler-alt-2:before {
- content: "\e6db";
-}
-
-.ti-receipt:before {
- content: "\e6dc";
-}
-
-.ti-pin2:before {
- content: "\e6dd";
-}
-
-.ti-pin-alt:before {
- content: "\e6de";
-}
-
-.ti-pencil-alt2:before {
- content: "\e6df";
-}
-
-.ti-palette:before {
- content: "\e6e0";
-}
-
-.ti-more:before {
- content: "\e6e1";
-}
-
-.ti-more-alt:before {
- content: "\e6e2";
-}
-
-.ti-microphone-alt:before {
- content: "\e6e3";
-}
-
-.ti-magnet:before {
- content: "\e6e4";
-}
-
-.ti-line-double:before {
- content: "\e6e5";
-}
-
-.ti-line-dotted:before {
- content: "\e6e6";
-}
-
-.ti-line-dashed:before {
- content: "\e6e7";
-}
-
-.ti-layout-width-full:before {
- content: "\e6e8";
-}
-
-.ti-layout-width-default:before {
- content: "\e6e9";
-}
-
-.ti-layout-width-default-alt:before {
- content: "\e6ea";
-}
-
-.ti-layout-tab:before {
- content: "\e6eb";
-}
-
-.ti-layout-tab-window:before {
- content: "\e6ec";
-}
-
-.ti-layout-tab-v:before {
- content: "\e6ed";
-}
-
-.ti-layout-tab-min:before {
- content: "\e6ee";
-}
-
-.ti-layout-slider:before {
- content: "\e6ef";
-}
-
-.ti-layout-slider-alt:before {
- content: "\e6f0";
-}
-
-.ti-layout-sidebar-right:before {
- content: "\e6f1";
-}
-
-.ti-layout-sidebar-none:before {
- content: "\e6f2";
-}
-
-.ti-layout-sidebar-left:before {
- content: "\e6f3";
-}
-
-.ti-layout-placeholder:before {
- content: "\e6f4";
-}
-
-.ti-layout-menu:before {
- content: "\e6f5";
-}
-
-.ti-layout-menu-v:before {
- content: "\e6f6";
-}
-
-.ti-layout-menu-separated:before {
- content: "\e6f7";
-}
-
-.ti-layout-menu-full:before {
- content: "\e6f8";
-}
-
-.ti-layout-media-right-alt:before {
- content: "\e6f9";
-}
-
-.ti-layout-media-right:before {
- content: "\e6fa";
-}
-
-.ti-layout-media-overlay:before {
- content: "\e6fb";
-}
-
-.ti-layout-media-overlay-alt:before {
- content: "\e6fc";
-}
-
-.ti-layout-media-overlay-alt-2:before {
- content: "\e6fd";
-}
-
-.ti-layout-media-left-alt:before {
- content: "\e6fe";
-}
-
-.ti-layout-media-left:before {
- content: "\e6ff";
-}
-
-.ti-layout-media-center-alt:before {
- content: "\e700";
-}
-
-.ti-layout-media-center:before {
- content: "\e701";
-}
-
-.ti-layout-list-thumb:before {
- content: "\e702";
-}
-
-.ti-layout-list-thumb-alt:before {
- content: "\e703";
-}
-
-.ti-layout-list-post:before {
- content: "\e704";
-}
-
-.ti-layout-list-large-image:before {
- content: "\e705";
-}
-
-.ti-layout-line-solid:before {
- content: "\e706";
-}
-
-.ti-layout-grid4:before {
- content: "\e707";
-}
-
-.ti-layout-grid3:before {
- content: "\e708";
-}
-
-.ti-layout-grid2:before {
- content: "\e709";
-}
-
-.ti-layout-grid2-thumb:before {
- content: "\e70a";
-}
-
-.ti-layout-cta-right:before {
- content: "\e70b";
-}
-
-.ti-layout-cta-left:before {
- content: "\e70c";
-}
-
-.ti-layout-cta-center:before {
- content: "\e70d";
-}
-
-.ti-layout-cta-btn-right:before {
- content: "\e70e";
-}
-
-.ti-layout-cta-btn-left:before {
- content: "\e70f";
-}
-
-.ti-layout-column4:before {
- content: "\e710";
-}
-
-.ti-layout-column3:before {
- content: "\e711";
-}
-
-.ti-layout-column2:before {
- content: "\e712";
-}
-
-.ti-layout-accordion-separated:before {
- content: "\e713";
-}
-
-.ti-layout-accordion-merged:before {
- content: "\e714";
-}
-
-.ti-layout-accordion-list:before {
- content: "\e715";
-}
-
-.ti-ink-pen:before {
- content: "\e716";
-}
-
-.ti-info-alt:before {
- content: "\e717";
-}
-
-.ti-help-alt:before {
- content: "\e718";
-}
-
-.ti-headphone-alt:before {
- content: "\e719";
-}
-
-.ti-hand-point-up:before {
- content: "\e71a";
-}
-
-.ti-hand-point-right:before {
- content: "\e71b";
-}
-
-.ti-hand-point-left:before {
- content: "\e71c";
-}
-
-.ti-hand-point-down:before {
- content: "\e71d";
-}
-
-.ti-gallery:before {
- content: "\e71e";
-}
-
-.ti-face-smile:before {
- content: "\e71f";
-}
-
-.ti-face-sad:before {
- content: "\e720";
-}
-
-.ti-credit-card:before {
- content: "\e721";
-}
-
-.ti-control-skip-forward:before {
- content: "\e722";
-}
-
-.ti-control-skip-backward:before {
- content: "\e723";
-}
-
-.ti-control-record:before {
- content: "\e724";
-}
-
-.ti-control-eject:before {
- content: "\e725";
-}
-
-.ti-comments-smiley:before {
- content: "\e726";
-}
-
-.ti-brush-alt:before {
- content: "\e727";
-}
-
-.ti-youtube:before {
- content: "\e728";
-}
-
-.ti-vimeo:before {
- content: "\e729";
-}
-
-.ti-twitter:before {
- content: "\e72a";
-}
-
-.ti-time:before {
- content: "\e72b";
-}
-
-.ti-tumblr:before {
- content: "\e72c";
-}
-
-.ti-skype:before {
- content: "\e72d";
-}
-
-.ti-share:before {
- content: "\e72e";
-}
-
-.ti-share-alt:before {
- content: "\e72f";
-}
-
-.ti-rocket:before {
- content: "\e730";
-}
-
-.ti-pinterest:before {
- content: "\e731";
-}
-
-.ti-new-window:before {
- content: "\e732";
-}
-
-.ti-microsoft:before {
- content: "\e733";
-}
-
-.ti-list-ol:before {
- content: "\e734";
-}
-
-.ti-linkedin:before {
- content: "\e735";
-}
-
-.ti-layout-sidebar-2:before {
- content: "\e736";
-}
-
-.ti-layout-grid4-alt:before {
- content: "\e737";
-}
-
-.ti-layout-grid3-alt:before {
- content: "\e738";
-}
-
-.ti-layout-grid2-alt:before {
- content: "\e739";
-}
-
-.ti-layout-column4-alt:before {
- content: "\e73a";
-}
-
-.ti-layout-column3-alt:before {
- content: "\e73b";
-}
-
-.ti-layout-column2-alt:before {
- content: "\e73c";
-}
-
-.ti-instagram:before {
- content: "\e73d";
-}
-
-.ti-google:before {
- content: "\e73e";
-}
-
-.ti-github:before {
- content: "\e73f";
-}
-
-.ti-flickr:before {
- content: "\e740";
-}
-
-.ti-facebook:before {
- content: "\e741";
-}
-
-.ti-dropbox:before {
- content: "\e742";
-}
-
-.ti-dribbble:before {
- content: "\e743";
-}
-
-.ti-apple:before {
- content: "\e744";
-}
-
-.ti-android:before {
- content: "\e745";
-}
-
-.ti-save:before {
- content: "\e746";
-}
-
-.ti-save-alt:before {
- content: "\e747";
-}
-
-.ti-yahoo:before {
- content: "\e748";
-}
-
-.ti-wordpress:before {
- content: "\e749";
-}
-
-.ti-vimeo-alt:before {
- content: "\e74a";
-}
-
-.ti-twitter-alt:before {
- content: "\e74b";
-}
-
-.ti-tumblr-alt:before {
- content: "\e74c";
-}
-
-.ti-trello:before {
- content: "\e74d";
-}
-
-.ti-stack-overflow:before {
- content: "\e74e";
-}
-
-.ti-soundcloud:before {
- content: "\e74f";
-}
-
-.ti-sharethis:before {
- content: "\e750";
-}
-
-.ti-sharethis-alt:before {
- content: "\e751";
-}
-
-.ti-reddit:before {
- content: "\e752";
-}
-
-.ti-pinterest-alt:before {
- content: "\e753";
-}
-
-.ti-microsoft-alt:before {
- content: "\e754";
-}
-
-.ti-linux:before {
- content: "\e755";
-}
-
-.ti-jsfiddle:before {
- content: "\e756";
-}
-
-.ti-joomla:before {
- content: "\e757";
-}
-
-.ti-html5:before {
- content: "\e758";
-}
-
-.ti-flickr-alt:before {
- content: "\e759";
-}
-
-.ti-email:before {
- content: "\e75a";
-}
-
-.ti-drupal:before {
- content: "\e75b";
-}
-
-.ti-dropbox-alt:before {
- content: "\e75c";
-}
-
-.ti-css3:before {
- content: "\e75d";
-}
-
-.ti-rss:before {
- content: "\e75e";
-}
-
-.ti-rss-alt:before {
- content: "\e75f";
-}
+@font-face {
+ font-family: 'themify';
+ src: url('fonts/themify.eot?-fvbane');
+ src: url('fonts/themify.eot?#iefix-fvbane') format('embedded-opentype'),
+ url('fonts/themify.woff?-fvbane') format('woff'),
+ url('fonts/themify.ttf?-fvbane') format('truetype'),
+ url('fonts/themify.svg?-fvbane#themify') format('svg');
+ font-weight: normal;
+ font-style: normal;
+ font-display: swap;
+}
+
+[class^="ti-"],
+[class*=" ti-"] {
+ font-family: 'themify';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.ti-wand:before {
+ content: "\e600";
+}
+
+.ti-volume:before {
+ content: "\e601";
+}
+
+.ti-user:before {
+ content: "\e602";
+}
+
+.ti-unlock:before {
+ content: "\e603";
+}
+
+.ti-unlink:before {
+ content: "\e604";
+}
+
+.ti-trash:before {
+ content: "\e605";
+}
+
+.ti-thought:before {
+ content: "\e606";
+}
+
+.ti-target:before {
+ content: "\e607";
+}
+
+.ti-tag:before {
+ content: "\e608";
+}
+
+.ti-tablet:before {
+ content: "\e609";
+}
+
+.ti-star:before {
+ content: "\e60a";
+}
+
+.ti-spray:before {
+ content: "\e60b";
+}
+
+.ti-signal:before {
+ content: "\e60c";
+}
+
+.ti-shopping-cart:before {
+ content: "\e60d";
+}
+
+.ti-shopping-cart-full:before {
+ content: "\e60e";
+}
+
+.ti-settings:before {
+ content: "\e60f";
+}
+
+.ti-search:before {
+ content: "\e610";
+}
+
+.ti-zoom-in:before {
+ content: "\e611";
+}
+
+.ti-zoom-out:before {
+ content: "\e612";
+}
+
+.ti-cut:before {
+ content: "\e613";
+}
+
+.ti-ruler:before {
+ content: "\e614";
+}
+
+.ti-ruler-pencil:before {
+ content: "\e615";
+}
+
+.ti-ruler-alt:before {
+ content: "\e616";
+}
+
+.ti-bookmark:before {
+ content: "\e617";
+}
+
+.ti-bookmark-alt:before {
+ content: "\e618";
+}
+
+.ti-reload:before {
+ content: "\e619";
+}
+
+.ti-plus:before {
+ content: "\e61a";
+}
+
+.ti-pin:before {
+ content: "\e61b";
+}
+
+.ti-pencil:before {
+ content: "\e61c";
+}
+
+.ti-pencil-alt:before {
+ content: "\e61d";
+}
+
+.ti-paint-roller:before {
+ content: "\e61e";
+}
+
+.ti-paint-bucket:before {
+ content: "\e61f";
+}
+
+.ti-na:before {
+ content: "\e620";
+}
+
+.ti-mobile:before {
+ content: "\e621";
+}
+
+.ti-minus:before {
+ content: "\e622";
+}
+
+.ti-medall:before {
+ content: "\e623";
+}
+
+.ti-medall-alt:before {
+ content: "\e624";
+}
+
+.ti-marker:before {
+ content: "\e625";
+}
+
+.ti-marker-alt:before {
+ content: "\e626";
+}
+
+.ti-arrow-up:before {
+ content: "\e627";
+}
+
+.ti-arrow-right:before {
+ content: "\e628";
+}
+
+.ti-arrow-left:before {
+ content: "\e629";
+}
+
+.ti-arrow-down:before {
+ content: "\e62a";
+}
+
+.ti-lock:before {
+ content: "\e62b";
+}
+
+.ti-location-arrow:before {
+ content: "\e62c";
+}
+
+.ti-link:before {
+ content: "\e62d";
+}
+
+.ti-layout:before {
+ content: "\e62e";
+}
+
+.ti-layers:before {
+ content: "\e62f";
+}
+
+.ti-layers-alt:before {
+ content: "\e630";
+}
+
+.ti-key:before {
+ content: "\e631";
+}
+
+.ti-import:before {
+ content: "\e632";
+}
+
+.ti-image:before {
+ content: "\e633";
+}
+
+.ti-heart:before {
+ content: "\e634";
+}
+
+.ti-heart-broken:before {
+ content: "\e635";
+}
+
+.ti-hand-stop:before {
+ content: "\e636";
+}
+
+.ti-hand-open:before {
+ content: "\e637";
+}
+
+.ti-hand-drag:before {
+ content: "\e638";
+}
+
+.ti-folder:before {
+ content: "\e639";
+}
+
+.ti-flag:before {
+ content: "\e63a";
+}
+
+.ti-flag-alt:before {
+ content: "\e63b";
+}
+
+.ti-flag-alt-2:before {
+ content: "\e63c";
+}
+
+.ti-eye:before {
+ content: "\e63d";
+}
+
+.ti-export:before {
+ content: "\e63e";
+}
+
+.ti-exchange-vertical:before {
+ content: "\e63f";
+}
+
+.ti-desktop:before {
+ content: "\e640";
+}
+
+.ti-cup:before {
+ content: "\e641";
+}
+
+.ti-crown:before {
+ content: "\e642";
+}
+
+.ti-comments:before {
+ content: "\e643";
+}
+
+.ti-comment:before {
+ content: "\e644";
+}
+
+.ti-comment-alt:before {
+ content: "\e645";
+}
+
+.ti-close:before {
+ content: "\e646";
+}
+
+.ti-clip:before {
+ content: "\e647";
+}
+
+.ti-angle-up:before {
+ content: "\e648";
+}
+
+.ti-angle-right:before {
+ content: "\e649";
+}
+
+.ti-angle-left:before {
+ content: "\e64a";
+}
+
+.ti-angle-down:before {
+ content: "\e64b";
+}
+
+.ti-check:before {
+ content: "\e64c";
+}
+
+.ti-check-box:before {
+ content: "\e64d";
+}
+
+.ti-camera:before {
+ content: "\e64e";
+}
+
+.ti-announcement:before {
+ content: "\e64f";
+}
+
+.ti-brush:before {
+ content: "\e650";
+}
+
+.ti-briefcase:before {
+ content: "\e651";
+}
+
+.ti-bolt:before {
+ content: "\e652";
+}
+
+.ti-bolt-alt:before {
+ content: "\e653";
+}
+
+.ti-blackboard:before {
+ content: "\e654";
+}
+
+.ti-bag:before {
+ content: "\e655";
+}
+
+.ti-move:before {
+ content: "\e656";
+}
+
+.ti-arrows-vertical:before {
+ content: "\e657";
+}
+
+.ti-arrows-horizontal:before {
+ content: "\e658";
+}
+
+.ti-fullscreen:before {
+ content: "\e659";
+}
+
+.ti-arrow-top-right:before {
+ content: "\e65a";
+}
+
+.ti-arrow-top-left:before {
+ content: "\e65b";
+}
+
+.ti-arrow-circle-up:before {
+ content: "\e65c";
+}
+
+.ti-arrow-circle-right:before {
+ content: "\e65d";
+}
+
+.ti-arrow-circle-left:before {
+ content: "\e65e";
+}
+
+.ti-arrow-circle-down:before {
+ content: "\e65f";
+}
+
+.ti-angle-double-up:before {
+ content: "\e660";
+}
+
+.ti-angle-double-right:before {
+ content: "\e661";
+}
+
+.ti-angle-double-left:before {
+ content: "\e662";
+}
+
+.ti-angle-double-down:before {
+ content: "\e663";
+}
+
+.ti-zip:before {
+ content: "\e664";
+}
+
+.ti-world:before {
+ content: "\e665";
+}
+
+.ti-wheelchair:before {
+ content: "\e666";
+}
+
+.ti-view-list:before {
+ content: "\e667";
+}
+
+.ti-view-list-alt:before {
+ content: "\e668";
+}
+
+.ti-view-grid:before {
+ content: "\e669";
+}
+
+.ti-uppercase:before {
+ content: "\e66a";
+}
+
+.ti-upload:before {
+ content: "\e66b";
+}
+
+.ti-underline:before {
+ content: "\e66c";
+}
+
+.ti-truck:before {
+ content: "\e66d";
+}
+
+.ti-timer:before {
+ content: "\e66e";
+}
+
+.ti-ticket:before {
+ content: "\e66f";
+}
+
+.ti-thumb-up:before {
+ content: "\e670";
+}
+
+.ti-thumb-down:before {
+ content: "\e671";
+}
+
+.ti-text:before {
+ content: "\e672";
+}
+
+.ti-stats-up:before {
+ content: "\e673";
+}
+
+.ti-stats-down:before {
+ content: "\e674";
+}
+
+.ti-split-v:before {
+ content: "\e675";
+}
+
+.ti-split-h:before {
+ content: "\e676";
+}
+
+.ti-smallcap:before {
+ content: "\e677";
+}
+
+.ti-shine:before {
+ content: "\e678";
+}
+
+.ti-shift-right:before {
+ content: "\e679";
+}
+
+.ti-shift-left:before {
+ content: "\e67a";
+}
+
+.ti-shield:before {
+ content: "\e67b";
+}
+
+.ti-notepad:before {
+ content: "\e67c";
+}
+
+.ti-server:before {
+ content: "\e67d";
+}
+
+.ti-quote-right:before {
+ content: "\e67e";
+}
+
+.ti-quote-left:before {
+ content: "\e67f";
+}
+
+.ti-pulse:before {
+ content: "\e680";
+}
+
+.ti-printer:before {
+ content: "\e681";
+}
+
+.ti-power-off:before {
+ content: "\e682";
+}
+
+.ti-plug:before {
+ content: "\e683";
+}
+
+.ti-pie-chart:before {
+ content: "\e684";
+}
+
+.ti-paragraph:before {
+ content: "\e685";
+}
+
+.ti-panel:before {
+ content: "\e686";
+}
+
+.ti-package:before {
+ content: "\e687";
+}
+
+.ti-music:before {
+ content: "\e688";
+}
+
+.ti-music-alt:before {
+ content: "\e689";
+}
+
+.ti-mouse:before {
+ content: "\e68a";
+}
+
+.ti-mouse-alt:before {
+ content: "\e68b";
+}
+
+.ti-money:before {
+ content: "\e68c";
+}
+
+.ti-microphone:before {
+ content: "\e68d";
+}
+
+.ti-menu:before {
+ content: "\e68e";
+}
+
+.ti-menu-alt:before {
+ content: "\e68f";
+}
+
+.ti-map:before {
+ content: "\e690";
+}
+
+.ti-map-alt:before {
+ content: "\e691";
+}
+
+.ti-loop:before {
+ content: "\e692";
+}
+
+.ti-location-pin:before {
+ content: "\e693";
+}
+
+.ti-list:before {
+ content: "\e694";
+}
+
+.ti-light-bulb:before {
+ content: "\e695";
+}
+
+.ti-Italic:before {
+ content: "\e696";
+}
+
+.ti-info:before {
+ content: "\e697";
+}
+
+.ti-infinite:before {
+ content: "\e698";
+}
+
+.ti-id-badge:before {
+ content: "\e699";
+}
+
+.ti-hummer:before {
+ content: "\e69a";
+}
+
+.ti-home:before {
+ content: "\e69b";
+}
+
+.ti-help:before {
+ content: "\e69c";
+}
+
+.ti-headphone:before {
+ content: "\e69d";
+}
+
+.ti-harddrives:before {
+ content: "\e69e";
+}
+
+.ti-harddrive:before {
+ content: "\e69f";
+}
+
+.ti-gift:before {
+ content: "\e6a0";
+}
+
+.ti-game:before {
+ content: "\e6a1";
+}
+
+.ti-filter:before {
+ content: "\e6a2";
+}
+
+.ti-files:before {
+ content: "\e6a3";
+}
+
+.ti-file:before {
+ content: "\e6a4";
+}
+
+.ti-eraser:before {
+ content: "\e6a5";
+}
+
+.ti-envelope:before {
+ content: "\e6a6";
+}
+
+.ti-download:before {
+ content: "\e6a7";
+}
+
+.ti-direction:before {
+ content: "\e6a8";
+}
+
+.ti-direction-alt:before {
+ content: "\e6a9";
+}
+
+.ti-dashboard:before {
+ content: "\e6aa";
+}
+
+.ti-control-stop:before {
+ content: "\e6ab";
+}
+
+.ti-control-shuffle:before {
+ content: "\e6ac";
+}
+
+.ti-control-play:before {
+ content: "\e6ad";
+}
+
+.ti-control-pause:before {
+ content: "\e6ae";
+}
+
+.ti-control-forward:before {
+ content: "\e6af";
+}
+
+.ti-control-backward:before {
+ content: "\e6b0";
+}
+
+.ti-cloud:before {
+ content: "\e6b1";
+}
+
+.ti-cloud-up:before {
+ content: "\e6b2";
+}
+
+.ti-cloud-down:before {
+ content: "\e6b3";
+}
+
+.ti-clipboard:before {
+ content: "\e6b4";
+}
+
+.ti-car:before {
+ content: "\e6b5";
+}
+
+.ti-calendar:before {
+ content: "\e6b6";
+}
+
+.ti-book:before {
+ content: "\e6b7";
+}
+
+.ti-bell:before {
+ content: "\e6b8";
+}
+
+.ti-basketball:before {
+ content: "\e6b9";
+}
+
+.ti-bar-chart:before {
+ content: "\e6ba";
+}
+
+.ti-bar-chart-alt:before {
+ content: "\e6bb";
+}
+
+.ti-back-right:before {
+ content: "\e6bc";
+}
+
+.ti-back-left:before {
+ content: "\e6bd";
+}
+
+.ti-arrows-corner:before {
+ content: "\e6be";
+}
+
+.ti-archive:before {
+ content: "\e6bf";
+}
+
+.ti-anchor:before {
+ content: "\e6c0";
+}
+
+.ti-align-right:before {
+ content: "\e6c1";
+}
+
+.ti-align-left:before {
+ content: "\e6c2";
+}
+
+.ti-align-justify:before {
+ content: "\e6c3";
+}
+
+.ti-align-center:before {
+ content: "\e6c4";
+}
+
+.ti-alert:before {
+ content: "\e6c5";
+}
+
+.ti-alarm-clock:before {
+ content: "\e6c6";
+}
+
+.ti-agenda:before {
+ content: "\e6c7";
+}
+
+.ti-write:before {
+ content: "\e6c8";
+}
+
+.ti-window:before {
+ content: "\e6c9";
+}
+
+.ti-widgetized:before {
+ content: "\e6ca";
+}
+
+.ti-widget:before {
+ content: "\e6cb";
+}
+
+.ti-widget-alt:before {
+ content: "\e6cc";
+}
+
+.ti-wallet:before {
+ content: "\e6cd";
+}
+
+.ti-video-clapper:before {
+ content: "\e6ce";
+}
+
+.ti-video-camera:before {
+ content: "\e6cf";
+}
+
+.ti-vector:before {
+ content: "\e6d0";
+}
+
+.ti-themify-logo:before {
+ content: "\e6d1";
+}
+
+.ti-themify-favicon:before {
+ content: "\e6d2";
+}
+
+.ti-themify-favicon-alt:before {
+ content: "\e6d3";
+}
+
+.ti-support:before {
+ content: "\e6d4";
+}
+
+.ti-stamp:before {
+ content: "\e6d5";
+}
+
+.ti-split-v-alt:before {
+ content: "\e6d6";
+}
+
+.ti-slice:before {
+ content: "\e6d7";
+}
+
+.ti-shortcode:before {
+ content: "\e6d8";
+}
+
+.ti-shift-right-alt:before {
+ content: "\e6d9";
+}
+
+.ti-shift-left-alt:before {
+ content: "\e6da";
+}
+
+.ti-ruler-alt-2:before {
+ content: "\e6db";
+}
+
+.ti-receipt:before {
+ content: "\e6dc";
+}
+
+.ti-pin2:before {
+ content: "\e6dd";
+}
+
+.ti-pin-alt:before {
+ content: "\e6de";
+}
+
+.ti-pencil-alt2:before {
+ content: "\e6df";
+}
+
+.ti-palette:before {
+ content: "\e6e0";
+}
+
+.ti-more:before {
+ content: "\e6e1";
+}
+
+.ti-more-alt:before {
+ content: "\e6e2";
+}
+
+.ti-microphone-alt:before {
+ content: "\e6e3";
+}
+
+.ti-magnet:before {
+ content: "\e6e4";
+}
+
+.ti-line-double:before {
+ content: "\e6e5";
+}
+
+.ti-line-dotted:before {
+ content: "\e6e6";
+}
+
+.ti-line-dashed:before {
+ content: "\e6e7";
+}
+
+.ti-layout-width-full:before {
+ content: "\e6e8";
+}
+
+.ti-layout-width-default:before {
+ content: "\e6e9";
+}
+
+.ti-layout-width-default-alt:before {
+ content: "\e6ea";
+}
+
+.ti-layout-tab:before {
+ content: "\e6eb";
+}
+
+.ti-layout-tab-window:before {
+ content: "\e6ec";
+}
+
+.ti-layout-tab-v:before {
+ content: "\e6ed";
+}
+
+.ti-layout-tab-min:before {
+ content: "\e6ee";
+}
+
+.ti-layout-slider:before {
+ content: "\e6ef";
+}
+
+.ti-layout-slider-alt:before {
+ content: "\e6f0";
+}
+
+.ti-layout-sidebar-right:before {
+ content: "\e6f1";
+}
+
+.ti-layout-sidebar-none:before {
+ content: "\e6f2";
+}
+
+.ti-layout-sidebar-left:before {
+ content: "\e6f3";
+}
+
+.ti-layout-placeholder:before {
+ content: "\e6f4";
+}
+
+.ti-layout-menu:before {
+ content: "\e6f5";
+}
+
+.ti-layout-menu-v:before {
+ content: "\e6f6";
+}
+
+.ti-layout-menu-separated:before {
+ content: "\e6f7";
+}
+
+.ti-layout-menu-full:before {
+ content: "\e6f8";
+}
+
+.ti-layout-media-right-alt:before {
+ content: "\e6f9";
+}
+
+.ti-layout-media-right:before {
+ content: "\e6fa";
+}
+
+.ti-layout-media-overlay:before {
+ content: "\e6fb";
+}
+
+.ti-layout-media-overlay-alt:before {
+ content: "\e6fc";
+}
+
+.ti-layout-media-overlay-alt-2:before {
+ content: "\e6fd";
+}
+
+.ti-layout-media-left-alt:before {
+ content: "\e6fe";
+}
+
+.ti-layout-media-left:before {
+ content: "\e6ff";
+}
+
+.ti-layout-media-center-alt:before {
+ content: "\e700";
+}
+
+.ti-layout-media-center:before {
+ content: "\e701";
+}
+
+.ti-layout-list-thumb:before {
+ content: "\e702";
+}
+
+.ti-layout-list-thumb-alt:before {
+ content: "\e703";
+}
+
+.ti-layout-list-post:before {
+ content: "\e704";
+}
+
+.ti-layout-list-large-image:before {
+ content: "\e705";
+}
+
+.ti-layout-line-solid:before {
+ content: "\e706";
+}
+
+.ti-layout-grid4:before {
+ content: "\e707";
+}
+
+.ti-layout-grid3:before {
+ content: "\e708";
+}
+
+.ti-layout-grid2:before {
+ content: "\e709";
+}
+
+.ti-layout-grid2-thumb:before {
+ content: "\e70a";
+}
+
+.ti-layout-cta-right:before {
+ content: "\e70b";
+}
+
+.ti-layout-cta-left:before {
+ content: "\e70c";
+}
+
+.ti-layout-cta-center:before {
+ content: "\e70d";
+}
+
+.ti-layout-cta-btn-right:before {
+ content: "\e70e";
+}
+
+.ti-layout-cta-btn-left:before {
+ content: "\e70f";
+}
+
+.ti-layout-column4:before {
+ content: "\e710";
+}
+
+.ti-layout-column3:before {
+ content: "\e711";
+}
+
+.ti-layout-column2:before {
+ content: "\e712";
+}
+
+.ti-layout-accordion-separated:before {
+ content: "\e713";
+}
+
+.ti-layout-accordion-merged:before {
+ content: "\e714";
+}
+
+.ti-layout-accordion-list:before {
+ content: "\e715";
+}
+
+.ti-ink-pen:before {
+ content: "\e716";
+}
+
+.ti-info-alt:before {
+ content: "\e717";
+}
+
+.ti-help-alt:before {
+ content: "\e718";
+}
+
+.ti-headphone-alt:before {
+ content: "\e719";
+}
+
+.ti-hand-point-up:before {
+ content: "\e71a";
+}
+
+.ti-hand-point-right:before {
+ content: "\e71b";
+}
+
+.ti-hand-point-left:before {
+ content: "\e71c";
+}
+
+.ti-hand-point-down:before {
+ content: "\e71d";
+}
+
+.ti-gallery:before {
+ content: "\e71e";
+}
+
+.ti-face-smile:before {
+ content: "\e71f";
+}
+
+.ti-face-sad:before {
+ content: "\e720";
+}
+
+.ti-credit-card:before {
+ content: "\e721";
+}
+
+.ti-control-skip-forward:before {
+ content: "\e722";
+}
+
+.ti-control-skip-backward:before {
+ content: "\e723";
+}
+
+.ti-control-record:before {
+ content: "\e724";
+}
+
+.ti-control-eject:before {
+ content: "\e725";
+}
+
+.ti-comments-smiley:before {
+ content: "\e726";
+}
+
+.ti-brush-alt:before {
+ content: "\e727";
+}
+
+.ti-youtube:before {
+ content: "\e728";
+}
+
+.ti-vimeo:before {
+ content: "\e729";
+}
+
+.ti-twitter:before {
+ content: "\e72a";
+}
+
+.ti-time:before {
+ content: "\e72b";
+}
+
+.ti-tumblr:before {
+ content: "\e72c";
+}
+
+.ti-skype:before {
+ content: "\e72d";
+}
+
+.ti-share:before {
+ content: "\e72e";
+}
+
+.ti-share-alt:before {
+ content: "\e72f";
+}
+
+.ti-rocket:before {
+ content: "\e730";
+}
+
+.ti-pinterest:before {
+ content: "\e731";
+}
+
+.ti-new-window:before {
+ content: "\e732";
+}
+
+.ti-microsoft:before {
+ content: "\e733";
+}
+
+.ti-list-ol:before {
+ content: "\e734";
+}
+
+.ti-linkedin:before {
+ content: "\e735";
+}
+
+.ti-layout-sidebar-2:before {
+ content: "\e736";
+}
+
+.ti-layout-grid4-alt:before {
+ content: "\e737";
+}
+
+.ti-layout-grid3-alt:before {
+ content: "\e738";
+}
+
+.ti-layout-grid2-alt:before {
+ content: "\e739";
+}
+
+.ti-layout-column4-alt:before {
+ content: "\e73a";
+}
+
+.ti-layout-column3-alt:before {
+ content: "\e73b";
+}
+
+.ti-layout-column2-alt:before {
+ content: "\e73c";
+}
+
+.ti-instagram:before {
+ content: "\e73d";
+}
+
+.ti-google:before {
+ content: "\e73e";
+}
+
+.ti-github:before {
+ content: "\e73f";
+}
+
+.ti-flickr:before {
+ content: "\e740";
+}
+
+.ti-facebook:before {
+ content: "\e741";
+}
+
+.ti-dropbox:before {
+ content: "\e742";
+}
+
+.ti-dribbble:before {
+ content: "\e743";
+}
+
+.ti-apple:before {
+ content: "\e744";
+}
+
+.ti-android:before {
+ content: "\e745";
+}
+
+.ti-save:before {
+ content: "\e746";
+}
+
+.ti-save-alt:before {
+ content: "\e747";
+}
+
+.ti-yahoo:before {
+ content: "\e748";
+}
+
+.ti-wordpress:before {
+ content: "\e749";
+}
+
+.ti-vimeo-alt:before {
+ content: "\e74a";
+}
+
+.ti-twitter-alt:before {
+ content: "\e74b";
+}
+
+.ti-tumblr-alt:before {
+ content: "\e74c";
+}
+
+.ti-trello:before {
+ content: "\e74d";
+}
+
+.ti-stack-overflow:before {
+ content: "\e74e";
+}
+
+.ti-soundcloud:before {
+ content: "\e74f";
+}
+
+.ti-sharethis:before {
+ content: "\e750";
+}
+
+.ti-sharethis-alt:before {
+ content: "\e751";
+}
+
+.ti-reddit:before {
+ content: "\e752";
+}
+
+.ti-pinterest-alt:before {
+ content: "\e753";
+}
+
+.ti-microsoft-alt:before {
+ content: "\e754";
+}
+
+.ti-linux:before {
+ content: "\e755";
+}
+
+.ti-jsfiddle:before {
+ content: "\e756";
+}
+
+.ti-joomla:before {
+ content: "\e757";
+}
+
+.ti-html5:before {
+ content: "\e758";
+}
+
+.ti-flickr-alt:before {
+ content: "\e759";
+}
+
+.ti-email:before {
+ content: "\e75a";
+}
+
+.ti-drupal:before {
+ content: "\e75b";
+}
+
+.ti-dropbox-alt:before {
+ content: "\e75c";
+}
+
+.ti-css3:before {
+ content: "\e75d";
+}
+
+.ti-rss:before {
+ content: "\e75e";
+}
+
+.ti-rss-alt:before {
+ content: "\e75f";
+}
diff --git a/theme.toml b/theme.toml
index a5aa4d6..6f9bbff 100644
--- a/theme.toml
+++ b/theme.toml
@@ -1,15 +1,15 @@
-# theme.toml template for a Hugo theme
-# See https://github.com/gohugoio/hugoThemes#themetoml for an example
-
-name = "Dot"
-license = "MIT Licence"
-licenselink = "https://github.com/themefisher/dot/blob/master/LICENSE"
-description = "Dot, A documentation theme powered by hugo"
-homepage = "https://gethugothemes.com/products/hugo-documentation-theme/"
-tags = ["documentation", "bootstrap", "light", "minimal", "clean", "simple", "fast", "modern", "white", "customizable", "creative", "flexbox","minimalistic","Highlight.js","typography", "docs", "material design", "highlighting", "contact form", "responsive", "Syntax highlighting", "Multilingual", "Single page", "Themefisher", "gethugothemes"]
-features = ["responsive","search autocomplete", "color scheme"]
-min_version = "0.64.0"
-
-[author]
- name = "Themefisher"
+# theme.toml template for a Hugo theme
+# See https://github.com/gohugoio/hugoThemes#themetoml for an example
+
+name = "Dot"
+license = "MIT Licence"
+licenselink = "https://github.com/themefisher/dot/blob/master/LICENSE"
+description = "Dot, A documentation theme powered by hugo"
+homepage = "https://gethugothemes.com/products/hugo-documentation-theme/"
+tags = ["documentation", "bootstrap", "light", "minimal", "clean", "simple", "fast", "modern", "white", "customizable", "creative", "flexbox","minimalistic","Highlight.js","typography", "docs", "material design", "highlighting", "contact form", "responsive", "Syntax highlighting", "Multilingual", "Single page", "Themefisher", "gethugothemes"]
+features = ["responsive","search autocomplete", "color scheme"]
+min_version = "0.64.0"
+
+[author]
+ name = "Themefisher"
homepage = "https://themefisher.com" \ No newline at end of file