diff --git a/.gitignore b/.gitignore index b512c09d..e79903b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +theme diff --git a/README.md b/README.md index c34e8340..49f965dc 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,25 @@ Nous organisons régulièrement des ateliers pour enseigner les bases du trading ## Projets en IA Nous travaillons également sur des projets qui utilisent l'intelligence artificielle pour améliorer les algorithmes de trading et pour analyser le marché financier. + +## Contribuer + +Pour ajouter +une page de blog, simplement rédiger un nouveau fichier markdown sous le repertoire source/blog avec les frontmatters suivant : + +```md +--- +title: Votre titre +page-name: "Le nom de votre page" +background-image-url: "images/blog/lien/vers/image.jpg" +facebook-link : +twitter-link : +linkedin-link : +tags : [ "tag1", "tag2", "tag3"] +author : Nom autheur +author-title : Capitaine +author-role : Rôle +author-img : images/team/team-X.png +date : 1 janvier 2024 +--- +``` diff --git a/gulpfile.js b/gulpfile.js index d3276d2e..b6d8e7a9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,15 +7,21 @@ const fileinclude = require("gulp-file-include"); const autoprefixer = require("gulp-autoprefixer"); const bs = require("browser-sync").create(); const rimraf = require("rimraf"); -const comments = require("gulp-header-comment"); const plumber = require('gulp-plumber'); +const fs = require('fs'); +const tap = require('gulp-tap'); const through = require('through2'); +const frontMatter = require('gulp-front-matter'); +async function getMarkdown() { + const markdown = await import('gulp-markdown'); + return markdown.default; +} var path = { src: { html: "source/*.html", - blog: "source/blog/*.html", + blog: "source/blog/*.md", others: "source/*.+(php|ico|png)", htminc: "source/partials/**/*.htm", incdir: "source/partials/", @@ -30,25 +36,67 @@ var path = { }, }; -// HTML -gulp.task("html:build", function () { - return gulp - .src(path.src.html) - .pipe(plumber({ - errorHandler: function (err) { - console.error('Error in plugin "' + err.plugin + '": ' + err.message); - this.emit('end'); - } - })) +let blogItemsIncludes = ''; +// Blog +gulp.task("blog:build", async function () { + const markdown = await getMarkdown(); + return gulp.src(path.src.blog) + .pipe(plumber()) + .pipe(frontMatter()) + .pipe(markdown()) .pipe(through.obj(function (file, enc, cb) { this.push(file); cb(); }, function (cb) { if (this._transformState.writechunk) { - console.log('Processing file:', this._transformState.writechunk.relative); + console.log('Processing Markdown file:', this._transformState.writechunk.relative); } cb(); })) + .pipe(tap(function (file) { + // Read the template + const template = fs.readFileSync('source/blog/blog_template.html', 'utf8'); + + const frontMatterData = file.frontMatter; + const title = frontMatterData.title || 'Default Title'; + const pageName = frontMatterData['page-name'] || 'Default Page Name'; + const bgImageUrl = frontMatterData['background-image-url'] || 'default-image.jpg'; + const author = frontMatterData['author'] || 'AlgoÉTS'; + const authorTitle = frontMatterData['author-title'] || 'Club'; + const authorRole = frontMatterData['author-role'] || '.'; + const authorImg = frontMatterData['author-img'] || 'default-image.jpg'; + const facebookLink = frontMatterData['facebook-link'] || 'https://www.facebook.com/'; + const twitterLink = frontMatterData['twitter-link'] || 'https://twitter.com/'; + const linkedinLink = frontMatterData['linkedin-link'] || 'https://www.linkedin.com/'; + const date = frontMatterData['date']; + const tagsHtml = frontMatterData['tags'].map(tag => + `
  • ` + ).join('\n'); + const link = file.basename; + + + blogItemsIncludes += ` + @@include('blocks/blog/blog-item.htm', {"image_src": "${bgImageUrl}", "date": "${date}", "title": "${title}", "summary": "${pageName}", "link": "${link}"}) + `; + + // Replace placeholders in the template + const htmlContent = template + .replace(/{{ title }}/g, title) + .replace(/{{ page-name }}/g, pageName) + .replace(/{{ background-image-url }}/g, bgImageUrl) + .replace(/{{ author }}/g, author) + .replace(/{{ author-title }}/g, authorTitle) + .replace(/{{ author-role }}/g, authorRole) + .replace(/{{ author-img }}/g, authorImg) + .replace(/{{ facebook-link }}/g, facebookLink) + .replace(/{{ twitter-link }}/g, twitterLink) + .replace(/{{ linkedin-link }}/g, linkedinLink) + .replace(/{{ tags }}/g, ``) + .replace(/{{ content }}/g, file.contents.toString()); + + // Update the file content + file.contents = Buffer.from(htmlContent); + })) .pipe(fileinclude({ basepath: path.src.incdir, })) @@ -57,11 +105,10 @@ gulp.task("html:build", function () { stream: true, })); }); - -// Blog -gulp.task("blog:build", function () { +// HTML +gulp.task("html:build", function () { return gulp - .src(path.src.blog) + .src(path.src.html) .pipe(plumber({ errorHandler: function (err) { console.error('Error in plugin "' + err.plugin + '": ' + err.message); @@ -69,6 +116,14 @@ gulp.task("blog:build", function () { } })) .pipe(through.obj(function (file, enc, cb) { + // Check if the file is blog-grid.html + if (file.basename === 'blog-grid.html') { + // Replace {{ blogList }} with blogItemsIncludes + let fileContent = file.contents.toString(); + fileContent = fileContent.replace('{{ blogList }}', blogItemsIncludes); + file.contents = Buffer.from(fileContent); + } + this.push(file); cb(); }, function (cb) { @@ -86,6 +141,9 @@ gulp.task("blog:build", function () { })); }); +gulp.task("blog-and-html:build", gulp.series("blog:build", "html:build")); + + // SCSS gulp.task("scss:build", function () { return gulp @@ -156,6 +214,7 @@ gulp.task("clean", function (cb) { gulp.task("watch:build", function () { gulp.watch(path.src.html, gulp.series("html:build")); gulp.watch(path.src.blog, gulp.series("blog:build")); + gulp.watch(path.src.blog, gulp.series("blog-and-html:build")); gulp.watch(path.src.htminc, gulp.series("html:build")); gulp.watch(path.src.scss, gulp.series("scss:build")); gulp.watch(path.src.js, gulp.series("js:build")); @@ -168,8 +227,7 @@ gulp.task( "default", gulp.series( "clean", - "html:build", - "blog:build", + "blog-and-html:build", "js:build", "scss:build", "images:build", @@ -189,8 +247,7 @@ gulp.task( gulp.task( "build", gulp.series( - "html:build", - "blog:build", + "blog-and-html:build", "js:build", "scss:build", "images:build", diff --git a/package-lock.json b/package-lock.json index f96be296..6e80aa18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "gulp": "^4.0.2", "gulp-autoprefixer": "^8.0.0", "gulp-file-include": "^2.3.0", + "gulp-foreach": "^0.1.0", "gulp-header-comment": "^0.10.0", "gulp-rimraf": "^1.0.0", "gulp-sass": "^5.1.0", @@ -27,7 +28,11 @@ "tailwindcss": "^3.0.23" }, "devDependencies": { + "fs": "^0.0.1-security", + "gulp-front-matter": "^1.3.0", + "gulp-markdown": "^8.0.0", "gulp-plumber": "^1.2.1", + "gulp-tap": "^2.0.0", "through2": "^4.0.2" } }, @@ -300,6 +305,12 @@ "@types/node": "*" } }, + "node_modules/@types/expect": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", + "dev": true + }, "node_modules/@types/node": { "version": "20.11.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", @@ -308,6 +319,16 @@ "undici-types": "~5.26.4" } }, + "node_modules/@types/vinyl": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", + "dev": true, + "dependencies": { + "@types/expect": "^1.20.4", + "@types/node": "*" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -445,6 +466,15 @@ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -491,6 +521,15 @@ "node": ">=0.10.0" } }, + "node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -499,6 +538,14 @@ "node": ">=0.10.0" } }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-initial": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", @@ -559,6 +606,15 @@ "node": ">=0.10.0" } }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -754,6 +810,15 @@ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, + "node_modules/beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -911,6 +976,42 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/bufferstreams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz", + "integrity": "sha512-LZmiIfQprMLS6/k42w/PTc7awhU8AdNNcUerxTgr01WlP9agR2SgMv0wjlYYFD6eDOi8WvofrTX8RayjR/AeUQ==", + "dev": true, + "dependencies": { + "readable-stream": "^1.0.33" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/bufferstreams/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/bufferstreams/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/bufferstreams/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -967,6 +1068,26 @@ "node": ">= 6" } }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001576", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", @@ -1339,6 +1460,17 @@ "node": ">=4" } }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -1348,6 +1480,15 @@ "type": "^1.0.1" } }, + "node_modules/dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1513,6 +1654,35 @@ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, + "node_modules/duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/duplexer2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -1549,6 +1719,18 @@ "node": ">= 4.0.0" } }, + "node_modules/easy-transform-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-transform-stream/-/easy-transform-stream-1.0.1.tgz", + "integrity": "sha512-ktkaa6XR7COAR3oj02CF3IOgz2m1hCaY3SfzvKT4Svt2MhHw9XCt+ncJNWfe2TGz31iqzNGZ8spdKQflj+Rlog==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eazy-logger": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", @@ -1742,11 +1924,23 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2282,6 +2476,21 @@ "node": ">= 0.6" } }, + "node_modules/front-matter": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz", + "integrity": "sha512-+gOIDsGWHVAiWSDfg3vpiHwkOrwO4XNS3YQH5DMmneLEPWzdCAnbSQCtxReF4yPK1nszLvAmLeR2SprnDQDnyQ==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==", + "dev": true + }, "node_modules/fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", @@ -2361,6 +2570,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -2970,6 +3187,256 @@ "node": ">= 6" } }, + "node_modules/gulp-foreach": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/gulp-foreach/-/gulp-foreach-0.1.0.tgz", + "integrity": "sha512-Bv5NwUxtE5X7sjwHyBjVih5cvqEFypHzb1sZywoSSXGCs/Rh7TazjRSXYk07JhMjqQ7oYRtZ6QyWo5ZmZjMGMg==", + "deprecated": "Either use gulp-tap or gulp-flatmap, depending on your needs", + "dependencies": { + "gulp-util": "~2.2.14", + "through2": "~0.6.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg==", + "dependencies": { + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==" + }, + "node_modules/gulp-foreach/node_modules/dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg==", + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gulp-foreach/node_modules/gulp-util": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", + "integrity": "sha512-9rtv4sj9EtCWYGD15HQQvWtRBtU9g1t0+w29tphetHxjxEAuBKQJkhGqvlLkHEtUjEgoqIpsVwPKU1yMZAa+wA==", + "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", + "dependencies": { + "chalk": "^0.5.0", + "dateformat": "^1.0.7-1.2.3", + "lodash._reinterpolate": "^2.4.1", + "lodash.template": "^2.4.1", + "minimist": "^0.2.0", + "multipipe": "^0.1.0", + "through2": "^0.5.0", + "vinyl": "^0.2.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-foreach/node_modules/gulp-util/node_modules/through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha512-zexCrAOTbjkBCXGyozn7hhS3aEaqdrc59mAD2E3dKYzV1vFuEGQ1hEDJN2oQMQFwy4he2zyLqPZV+AlfS8ZWJA==", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~3.0.0" + } + }, + "node_modules/gulp-foreach/node_modules/gulp-util/node_modules/xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/gulp-foreach/node_modules/has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA==", + "dependencies": { + "ansi-regex": "^0.2.0" + }, + "bin": { + "has-ansi": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/gulp-foreach/node_modules/lodash._reinterpolate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", + "integrity": "sha512-QGEOOjJi7W9LIgDAMVgtGBb8Qgo8ieDlSOCoZjtG45ZNRvDJZjwVMTYlfTIWdNRUiR1I9BjIqQ3Zaf1+DYM94g==" + }, + "node_modules/gulp-foreach/node_modules/lodash.escape": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", + "integrity": "sha512-PiEStyvZ8gz37qBE+HqME1Yc/ewb/59AMOu8pG7Ztani86foPTxgzckQvMdphmXPY6V5f20Ex/CaNBqHG4/ycQ==", + "dependencies": { + "lodash._escapehtmlchar": "~2.4.1", + "lodash._reunescapedhtml": "~2.4.1", + "lodash.keys": "~2.4.1" + } + }, + "node_modules/gulp-foreach/node_modules/lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==", + "dependencies": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "node_modules/gulp-foreach/node_modules/lodash.template": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", + "integrity": "sha512-5yLOQwlS69xbaez3g9dA1i0GMAj8pLDHp8lhA4V7M1vRam1lqD76f0jg5EV+65frbqrXo1WH9ZfKalfYBzJ5yQ==", + "dependencies": { + "lodash._escapestringchar": "~2.4.1", + "lodash._reinterpolate": "~2.4.1", + "lodash.defaults": "~2.4.1", + "lodash.escape": "~2.4.1", + "lodash.keys": "~2.4.1", + "lodash.templatesettings": "~2.4.1", + "lodash.values": "~2.4.1" + } + }, + "node_modules/gulp-foreach/node_modules/lodash.templatesettings": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", + "integrity": "sha512-vY3QQ7GxbeLe8XfTvoYDbaMHO5iyTDJS1KIZrxp00PRMmyBKr8yEcObHSl2ppYTwd8MgqPXAarTvLA14hx8ffw==", + "dependencies": { + "lodash._reinterpolate": "~2.4.1", + "lodash.escape": "~2.4.1" + } + }, + "node_modules/gulp-foreach/node_modules/minimist": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.4.tgz", + "integrity": "sha512-Pkrrm8NjyQ8yVt8Am9M+yUt74zE3iokhzbG1bFVNjLB92vwM71hf40RkEsryg98BujhVOncKm/C1xROxZ030LQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gulp-foreach/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/gulp-foreach/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/gulp-foreach/node_modules/strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ==", + "dependencies": { + "ansi-regex": "^0.2.1" + }, + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA==", + "bin": { + "supports-color": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-foreach/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/gulp-foreach/node_modules/vinyl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", + "integrity": "sha512-4gFk9xrecazOTuFKcUYrE1TjHSYL63dio72D+q0d1mHF51FEcxTT2RHFpHbN5TNJgmPYHuVsBdhvXEOCDcytSA==", + "dependencies": { + "clone-stats": "~0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-front-matter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gulp-front-matter/-/gulp-front-matter-1.3.0.tgz", + "integrity": "sha512-r4bo1h1oG+a++QWzs/HT6WP9tKKOiR9G38K6SLJtl1pDRxEPyaTtnsw2Dori7r9A/vd2KAIHYpGc2TFy24lDhw==", + "dev": true, + "dependencies": { + "front-matter": "^2.0.0", + "gulp-util": "^3.0.6", + "object-path": "^0.9.2", + "readable-stream": "^2.0.3", + "tryit": "^1.0.1", + "vinyl-bufferstream": "^1.0.1" + } + }, "node_modules/gulp-header-comment": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/gulp-header-comment/-/gulp-header-comment-0.10.0.tgz", @@ -2995,6 +3462,59 @@ "node": ">=6" } }, + "node_modules/gulp-markdown": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gulp-markdown/-/gulp-markdown-8.0.0.tgz", + "integrity": "sha512-G/teLXCASFqfM1r+nYkNS3G4UYUKGgXkI6UFteMJipoIBZnxpAw9MRZ1JOHeYM6KKxPZ/FYQ9CYQ2DZPwwoZXA==", + "dev": true, + "dependencies": { + "gulp-plugin-extras": "^0.3.0", + "marked": "^9.1.5" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "peerDependencies": { + "gulp": ">=4" + }, + "peerDependenciesMeta": { + "gulp": { + "optional": true + } + } + }, + "node_modules/gulp-plugin-extras": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/gulp-plugin-extras/-/gulp-plugin-extras-0.3.0.tgz", + "integrity": "sha512-I/kOBSpo61QsGQZcqozZYEnDseKvpudUafVVWDLYgBFAUJ37kW5R8Sjw9cMYzpGyPUfEYOeoY4p+dkfLqgyJUQ==", + "dev": true, + "dependencies": { + "@types/vinyl": "^2.0.9", + "chalk": "^5.3.0", + "easy-transform-stream": "^1.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gulp-plugin-extras/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/gulp-plumber": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", @@ -3088,32 +3608,243 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-plumber/node_modules/kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "node_modules/gulp-plumber/node_modules/kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-plumber/node_modules/plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "dev": true, + "dependencies": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-plumber/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-plumber/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/gulp-plumber/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/gulp-rimraf": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulp-rimraf/-/gulp-rimraf-1.0.0.tgz", + "integrity": "sha512-RIHk+Ec5Sk0DFkgsAeSF6GUSlqikLMhXNHpUxCeNeIR7SG2j1f525cP7oLiHmgy9gzSeILRaC5i+79mQmTIy6A==", + "dependencies": { + "rimraf": "^2.6.2", + "through2": "^3.0.1" + } + }, + "node_modules/gulp-rimraf/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/gulp-sass": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", + "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.0.0", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz", + "integrity": "sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==", + "dependencies": { + "@gulp-sourcemaps/identity-map": "1.X", + "@gulp-sourcemaps/map-sources": "1.X", + "acorn": "5.X", + "convert-source-map": "1.X", + "css": "2.X", + "debug-fabulous": "1.X", + "detect-newline": "2.X", + "graceful-fs": "4.X", + "source-map": "~0.6.0", + "strip-bom-string": "1.X", + "through2": "2.X" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/gulp-tap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-tap/-/gulp-tap-2.0.0.tgz", + "integrity": "sha512-U5/v1bTozx672QHzrvzPe6fPl2io7Wqyrx2y30AG53eMU/idH4BrY/b2yikOkdyhjDqGgPoMUMnpBg9e9LK8Nw==", + "dev": true, + "dependencies": { + "through2": "^3.0.1" + } + }, + "node_modules/gulp-tap/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", + "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", + "dev": true, + "dependencies": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/gulp-util/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-util/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-util/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-util/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/gulp-util/node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "node_modules/gulp-util/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/gulp-plumber/node_modules/plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "node_modules/gulp-util/node_modules/replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", "dev": true, - "dependencies": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/gulp-plumber/node_modules/strip-ansi": { + "node_modules/gulp-util/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", @@ -3125,7 +3856,7 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-plumber/node_modules/supports-color": { + "node_modules/gulp-util/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", @@ -3134,7 +3865,7 @@ "node": ">=0.8.0" } }, - "node_modules/gulp-plumber/node_modules/through2": { + "node_modules/gulp-util/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", @@ -3144,68 +3875,18 @@ "xtend": "~4.0.1" } }, - "node_modules/gulp-rimraf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-rimraf/-/gulp-rimraf-1.0.0.tgz", - "integrity": "sha512-RIHk+Ec5Sk0DFkgsAeSF6GUSlqikLMhXNHpUxCeNeIR7SG2j1f525cP7oLiHmgy9gzSeILRaC5i+79mQmTIy6A==", - "dependencies": { - "rimraf": "^2.6.2", - "through2": "^3.0.1" - } - }, - "node_modules/gulp-rimraf/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/gulp-sass": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", - "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", - "dependencies": { - "lodash.clonedeep": "^4.5.0", - "picocolors": "^1.0.0", - "plugin-error": "^1.0.1", - "replace-ext": "^2.0.0", - "strip-ansi": "^6.0.1", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/gulp-sourcemaps": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz", - "integrity": "sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==", + "node_modules/gulp-util/node_modules/vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==", + "dev": true, "dependencies": { - "@gulp-sourcemaps/identity-map": "1.X", - "@gulp-sourcemaps/map-sources": "1.X", - "acorn": "5.X", - "convert-source-map": "1.X", - "css": "2.X", - "debug-fabulous": "1.X", - "detect-newline": "2.X", - "graceful-fs": "4.X", - "source-map": "~0.6.0", - "strip-bom-string": "1.X", - "through2": "2.X" + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/gulp-sourcemaps/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">= 0.9" } }, "node_modules/gulplog": { @@ -3248,6 +3929,18 @@ "node": ">=8" } }, + "node_modules/has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", @@ -3421,6 +4114,17 @@ "node": ">=0.10.0" } }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3553,6 +4257,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3711,6 +4426,19 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -3849,16 +4577,235 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", + "dev": true + }, + "node_modules/lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==", + "dev": true + }, + "node_modules/lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==", + "dev": true + }, + "node_modules/lodash._escapehtmlchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", + "integrity": "sha512-eHm2t2Lg476lq5v4FVmm3B5mCaRlDyTE8fnMfPCEq2o46G4au0qNXIKh7YWhjprm1zgSMLcMSs1XHMgkw02PbQ==", + "dependencies": { + "lodash._htmlescapes": "~2.4.1" + } + }, + "node_modules/lodash._escapestringchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", + "integrity": "sha512-iZ6Os4iipaE43pr9SBks+UpZgAjJgRC+lGf7onEoByMr1+Nagr1fmR7zCM6Q4RGMB/V3a57raEN0XZl7Uub3/g==" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "dev": true + }, + "node_modules/lodash._htmlescapes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", + "integrity": "sha512-g79hNmMOBVyV+4oKIHM7MWy9Awtk3yqf0Twlawr6f+CmG44nTwBh9I5XiLUnk39KTfYoDBpS66glQGgQCnFIuA==" + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "dev": true + }, + "node_modules/lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha512-BOlKGKNHhCHswGOWtmVb5zBygyxN7EmTuzVOSQI6QSoGhG+kvv71gICFS1TBpnqvT1n53txK8CDK3u5D2/GZxQ==" + }, + "node_modules/lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha512-XpqGh1e7hhkOzftBfWE7zt+Yn9mVHFkDhicVttvKLsoCMLVVL+xTQjfjB4X4vtznauxv0QZ5ZAeqjvat0dh62Q==" + }, + "node_modules/lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==", + "dev": true + }, + "node_modules/lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==", + "dev": true + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "node_modules/lodash._reunescapedhtml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", + "integrity": "sha512-CfmZRU1Mk4E/5jh+Wu8lc7tuc3VkuwWZYVIgdPDH9NRSHgiL4Or3AA4JCIpgrkVzHOM+jKu2OMkAVquruhRHDQ==", + "dependencies": { + "lodash._htmlescapes": "~2.4.1", + "lodash.keys": "~2.4.1" + } + }, + "node_modules/lodash._reunescapedhtml/node_modules/lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==", + "dependencies": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "node_modules/lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==", + "dev": true + }, + "node_modules/lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha512-lBrglYxLD/6KAJ8IEa5Lg+YHgNAL7FyKqXg4XOUI+Du/vtniLs1ZqS+yHNKPkK54waAgkdUnDOYaWf+rv4B+AA==", + "dependencies": { + "lodash._objecttypes": "~2.4.1" + } + }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, + "node_modules/lodash.defaults": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", + "integrity": "sha512-5wTIPWwGGr07JFysAZB8+7JB2NjJKXDIwogSaRX5zED85zyUAQwtOqUk8AsJkkigUcL3akbHYXd5+BPtTGQPZw==", + "dependencies": { + "lodash._objecttypes": "~2.4.1", + "lodash.keys": "~2.4.1" + } + }, + "node_modules/lodash.defaults/node_modules/lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==", + "dependencies": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "node_modules/lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==", + "dev": true, + "dependencies": { + "lodash._root": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", + "dev": true + }, "node_modules/lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==" }, + "node_modules/lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha512-sTebg2a1PoicYEZXD5PBdQcTlIJ6hUslrlWr7iV0O7n+i4596s2NQ9I5CaZ5FbXSfya/9WQsrYLANUJv9paYVA==", + "dependencies": { + "lodash._objecttypes": "~2.4.1" + } + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", + "dev": true, + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "dev": true + }, + "node_modules/lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", + "dev": true, + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "node_modules/lodash.values": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", + "integrity": "sha512-fQwubKvj2Nox2gy6YnjFm8C1I6MIlzKUtBB+Pj7JGtloGqDDL5CPRr4DUUFWPwXWwAl2k3f4C3Aw8H1qAPB9ww==", + "dependencies": { + "lodash.keys": "~2.4.1" + } + }, + "node_modules/lodash.values/node_modules/lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==", + "dependencies": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3870,6 +4817,23 @@ "loose-envify": "cli.js" } }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loud-rejection/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "node_modules/lru-cache": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", @@ -3921,6 +4885,14 @@ "node": ">=0.10.0" } }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -3932,6 +4904,18 @@ "node": ">=0.10.0" } }, + "node_modules/marked": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", + "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 16" + } + }, "node_modules/matchdep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", @@ -4115,6 +5099,26 @@ "timers-ext": "^0.1.7" } }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4173,6 +5177,14 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", @@ -4211,6 +5223,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==", + "dependencies": { + "duplexer2": "0.0.2" + } + }, "node_modules/mute-stdout": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", @@ -4416,6 +5436,15 @@ "node": ">= 0.4" } }, + "node_modules/object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha512-hPv/mbCYtXOhhqstmodis0boF1ooA8yz3PDJwTnkZvOlaJkd5aCAgA9tq6BUjJW5w8jXHI2qi9+w5N0tz+AAaA==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -5095,6 +6124,18 @@ "node": ">= 0.10" } }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -5162,6 +6203,17 @@ "node": ">=0.10" } }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/replace-ext": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", @@ -5921,6 +6973,12 @@ "node": ">=0.10.0" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -6074,6 +7132,20 @@ "node": ">=0.10.0" } }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -6386,6 +7458,20 @@ "node": ">=0.6" } }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha512-6C5h3CE+0qjGp+YKYTs74xR0k/Nw/ePtl/Lp6CCf44hqBQ66qnH1sDFR5mV/Gc48EsrHLB53lCFSffQCkka3kg==", + "dev": true + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -6672,6 +7758,15 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-bufferstream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz", + "integrity": "sha512-yCCIoTf26Q9SQ0L9cDSavSL7Nt6wgQw8TU1B/bb9b9Z4A3XTypXCGdc5BvXl4ObQvVY8JrDkFnWa/UqBqwM2IA==", + "dev": true, + "dependencies": { + "bufferstreams": "1.0.1" + } + }, "node_modules/vinyl-fs": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", diff --git a/package.json b/package.json index bbf60183..40bdf085 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "gulp": "^4.0.2", "gulp-autoprefixer": "^8.0.0", "gulp-file-include": "^2.3.0", + "gulp-foreach": "^0.1.0", "gulp-header-comment": "^0.10.0", "gulp-rimraf": "^1.0.0", "gulp-sass": "^5.1.0", @@ -29,7 +30,11 @@ "tailwindcss": "^3.0.23" }, "devDependencies": { + "fs": "^0.0.1-security", + "gulp-front-matter": "^1.3.0", + "gulp-markdown": "^8.0.0", "gulp-plumber": "^1.2.1", + "gulp-tap": "^2.0.0", "through2": "^4.0.2" } } diff --git a/source/blog-grid.html b/source/blog-grid.html index a5554bac..d7dddb0d 100644 --- a/source/blog-grid.html +++ b/source/blog-grid.html @@ -9,8 +9,7 @@
    - @@include('blocks/blog/blog-item.htm', {"image_src": "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg", "date": "1 Janvier 2024", "title": "Étude des vols de voitures", "summary": "Montréal", "link": "vol-de-voiture.html"}) - @@include('blocks/blog/blog-item.htm', {"image_src": "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg", "date": "1 Janvier 2024", "title": "Expérimentation Des Indicateurs Technique", "summary": "Backtest", "link": "experimentation-indicator-technique.html"}) + {{ blogList }}
    @@ -18,4 +17,4 @@ @@include('blocks/footer.htm') -@@include('footer.htm') \ No newline at end of file +@@include('footer.htm') diff --git a/source/blog/blog_template.html b/source/blog/blog_template.html new file mode 100644 index 00000000..36f0e5f0 --- /dev/null +++ b/source/blog/blog_template.html @@ -0,0 +1,88 @@ + +@@include('blocks/scroller.htm') +@@include('header.htm') +@@include('blocks/navigation.html', {"blog":"active"}) + +@@include('blocks/page-title.htm', { "page-name": "{{ page-name }}", "title": "{{ title }}", "background-image-url": "{{ background-image-url }}" }) + + +
    +
    +
    +
    +
    +
    +
    +
    + blog +
    + {{ content }} +
    + {{ tags }} + +
      +
    • Share:
    • +
    • +
    • +
    • +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + + +@@include('blocks/footer.htm') + +@@include('footer.htm') diff --git a/source/blog/experimentation-indicator-technique.html b/source/blog/experimentation-indicator-technique.html deleted file mode 100644 index c8230594..00000000 --- a/source/blog/experimentation-indicator-technique.html +++ /dev/null @@ -1,608 +0,0 @@ -@@include('blocks/scroller.htm') -@@include('header.htm') - -@@include('blocks/navigation.html',{"blog":"active"}) - -@@include('blocks/page-title.htm', { "page-name": "Backtesting", "title": "Expérimentation des indicateurs technique", "background-image-url":"images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg"}) - -
    -
    -
    -
    -
    -
    -
    - blog -
    - -

    Expérimentation des indicateurs technique

    - - -

    Introduction

    - -

    Dans ce rapport, nous présentons une expérimentation des indicateurs techniques à - l'aide du projet BatchBacktesting disponible sur GitHub à l'adresse suivante :

    - -
    -                                    
    -!pip install numpy httpx rich
    -
    -import pandas as pd
    -import numpy as np
    -from datetime import datetime
    -import sys
    -import os
    -import httpx
    -
    -import concurrent.futures
    -from datetime import datetime
    -import glob
    -import warnings
    -from rich.progress import track
    -warnings.filterwarnings("ignore")
    -                                    
    -                                
    - - -

    API

    - -

    N'oubliez pas de remplacer les espaces réservés FMP_API_KEY et BINANCE_API_KEY par - vos véritables clés API pour pouvoir accéder aux données des services respectifs. -

    - -
    -                                    
    -BASE_URL_FMP = "https://financialmodelingprep.com/api/v3"
    -BASE_URL_BINANCE = "https://fapi.binance.com/fapi/v1/"
    -FMP_API_KEY = ""
    -BINANCE_API_KEY = ""
    -                                    
    -                                
    - -

    Plusieurs fonctions pour effectuer des requêtes API et fournit une liste de - cryptomonnaies prises en charge.

    - -

    Ce script propose des fonctions pour :

    - -
      -
    1. Effectuer des requêtes API vers différents points de terminaison.
    2. -
    3. Obtenir des données historiques de prix pour les cryptomonnaies et les actions. -
    4. -
    5. Obtenir la liste des actions du S&P 500.
    6. -
    7. Obtenir toutes les cryptomonnaies prises en charge.
    8. -
    9. Obtenir les listes des états financiers.
    10. -
    - -
    -
    -def make_api_request(api_endpoint, params):
    -    with httpx.Client() as client:
    -        # Make the GET request to the API
    -        response = client.get(api_endpoint, params=params)
    -        if response.status_code == 200:
    -            return response.json()
    -        print("Error: Failed to retrieve data from API")
    -        return None
    -                                
    -
    - -

    - La fonction make_api_request() effectue une requête GET vers l'API et renvoie les - données au format JSON si la requête est réussie. Sinon, elle renvoie None. -

    - -
    -
    -def get_historical_price_full_crypto(symbol):
    -    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/crypto/{symbol}"
    -    params = {"apikey": FMP_API_KEY}
    -    return make_api_request(api_endpoint, params)
    -
    -
    -def get_historical_price_full_stock(symbol):
    -    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/{symbol}"
    -    params = {"apikey": FMP_API_KEY}
    -
    -    return make_api_request(api_endpoint, params)
    -
    -def get_SP500():
    -    api_endpoint = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
    -    data = pd.read_html(api_endpoint)
    -    return list(data[0]['Symbol'])
    -
    -
    -def get_all_crypto():
    -    """
    -    All possible crypto symbols
    -    """
    -    return [
    -        "BTCUSD",
    -        "ETHUSD",
    -        "LTCUSD",
    -        "BCHUSD",
    -        "XRPUSD",
    -        "EOSUSD",
    -        "XLMUSD",
    -        "TRXUSD",
    -        "ETCUSD",
    -        "DASHUSD",
    -        "ZECUSD",
    -        "XTZUSD",
    -        "XMRUSD",
    -        "ADAUSD",
    -        "NEOUSD",
    -        "XEMUSD",
    -        "VETUSD",
    -        "DOGEUSD",
    -        "OMGUSD",
    -        "ZRXUSD",
    -        "BATUSD"
    -        "USDTUSD",
    -        "LINKUSD",
    -        "BTTUSD",
    -        "BNBUSD",
    -        "ONTUSD",
    -        "QTUMUSD",
    -        "ALGOUSD",
    -        "ZILUSD",
    -        "ICXUSD",
    -        "KNCUSD",
    -        "ZENUSD",
    -        "THETAUSD",
    -        "IOSTUSD",
    -        "ATOMUSD",
    -        "MKRUSD",
    -        "COMPUSD",
    -        "YFIUSD",
    -        "SUSHIUSD",
    -        "SNXUSD",
    -        "UMAUSD",
    -        "BALUSD",
    -        "AAVEUSD",
    -        "UNIUSD",
    -        "RENBTCUSD",
    -        "RENUSD",
    -        "CRVUSD",
    -        "SXPUSD",
    -        "KSMUSD",
    -        "OXTUSD",
    -        "DGBUSD",
    -        "LRCUSD",
    -        "WAVESUSD",
    -        "NMRUSD",
    -        "STORJUSD",
    -        "KAVAUSD",
    -        "RLCUSD",
    -        "BANDUSD",
    -        "SCUSD",
    -        "ENJUSD",
    -    ]
    -
    -def get_financial_statements_lists():
    -    api_endpoint = f"{BASE_URL_FMP}/financial-statement-symbol-lists"
    -    params = {"apikey": FMP_API_KEY}
    -    return make_api_request(api_endpoint, params)
    -
    -def get_Vanguard_Canada():
    -    """
    -    Get Vanguard Canada companies
    -
    -    Returns:
    -        dict: Dictionary containing the data
    -    """
    -        # VCN: Vanguard FTSE Canada All Cap Index ETF
    -        # VFV: Vanguard S&P 500 Index ETF
    -        # VUN: Vanguard US Total Market Index ETF
    -        # VEE: Vanguard FTSE Emerging Markets All Cap Index ETF
    -        # VAB: Vanguard Canadian Aggregate Bond Index ETF
    -        # VSB: Vanguard Canadian Short-Term Bond Index ETF
    -        # VXC: Vanguard FTSE Global All Cap ex Canada Index ETF
    -        # VIU: Vanguard FTSE Developed All Cap ex North America Index ETF
    -        # VGG: Vanguard US Dividend Appreciation Index ETF
    -    return ['VCN', 'VFV', 'VUN', 'VEE', 'VAB', 'VSB', 'VXC', 'VIU', 'VGG']
    -                                
    -
    - -

    - La fonction get_historical_price_full_crypto() effectue une requête API vers - l'API FMP pour obtenir les données historiques de prix pour une cryptomonnaie - spécifique. La fonction get_historical_price_full_stock() effectue une requête - API vers l'API FMP pour obtenir les données historiques de prix pour une action - spécifique. La fonction get_SP500() effectue une requête API vers Wikipedia pour - obtenir la liste des actions du S&P 500. La fonction get_all_crypto() renvoie la - liste de toutes les cryptomonnaies prises en charge. La fonction - get_financial_statements_lists() effectue une requête API vers l'API FMP pour - obtenir la liste des états financiers. La fonction get_Vanguard_Canada() renvoie - la liste des actions de Vanguard Canada. -

    - -

    - Pour utiliser ce script dans votre projet, copiez simplement assurez-vous d'avoir - installé les bibliothèques requises mentionnées dans la section "Exigences" de la - documentation BatchBacktesting. Ensuite, vous pouvez importer les fonctions de ce - script dans votre script principal ou votre Jupyter Notebook pour accéder et - manipuler les données comme vous le souhaitez. -

    - -

    - Une fois que vous avez les données, vous pouvez utiliser la bibliothèque - BatchBacktesting pour tester diverses stratégies sur les actions ou les - cryptomonnaies, analyser les résultats et visualiser les performances. À titre - d'exemple, nous avons utilisé la stratégie EMA (Exponential Moving Average) pour - effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies - prises en charge. -

    - -

    EMA Stratégie

    - -

    L'EMA est un indicateur technique qui est utilisé pour lisser l'action des prix en - filtrant le "bruit" des fluctuations de prix aléatoires à court terme. Il est - calculé en prenant le prix moyen d'un titre sur un nombre spécifique de périodes de - temps. L'EMA est un type de moyenne mobile qui accorde un poids et une signification - plus importants aux points de données les plus récents. La moyenne mobile - exponentielle est également appelée moyenne mobile pondérée exponentiellement. -

    - -
    -
    -class EMA(Strategy):
    -    n1 = 20
    -    n2 = 80
    -    n3 = 150
    -
    -    def init(self):
    -        close = self.data.Close
    -        self.ema20 = self.I(taPanda.ema, close.s, self.n1)
    -        self.ema80 = self.I(taPanda.ema, close.s, self.n2)
    -        self.ema150 = self.I(taPanda.ema, close.s, self.n3)
    -
    -    def next(self):
    -        price = self.data.Close
    -        if crossover(self.ema20, self.ema80):
    -            self.position.close()
    -            self.buy(sl=0.90 * price, tp=1.25 * price)
    -
    -        elif crossover(self.ema80, self.ema20):
    -            self.position.close()
    -            self.sell(sl=1.10 * price, tp=0.75 * price)
    -
    -                                
    -
    - - -

    - La stratégie EMA est implémentée dans la classe EMA. La stratégie EMA est une - stratégie de suivi de tendance qui utilise trois moyennes mobiles exponentielles - (EMA) avec des périodes de 20, 80 et 150. Lorsque la moyenne mobile exponentielle - à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par - le haut, cela signifie que la tendance est à la hausse et que nous devrions - acheter. Lorsque la moyenne mobile exponentielle à court terme (20) croise la - moyenne mobile exponentielle à long terme (80) par le bas, cela signifie que la - tendance est à la baisse et que nous devrions vendre. -

    - -
    -
    -def run_backtests_strategies(instruments, strategies):
    -    """
    -    Run backtests for a list of instruments using a specified strategy.
    -
    -    Args:
    -        instruments (list): List of instruments to run backtests for
    -        strategies (list): List of strategies to run backtests for
    -
    -    Returns:
    -        List of outputs from run_backtests()
    -
    -    """
    -
    -    # find strategies in the STRATEGIES
    -    strategies = [x for x in STRATEGIES if x.__name__ in strategies]
    -    outputs = []
    -    with concurrent.futures.ThreadPoolExecutor() as executor:
    -        futures = []
    -        for strategy in strategies:
    -            future = executor.submit(run_backtests, instruments, strategy, 4)
    -            futures.append(future)
    -
    -        for future in concurrent.futures.as_completed(futures):
    -            outputs.extend(future.result())
    -
    -    return outputs
    -
    -def check_crypto(instrument):
    -    """
    -    Check if the instrument is crypto or not
    -    """
    -    return instrument in get_all_crypto()
    -
    -def check_stock(instrument):
    -    """
    -    Check if the instrument is crypto or not
    -    """
    -    return instrument not in get_financial_statements_lists()
    -
    -
    -def process_instrument(instrument, strategy):
    -    """
    -    Process a single instrument for a backtest using a specified strategy.
    -    Returns a Pandas dataframe of the backtest results.
    -    """
    -    try:
    -
    -        if check_crypto(instrument):
    -            data = get_historical_price_full_crypto(instrument)
    -        else:
    -            data = get_historical_price_full_stock(instrument)
    -
    -        if data is None or "historical" not in data:
    -            print(f"Error processing {instrument}: No data")
    -            return None
    -
    -        data = clean_data(data)
    -
    -        bt = Backtest(
    -            data, strategy=strategy, cash=100000, commission=0.002, exclusive_orders=True
    -        )
    -        output = bt.run()
    -        output = process_output(output, instrument, strategy)
    -        return output, bt
    -    except Exception as e:
    -        print(f"Error processing {instrument}: {str(e)}")
    -        return None
    -
    -def clean_data(data):
    -    """
    -    Clean historical price data for use in a backtest.
    -    Returns a Pandas dataframe of the cleaned data.
    -    """
    -    data = data["historical"]
    -    data = pd.DataFrame(data)
    -    data.columns = [x.title() for x in data.columns]
    -    data = data.drop(
    -        [
    -            "Adjclose",
    -            "Unadjustedvolume",
    -            "Change",
    -            "Changepercent",
    -            "Vwap",
    -            "Label",
    -            "Changeovertime",
    -        ],
    -        axis=1,
    -    )
    -    data["Date"] = pd.to_datetime(data["Date"])
    -    data.set_index("Date", inplace=True)
    -    data = data.iloc[::-1]
    -    return data
    -
    -
    -def process_output(output, instrument, strategy, in_row=True):
    -    """
    -    Process backtest output data to include instrument name, strategy name,
    -    and parameters.
    -    Returns a Pandas dataframe of the processed output.
    -    """
    -    if in_row:
    -        output = pd.DataFrame(output).T
    -    output["Instrument"] = instrument
    -    output["Strategy"] = strategy.__name__
    -    output.pop("_strategy")
    -    return output
    -
    -
    -def save_output(output, output_dir, instrument, start, end):
    -    """
    -    Save backtest output to file and generate chart if specified.
    -    """
    -    print(f"Saving output for {instrument}")
    -    fileNameOutput = f"{output_dir}/{instrument}-{start}-{end}.csv"
    -    output.to_csv(fileNameOutput)
    -
    -
    -def plot_results(bt, output_dir, instrument, start, end):
    -    print(f"Saving chart for {instrument}")
    -    fileNameChart = f"{output_dir}/{instrument}-{start}-{end}.html"
    -    bt.plot(filename=fileNameChart, open_browser=False)
    -
    -def run_backtests(instruments, strategy, num_threads=4, generate_plots=False):
    -    """
    -    Run backtests for a list of instruments using a specified strategy.
    -    Returns a list of Pandas dataframes of the backtest results.
    -
    -    Args:
    -        instruments (list): List of instruments to run backtests for
    -
    -    Returns:
    -        List of Pandas dataframes of the backtest results
    -    """
    -    outputs = []
    -    output_dir = f"output/raw/{strategy.__name__}"
    -    output_dir_charts = f"output/charts/{strategy.__name__}"
    -    if not os.path.exists(output_dir):
    -        os.makedirs(output_dir)
    -    if not os.path.exists(output_dir_charts):
    -        os.makedirs(output_dir_charts)
    -    with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
    -        future_to_instrument = {
    -            executor.submit(process_instrument, instrument, strategy): instrument
    -            for instrument in instruments
    -        }
    -        for future in concurrent.futures.as_completed(future_to_instrument):
    -            instrument = future_to_instrument[future]
    -            output = future.result()
    -            if output is not None:
    -                outputs.append(output[0])
    -                save_output(output[0], output_dir, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    -                if generate_plots:
    -                    plot_results(output[1], output_dir_charts, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    -    data_frame = pd.concat(outputs)
    -    start = data_frame["Start"].to_string().strip().split()[1]
    -    end = data_frame["End"].to_string().strip().split()[1]
    -    fileNameOutput = f"output/{strategy.__name__}-{start}-{end}.csv"
    -    data_frame.to_csv(fileNameOutput)
    -
    -
    -    return data_frame
    -                                
    -
    - -

    - La fonction run_backtests_strategies() exécute des backtests pour une liste - d'instruments en utilisant une stratégie spécifique. La fonction - check_crypto() vérifie si l'instrument est une cryptomonnaie ou non. La fonction - check_stock() vérifie si l'instrument est une action ou non. La fonction - process_instrument() traite un seul instrument pour un backtest en utilisant une - stratégie spécifique. La fonction clean_data() nettoie les données historiques - des prix pour les utiliser dans un backtest. La fonction process_output() - traite les données de sortie du backtest pour inclure le nom de l'instrument, le - nom de la stratégie et les paramètres. La fonction save_output() enregistre la - sortie du backtest dans un fichier et génère un graphique si spécifié. La - fonction plot_results() enregistre la sortie du backtest dans un fichier et - génère un graphique si spécifié. La fonction run_backtests() exécute des - backtests pour une liste d'instruments en utilisant une stratégie spécifique. -

    - -

    - Le script génère des graphiques pour chaque instrument testé, qui peuvent être - visualisés pour analyser les performances des stratégies appliquées. Les résultats - sont sauvegardés dans le répertoire output du projet BatchBacktesting. -

    - -
    -
    -tickers = get_SP500()
    -run_backtests(tickers, strategy=EMA, num_threads=12, generate_plots=True)
    -ticker = get_all_crypto()
    -run_backtests(ticker, strategy=EMA, num_threads=12, generate_plots=True)
    -                                
    -
    - -

    - Nous avons utilisé la stratégie EMA pour effectuer des tests de performance sur les - actions du S&P 500 et les cryptomonnaies prises en charge. Les résultats sont - sauvegardés dans le répertoire output du projet BatchBacktesting. -

    - -

    - Le lien que vous avez partagé correspond au répertoire output du projet - BatchBacktesting sur GitHub : - https://github.com/AlgoETS/BatchBacktesting/tree/main/output. Cependant, il semble - que ce répertoire ne contient pas de résultats pré-calculés. En effet, il est - probable que les auteurs du projet aient choisi de ne pas inclure les résultats des - tests dans le dépôt GitHub afin d'éviter d'encombrer le dépôt avec des données - spécifiques à chaque utilisateur. -

    - -

    - Pour obtenir des valeurs calculées pour vos propres tests, vous devrez exécuter le - script en local sur votre machine avec les paramètres et les stratégies de votre - choix. Après avoir exécuté le script, les résultats seront sauvegardés dans le - répertoire output de votre projet local. - - https://algoets.github.io/BatchBacktesting/output/charts/EMA/AAPL-2018-04-04-2023-04-03.html -

    - -

    Analyse

    - -

    Top 5 des instruments avec le meilleur rendement :

    - -
      -
    1. BTCBUSD : 293,78%
    2. -
    3. ALB : 205,97%
    4. -
    5. OMGUSD : 199,62%
    6. -
    7. BBWI : 196,82%
    8. -
    9. GRMN : 193,47%
    10. -
    - -

    Top 5 des instruments avec le plus faible rendement :

    - -
      -
    1. BTTBUSD : -99,93%
    2. -
    3. UAL : -82,63%
    4. -
    5. NCLH : -81,51%
    6. -
    7. LNC : -78,02%
    8. -
    9. CHRW : -76,38%
    10. -
    - - -

    - En conclusion, le projet BatchBacktesting offre une approche flexible et puissante - pour tester et analyser les performances des indicateurs techniques sur les marchés - boursiers et les cryptomonnaies. Les fonctions fournies permettent une intégration - facile avec les API de services financiers et une manipulation aisée des données. - Les résultats des expérimentations peuvent être utilisés pour développer et affiner - des stratégies de trading algorithmique en fonction des performances observées -

    - -
    - - -
      -
    • Share:
    • -
    • -
    • -
    • -
    • -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - -@@include('blocks/footer.htm') - -@@include('footer.htm') \ No newline at end of file diff --git a/source/blog/experimentation-indicator-technique.md b/source/blog/experimentation-indicator-technique.md new file mode 100644 index 00000000..f880d802 --- /dev/null +++ b/source/blog/experimentation-indicator-technique.md @@ -0,0 +1,420 @@ +--- +title: Expérimentation des indicateurs technique +page-name: "Backtesting" +background-image-url: "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg" +facebook-link : +twitter-link : +linkedin-link : +tags : [ "Données publique", "Indicateurs Technique", "Python"] +author : Antoine Boucher +author-title : Co-Capitaine +author-role : Rechercheur des données +author-img : images/team/team-3.png +date : 1 janvier 2024 +--- + +## Expérimentation des indicateurs technique + +### Introduction + +Dans ce rapport, nous présentons une expérimentation des indicateurs techniques à l'aide du projet BatchBacktesting disponible sur GitHub à l'adresse suivante : + +```bash +!pip install numpy httpx rich +``` + +```python +import pandas as pd +import numpy as np +from datetime import datetime +import sys +import os +import httpx + +import concurrent.futures +from datetime import datetime +import glob +import warnings +from rich.progress import track +warnings.filterwarnings("ignore") +``` + +### API + +N'oubliez pas de remplacer les espaces réservés FMP_API_KEY et BINANCE_API_KEY par vos véritables clés API pour pouvoir accéder aux données des services respectifs. + +```python +BASE_URL_FMP = "https://financialmodelingprep.com/api/v3" +BASE_URL_BINANCE = "https://fapi.binance.com/fapi/v1/" +FMP_API_KEY = "" +BINANCE_API_KEY = "" +``` + +Plusieurs fonctions pour effectuer des requêtes API et fournit une liste de cryptomonnaies prises en charge. + +Ce script propose des fonctions pour : + +1. Effectuer des requêtes API vers différents points de terminaison. +2. Obtenir des données historiques de prix pour les cryptomonnaies et les actions. +3. Obtenir la liste des actions du S&P 500. +4. Obtenir toutes les cryptomonnaies prises en charge. +5. Obtenir les listes des états financiers. + +```python +def make_api_request(api_endpoint, params): + with httpx.Client() as client: + # Make the GET request to the API + response = client.get(api_endpoint, params=params) + if response.status_code == 200: + return response.json() + print("Error: Failed to retrieve data from API") + return None +``` + +La fonction make_api_request() effectue une requête GET vers l'API et renvoie les données au format JSON si la requête est réussie. Sinon, elle renvoie None. + +```python +def get_historical_price_full_crypto(symbol): + api_endpoint = f"{BASE_URL_FMP}/historical-price-full/crypto/{symbol}" + params = {"apikey": FMP_API_KEY} + return make_api_request(api_endpoint, params) + + +def get_historical_price_full_stock(symbol): + api_endpoint = f"{BASE_URL_FMP}/historical-price-full/{symbol}" + params = {"apikey": FMP_API_KEY} + + return make_api_request(api_endpoint, params) + +def get_SP500(): + api_endpoint = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies" + data = pd.read_html(api_endpoint) + return list(data[0]['Symbol']) + + +def get_all_crypto(): + """ + All possible crypto symbols + """ + return [ + "BTCUSD", + "ETHUSD", + "LTCUSD", + "BCHUSD", + "XRPUSD", + "EOSUSD", + "XLMUSD", + "TRXUSD", + "ETCUSD", + "DASHUSD", + "ZECUSD", + "XTZUSD", + "XMRUSD", + "ADAUSD", + "NEOUSD", + "XEMUSD", + "VETUSD", + "DOGEUSD", + "OMGUSD", + "ZRXUSD", + "BATUSD" + "USDTUSD", + "LINKUSD", + "BTTUSD", + "BNBUSD", + "ONTUSD", + "QTUMUSD", + "ALGOUSD", + "ZILUSD", + "ICXUSD", + "KNCUSD", + "ZENUSD", + "THETAUSD", + "IOSTUSD", + "ATOMUSD", + "MKRUSD", + "COMPUSD", + "YFIUSD", + "SUSHIUSD", + "SNXUSD", + "UMAUSD", + "BALUSD", + "AAVEUSD", + "UNIUSD", + "RENBTCUSD", + "RENUSD", + "CRVUSD", + "SXPUSD", + "KSMUSD", + "OXTUSD", + "DGBUSD", + "LRCUSD", + "WAVESUSD", + "NMRUSD", + "STORJUSD", + "KAVAUSD", + "RLCUSD", + "BANDUSD", + "SCUSD", + "ENJUSD", + ] + +def get_financial_statements_lists(): + api_endpoint = f"{BASE_URL_FMP}/financial-statement-symbol-lists" + params = {"apikey": FMP_API_KEY} + return make_api_request(api_endpoint, params) + +def get_Vanguard_Canada(): + """ + Get Vanguard Canada companies + + Returns: + dict: Dictionary containing the data + """ + # VCN: Vanguard FTSE Canada All Cap Index ETF + # VFV: Vanguard S&P 500 Index ETF + # VUN: Vanguard US Total Market Index ETF + # VEE: Vanguard FTSE Emerging Markets All Cap Index ETF + # VAB: Vanguard Canadian Aggregate Bond Index ETF + # VSB: Vanguard Canadian Short-Term Bond Index ETF + # VXC: Vanguard FTSE Global All Cap ex Canada Index ETF + # VIU: Vanguard FTSE Developed All Cap ex North America Index ETF + # VGG: Vanguard US Dividend Appreciation Index ETF + return ['VCN', 'VFV', 'VUN', 'VEE', 'VAB', 'VSB', 'VXC', 'VIU', 'VGG'] +``` + +La fonction get_historical_price_full_crypto() effectue une requête API vers l'API FMP pour obtenir les données historiques de prix pour une cryptomonnaie spécifique. La fonction get_historical_price_full_stock() effectue une requête API vers l'API FMP pour obtenir les données historiques de prix pour une action spécifique. La fonction get_SP500() effectue une requête API vers Wikipedia pour obtenir la liste des actions du S&P 500. La fonction get_all_crypto() renvoie la liste de toutes les cryptomonnaies prises en charge. La fonction get_financial_statements_lists() effectue une requête API vers l'API FMP pour obtenir la liste des états financiers. La fonction get_Vanguard_Canada() renvoie la liste des actions de Vanguard Canada. + +Pour utiliser ce script dans votre projet, copiez simplement assurez-vous d'avoir installé les bibliothèques requises mentionnées dans la section "Exigences" de la documentation BatchBacktesting. Ensuite, vous pouvez importer les fonctions de ce script dans votre script principal ou votre Jupyter Notebook pour accéder et manipuler les données comme vous le souhaitez. + +Une fois que vous avez les données, vous pouvez utiliser la bibliothèque BatchBacktesting pour tester diverses stratégies sur les actions ou les cryptomonnaies, analyser les résultats et visualiser les performances. À titre d'exemple, nous avons utilisé la stratégie EMA (Exponential Moving Average) pour effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies prises en charge. + +### EMA Stratégie + +L'EMA est un indicateur technique qui est utilisé pour lisser l'action des prix en filtrant le "bruit" des fluctuations de prix aléatoires à court terme. Il est calculé en prenant le prix moyen d'un titre sur un nombre spécifique de périodes de temps. L'EMA est un type de moyenne mobile qui accorde un poids et une signification plus importants aux points de données les plus récents. La moyenne mobile exponentielle est également appelée moyenne mobile pondérée exponentiellement. + +```python +class EMA(Strategy): + n1 = 20 + n2 = 80 + n3 = 150 + + def init(self): + close = self.data.Close + self.ema20 = self.I(taPanda.ema, close.s, self.n1) + self.ema80 = self.I(taPanda.ema, close.s, self.n2) + self.ema150 = self.I(taPanda.ema, close.s, self.n3) + + def next(self): + price = self.data.Close + if crossover(self.ema20, self.ema80): + self.position.close() + self.buy(sl=0.90 * price, tp=1.25 * price) + + elif crossover(self.ema80, self.ema20): + self.position.close() + self.sell(sl=1.10 * price, tp=0.75 * price) +``` + +La stratégie EMA est implémentée dans la classe EMA. La stratégie EMA est une stratégie de suivi de tendance qui utilise trois moyennes mobiles exponentielles (EMA) avec des périodes de 20, 80 et 150. Lorsque la moyenne mobile exponentielle à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par le haut, cela signifie que la tendance est à la hausse et que nous devrions acheter. Lorsque la moyenne mobile exponentielle à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par le bas, cela signifie que la tendance est à la baisse et que nous devrions vendre. + +```python +def run_backtests_strategies(instruments, strategies): + """ + Run backtests for a list of instruments using a specified strategy. + + Args: + instruments (list): List of instruments to run backtests for + strategies (list): List of strategies to run backtests for + + Returns: + List of outputs from run_backtests() + + """ + + # find strategies in the STRATEGIES + strategies = [x for x in STRATEGIES if x.__name__ in strategies] + outputs = [] + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [] + for strategy in strategies: + future = executor.submit(run_backtests, instruments, strategy, 4) + futures.append(future) + + for future in concurrent.futures.as_completed(futures): + outputs.extend(future.result()) + + return outputs + +def check_crypto(instrument): + """ + Check if the instrument is crypto or not + """ + return instrument in get_all_crypto() + +def check_stock(instrument): + """ + Check if the instrument is crypto or not + """ + return instrument not in get_financial_statements_lists() + + +def process_instrument(instrument, strategy): + """ + Process a single instrument for a backtest using a specified strategy. + Returns a Pandas dataframe of the backtest results. + """ + try: + + if check_crypto(instrument): + data = get_historical_price_full_crypto(instrument) + else: + data = get_historical_price_full_stock(instrument) + + if data is None or "historical" not in data: + print(f"Error processing {instrument}: No data") + return None + + data = clean_data(data) + + bt = Backtest( + data, strategy=strategy, cash=100000, commission=0.002, exclusive_orders=True + ) + output = bt.run() + output = process_output(output, instrument, strategy) + return output, bt + except Exception as e: + print(f"Error processing {instrument}: {str(e)}") + return None + +def clean_data(data): + """ + Clean historical price data for use in a backtest. + Returns a Pandas dataframe of the cleaned data. + """ + data = data["historical"] + data = pd.DataFrame(data) + data.columns = [x.title() for x in data.columns] + data = data.drop( + [ + "Adjclose", + "Unadjustedvolume", + "Change", + "Changepercent", + "Vwap", + "Label", + "Changeovertime", + ], + axis=1, + ) + data["Date"] = pd.to_datetime(data["Date"]) + data.set_index("Date", inplace=True) + data = data.iloc[::-1] + return data + + +def process_output(output, instrument, strategy, in_row=True): + """ + Process backtest output data to include instrument name, strategy name, + and parameters. + Returns a Pandas dataframe of the processed output. + """ + if in_row: + output = pd.DataFrame(output).T + output["Instrument"] = instrument + output["Strategy"] = strategy.__name__ + output.pop("_strategy") + return output + + +def save_output(output, output_dir, instrument, start, end): + """ + Save backtest output to file and generate chart if specified. + """ + print(f"Saving output for {instrument}") + fileNameOutput = f"{output_dir}/{instrument}-{start}-{end}.csv" + output.to_csv(fileNameOutput) + + +def plot_results(bt, output_dir, instrument, start, end): + print(f"Saving chart for {instrument}") + fileNameChart = f"{output_dir}/{instrument}-{start}-{end}.html" + bt.plot(filename=fileNameChart, open_browser=False) + +def run_backtests(instruments, strategy, num_threads=4, generate_plots=False): + """ + Run backtests for a list of instruments using a specified strategy. + Returns a list of Pandas dataframes of the backtest results. + + Args: + instruments (list): List of instruments to run backtests for + + Returns: + List of Pandas dataframes of the backtest results + """ + outputs = [] + output_dir = f"output/raw/{strategy.__name__}" + output_dir_charts = f"output/charts/{strategy.__name__}" + if not os.path.exists(output_dir): + os.makedirs(output_dir) + if not os.path.exists(output_dir_charts): + os.makedirs(output_dir_charts) + with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: + future_to_instrument = { + executor.submit(process_instrument, instrument, strategy): instrument + for instrument in instruments + } + for future in concurrent.futures.as_completed(future_to_instrument): + instrument = future_to_instrument[future] + output = future.result() + if output is not None: + outputs.append(output[0]) + save_output(output[0], output_dir, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1]) + if generate_plots: + plot_results(output[1], output_dir_charts, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1]) + data_frame = pd.concat(outputs) + start = data_frame["Start"].to_string().strip().split()[1] + end = data_frame["End"].to_string().strip().split()[1] + fileNameOutput = f"output/{strategy.__name__}-{start}-{end}.csv" + data_frame.to_csv(fileNameOutput) + + + return data_frame +``` + +La fonction run_backtests_strategies() exécute des backtests pour une liste d'instruments en utilisant une stratégie spécifique. La fonction check_crypto() vérifie si l'instrument est une cryptomonnaie ou non. La fonction check_stock() vérifie si l'instrument est une action ou non. La fonction process_instrument() traite un seul instrument pour un backtest en utilisant une stratégie spécifique. La fonction clean_data() nettoie les données historiques des prix pour les utiliser dans un backtest. La fonction process_output() traite les données de sortie du backtest pour inclure le nom de l'instrument, le nom de la stratégie et les paramètres. La fonction save_output() enregistre la sortie du backtest dans un fichier et génère un graphique si spécifié. La fonction plot_results() enregistre la sortie du backtest dans un fichier et génère un graphique si spécifié. La fonction run_backtests() exécute des backtests pour une liste d'instruments en utilisant une stratégie spécifique. + +Le script génère des graphiques pour chaque instrument testé, qui peuvent être visualisés pour analyser les performances des stratégies appliquées. Les résultats sont sauvegardés dans le répertoire output du projet BatchBacktesting. + +```python +tickers = get_SP500() +run_backtests(tickers, strategy=EMA, num_threads=12, generate_plots=True) +ticker = get_all_crypto() +run_backtests(ticker, strategy=EMA, num_threads=12, generate_plots=True) +``` + +Nous avons utilisé la stratégie EMA pour effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies prises en charge. Les résultats sont sauvegardés dans le répertoire output du projet BatchBacktesting. + +Le lien que vous avez partagé correspond au répertoire output du projet BatchBacktesting sur GitHub : `https://github.com/AlgoETS/BatchBacktesting/tree/main/output`. Cependant, il semble que ce répertoire ne contient pas de résultats pré-calculés. En effet, il est probable que les auteurs du projet aient choisi de ne pas inclure les résultats des tests dans le dépôt GitHub afin d'éviter d'encombrer le dépôt avec des données spécifiques à chaque utilisateur. + +Pour obtenir des valeurs calculées pour vos propres tests, vous devrez exécuter le script en local sur votre machine avec les paramètres et les stratégies de votre choix. Après avoir exécuté le script, les résultats seront sauvegardés dans le répertoire output de votre projet local. `https://algoets.github.io/BatchBacktesting/output/charts/EMA/AAPL-2018-04-04-2023-04-03.html` + +### Analyse + +Top 5 des instruments avec le meilleur rendement : + +1. BTCBUSD : 293,78% +2. ALB : 205,97% +3. OMGUSD : 199,62% +4. BBWI : 196,82% +5. GRMN : 193,47% + +Top 5 des instruments avec le plus faible rendement : + +1. BTTBUSD : -99,93% +2. UAL : -82,63% +3. NCLH : -81,51% +4. LNC : -78,02% +5. CHRW : -76,38% + +En conclusion, le projet BatchBacktesting offre une approche flexible et puissante pour tester et analyser les performances des indicateurs techniques sur les marchés boursiers et les cryptomonnaies. Les fonctions fournies permettent une intégration facile avec les API de services financiers et une manipulation aisée des données. Les résultats des expérimentations peuvent être utilisés pour développer et affiner des stratégies de trading algorithmique en fonction des performances observées. diff --git a/source/blog/vol-de-voiture.html b/source/blog/vol-de-voiture.html deleted file mode 100644 index b2c3b009..00000000 --- a/source/blog/vol-de-voiture.html +++ /dev/null @@ -1,548 +0,0 @@ -@@include('blocks/scroller.htm') -@@include('header.htm') - -@@include('blocks/navigation.html',{"blog":"active"}) - -@@include('blocks/page-title.htm', { "page-name": "Étude des vols de voitures", "title": "Montréal", -"background-image-url": -"images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg" -}) - -
    -
    -
    -
    -
    -
    -
    - blog -
    - -

    Étude des vols de voitures à Montréal

    -

    Original -

    Substack - -

    Découvrez les tendances de la criminalité liée aux vols de voitures - à Montréal à travers les années. Cette étude examine les quartiers les plus touchés, - les variations saisonnières, et bien plus encore.

    - -

    Un article dans le journal a particulièrement attiré mon attention de manière - inattendue, révélant une réalité alarmante : le taux de vols de voitures à Montréal - atteignait des sommets déconcertants. Cette révélation m’a laissé perplexe et - intrigué à la fois. Mon esprit curieux a été instantanément piqué, et j’ai ressenti - le besoin impérieux d’explorer ce phénomène de plus près, de le décortiquer et de - comprendre ses origines.

    - -

    Dans cet article, je vais vous emmener avec moi dans cette aventure intrigante, alors - que nous plongeons dans l’univers des vols de voitures à Montréal. Nous allons - dévoiler les données, analyser les statistiques et tenter de démystifier cette - réalité complexe. Attachez-vous bien, car nous partons à la découverte de l’envers - du décor de la criminalité automobile à Montréal.

    - -

    Récoltes des données

    - -

    J’ai entrepris la collecte de données en récupérant un fichier CSV exhaustif - contenant toutes les infractions criminelles à Montréal, mis à disposition par la - ville. Mon objectif était de cibler spécifiquement les infractions de type “Vol de - véhicule à moteur”. À ma grande surprise, j’ai trouvé pas moins de 53 964 cas - enregistrés depuis l’année 2018.

    - - blog - - Données des vols de véhicules à moteur à Montréal - -
    -
    - -

    Le vol en hausse

    - -

    L’un des constats les plus préoccupants réside dans la tendance constante à la hausse - du vol de véhicules, qui semble résolument insensible à tout ralentissement, comme - en témoigne ce graphique éloquent :

    - - blog - Graphique vols de véhicules à moteur par année -
    -
    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AnnéesVols de véhicules
    20154418
    20164352
    20174732
    20184237
    20194170
    20204706
    20216440
    20229377
    202311262
    - -

    -
    -
    - -

    Ces chiffres révèlent une progression alarmante, suscitant des inquiétudes - croissantes.

    - -

    Mode Opératoire

    - -

    De manière paradoxale, il s’avère que la majorité des vols de véhicules se produisent - en plein jour. En effet, 51% de ces vols ont lieu pendant la journée, lorsque tout - semble plus visible et évident. De plus, parmi les jours de la semaine, c’est le - mercredi qui détient le triste record du jour où les vols sont les plus fréquents : -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    JournéeOccurence
    Wednesday8519
    Monday8493
    Thursday8334
    Tuesday8303
    Friday7819
    Saturday6160
    Sunday6066
    -
    -
    - - blog - - Graphique vols de véhicules par jour de la semaine -
    -
    - - blog - Graphique vols de véhicules par jour de la semaine et quart de la journée -
    -
    - -

    Cette donnée surprenante met en évidence une réalité intrigante, où les vols de - véhicules semblent prospérer en plein jour, défiant ainsi les attentes - conventionnelles en matière de criminalité.

    - -

    Lieux

    - -

    Voici une carte thermique (heatmap) des cinq endroits les plus fréquemment ciblés par - les voleurs à Montréal. Il est intéressant de noter que les hôtels et les centres - commerciaux sont devenus des cibles privilégiées.

    - - blog - Carte thermique des vols de véhicules à Montréal -
    -
    - -

    Un Vol Sophistiqué

    - -

    Loin sont les jours où un simple trousseau de clés métalliques ou une vitre brisée - suffisaient pour voler une voiture. Aujourd’hui, les voleurs ont évolué, devenant - plus rusés et équipés de technologies avancées.

    - -

    Relay attack

    - -

    Ils utilisent un dispositif sophistiqué pour amplifier le signal, pratiquant ce que - l’on appelle l’attaque par relais.

    - -

    Dans ce type de vol, l’objectif des malfaiteurs est de tromper la voiture en lui - faisant croire que la clé se trouve à proximité immédiate du véhicule, même si en - réalité, la clé se trouve à plusieurs centaines de mètres de distance. Ils utilisent - un amplificateur de signal pour induire en erreur la voiture, lui faisant croire que - la clé est à l’intérieur du véhicule.

    - -

    Voici une vidéo capturant un vol qui ne dure que quelques secondes.

    - - blog - - Vol Voiture Technique du relai - -
    -
    - -

    PORT OBD

    - -

    Le Port OBD est le port « On-Board Diagnostics » se trouvant généralement au-dessus - de la pédale. C’est une interface de communication pour les systèmes de surveillance - et de contrôle des véhicules. Il est également utilisé par les garages pour - identifier et résoudre les défauts. Problème : Malheureusement, toute personne ayant - accès à celui-ci (par exemple, un garage malveillant, un valet ou des employés de - lave-auto) peut abuser du Port OBD pour créer une copie du porte-clés électronique - de votre voiture ! Parfois, les voleurs utilisent la méthode du Port OBD en y - injectant un code malicieux permettant de changer des configurations pour arrêter le - système d’alarme et faire un clonage de la clé.

    - - blog - - Port OBD - -
    -
    - -

    Conséquences

    - -

    L’explosion du nombre de vols de voitures a des conséquences directes sur les - propriétaires de véhicules, notamment une augmentation significative du coût de - l’assurance automobile. Certaines marques et modèles sont malheureusement devenus - les cibles privilégiées des voleurs. Voici le palmarès de 2022 :

    - - - s - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Marque/ModèleAnnée Modèle Volée le Plus SouventNombre de Véhicules AssurésNombre de VolsFréquence de Vol (%)Type
    1Honda CR-V2020115,8952,6892.3%SUV
    2Acura RDX202015,8956534.1%SUV
    3Honda Civic2019224,6885060.2%Sedan
    4Dodge RAM 1500 Series202079,0195040.6%Truck
    5Jeep Wrangler202128,0484331.5%SUV
    6Toyota RAV 42019124,3574250.3%SUV
    7Jeep Grand Cherokee202122,8084201.8%SUV
    8Toyota Highlander202117,3863442.0%SUV
    9Ford F150 Series201991,1662560.3%Truck
    10Hyundai Tucson202163,4502420.4%SUV
    - -
    -
    - -

    Se protéger

    - -

    Il est important de noter qu’aucune méthode n’est infaillible, mais l’objectif - principal est de rendre la tâche des voleurs aussi difficile que possible, les - décourageant ainsi de s’attaquer à votre véhicule.

    - -

    Verrouillez les portes et fermez complètement les fenêtres

    - -

    La première étape essentielle pour vous protéger consiste à verrouiller les portes de - votre véhicule et à fermer complètement les fenêtres. Ce geste simple peut - considérablement ralentir un voleur.

    - -

    Boite de farraday

    - -

    Pour protéger votre clé électronique (key FOB) contre les attaques par relais, vous - pouvez utiliser une boîte de Faraday. Cette boîte bloque le signal de la clé, - empêchant ainsi les voleurs d’amplifier son signal. Cette méthode constitue une - défense efficace contre les tentatives d’attaque par relais et est disponible à un - prix abordable, généralement autour de 25 $.

    - -

    Amazon: $25 Boite de farraday

    - -

    OBD PORT lock

    - -

    Pourquoi sommes-nous exposés ?

    - -

    Les véhicules équipés de systèmes de démarrage sans clé (“push start”) ou d’entrée - sans clé (“keyless entry”) ne disposent pas de clé mécanique pour démarrer le - moteur. Ils utilisent des clés électroniques qui s’authentifient avec la voiture via - un échange de données (par des signaux radio pour les systèmes sans clé ou par - insertion dans le tableau de bord).

    - -

    Comment le port est-il exploité ?

    - -

    Ces véhicules conservent une copie numérique des clés dans l’unité de contrôle du - moteur du véhicule (ECU). Le problème réside dans le fait que ces clés numériques - peuvent être téléchargées par quiconque a accès au “PORT OBD” du véhicule, puis - utilisées pour programmer une clé vierge en moins de 60 secondes.

    - -

    Pourquoi devrais-je m’inquiéter ?

    - -

    Cette clé duplicata est identique à l’originale, ce qui donne au voleur un accès - total pour OUVRIR, DÉMARRER et EMPORTER le véhicule à sa convenance, souvent des - jours, voire des semaines plus tard.

    - -

    Pour vous protéger contre ce type d’attaque, vous pouvez envisager de bloquer, - modifier ou cacher votre port OBD. Il ne faut que quelques minutes pour rendre ces - véhicules inviolables.

    - - blog - - Port OBD Lock -
    -
    - -

    Système de Repérage par TAG

    - -

    Cette technologie implique de placer plusieurs dispositifs sans fil dans des endroits - difficiles d’accès du véhicule. Chaque dispositif est autonome et émet un signal - avec un code d’identification unique qui peut être lu à distance par un récepteur. -

    - -

    Prix: 400$

    - -

    Barre Antivol

    - -

    Une barre antivol simple mais efficace peut ralentir un voleur et le décourager, - agissant comme un moyen dissuasif.

    - -

    Amazon: $69 Barre Antivol

    - -

    Apple tag

    - - blog - -
    -
    - -

    L’Apple tag est un relayeur de position, le tag émet des signaux anonymes et toute - personnes possédant Un apapreil Apple passant proche du tag envoit un signal au - serveur de Apple vous permettant ainsi d’avoir une position geographique du dernier - repérage. Il suffit de bien le cacher dans son auto.

    - -

    Toutefois, il est recommandé de désactiver le haut-parleur à l’intérieur de l’Apple - Tag pour éviter que le voleur ne le découvre et ne le désactive. En effet, Apple a - mis en place ce système pour prévenir le suivi indésirable des autres utilisateurs. - Imaginez la situation où quelqu’un aurait discrètement placé un Apple Tag sur vous, - vous permettant ainsi d’être suivi partout sans votre consentement.

    - -

    Dans le contexte des véhicules volés, une fois que le voleur a pris possession de - votre voiture et qu’il détecte la présence d’un Apple Tag non associé à son compte - Apple, il recevra une notification indiquant que cet Apple Tag le suit. En réaction, - il pourrait ouvrir l’application “Find My iPhone” pour tenter de localiser l’Apple - Tag.

    - -

    Pour plus de détails: https://youtu.be/hiivC_4li8Q?t=62

    - -

    Amazon: $34 Apple Tag

    - -
    - - -
      -
    • Share:
    • -
    • -
    • -
    • -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - -@@include('blocks/footer.htm') - -@@include('footer.htm') \ No newline at end of file diff --git a/source/blog/vol-de-voiture.md b/source/blog/vol-de-voiture.md new file mode 100644 index 00000000..576cde24 --- /dev/null +++ b/source/blog/vol-de-voiture.md @@ -0,0 +1,192 @@ +--- +title: Montréal +page-name: "Étude des vols de voitures" +background-image-url: "images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg" +facebook-link : +twitter-link : +linkedin-link : +tags : [ "Données publique", "Montréal", "Vol"] +author : Mohamed Ilias +author-title : Co-Capitaine +author-role : Artisan de la donnée. +author-img : images/team/team-2.png +date : 1 janvier 2024 +--- + +## Étude des vols de voitures à Montréal + +[Original](https://ilias.vercel.app/p/%C3%A9tude-des-vols-de-voitures-%C3%A0-montr%C3%A9al/) +[Substack](https://mohamedilias.substack.com/p/etude-des-vols-de-voitures-a-montreal) + +Découvrez les tendances de la criminalité liée aux vols de voitures +à Montréal à travers les années. Cette étude examine les quartiers les plus touchés, les variations saisonnières, et bien plus encore. + +Un article dans le journal a particulièrement attiré mon attention de manière +inattendue, révélant une réalité alarmante : le taux de vols de voitures à Montréal +atteignait des sommets déconcertants. Cette révélation m’a laissé perplexe et +intrigué à la fois. Mon esprit curieux a été instantanément piqué, et j’ai ressenti +le besoin impérieux d’explorer ce phénomène de plus près, de le décortiquer et de +comprendre ses origines.g + +Dans cet article, je vais vous emmener avec moi dans cette aventure intrigante, alors +que nous plongeons dans l’univers des vols de voitures à Montréal. Nous allons +dévoiler les données, analyser les statistiques et tenter de démystifier cette +réalité complexe. Attachez-vous bien, car nous partons à la découverte de l’envers +du décor de la criminalité automobile à Montréal. + +### Récoltes des données + +J’ai entrepris la collecte de données en récupérant un fichier CSV exhaustif +contenant toutes les infractions criminelles à Montréal, mis à disposition par la ville. Mon objectif était de cibler spécifiquement les infractions de type “Vol de véhicule à moteur”. À ma grande surprise, j’ai trouvé pas moins de 53 964 cas enregistrés depuis l’année 2018. + +blog +Données des vols de véhicules à moteur à Montréal + +### Le vol en hausse + +L’un des constats les plus préoccupants réside dans la tendance constante à la hausse du vol de véhicules, qui semble résolument insensible à tout ralentissement, comme en témoigne ce graphique éloquent : + +blog + Graphique vols de véhicules à moteur par année + +| Années | Vols de véhicules | +| ------ | ----------------- | +| 2015 | 4418 | +| 2016 | 4352 | +| 2017 | 4732 | +| 2018 | 4237 | +| 2019 | 4170 | +| 2020 | 4706 | +| 2021 | 6440 | +| 2022 | 9377 | +| 2023 | 11262 | + +Ces chiffres révèlent une progression alarmante, suscitant des inquiétudes croissantes. + +### Opératoire + +De manière paradoxale, il s’avère que la majorité des vols de véhicules se produisent en plein jour. En effet, 51% de ces vols ont lieu pendant la journée, lorsque tout semble plus visible et évident. De plus, parmi les jours de la semaine, c’est le mercredi qui détient le triste record du jour où les vols sont les plus fréquents : + +| Journée | Occurrence | +|------------|------------| +| Wednesday | 8519 | +| Monday | 8493 | +| Thursday | 8334 | +| Tuesday | 8303 | +| Friday | 7819 | +| Saturday | 6160 | +| Sunday | 6066 | + +blog + Graphique vols de véhicules par jour de la semaine + +blog + Graphique vols de véhicules par jour de la semaine et quart de la journée + +Cette donnée surprenante met en évidence une réalité intrigante, où les vols de véhicules semblent prospérer en plein jour, défiant ainsi les attentes conventionnelles en matière de criminalité. + +### Lieux + +Voici une carte thermique (heatmap) des cinq endroits les plus fréquemment ciblés par les voleurs à Montréal. Il est intéressant de noter que les hôtels et les centres commerciaux sont devenus des cibles privilégiées. + +blog + Carte thermique des vols de véhicules à Montréal + +### Un Vol Sophistiqué + +Loin sont les jours où un simple trousseau de clés métalliques ou une vitre brisée suffisaient pour voler une voiture. Aujourd’hui, les voleurs ont évolué, devenant plus rusés et équipés de technologies avancées.

    + +#### Relay attack + +Ils utilisent un dispositif sophistiqué pour amplifier le signal, pratiquant ce que l’on appelle l’attaque par relais. + +Dans ce type de vol, l’objectif des malfaiteurs est de tromper la voiture en lui faisant croire que la clé se trouve à proximité immédiate du véhicule, même si en réalité, la clé se trouve à plusieurs centaines de mètres de distance. Ils utilisent un amplificateur de signal pour induire en erreur la voiture, lui faisant croire que la clé est à l’intérieur du véhicule. + +Voici une vidéo capturant un vol qui ne dure que quelques secondes. + +blog +Vol Voiture Technique du relai + +#### PORT OBD + +Le Port OBD est le port « On-Board Diagnostics » se trouvant généralement au-dessus de la pédale. C’est une interface de communication pour les systèmes de surveillance et de contrôle des véhicules. Il est également utilisé par les garages pour identifier et résoudre les défauts. Problème : Malheureusement, toute personne ayant accès à celui-ci (par exemple, un garage malveillant, un valet ou des employés de lave-auto) peut abuser du Port OBD pour créer une copie du porte-clés électronique de votre voiture ! Parfois, les voleurs utilisent la méthode du Port OBD en y injectant un code malicieux permettant de changer des configurations pour arrêter le système d’alarme et faire un clonage de la clé. + +blog +Port OBD + +### Conséquences + +L’explosion du nombre de vols de voitures a des conséquences directes sur les propriétaires de véhicules, notamment une augmentation significative du coût de l’assurance automobile. Certaines marques et modèles sont malheureusement devenus les cibles privilégiées des voleurs. Voici le palmarès de 2022 : + +| Nº | Marque/Modèle | Année Modèle Volée le Plus Souvent | Nombre de Véhicules Assurés | Nombre de Vols | Fréquence de Vol (%) | Type | +| --- | ---------------------- | ----------------------------------- | ---------------------------- | --------------- | --------------------- | ------ | +| 1 | Honda CR-V | 2020 | 115,895 | 2,689 | 2.3% | SUV | +| 2 | Acura RDX | 2020 | 15,895 | 653 | 4.1% | SUV | +| 3 | Honda Civic | 2019 | 224,688 | 506 | 0.2% | Sedan | +| 4 | Dodge RAM 1500 Series | 2020 | 79,019 | 504 | 0.6% | Truck | +| 5 | Jeep Wrangler | 2021 | 28,048 | 433 | 1.5% | SUV | +| 6 | Toyota RAV 4 | 2019 | 124,357 | 425 | 0.3% | SUV | +| 7 | Jeep Grand Cherokee | 2021 | 22,808 | 420 | 1.8% | SUV | +| 8 | Toyota Highlander | 2021 | 17,386 | 344 | 2.0% | SUV | +| 9 | Ford F150 Series | 2019 | 91,166 | 256 | 0.3% | Truck | +| 10 | Hyundai Tucson | 2021 | 63,450 | 242 | 0.4% | SUV | + +### Se protéger + +Il est important de noter qu’aucune méthode n’est infaillible, mais l’objectif +principal est de rendre la tâche des voleurs aussi difficile que possible, les décourageant ainsi de s’attaquer à votre véhicule. + +#### Verrouillez les portes et fermez complètement les fenêtres + +La première étape essentielle pour vous protéger consiste à verrouiller les portes de votre véhicule et à fermer complètement les fenêtres. Ce geste simple peut considérablement ralentir un voleur. + +#### Boite de farraday + +Pour protéger votre clé électronique (key FOB) contre les attaques par relais, vous pouvez utiliser une boîte de Faraday. Cette boîte bloque le signal de la clé, empêchant ainsi les voleurs d’amplifier son signal. Cette méthode constitue une défense efficace contre les tentatives d’attaque par relais et est disponible à un prix abordable, généralement autour de 25 $. + +> Amazon: $25 Boite de farraday + +### OBD PORT lock + +#### Pourquoi sommes-nous exposés ? + +Les véhicules équipés de systèmes de démarrage sans clé (“push start”) ou d’entrée sans clé (“keyless entry”) ne disposent pas de clé mécanique pour démarrer le moteur. Ils utilisent des clés électroniques qui s’authentifient avec la voiture via un échange de données (par des signaux radio pour les systèmes sans clé ou par insertion dans le tableau de bord). + +#### Comment le port est-il exploité ? + +Ces véhicules conservent une copie numérique des clés dans l’unité de contrôle du moteur du véhicule (ECU). Le problème réside dans le fait que ces clés numériques peuvent être téléchargées par quiconque a accès au “PORT OBD” du véhicule, puis utilisées pour programmer une clé vierge en moins de 60 secondes. + +#### Pourquoi devrais-je m’inquiéter ? + +Cette clé duplicata est identique à l’originale, ce qui donne au voleur un accès total pour OUVRIR, DÉMARRER et EMPORTER le véhicule à sa convenance, souvent des jours, voire des semaines plus tard. + +Pour vous protéger contre ce type d’attaque, vous pouvez envisager de bloquer, modifier ou cacher votre port OBD. Il ne faut que quelques minutes pour rendre ces véhicules inviolables. + +blog +Port OBD Lock + +### Système de Repérage par TAG + +Cette technologie implique de placer plusieurs dispositifs sans fil dans des endroits difficiles d’accès du véhicule. Chaque dispositif est autonome et émet un signal avec un code d’identification unique qui peut être lu à distance par un récepteur. + +> Prix: 400$ + +### Barre Antivol + +Une barre antivol simple mais efficace peut ralentir un voleur et le décourager, agissant comme un moyen dissuasif. + +> Amazon: $69 Barre Antivol + +### Apple tag + +blog + +L’Apple tag est un relayeur de position, le tag émet des signaux anonymes et toute personnes possédant Un apapreil Apple passant proche du tag envoit un signal au serveur de Apple vous permettant ainsi d’avoir une position geographique du dernier repérage. Il suffit de bien le cacher dans son auto. + +Toutefois, il est recommandé de désactiver le haut-parleur à l’intérieur de l’Apple Tag pour éviter que le voleur ne le découvre et ne le désactive. En effet, Apple a mis en place ce système pour prévenir le suivi indésirable des autres utilisateurs. Imaginez la situation où quelqu’un aurait discrètement placé un Apple Tag sur vous, vous permettant ainsi d’être suivi partout consentement. + +Dans le contexte des véhicules volés, une fois que le voleur a pris possession de votre voiture et qu’il détecte la présence d’un Apple Tag non associé à son compte Apple, il recevra une notification indiquant que cet Apple Tag le suit. En réaction, il pourrait ouvrir l’application “Find My iPhone” pour tenter de localiser l’Apple Tag. + +Pour plus de détails: [vidéo](https://youtu.be/hiivC_4li8Q?t=62) + +> Amazon: $34 Apple Tag diff --git a/theme/about.html b/theme/about.html deleted file mode 100644 index 3ed2c967..00000000 --- a/theme/about.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - À Propos -

    Notre Club

    -
      -
    • Home
    • -
    • /
    • -
    • À Propos
    • -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - Qui nous sommes -

    Nous sommes une équipe dynamique de personnes créatives

    -

    - - Commencez -
    -
    -
    -
    - image à propos -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -

    01.Notre Mission

    -

    AlgoÉTS vise à former une communauté de traders algorithmiques et data scientists, en développant des algorithmes de trading profitables. Nous démarrons par le trading sur papier, avec un focus sur l'analyse de données et l'apprentissage automatique, et offrons des ateliers pour habiliter nos membres.

    -
    -
    -
    -
    -

    02.Notre Vision

    -

    Notre objectif est de révolutionner la gestion des investissements via des robots de trading pour cryptomonnaies, rendant les marchés financiers plus accessibles et visant des profits constants. Nous souhaitons créer une plateforme éducative pour simplifier la finance et enrichir notre communauté.

    -
    -
    -
    -
    -

    03.Notre Approche

    -

    Nous adoptons une approche d'apprentissage par l'expérience, combinant développement itératif et amélioration continue. Nos plateformes et ateliers visent à comprendre le trading automatisé et à fournir des compétences en finance et gestion des risques.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - -

    25 +

    -

    Project

    -
    -
    -
    -
    - -

    12

    -

    Membre Active

    -
    -
    -
    -
    - -

    4

    -

    Stratégie en cours

    -
    -
    -
    -
    - -

    5

    -

    Compétition Participé

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - Les testimonial de nos membres -

    Ce que nos membres disent

    -
    -
    -
    -
    - -
    -
    -
    - - -
    - En commençant à l’ÉTS, je voulais joindre un club, mais il n’y en avait pas qui m’intéressait. Ils - travaillaient tous sur des autos, des constructions ou des jeux vidéos. J’étais intéressé par le - code, les sciences de données et les finances. J’ai fait mon premier stage chez Morgan Stanley, une - grande banque d’investissement, et j’ai appris ce qu’est le trading algorithmique. J’étais déçu que - je n’avais pas eu la chance de travailler dessus, mais je trouvais que ce ferait un bon club qui - comble une partie du génie logiciel qui n’était pas couvert par les clubs de l’ÉTS. - - J’en ai parlé à Reda, un collègue et un ami, puis à Sam Lafrance-Jones, un autre de mes amis, et ils - voulaient le partir avec moi. Nous avons approché l’école et ils étaient ouverts à l’idée, mais - sceptiques parce qu’ils n’avaient jamais entendu du concept auparavant. Au début, nous nous - rencontrions chaque semaine et comparions les algorithmes que nous avions développés et testés lors - de la semaine. Après quelques mois, l’école nous a donné la permission de recruter des membres. Une - seule publication sur les médias sociaux de l’université nous a apporté au-dessus de 20 étudiants - intéressés. Depuis ce temps, nous avons seulement continué à grandir. - - Nous avons eu ce succès dans notre ouverture parce que les étudiants de l’ÉTS sont passionnés par - les sciences de données, les finances et le développement informatique. Une combinaison qui est - introuvable ailleurs. J’espère que vous aussi pourrez nous aider avec le succès continu du club.

    - -
    -
    Philippe Geukers
    -

    co-fondateur et président 2021-2022

    -
    -
    -
    -
    - - -
    -

    - Rejoindre AlgoÉTS a - été une expérience formidable pour moi. En tant que co-capitaine infrastructure, j'ai eu - l'opportunité unique d'allier mes compétences de sys-admin à l'élaboration d'algorithmes - financiers. Cette synergie m'a permis non seulement de développer de nouvelles compétences - techniques, mais aussi de forger des amitiés durables au sein du club. Travailler avec des - personnes partageant les mêmes idées m'a ouvert à de nouvelles perspectives, surtout en matière - de finance personnelle et d'investissement en bourse. Grâce au club, j'ai pu prendre des - décisions financières plus éclairées et mieux comprendre les dynamiques du marché. AlgoÉTS n'est - pas seulement un club, c'est une communauté où l'apprentissage et le partage des connaissances - vont de pair avec le développement personnel et professionnel. -

    -
    -
    Antoine Boucher
    -

    co-capitaine infrastructure

    -
    -
    -
    -
    -
    - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/blog-grid.html b/theme/blog-grid.html deleted file mode 100644 index e5a1b52a..00000000 --- a/theme/blog-grid.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Blog -

    Articles

    -
      -
    • Home
    • -
    • /
    • -
    • Blog
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    - blog - -
    -
    - 1 Janvier 2024 -
    - -

    Étude des vols de voitures

    -

    Montréal

    - - Lire -
    -
    - - - -
    - blog - -
    -
    - 1 Janvier 2024 -
    - -

    Expérimentation Des Indicateurs Technique

    -

    Backtest

    - - Lire -
    -
    - - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/contact.html b/theme/contact.html deleted file mode 100644 index f958e697..00000000 --- a/theme/contact.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Contact -

    Contacter nous

    -
      -
    • Home
    • -
    • /
    • -
    • Contact
    • -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -

    Contactez-nous

    -
    - -
    -
    - -
    -
    - -
    - -
    -
    - -
    -
    - On est des enthusiasts de la finance et de la technologie -

    N'hésitez pas à nous contacter pour toute information

    - -
      -
    • - ÉTS, Local D-2023, Montréal, Qc -
    • -
    • - Email: algoets@ens.etsmtl.ca -
    • -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/css/style.css b/theme/css/style.css deleted file mode 100644 index 80628243..00000000 --- a/theme/css/style.css +++ /dev/null @@ -1,1777 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap"); -@keyframes slide { - 0% { - transform: translateX(100%); - } - 100% { - transform: translateX(-100%); - } -} -/*=== MEDIA QUERY ===*/ -html { - overflow-x: hidden; -} - -body { - line-height: 1.5; - font-family: "Hind", serif; - -webkit-font-smoothing: antialiased; - font-size: 17px; - color: rgba(0, 0, 0, 0.65); -} - -h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { - font-family: "Poppins", sans-serif; - font-weight: 600; - color: #242424; -} - -h1, .h1 { - font-size: 2.5rem; -} - -h2, .h2 { - font-size: 2rem; - font-weight: 600; - line-height: 42px; -} - -h3, .h3 { - font-size: 1.5rem; -} - -h4, .h4 { - font-size: 1.3rem; - line-height: 30px; -} - -h5, .h5 { - font-size: 1.25rem; -} - -h6, .h6 { - font-size: 1rem; -} - -p { - line-height: 30px; -} - -.navbar-toggle .icon-bar { - background: #ff0000; -} - -input[type=email], input[type=password], input[type=text], input[type=tel] { - box-shadow: none; - height: 45px; - outline: none; - font-size: 14px; -} -input[type=email]:focus, input[type=password]:focus, input[type=text]:focus, input[type=tel]:focus { - box-shadow: none; - border: 1px solid #ff0000; -} - -.form-control { - box-shadow: none; - border-radius: 0; -} -.form-control:focus { - box-shadow: none; - border: 1px solid #ff0000; -} - -.py-7 { - padding: 7rem 0px; -} - -.btn { - display: inline-block; - font-size: 14px; - font-size: 0.8125rem; - font-weight: 500; - padding: 1rem 2.5rem 0.8rem; - text-transform: uppercase; - border-radius: 0; - transition: 0.3s; -} -.btn.btn-icon i { - font-size: 16px; - vertical-align: middle; - margin-right: 5px; -} -.btn:focus { - outline: 0px; - box-shadow: none; -} - -.btn-main, .btn-small, .btn-transparent { - background: #ff0000; - color: #fff; - transition: all 0.2s ease; -} -.btn-main:hover, .btn-small:hover, .btn-transparent:hover { - background: #cc0000; - color: #fff; -} - -.btn-solid-border { - border: 2px solid #ff0000; - background: transparent; - color: #242424; -} -.btn-solid-border:hover { - border: 2px solid #ff0000; - background: #ff0000; -} - -.btn-transparent { - background: transparent; - padding: 0; - color: #ff0000; -} -.btn-transparent:hover { - background: transparent; - color: #ff0000; -} - -.btn-large { - padding: 20px 45px; -} -.btn-large.btn-icon i { - font-size: 16px; - vertical-align: middle; - margin-right: 5px; -} - -.btn-small { - padding: 13px 25px 10px; - font-size: 12px; -} - -.btn-round { - border-radius: 4px; -} - -.btn-round-full { - border-radius: 50px; -} - -.btn.active:focus, .btn:active:focus, .btn:focus { - outline: 0; -} - -.bg-gray { - background: #f5f8f9; -} - -.bg-primary { - background: #ff0000; -} - -.bg-primary-dark { - background: #cc0000; -} - -.bg-primary-darker { - background: #990000; -} - -.bg-dark { - background: #242424; -} - -.bg-gradient { - background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%); - background-repeat: repeat-x; -} - -.section { - padding: 100px 0; -} - -.section-sm { - padding: 70px 0; -} - -.section-title { - margin-bottom: 70px; -} -.section-title .title { - font-size: 50px; - line-height: 50px; -} -.section-title p { - color: #666; - font-family: "Poppins", sans-serif; -} - -.subtitle { - color: #ff0000; - font-size: 14px; - letter-spacing: 1px; -} - -.overly, .cta, .slider, .page-title { - position: relative; -} -.overly:before, .cta:before, .slider:before, .page-title:before { - content: ""; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - opacity: 0.5; - background: #000; -} - -.overly-2, .latest-blog, .cta-block, .bg-counter { - position: relative; -} -.overly-2:before, .latest-blog:before, .cta-block:before, .bg-counter:before { - content: ""; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.8); -} - -.text-color { - color: #ff0000; -} - -.text-black { - color: #242424; -} - -.text-color2 { - color: #c54041; -} - -.text-color2 { - color: #b99769; -} - -.text-sm { - font-size: 14px; -} - -.text-md { - font-size: 2.25rem; -} - -.text-lg { - font-size: 3.75rem; -} - -.no-spacing { - letter-spacing: 0px; -} - -/* Links */ -a { - color: #242424; - text-decoration: none; -} - -a:focus, a:hover { - color: #ff0000; - text-decoration: none; -} - -a:focus { - outline: none; -} - -.content-title { - font-size: 40px; - line-height: 50px; -} - -.page-title { - padding: 100px 0; -} -.page-title .block h1 { - color: #fff; -} -.page-title .block p { - color: #fff; -} - -.page-wrapper { - padding: 70px 0; -} - -#wrapper-work { - overflow: hidden; - padding-top: 100px; -} -#wrapper-work ul li { - width: 50%; - float: left; - position: relative; -} -#wrapper-work ul li img { - width: 100%; - height: 100%; -} -#wrapper-work ul li .items-text { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: 100%; - color: #fff; - background: rgba(0, 0, 0, 0.6); - padding-left: 44px; - padding-top: 140px; -} -#wrapper-work ul li .items-text h2 { - padding-bottom: 28px; - padding-top: 75px; - position: relative; -} -#wrapper-work ul li .items-text h2:before { - content: ""; - position: absolute; - left: 0; - bottom: 0; - width: 75px; - height: 3px; - background: #fff; -} -#wrapper-work ul li .items-text p { - padding-top: 30px; - font-size: 16px; - line-height: 27px; - font-weight: 300; - padding-right: 80px; -} - -/*-- - features-work Start ---*/ -#features-work { - padding-top: 50px; - padding-bottom: 75px; -} -#features-work .block ul li { - width: 19%; - text-align: center; - display: inline-block; - padding: 40px 0px; -} - -#tickerScroller { - position: fixed; - top: 0; - left: 0; - width: 100%; - padding: 10px 0; - background-color: #333; - color: white; - overflow: hidden; - z-index: 9999; - border-radius: 0px 0px 10px 10px; -} - -#tickerContainer { - display: flex; - align-items: center; - animation: slide linear infinite; - white-space: nowrap; - font-family: "Arial", sans-serif; -} - -.tickerText { - margin-right: 50px; -} - -#navbar { - background: rgb(34, 35, 40); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} -#navbar li { - padding-left: 15px; -} -@media (max-width: 992px) { - #navbar li { - padding-left: 0; - } -} -#navbar .nav-link { - font-family: "Poppins", sans-serif; - font-weight: 500; - color: #fff; - text-transform: uppercase; - font-size: 14px; - letter-spacing: 0.5px; - transition: all 0.25s ease; -} -#navbar .nav-link:hover, #navbar .nav-link:focus, -#navbar .active .nav-link { - color: #ff0000; -} -#navbar .btn { - padding: 0.7rem 1.5rem 0.5rem; - color: #fff; -} -@media (max-width: 992px) { - #navbar .btn { - margin: 15px 0 10px; - } -} -#navbar .row { - margin: 0 -15px -42px 0px; -} - -.header-top { - background: rgb(34, 35, 40); - color: #919194; - border-bottom: 1px solid rgba(255, 255, 255, 0.05); -} -.header-top .header-top-socials { - border-right: 1px solid rgba(255, 255, 255, 0.05); - padding: 12px 0px; -} -.header-top .header-top-socials { - margin-left: -8px; -} -.header-top .header-top-socials a { - color: #919194; - margin-right: 8px; - font-size: 16px; - padding: 0 8px; -} -.header-top .header-top-socials a:hover { - color: #ff0000; -} -.header-top .header-top-info { - color: #919194; - font-size: 16px; -} -.header-top .header-top-info a span { - color: #fff; -} -.header-top .header-top-info a { - margin-left: 35px; - color: #919194; -} - -.navbar-toggler { - padding: 0; - font-size: 1.5rem; - color: #fff; -} -.navbar-toggler:focus { - outline: 0; -} - -.navbar-brand { - color: #fff; - font-weight: 600; - letter-spacing: 1px; -} -.navbar-brand span { - color: #ff0000; -} - -.dropdown-menu { - padding: 0px; - border: 0; - border-radius: 0px; -} -@media (max-width: 992px) { - .dropdown-menu { - text-align: center; - float: left !important; - width: 100%; - margin: 0; - } -} -.dropdown-menu li:first-child { - margin-top: 5px; -} -.dropdown-menu li:last-child { - margin-bottom: 5px; -} - -.dropdown-toggle::after { - display: none; -} - -.dropleft .dropdown-menu, -.dropright .dropdown-menu { - margin: 0; -} - -.dropleft .dropdown-toggle::before, -.dropright .dropdown-toggle::after { - font-weight: bold; - font-family: "Font Awesome 5 Free"; - border: 0; - font-size: 10px; - vertical-align: 1px; -} - -.dropleft .dropdown-toggle::before { - content: "\f053"; - margin-right: 5px; -} - -.dropright .dropdown-toggle::after { - content: "\f054"; - margin-left: 5px; -} - -.dropdown-item { - padding: 0.8rem 1.5rem 0.55rem; - text-transform: uppercase; - font-size: 14px; - font-weight: 500; -} -@media (max-width: 992px) { - .dropdown-item { - padding: 0.6rem 1.5rem 0.35rem; - } -} - -.dropdown-submenu.active > .dropdown-toggle, -.dropdown-submenu:hover > .dropdown-item, -.dropdown-item.active, -.dropdown-item:hover { - background: #ff0000; - color: #fff; -} - -ul.dropdown-menu li { - padding-left: 0px !important; -} - -@media (min-width: 992px) { - .dropdown-menu { - transition: all 0.2s ease-in, visibility 0s linear 0.2s, transform 0.2s linear; - display: block; - visibility: hidden; - opacity: 0; - min-width: 200px; - margin-top: 15px; - } - .dropdown-menu li:first-child { - margin-top: 10px; - } - .dropdown-menu li:last-child { - margin-bottom: 10px; - } - .dropleft .dropdown-menu, - .dropright .dropdown-menu { - margin-top: -10px; - } - .dropdown:hover > .dropdown-menu { - visibility: visible; - transition: all 0.45s ease 0s; - opacity: 1; - } -} -.bg-1 { - background: url("../images/competition/conference-room.jpg") no-repeat 50% 50%; - background-size: cover; -} - -.bg-2 { - background: url("../images/competition/conference-room.jpg"); - background-size: cover; -} - -.slider { - background: url("../../images/competition/good-team.jpg") no-repeat; - background-size: cover; - background-position: right 0% bottom 80%; - background-repeat: no-repeat; - padding: 500px 0; - position: relative; -} -@media (max-width: 768px) { - .slider { - padding: 300px 0; - } - .slider .tickerText { - font-size: 14px; - margin-right: 30px; - } -} -.slider .block h1 { - font-size: 70px; - line-height: 80px; - font-weight: 600; - color: #fff; -} -.slider .block p { - margin-bottom: 30px; - color: #b9b9b9; - font-size: 18px; - line-height: 27px; - font-weight: 300; -} -.slider .block span { - letter-spacing: 1px; -} - -.intro-item i { - font-size: 60px; - line-height: 60px; -} - -.color-one { - color: #ff0000; -} - -.color-two { - color: #00d747; -} - -.color-three { - color: #9262ff; -} - -.color-four { - color: #088ed3; -} - -.intro .container .row { - margin: 0 -32px 32px 0px; -} - -.bg-about { - position: absolute; - content: ""; - left: 0px; - top: 0px; - width: 45%; - min-height: 650px; - background: url("../../images/competition/concentration.jpg") no-repeat; - background-size: cover; - background-position: center; - border-radius: 1000px; -} - -.about-content { - padding: 20px 0px 0px 80px; -} -.about-content h4 { - font-weight: 600; -} -.about-content h4:before { - position: absolute; - content: "\f576"; - font-family: "Font Awesome 5 Free"; - font-size: 30px; - position: absolute; - top: 8px; - left: -65px; - font-weight: 700; -} - -.counter-item .counter-stat { - font-size: 50px; -} -.counter-item p { - margin-bottom: 0px; -} - -.bg-counter { - background: url("../images/bg/counter.jpg") no-repeat; - background-size: cover; -} - -.team-item { - border-radius: 20px; - overflow: hidden; -} - -.team-img-hover .team-social li a.facebook { - background: #6666cc; -} - -.team-img-hover .team-social li a.twitter { - background: #3399cc; -} - -.team-img-hover .team-social li a.instagram { - background: #cc66cc; -} - -.team-img-hover .team-social li a.linkedin { - background: #3399cc; -} - -.team-img-hover { - position: absolute; - top: 10px; - left: 10px; - right: 10px; - bottom: 10px; - display: flex; - align-items: center; - justify-content: center; - background: rgba(255, 255, 255, 0.6); - opacity: 0; - transition: all 0.2s ease-in-out; - transform: scale(0.8); -} - -.team-img-hover li a { - display: inline-block; - color: #fff; - width: 50px; - height: 50px; - font-size: 20px; - line-height: 50px; - border: 2px solid transparent; - border-radius: 2px; - text-align: center; - transform: translateY(0); - backface-visibility: hidden; - transition: all 0.3s ease-in-out; -} - -.team-img-hover:hover li a:hover { - transform: translateY(4px); -} - -.team-item:hover .team-img-hover { - opacity: 1; - transform: scale(1); - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; -} - -.section-title { - font-size: 24px; - font-weight: bold; - margin-bottom: 10px; -} - -.section-description { - font-size: 16px; - margin-bottom: 15px; -} - -.role-points { - list-style-type: disc; - margin-left: 20px; - margin-bottom: 20px; -} - -hr { - border-top: 1px solid #ccc; - margin-top: 30px; - margin-bottom: 30px; -} - -.service-item { - position: relative; - padding-left: 80px; -} -.service-item i { - position: absolute; - left: 0px; - top: 5px; - font-size: 50px; - opacity: 0.4; -} - -.cta { - background: url("../images/competition/concentration-head.jpg") fixed 50% 50%; - background-size: cover; - padding: 120px 0px; -} - -.cta-block { - background: url("../images/competition/concentration-head.jpg") no-repeat; - background-size: cover; -} - -.testimonial-item { - padding: 50px 30px; -} -.testimonial-item i { - font-size: 40px; - position: absolute; - left: 30px; - top: 30px; - z-index: 1; -} -.testimonial-item .testimonial-text { - font-size: 20px; - line-height: 38px; - color: #242424; - margin-bottom: 30px; - font-style: italic; -} -.testimonial-item .testimonial-item-content { - padding-left: 65px; -} - -.slick-slide:focus, .slick-slide a { - outline: none; -} - -body { - font-family: Arial, sans-serif; - line-height: 1.6; -} - -.container { - width: 80%; - margin: auto; - overflow: hidden; - padding: 15px; -} -@media (max-width: 768px) { - .container { - width: 95%; - } -} - -.row { - margin: 0 -15px 0px 0px; -} - -.col { - padding: 0 15px; -} - -.page-title { - background: url("images/competition/concentration.jpg") cover; - padding: 30px 0; - color: white; - text-align: center; -} - -.partner-logos .col { - text-align: center; - margin-bottom: 20px; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} -.partner-logos .col img { - max-width: 100%; - height: auto; -} -@media (max-width: 768px) { - .partner-logos .col { - flex-basis: 50%; - } -} - -.partnership-offers table { - width: 100%; - border-collapse: collapse; - margin-top: 20px; -} -.partnership-offers table th, .partnership-offers table td { - border: 1px solid #ddd; - padding: 10px; - text-align: left; -} -.partnership-offers table th { - background-color: #4CAF50; - color: white; - font-weight: bold; -} -.partnership-offers table tr:nth-child(even) { - background-color: #f2f2f2; -} -.partnership-offers table tr:hover { - background-color: #ddd; -} -.partnership-offers table tr ul { - list-style: none; - padding: 0; -} -.partnership-offers table tr ul li { - padding: 5px 0; -} - -.text-center { - text-align: center; - margin: 20px 0; -} -.text-center .btn-primary { - background-color: #007bff; - border: none; - color: white; - padding: 12px 25px; - text-align: center; - text-decoration: none; - display: inline-block; - font-size: 16px; - margin: 4px 2px; - transition-duration: 0.4s; - cursor: pointer; -} -.text-center .btn-primary:hover { - background-color: white; - color: black; - border: 2px solid #007bff; -} - -.hero-img { - background: url("../images/bg/home-5.jpg") cover; - position: absolute; - width: 100%; - height: 100%; - top: 0; -} -.hero-img::before { - content: ""; - background: rgba(0, 0, 0, 0.5); - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.portflio-item .portfolio-item-content { - position: absolute; - content: ""; - right: 0px; - bottom: 0px; - opacity: 0; - transition: all 0.35s ease; -} -.portflio-item:before { - position: absolute; - content: ""; - left: 0px; - top: 0px; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.8); - opacity: 0; - transition: all 0.35s ease; - overflow: hidden; -} -.portflio-item:hover:before { - opacity: 1; -} -.portflio-item:hover .portfolio-item-content { - opacity: 1; - bottom: 20px; - right: 30px; -} -.portflio-item .overlay-item { - position: absolute; - content: ""; - left: 0px; - top: 0px; - bottom: 0px; - right: 0px; - display: flex; - align-items: center; - justify-content: center; - font-size: 80px; - color: #ff0000; - opacity: 0; - transition: all 0.35s ease; -} -.portflio-item:hover .overlay-item { - opacity: 1; -} - -.project-card { - background: rgba(255, 255, 255, 0.1); - backdrop-filter: blur(10px); - -webkit-backdrop-filter: blur(10px); - border-radius: 15px; - padding: 20px; - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); - transition: 0.3s; - overflow: hidden; - margin-bottom: 20px; -} -.project-card:hover { - box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2); -} -.project-card .project-link { - transform: translateY(10px); - transition: all 0.3s ease; - text-decoration: none; - color: blue; - cursor: pointer; -} -.project-card .project-link:hover { - opacity: 1; - visibility: visible; - transform: translateY(0); -} -.project-card .icon { - display: inline-block; - margin-right: 5px; -} - -.project-container { - display: flex; - flex-wrap: wrap; - justify-content: center; - padding: 10px; -} - -.project-title { - font-size: 18px; - font-weight: bold; -} - -.project-stars { - color: #ff0000; - font-size: 14px; -} - -.project-description { - white-space: normal; - font-size: 0.875rem; - color: #718096; - margin-bottom: 1rem; - width: 600px; -} - -.grid-container { - display: flex; - grid-template-columns: repeat(3, 1fr); - /* 3 columns */ - grid-template-rows: repeat(3, 1fr); - /* 3 rows */ - grid-gap: 20px; - /* 20px gap between columns */ -} -@media (max-width: 768px) { - .grid-container { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 480px) { - .grid-container { - grid-template-columns: 1fr; - } -} -.grid-container .project-image img { - width: 100%; - height: 200px; - -o-object-fit: cover; - object-fit: cover; - border-radius: 10px 10px 0 0; -} - -.contact-form-wrap .form-group { - padding-bottom: 15px; - margin: 0px; -} -.contact-form-wrap .form-group .form-control { - background: #f5f8f9; - height: 48px; - border: 1px solid #EEF2F6; - box-shadow: none; - width: 100%; -} -.contact-form-wrap .form-group-2 { - margin-bottom: 13px; -} -.contact-form-wrap .form-group-2 textarea { - background: #f5f8f9; - height: 135px; - border: 1px solid #EEF2F6; - box-shadow: none; - width: 100%; -} - -.address-block li { - margin-bottom: 10px; -} -.address-block li i { - font-size: 20px; - width: 20px; -} - -.social-icons li { - margin: 0 6px; -} -.social-icons i { - margin-right: 15px; - font-size: 25px; -} - -.google-map { - position: relative; -} - -.google-map #map { - width: 100%; - height: 450px; -} - -/*================================================================= - Latest Posts -==================================================================*/ -.blog-item-content h3 { - line-height: 36px; -} -.blog-item-content h3 a { - transition: all 0.4s ease 0s; -} -.blog-item-content h3 a:hover { - color: #ff0000 !important; -} - -.lh-36 { - line-height: 36px; -} - -.tags a { - background: #f5f8f9; - display: inline-block; - padding: 8px 23px; - border-radius: 38px; - margin-bottom: 10px; - border: 1px solid #eee; - font-size: 14px; - text-transform: capitalize; -} - -.pagination .nav-links a, -.pagination .nav-links span.current { - font-size: 20px; - font-weight: 500; - color: #c9c9c9; - margin: 0 10px; - text-transform: uppercase; - letter-spacing: 1.2px; -} - -.pagination .nav-links span.current, -.pagination .nav-links a.next, -.pagination .nav-links a.prev { - color: black; -} - -h3.quote { - font-size: 24px; - line-height: 40px; - font-weight: normal; - padding: 0px 25px 0px 85px; - margin: 65px 0 65px 0 !important; - position: relative; -} -@media (max-width: 768px) { - h3.quote { - padding: 0; - padding-left: 20px; - } - h3.quote .tickerText { - font-size: 14px; - margin-right: 30px; - } -} - -h3.quote::before { - content: ""; - width: 55px; - height: 2px; - background: #ff0000; - position: absolute; - top: 25px; - left: 0; -} -@media (max-width: 768px) { - h3.quote::before { - top: 5px; - width: 2px; - height: 35px; - } - h3.quote::before .tickerText { - font-size: 14px; - margin-right: 30px; - } -} - -.nav-posts-title { - line-height: 25px; - font-size: 18px; -} - -.latest-blog { - position: relative; - padding-bottom: 150px; -} - -.mt-70 { - margin-top: -70px; -} - -.border-1 { - border: 1px solid rgba(0, 0, 0, 0.05); -} - -.blog-item { - border-bottom: 1px solid rgba(0, 0, 0, 0.05); -} - -.styled-table { - border-collapse: collapse; - margin: 25px 0; - font-size: 0.9em; - min-width: 400px; - border-radius: 5px 5px 0 0; - overflow: hidden; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); -} - -.styled-table thead tr { - background-color: #009879; - color: #ffffff; - text-align: left; -} - -.styled-table th, -.styled-table td { - padding: 12px 15px; -} - -.styled-table tbody tr { - border-bottom: 1px solid #dddddd; -} - -.styled-table tbody tr:nth-of-type(even) { - background-color: #f3f3f3; -} - -.styled-table tbody tr:last-of-type { - border-bottom: 2px solid #009879; -} - -/*================================================================= - Single Blog Page -==================================================================*/ -.post.post-single { - border: none; -} -.post.post-single .post-thumb { - margin-top: 30px; -} - -.post-sub-heading { - border-bottom: 1px solid #dedede; - padding-bottom: 20px; - letter-spacing: 2px; - text-transform: uppercase; - font-size: 16px; - margin-bottom: 20px; -} - -.post-social-share { - margin-bottom: 50px; -} - -.post-comments { - margin: 30px 0; -} -.post-comments .media { - margin-top: 20px; -} -.post-comments .media > .pull-left { - padding-right: 20px; -} -.post-comments .comment-author { - margin-top: 0; - margin-bottom: 0px; - font-weight: 500; -} -.post-comments .comment-author a { - color: #ff0000; - font-size: 14px; - text-transform: uppercase; -} -.post-comments time { - margin: 0 0 5px; - display: inline-block; - color: #808080; - font-size: 12px; -} -.post-comments .comment-button { - color: #ff0000; - display: inline-block; - margin-left: 5px; - font-size: 12px; -} -.post-comments .comment-button i { - margin-right: 5px; - display: inline-block; -} -.post-comments .comment-button:hover { - color: #ff0000; -} - -.post-excerpt { - margin-bottom: 60px; -} -.post-excerpt h3 a { - color: #000; -} -.post-excerpt p { - margin: 0 0 30px; -} -.post-excerpt blockquote.quote-post { - margin: 20px 0; -} -.post-excerpt blockquote.quote-post p { - line-height: 30px; - font-size: 20px; - color: #ff0000; -} - -.single-blog { - background-color: #fff; - margin-bottom: 50px; - padding: 20px; -} - -.blog-subtitle { - font-size: 15px; - padding-bottom: 10px; - border-bottom: 1px solid #dedede; - margin-bottom: 25px; - text-transform: uppercase; -} - -.next-prev { - border-bottom: 1px solid #dedede; - border-top: 1px solid #dedede; - margin: 20px 0; - padding: 25px 0; -} -.next-prev a { - color: #000; -} -.next-prev a:hover { - color: #ff0000; -} -.next-prev .prev-post i { - margin-right: 10px; -} -.next-prev .next-post i { - margin-left: 10px; -} - -.social-profile ul li { - margin: 0 10px 0 0; - display: inline-block; -} -.social-profile ul li a { - color: #4e595f; - display: block; - font-size: 16px; -} -.social-profile ul li a i:hover { - color: #ff0000; -} - -.comments-section { - margin-top: 35px; -} - -.author-about { - margin-top: 40px; -} - -.post-author { - margin-right: 20px; -} - -.post-author > img { - border: 1px solid #dedede; - max-width: 120px; - padding: 5px; - width: 100%; -} - -.comment-list ul { - margin-top: 20px; -} -.comment-list ul li { - margin-bottom: 20px; -} - -.comment-wrap { - border: 1px solid #dedede; - border-radius: 1px; - margin-left: 20px; - padding: 10px; - position: relative; -} -.comment-wrap .author-avatar { - margin-right: 10px; -} -.comment-wrap .media .media-heading { - font-size: 14px; - margin-bottom: 8px; -} -.comment-wrap .media .media-heading a { - color: #ff0000; - font-size: 13px; -} -.comment-wrap .media .comment-meta { - font-size: 12px; - color: #888; -} -.comment-wrap .media p { - margin-top: 15px; -} - -.comment-reply-form { - margin-top: 80px; -} -.comment-reply-form input, .comment-reply-form textarea { - height: 35px; - border-radius: 0; - box-shadow: none; -} -.comment-reply-form input:focus, .comment-reply-form textarea:focus { - box-shadow: none; - border: 1px solid #ff0000; -} -.comment-reply-form textarea, .comment-reply-form .btn-main, .comment-reply-form .btn-transparent, .comment-reply-form .btn-small { - height: auto; -} - -.widget { - margin-bottom: 30px; - padding-bottom: 35px; -} -.widget .widget-title { - margin-bottom: 15px; - padding-bottom: 10px; - font-size: 16px; - color: #333; - font-weight: 500; - border-bottom: 1px solid #ddd; -} -.widget.widget-latest-post .media .media-object { - width: 100px; - height: auto; -} -.widget.widget-latest-post .media .media-heading a { - color: black; - font-size: 16px; -} -.widget.widget-latest-post .media p { - font-size: 12px; - color: #808080; -} -.widget.widget-category ul li { - margin-bottom: 10px; -} -.widget.widget-category ul li a { - color: #837f7e; - transition: all 0.3s ease; -} -.widget.widget-category ul li a:before { - padding-right: 10px; -} -.widget.widget-category ul li a:hover { - color: #ff0000; - padding-left: 5px; -} -.widget.widget-tag ul li { - margin-bottom: 10px; - display: inline-block; - margin-right: 5px; -} -.widget.widget-tag ul li a { - color: #837f7e; - display: inline-block; - padding: 8px 15px; - border: 1px solid #dedede; - border-radius: 30px; - font-size: 14px; - transition: all 0.3s ease; -} -.widget.widget-tag ul li a:hover { - color: #fff; - background: #ff0000; - border: 1px solid #ff0000; -} - -.team-item { - border-radius: 20px; - overflow: hidden; -} - -.team-img-hover .team-social li a.facebook { - background: #6666cc; -} - -.team-img-hover .team-social li a.twitter { - background: #3399cc; -} - -.team-img-hover .team-social li a.instagram { - background: #cc66cc; -} - -.team-img-hover .team-social li a.linkedin { - background: #3399cc; -} - -.team-img-hover { - position: absolute; - top: 10px; - left: 10px; - right: 10px; - bottom: 10px; - display: flex; - align-items: center; - justify-content: center; - background: rgba(255, 255, 255, 0.6); - opacity: 0; - transition: all 0.2s ease-in-out; - transform: scale(0.8); -} - -.team-img-hover li a { - display: inline-block; - color: #fff; - width: 50px; - height: 50px; - font-size: 20px; - line-height: 50px; - border: 2px solid transparent; - border-radius: 2px; - text-align: center; - transform: translateY(0); - backface-visibility: hidden; - transition: all 0.3s ease-in-out; -} - -.team-img-hover:hover li a:hover { - transform: translateY(4px); -} - -.team-item:hover .team-img-hover { - opacity: 1; - transform: scale(1); - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; -} - -.section-title { - font-size: 24px; - font-weight: bold; - margin-bottom: 10px; -} - -.section-description { - font-size: 16px; - margin-bottom: 15px; -} - -.role-points { - list-style-type: disc; - margin-left: 20px; - margin-bottom: 20px; -} - -hr { - border-top: 1px solid #ccc; - margin-top: 30px; - margin-bottom: 30px; -} - -.footer { - padding-bottom: 10px; -} -.footer .copyright a { - font-weight: 600; -} - -.lh-35 { - line-height: 35px; -} - -.logo { - color: black; - font-weight: 600; - letter-spacing: 1px; -} -.logo span { - color: #ff0000; -} - -.sub-form { - position: relative; -} -.sub-form .form-control { - border: 1px solid rgba(0, 0, 0, 0.06); - background: #f5f8f9; -} - -.footer-btm { - border-top: 1px solid rgba(0, 0, 0, 0.06); -} - -.scroll-to-top { - position: fixed; - bottom: 30px; - right: 30px; - z-index: 999; - height: 40px; - width: 40px; - background: #ff0000; - border-radius: 50%; - text-align: center; - line-height: 43px; - color: white; - cursor: pointer; - transition: 0.3s; - display: none; -} -@media (max-width: 480px) { - .scroll-to-top { - bottom: 15px; - right: 15px; - } -} -.scroll-to-top:hover { - background-color: #333; -} - -/*=== MEDIA QUERY ===*/ -@media (max-width: 992px) { - .slider .block h1 { - font-size: 56px; - line-height: 70px; - } - .bg-about { - display: none; - } - section.about { - border: 1px solid #dee2e6; - border-left: 0; - border-right: 0; - } - .footer-socials { - margin-top: 20px; - } - .footer-socials li a { - margin-left: 0px; - } -} -@media (max-width: 768px) { - .navbar-toggler { - color: #fff; - } - .bg-about { - display: none; - } - .slider .block h1 { - font-size: 48px; - line-height: 62px; - } - .blog-item-meta span { - margin: 6px 0px; - } - .widget { - margin-bottom: 30px; - padding-bottom: 0px; - } - .tickerText { - font-size: 14px; - margin-right: 30px; - } -} -@media (max-width: 480px) { - .header-top .header-top-info a { - margin-left: 10px; - margin-right: 10px; - } - .navbar-toggler { - color: #fff; - } - .slider .block h1 { - font-size: 38px; - line-height: 50px; - } - .content-title { - font-size: 28px; - line-height: 46px; - } - .p-5 { - padding: 2rem !important; - } - h2, .h2 { - font-size: 1.3rem; - font-weight: 600; - line-height: 36px; - } - .testimonial-item .testimonial-item-content { - padding-left: 0px; - padding-top: 30px; - } - .widget { - margin-bottom: 30px; - padding-bottom: 0px; - } -} -@media (max-width: 400px) { - .header-top .header-top-info a { - display: block; - } - .navbar-toggler { - color: #fff; - } - .content-title { - font-size: 28px; - line-height: 46px; - } - .bg-about { - display: none; - } - .p-5 { - padding: 2rem !important; - } - h2, .h2 { - font-size: 1.3rem; - font-weight: 600; - line-height: 36px; - } - .testimonial-item .testimonial-item-content { - padding-left: 0px; - padding-top: 30px; - } - .text-lg { - font-size: 3rem; - } - .widget { - margin-bottom: 30px; - padding-bottom: 0px; - } -} -@tailwind base; -@tailwind components; -@tailwind utilities; -/*# sourceMappingURL=style.css.map */ diff --git a/theme/css/style.css.map b/theme/css/style.css.map deleted file mode 100644 index 6c4d063e..00000000 --- a/theme/css/style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["_typography.scss","_mixins.scss","style.css","_media-query.scss","_variables.scss","_common.scss","_main.scss","templates/_header.scss","templates/_navigation.scss","templates/_backgrounds.scss","templates/_slider.scss","templates/_intro.scss","templates/_about.scss","templates/_counter.scss","templates/_team.scss","templates/_service.scss","templates/_cta.scss","templates/_review.scss","templates/_pricing.scss","templates/_portfolio.scss","templates/_contact.scss","templates/_blog.scss","templates/_single-post.scss","templates/_blog-sidebar.scss","templates/_footer.scss","templates/_responsive.scss","style.scss"],"names":[],"mappings":"AACQ,iKAAA;AC2CR;EACE;IACI,2BAAA;EC1CJ;ED6CA;IACI,4BAAA;EC3CJ;AACF;ACRA,sBAAA;AHGA;EACE,kBAAA;AEQF;;AFLA;EACE,gBAAA;EACA,0BICU;EJAV,mCAAA;EACA,eAAA;EAEA,0BAAA;AEOF;;AFJA;EACE,kCIRc;EJSd,gBAAA;EACA,cIbM;AFoBR;;AFJA;EACE,iBAAA;AEOF;;AFHA;EACE,eAAA;EACA,gBAAA;EACA,iBAAA;AEMF;;AFHA;EACE,iBAAA;AEMF;;AFHA;EACE,iBAAA;EACA,iBAAA;AEMF;;AFHA;EACE,kBAAA;AEMF;;AFHA;EACE,eAAA;AEMF;;AFFA;EACE,iBAAA;AEKF;;AGzDA;EACE,mBDCc;AF2DhB;;AGzDA;EACE,gBAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;AH4DF;AG3DE;EACE,gBAAA;EACA,yBAAA;AH6DJ;;AGxDA;EACE,gBAAA;EACA,gBAAA;AH2DF;AG1DE;EACE,gBAAA;EACA,yBAAA;AH4DJ;;AGtDA;EACE,iBAAA;AHyDF;;AGpDA;EACE,qBAAA;EACA,eAAA;EACA,oBAAA;EACA,gBAAA;EACA,2BAAA;EACA,yBAAA;EACA,gBAAA;EACA,gBAAA;AHuDF;AGpDI;EACE,eAAA;EACA,sBAAA;EACA,iBAAA;AHsDN;AGlDE;EACE,YAAA;EACA,gBAAA;AHoDJ;;AGhDA;EACE,mBDxDc;ECyDd,WD3DM;EHMJ,yBAAA;AC6GJ;AGrDE;EACE,mBAAA;EACA,WDhEI;AFuHR;;AGlDA;EACE,yBAAA;EACA,uBAAA;EACA,cDlEM;AFuHR;AGnDE;EACE,yBAAA;EACA,mBD1EY;AF+HhB;;AGhDA;EAEE,uBAAA;EACA,UAAA;EACA,cDnFc;AFqIhB;AGjDE;EACE,uBAAA;EACA,cDtFY;AFyIhB;;AG/CA;EACE,kBAAA;AHkDF;AGhDI;EACE,eAAA;EACA,sBAAA;EACA,iBAAA;AHkDN;;AG7CA;EAEE,uBAAA;EACA,eAAA;AH+CF;;AG5CA;EACE,kBAAA;AH+CF;;AG7CA;EACE,mBAAA;AHgDF;;AG5CA;EACE,UAAA;AH+CF;;AGzCA;EACE,mBD1HgB;AFsKlB;;AG1CA;EACE,mBD9Hc;AF2KhB;;AG3CA;EACE,mBAAA;AH8CF;;AG5CA;EACE,mBAAA;AH+CF;;AG5CA;EACE,mBDpIM;AFmLR;;AG3CA;EACI,sGAAA;EACA,2BAAA;AH8CJ;;AGzCA;EACE,gBAAA;AH4CF;;AG1CA;EACE,eAAA;AH6CF;;AG1CA;EACE,mBAAA;AH6CF;AG3CC;EACC,eAAA;EACA,iBAAA;AH6CF;AG3CE;EACI,WAAA;EACA,kCD5JU;AFyMhB;;AGxCA;EACE,cDzKc;EC0Kd,eAAA;EACA,mBAAA;AH2CF;;AGrCA;EACE,kBAAA;AHwCF;AGvCE;EACE,WAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;AHyCJ;;AGpCA;EACE,kBAAA;AHuCF;AGtCE;EACE,WAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,8BAAA;AHwCJ;;AGnCA;EACE,cDnNc;AFyPhB;;AGnCA;EACE,cDnNM;AFyPR;;AGnCA;EACE,cDzNY;AF+Pd;;AGnCA;EACE,cD5NU;AFkQZ;;AGlCA;EACE,eAAA;AHqCF;;AGnCA;EACE,kBAAA;AHsCF;;AGpCA;EACE,kBAAA;AHuCF;;AGpCA;EACE,mBAAA;AHuCF;;AGnCA,UAAA;AACA;EACE,cDhPM;ECiPN,qBAAA;AHsCF;;AGnCA;EACE,cDzPc;EC0Pd,qBAAA;AHsCF;;AGnCA;EACE,aAAA;AHsCF;;AGlCA;EACE,eAAA;EACA,iBAAA;AHqCF;;AGhCA;EACE,gBAAA;AHmCF;AGhCI;EACE,WDhRE;AFkTR;AGhCI;EACE,WDnRE;AFqTR;;AG5BA;EACE,eAAA;AH+BF;;AIzTA;EACC,gBAAA;EACA,kBAAA;AJ4TD;AI1TE;EACC,UAAA;EACA,WAAA;EACA,kBAAA;AJ4TH;AI3TG;EACC,WAAA;EACA,YAAA;AJ6TJ;AI3TG;EACC,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,8BAAA;EACA,kBAAA;EACA,kBAAA;AJ6TJ;AI5TI;EACC,oBAAA;EACA,iBAAA;EACE,kBAAA;AJ8TP;AI7TQ;EACC,WAAA;EACA,kBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,gBAAA;AJ+TT;AI5TI;EACC,iBAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;AJ8TL;;AItTA;;GAAA;AAIA;EACC,iBAAA;EACA,oBAAA;AJwTD;AIrTG;EACC,UAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;AJuTJ;;AKvXA;EACI,eAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,eAAA;EACA,sBAAA;EACA,YAAA;EACA,gBAAA;EACA,aAAA;EACA,gCAAA;AL0XJ;;AKvXA;EACI,aAAA;EACA,mBAAA;EACA,gCAAA;EACA,mBAAA;EACA,gCAAA;AL0XJ;;AKvXA;EACI,kBAAA;AL0XJ;;AMhZA;EACE,2BAAA;EACA,yCAAA;ANmZF;AMlZE;EACE,kBAAA;ANoZJ;AC/XE;EKtBA;IAGI,eAAA;ENsZJ;AACF;AMnZC;EACG,kCJFY;EIGZ,gBAAA;EACA,WJbI;EIcJ,yBAAA;EACA,eAAA;EACA,qBAAA;EACA,0BAAA;ANqZJ;AMlZE;;EAEE,cJpBY;AFwahB;AMhZE;EACE,6BAAA;EACA,WJ5BI;AF8aR;ACrZE;EKCA;IAII,mBAAA;ENoZJ;AACF;AMjZE;EACE,yBAAA;ANmZJ;;AM9YA;EACE,2BAAA;EACA,cAAA;EACA,kDAAA;ANiZF;AM/YE;EACE,iDAAA;EACA,iBAAA;ANiZJ;AM9YE;EACE,iBAAA;ANgZJ;AM/YI;EACE,cAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;ANiZN;AMhZM;EACE,cJxDQ;AF0chB;AM9YE;EACE,cAAA;EACA,eAAA;ANgZJ;AM9YI;EACE,WJnEE;AFmdR;AM9YI;EACE,iBAAA;EACA,cAAA;ANgZN;;AM3YA;EACE,UAAA;EACA,iBAAA;EACA,WAAA;AN8YF;AM7YE;EACE,UAAA;AN+YJ;;AM1YA;EACE,WJvFM;EIwFN,gBAAA;EACA,mBAAA;AN6YF;AM3YE;EACE,cJ1FY;AFuehB;;AMzYA;EACE,YAAA;EACA,SAAA;EACA,kBAAA;AN4YF;ACtdE;EKuEF;IAKI,kBAAA;IACA,sBAAA;IACA,WAAA;IACA,SAAA;EN8YF;AACF;AM5YE;EAAgB,eAAA;AN+YlB;AM9YE;EAAe,kBAAA;ANiZjB;;AM9YA;EACI,aAAA;ANiZJ;;AM9YA;;EAEE,SAAA;ANiZF;;AM/YA;;EAEE,iBAAA;EACA,kCAAA;EACA,SAAA;EACA,eAAA;EACA,mBAAA;ANkZF;;AMhZA;EACE,gBAAA;EACA,iBAAA;ANmZF;;AMjZA;EACE,gBAAA;EACA,gBAAA;ANoZF;;AMjZA;EACE,8BAAA;EACA,yBAAA;EACA,eAAA;EACA,gBAAA;ANoZF;ACvgBE;EK+GF;IAMI,8BAAA;ENsZF;AACF;;AMnZA;;;;EAIE,mBJpJc;EIqJd,WJvJM;AF6iBR;;AMnZA;EACI,4BAAA;ANsZJ;;AMnZA;EACE;IACE,8EAAA;IACA,cAAA;IACA,kBAAA;IACA,UAAA;IACA,gBAAA;IACA,gBAAA;ENsZF;EMpZE;IAAgB,gBAAA;ENuZlB;EMtZE;IAAe,mBAAA;ENyZjB;EMvZA;;IAEE,iBAAA;ENyZF;EMvZA;IACE,mBAAA;IACA,6BAAA;IACA,UAAA;ENyZF;AACF;AO3kBA;EACC,8EAAA;EACA,sBAAA;AP6kBD;;AO1kBA;EACC,4DAAA;EACA,sBAAA;AP6kBD;;AQplBA;EACE,mEAAA;EACA,sBAAA;EACA,wCAAA;EACA,4BAAA;EACA,gBAAA;EACA,kBAAA;ARulBF;AC/kBE;EOdF;IAQI,gBAAA;ERylBF;EChlBE;IACE,eAAA;IACA,kBAAA;EDklBJ;AACF;AQ1lBI;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,WNhBE;AF4mBR;AQzlBI;EACE,mBAAA;EACA,cAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;AR2lBN;AQxlBI;EACE,mBAAA;AR0lBN;;ASlnBC;EACC,eAAA;EACA,iBAAA;ATqnBF;;AShnBA;EACC,cPVe;AF6nBhB;;AShnBA;EACC,cAAA;ATmnBD;;AShnBA;EACC,cAAA;ATmnBD;;AShnBA;EACC,cAAA;ATmnBD;;AS9mBE;EACC,wBAAA;ATinBH;;AU7oBA;EACG,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,UAAA;EACA,iBAAA;EACA,uEAAA;EACA,sBAAA;EACF,2BAAA;EACA,qBAAA;AVgpBD;;AU5oBA;EACC,0BAAA;AV+oBD;AU9oBC;EACC,gBAAA;AVgpBF;AU9oBE;EACC,kBAAA;EACA,gBAAA;EACA,kCAAA;EACA,eAAA;EACA,kBAAA;EACA,QAAA;EACA,WAAA;EACA,gBAAA;AVgpBH;;AW1qBC;EACC,eAAA;AX6qBF;AW1qBC;EACC,kBAAA;AX4qBF;;AWvqBA;EACC,qDAAA;EACA,sBAAA;AX0qBD;;AYzrBA;EACC,mBAAA;EACA,gBAAA;AZ4rBD;;AYzrBA;EACC,mBAAA;AZ4rBD;;AYzrBA;EACC,mBAAA;AZ4rBD;;AYzrBA;EACC,mBAAA;AZ4rBD;;AYzrBA;EACC,mBAAA;AZ4rBD;;AYzrBA;EACC,kBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,oCAAA;EACA,UAAA;EACA,gCAAA;EACA,qBAAA;AZ4rBD;;AYxrBA;EACC,qBAAA;EACA,WVvCO;EUwCP,WAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,6BAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,2BAAA;EACA,gCAAA;AZ2rBD;;AYvrBA;EACC,0BAAA;AZ0rBD;;AYvrBA;EACC,UAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;AZ0rBD;;AYvrBA;EACI,eAAA;EACA,iBAAA;EACA,mBAAA;AZ0rBJ;;AYvrBA;EACI,eAAA;EACA,mBAAA;AZ0rBJ;;AYvrBA;EACI,qBAAA;EACA,iBAAA;EACA,mBAAA;AZ0rBJ;;AYvrBA;EACI,0BAAA;EACA,gBAAA;EACA,mBAAA;AZ0rBJ;;Aa9wBA;EACC,kBAAA;EACA,kBAAA;AbixBD;Aa/wBC;EACC,kBAAA;EACA,SAAA;EACA,QAAA;EACA,eAAA;EACA,YAAA;AbixBF;;Ac5xBA;EACC,6EAAA;EACA,sBAAA;EACA,kBAAA;Ad+xBD;;Ac5xBA;EACC,yEAAA;EACA,sBAAA;Ad+xBD;;AeryBA;EACC,kBAAA;AfwyBD;AetyBC;EACC,eAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;AfwyBF;AetyBC;EACC,eAAA;EACA,iBAAA;EACA,cbTM;EaUN,mBAAA;EACA,kBAAA;AfwyBF;AeryBC;EACC,kBAAA;AfuyBF;;AelyBE;EACE,aAAA;AfqyBJ;;AgBrzBA;EACI,8BAAA;EACA,gBAAA;AhBwzBJ;;AgBrzBA;EACI,UAAA;EACA,YAAA;EACA,gBAAA;EACA,aAAA;AhBwzBJ;AgBtzBI;EANJ;IAOQ,UAAA;EhByzBN;AACF;;AgBtzBA;EACI,uBAAA;AhByzBJ;;AgBtzBA;EACI,eAAA;AhByzBJ;;AgBhzBA;EACI,6DAAA;EACA,eAAA;EACA,YAtCI;EAuCJ,kBAAA;AhBmzBJ;;AgB9yBI;EACI,kBAAA;EACA,mBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,sBAAA;AhBizBR;AgB/yBQ;EACI,eAAA;EACA,YAAA;AhBizBZ;AgB9yBQ;EAbJ;IAcQ,eAAA;EhBizBV;AACF;;AgB3yBI;EACI,WAAA;EACA,yBAAA;EACA,gBAAA;AhB8yBR;AgB5yBQ;EACI,sBAAA;EACA,aAAA;EACA,gBAAA;AhB8yBZ;AgB3yBQ;EACI,yBA9EJ;EA+EI,YA9EJ;EA+EI,iBAAA;AhB6yBZ;AgBzyBY;EAAoB,yBAtFnB;AhBk4Bb;AgB3yBY;EAAU,sBAtFV;AhBo4BZ;AgB5yBY;EACI,gBAAA;EACA,UAAA;AhB8yBhB;AgB5yBgB;EAAK,cAAA;AhB+yBrB;;AgBxyBA;EACI,kBAAA;EACA,cAAA;AhB2yBJ;AgBzyBI;EACI,yBA3GQ;EA4GR,YAAA;EACA,YAxGA;EAyGA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,qBAAA;EACA,eAAA;EACA,eAAA;EACA,yBAAA;EACA,eAAA;AhB2yBR;AgBzyBQ;EACI,uBAnHJ;EAoHI,YAnHJ;EAoHI,yBAAA;AhB2yBZ;;AgBhyBA;EACI,gDAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,MAAA;AhBmyBJ;AgBjyBI;EACI,WAAA;EACA,8BAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;AhBmyBR;;AiB/6BC;EACC,kBAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,0BAAA;AjBk7BF;AiB/6BC;EACC,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,8BAAA;EACA,UAAA;EACA,0BAAA;EACA,gBAAA;AjBi7BF;AiB76BE;EACC,UAAA;AjB+6BH;AiB56BE;EACC,UAAA;EACA,YAAA;EACA,WAAA;AjB86BH;AiB16BC;EACC,kBAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,cArDc;EAsDd,UAAA;EACA,0BAAA;AjB46BF;AiBx6BE;EACC,UAAA;AjB06BH;;AiBr6BA;EACC,oCA/DwB;EAgExB,2BAAA;EACA,mCAAA;EACA,mBAAA;EACA,aAAA;EACA,0CAnEc;EAoEd,gBAAA;EACA,gBAAA;EACA,mBAAA;AjBw6BD;AiBt6BC;EACC,2CAxEY;AjBg/Bd;AiBr6BC;EACC,2BAAA;EACA,yBAAA;EACA,qBAAA;EACA,WAAA;EACA,eAAA;AjBu6BF;AiBr6BE;EACC,UAAA;EACA,mBAAA;EACA,wBAAA;AjBu6BH;AiBn6BC;EACC,qBAAA;EACA,iBAAA;AjBq6BF;;AiBj6BA;EACC,aAAA;EACA,eAAA;EACA,uBAAA;EACA,aAAA;AjBo6BD;;AiBj6BA;EACC,eAAA;EACA,iBAAA;AjBo6BD;;AiBj6BA;EACC,cAjHe;EAkHf,eAAA;AjBo6BD;;AiBj6BA;EACC,mBAAA;EACA,mBAtHkB;EAuHlB,cAtHU;EAuHV,mBAAA;EACA,YAAA;AjBo6BD;;AiBh6BA;EACC,aAAA;EACA,qCAAA;EACA,cAAA;EACA,kCAAA;EACA,WAAA;EACA,cAAA;EACA,6BAAA;AjBm6BD;AiBj6BC;EATD;IAUE,qCAAA;EjBo6BA;AACF;AiBl6BC;EAbD;IAcE,0BAAA;EjBq6BA;AACF;AiBn6BC;EACC,WAAA;EACA,aAAA;EACA,oBAAA;KAAA,iBAAA;EACA,4BAAA;AjBq6BF;;AkBvjCM;EACE,oBAAA;EACA,WAAA;AlB0jCR;AkBzjCQ;EACE,mBhBFQ;EgBGR,YAAA;EACA,yBAAA;EACA,gBAAA;EACA,WAAA;AlB2jCV;AkBxjCM;EACE,mBAAA;AlB0jCR;AkBzjCQ;EACE,mBhBZQ;EgBaR,aAAA;EACA,yBAAA;EACA,gBAAA;EACA,WAAA;AlB2jCV;;AkBpjCE;EACE,mBAAA;AlBujCJ;AkBtjCI;EACE,eAAA;EACA,WAAA;AlBwjCN;;AkBjjCE;EACE,aAAA;AlBojCJ;AkBjjCE;EACE,kBAAA;EACA,eAAA;AlBmjCJ;;AkB/iCA;EACI,kBAAA;AlBkjCJ;;AkB/iCA;EACI,WAAA;EACA,aAAA;AlBkjCJ;;AmBvmCA;;mEAAA;AAIE;EACE,iBAAA;AnBymCJ;AmBtmCE;EACE,4BAAA;AnBwmCJ;AmBtmCI;EACE,yBAAA;AnBwmCN;;AmBnmCA;EACE,iBAAA;AnBsmCF;;AmBjmCE;EACE,mBAAA;EACA,qBAAA;EACA,iBAAA;EACA,mBAAA;EACA,mBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;AnBomCJ;;AmB9lCA;;EAEE,eAAA;EACA,gBAAA;EACA,cAAA;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;AnBimCF;;AmB5lCA;;;EAGE,YH7CM;AhB4oCR;;AmB5lCA;EACE,eAAA;EACA,iBAAA;EACA,mBAAA;EACA,0BAAA;EACA,gCAAA;EACA,kBAAA;AnB+lCF;AC9oCE;EkByCF;IASI,UAAA;IACA,kBAAA;EnBgmCF;EChpCE;IACE,eAAA;IACA,kBAAA;EDkpCJ;AACF;;AmBjmCA;EACE,WAAA;EACA,WAAA;EACA,WAAA;EACA,mBFzEc;EE0Ed,kBAAA;EACA,SAAA;EACA,OAAA;AnBomCF;AClqCE;EkBuDF;IAUI,QAAA;IACA,UAAA;IACA,YAAA;EnBqmCF;ECrqCE;IACE,eAAA;IACA,kBAAA;EDuqCJ;AACF;;AmBtmCA;EACE,iBAAA;EACA,eAAA;AnBymCF;;AmBpmCA;EACE,kBAAA;EAEA,qBAAA;AnBsmCF;;AmBnmCA;EACE,iBAAA;AnBsmCF;;AmBnmCA;EACE,qCAAA;AnBsmCF;;AmBnmCA;EACE,4CAAA;AnBsmCF;;AmBnmCA;EACE,yBAAA;EACA,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,0BAAA;EACA,gBAAA;EACA,wCAAA;AnBsmCF;;AmBnmCA;EACE,yBAAA;EACA,cAAA;EACA,gBAAA;AnBsmCF;;AmBnmCA;;EAEE,kBAAA;AnBsmCF;;AmBnmCA;EACE,gCAAA;AnBsmCF;;AmBnmCA;EACE,yBAAA;AnBsmCF;;AmBnmCA;EACE,gCAAA;AnBsmCF;;AoBlvCA;;mEAAA;AAGA;EACE,YAAA;ApBqvCF;AoBpvCE;EACE,gBAAA;ApBsvCJ;;AoBnvCA;EACE,gCAAA;EACA,oBAAA;EACA,mBAAA;EACA,yBAAA;EACA,eAAA;EACA,mBAAA;ApBsvCF;;AoBpvCA;EACE,mBAAA;ApBuvCF;;AoBpvCA;EACE,cAAA;ApBuvCF;AoBtvCE;EACE,gBAAA;ApBwvCJ;AoBvvCI;EACE,mBAAA;ApByvCN;AoBtvCE;EACE,aAAA;EACA,kBAAA;EACA,gBAAA;ApBwvCJ;AoBvvCI;EACE,cHlCU;EGmCV,eAAA;EACA,yBAAA;ApByvCN;AoBtvCE;EACE,eAAA;EACA,qBAAA;EACA,cAAA;EACA,eAAA;ApBwvCJ;AoBtvCE;EACE,cH9CY;EG+CZ,qBAAA;EACA,gBAAA;EACA,eAAA;ApBwvCJ;AoBvvCI;EACE,iBAAA;EACA,qBAAA;ApByvCN;AoBvvCI;EACE,cHvDU;AjBgzChB;;AoBpvCA;EACE,mBAAA;ApBuvCF;AoBrvCI;EACE,WAAA;ApBuvCN;AoBpvCE;EACE,gBAAA;ApBsvCJ;AoBpvCE;EACE,cAAA;ApBsvCJ;AoBrvCI;EACE,iBAAA;EACA,eAAA;EACA,cH3EU;AjBk0ChB;;AoBjvCA;EACI,sBAAA;EACA,mBAAA;EACA,aAAA;ApBovCJ;;AoBjvCA;EACE,eAAA;EACA,oBAAA;EACA,gCAAA;EACA,mBAAA;EACA,yBAAA;ApBovCF;;AoBjvCA;EACE,gCAAA;EACA,6BAAA;EACA,cAAA;EACA,eAAA;ApBovCF;AoBnvCE;EACE,WAAA;ApBqvCJ;AoBpvCI;EACE,cHvGU;AjB61ChB;AoBnvCE;EACE,kBAAA;ApBqvCJ;AoBlvCE;EACE,iBAAA;ApBovCJ;;AoB9uCG;EACG,kBAAA;EACA,qBAAA;ApBivCN;AoBhvCM;EACE,cAAA;EACA,cAAA;EACA,eAAA;ApBkvCR;AoBhvCU;EACE,cH9HI;AjBg3ChB;;AoB1uCA;EACE,gBAAA;ApB6uCF;;AoBzuCA;EACE,gBAAA;ApB4uCF;;AoB1uCA;EACE,kBAAA;ApB6uCF;;AoB1uCA;EACE,yBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;ApB6uCF;;AoBvuCE;EACE,gBAAA;ApB0uCJ;AoBzuCI;EACE,mBAAA;ApB2uCN;;AoBruCA;EACE,yBAAA;EACA,kBAAA;EACA,iBAAA;EACA,aAAA;EACA,kBAAA;ApBwuCF;AoBvuCE;EACE,kBAAA;ApByuCJ;AoBtuCI;EACE,eAAA;EACA,kBAAA;ApBwuCN;AoBvuCM;EACE,cHnLQ;EGoLR,eAAA;ApByuCR;AoBtuCI;EACE,eAAA;EACA,WAAA;ApBwuCN;AoBtuCI;EACE,gBAAA;ApBwuCN;;AoBjuCA;EACE,gBAAA;ApBouCF;AoBnuCE;EACE,YAAA;EACA,gBAAA;EACA,gBAAA;ApBquCJ;AoBpuCI;EACE,gBAAA;EACA,yBAAA;ApBsuCN;AoBnuCE;EACE,YAAA;ApBquCJ;;AqBp7CA;EACE,mBAAA;EACA,oBAAA;ArBu7CF;AqBt7CE;EACE,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;EACA,6BAAA;ArBw7CJ;AqBn7CM;EACE,YAAA;EACA,YAAA;ArBq7CR;AqBl7CQ;EACE,YLbF;EKcE,eAAA;ArBo7CV;AqBj7CM;EACE,eAAA;EACA,cAAA;ArBm7CR;AqB36CM;EACE,mBAAA;ArB66CR;AqB56CQ;EACE,cAAA;EtB/BN,yBAAA;ACk9CJ;AqBj7CU;EACE,mBAAA;ArBm7CZ;AqBj7CU;EACE,cJ3CI;EI4CJ,iBAAA;ArBm7CZ;AqBz6CM;EACE,mBAAA;EACA,qBAAA;EACA,iBAAA;ArB26CR;AqB16CQ;EACE,cAAA;EACA,qBAAA;EACA,iBAAA;EACA,yBAAA;EACA,mBAAA;EACA,eAAA;EtB1DN,yBAAA;AC2+CJ;AqB/6CU;EACE,WnBnEJ;EmBoEI,mBJpEI;EIqEJ,yBAAA;ArBi7CZ;;AYt/CA;EACC,mBAAA;EACA,gBAAA;AZy/CD;;AYt/CA;EACC,mBAAA;AZy/CD;;AYt/CA;EACC,mBAAA;AZy/CD;;AYt/CA;EACC,mBAAA;AZy/CD;;AYt/CA;EACC,mBAAA;AZy/CD;;AYt/CA;EACC,kBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,oCAAA;EACA,UAAA;EACA,gCAAA;EACA,qBAAA;AZy/CD;;AYr/CA;EACC,qBAAA;EACA,WVvCO;EUwCP,WAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,6BAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,2BAAA;EACA,gCAAA;AZw/CD;;AYp/CA;EACC,0BAAA;AZu/CD;;AYp/CA;EACC,UAAA;EACA,mBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;AZu/CD;;AYp/CA;EACI,eAAA;EACA,iBAAA;EACA,mBAAA;AZu/CJ;;AYp/CA;EACI,eAAA;EACA,mBAAA;AZu/CJ;;AYp/CA;EACI,qBAAA;EACA,iBAAA;EACA,mBAAA;AZu/CJ;;AYp/CA;EACI,0BAAA;EACA,gBAAA;EACA,mBAAA;AZu/CJ;;AsB7kDA;EACE,oBAAA;AtBglDF;AsB7kDI;EACE,gBAAA;AtB+kDN;;AsB1kDA;EACE,iBAAA;AtB6kDF;;AsB1kDA;EACE,YNRM;EMSN,gBAAA;EACA,mBAAA;AtB6kDF;AsB3kDE;EACE,cLpBY;AjBimDhB;;AsBzkDA;EACE,kBAAA;AtB4kDF;AsB1kDE;EACE,qCAAA;EACA,mBpB1Bc;AFsmDlB;;AsBvkDA;EACE,yCAAA;AtB0kDF;;AsBrkDA;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA;EACA,WAAA;EACA,mBL/Cc;EKgDd,kBAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,aAAA;AtBwkDF;ACtnDE;EqBgCF;IAgBI,YAAA;IACA,WAAA;EtB0kDF;AACF;AsBzkDE;EACE,sBAAA;AtB2kDJ;;AuBvoDA,sBAAA;AtByBE;EsBnBA;IACE,eAAA;IACA,iBAAA;EvBsoDF;EuBnoDA;IACE,aAAA;EvBqoDF;EuBnoDA;IACE,yBAAA;IACA,cAAA;IACA,eAAA;EvBqoDF;EuBnoDA;IACE,gBAAA;EvBqoDF;EuBnoDA;IACE,gBAAA;EvBqoDF;AACF;AC/oDE;EsBeA;IACE,WrB9BI;EFiqDN;EuBjoDA;IACE,aAAA;EvBmoDF;EuBjoDA;IACI,eAAA;IACA,iBAAA;EvBmoDJ;EuBjoDA;IACE,eAAA;EvBmoDF;EuBjoDA;IACI,mBAAA;IACA,mBAAA;EvBmoDJ;EC9pDE;IACE,eAAA;IACA,kBAAA;EDgqDJ;AACF;AC5qDE;EsB0CA;IACE,iBAAA;IACA,kBAAA;EvBqoDF;EuBloDA;IACE,WrBxDI;EF4rDN;EuBloDA;IACI,eAAA;IACA,iBAAA;EvBooDJ;EuBjoDA;IACI,eAAA;IACA,iBAAA;EvBmoDJ;EuBhoDA;IACE,wBAAA;EvBkoDF;EuBhoDA;IACI,iBAAA;IACA,gBAAA;IACA,iBAAA;EvBkoDJ;EuB/nDA;IACI,iBAAA;IACA,iBAAA;EvBioDJ;EuB/nDA;IACI,mBAAA;IACA,mBAAA;EvBioDJ;AACF;ACntDE;EsBuFC;IACG,cAAA;EvB+nDJ;EuB5nDA;IACE,WrB9FI;EF4tDN;EuB3nDA;IACI,eAAA;IACA,iBAAA;EvB6nDJ;EuB1nDA;IACE,aAAA;EvB4nDF;EuBznDA;IACE,wBAAA;EvB2nDF;EuBznDA;IACI,iBAAA;IACA,gBAAA;IACA,iBAAA;EvB2nDJ;EuBxnDA;IACI,iBAAA;IACA,iBAAA;EvB0nDJ;EuBvnDA;IACI,eAAA;EvBynDJ;EuBtnDA;IACI,mBAAA;IACA,mBAAA;EvBwnDJ;AACF;AwBjtDA,cAAA;AACA,oBAAA;AACA,mBAAA","file":"style.css","sourcesContent":["// Fonts \n@import url('https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap');\n\nhtml{\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: $extra-font;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n // color: #3a405b;\n color: rgba(0,0,0,0.65);\n\n}\nh1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6 {\n font-family: $secondary-font;\n font-weight:600;\n color: $black;\n}\n\nh1 ,.h1{\n font-size: 2.5rem;\n \n}\n\nh2,.h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3,.h3 {\n font-size: 1.5rem;\n}\n\nh4,.h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5,.h5 {\n font-size: 1.25rem;\n}\n\nh6,.h6 {\n font-size: 1rem;\n}\n\n\np{\n line-height: 30px;\n}","// Transition\n@mixin transition($what: all, $time: 0.2s, $how: ease-in-out) {\n -webkit-transition: $what $time $how;\n -moz-transition: $what $time $how;\n -ms-transition: $what $time $how;\n -o-transition: $what $time $how;\n transition: $what $time $how;\n}\n\n// Transform\n@mixin transform($transforms) {\n\t -moz-transform: $transforms;\n\t -o-transform: $transforms;\n\t -ms-transform: $transforms;\n\t-webkit-transform: $transforms;\n transform: $transforms;\n}\n// rotate\n@mixin rotate ($deg) {\n @include transform(rotate(#{$deg}deg));\n}\n \n// scale\n@mixin scale($scale) {\n\t @include transform(scale($scale));\n} \n// translate\n@mixin translate ($x, $y) {\n @include transform(translate($x, $y));\n}\n// skew\n@mixin skew ($x, $y) {\n @include transform(skew(#{$x}deg, #{$y}deg));\n}\n//transform origin\n@mixin transform-origin ($origin) {\n moz-transform-origin: $origin;\n\t -o-transform-origin: $origin;\n\t -ms-transform-origin: $origin;\n\t-webkit-transform-origin: $origin;\n transform-origin: $origin;\n}\n\n\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(-100%);\n }\n}","@import url(\"https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Montserrat:wght@400;700&family=Poppins:wght@300;400;600;700&display=swap\");\n@keyframes slide {\n 0% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n/*=== MEDIA QUERY ===*/\nhtml {\n overflow-x: hidden;\n}\n\nbody {\n line-height: 1.5;\n font-family: \"Hind\", serif;\n -webkit-font-smoothing: antialiased;\n font-size: 17px;\n color: rgba(0, 0, 0, 0.65);\n}\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {\n font-family: \"Poppins\", sans-serif;\n font-weight: 600;\n color: #242424;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n font-weight: 600;\n line-height: 42px;\n}\n\nh3, .h3 {\n font-size: 1.5rem;\n}\n\nh4, .h4 {\n font-size: 1.3rem;\n line-height: 30px;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n line-height: 30px;\n}\n\n.navbar-toggle .icon-bar {\n background: #ff0000;\n}\n\ninput[type=email], input[type=password], input[type=text], input[type=tel] {\n box-shadow: none;\n height: 45px;\n outline: none;\n font-size: 14px;\n}\ninput[type=email]:focus, input[type=password]:focus, input[type=text]:focus, input[type=tel]:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n}\n.form-control:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n\n.py-7 {\n padding: 7rem 0px;\n}\n\n.btn {\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem 0.8rem;\n text-transform: uppercase;\n border-radius: 0;\n transition: 0.3s;\n}\n.btn.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n.btn:focus {\n outline: 0px;\n box-shadow: none;\n}\n\n.btn-main, .btn-small, .btn-transparent {\n background: #ff0000;\n color: #fff;\n -webkit-transition: all 0.2s ease;\n -moz-transition: all 0.2s ease;\n -ms-transition: all 0.2s ease;\n -o-transition: all 0.2s ease;\n transition: all 0.2s ease;\n}\n.btn-main:hover, .btn-small:hover, .btn-transparent:hover {\n background: #cc0000;\n color: #fff;\n}\n\n.btn-solid-border {\n border: 2px solid #ff0000;\n background: transparent;\n color: #242424;\n}\n.btn-solid-border:hover {\n border: 2px solid #ff0000;\n background: #ff0000;\n}\n\n.btn-transparent {\n background: transparent;\n padding: 0;\n color: #ff0000;\n}\n.btn-transparent:hover {\n background: transparent;\n color: #ff0000;\n}\n\n.btn-large {\n padding: 20px 45px;\n}\n.btn-large.btn-icon i {\n font-size: 16px;\n vertical-align: middle;\n margin-right: 5px;\n}\n\n.btn-small {\n padding: 13px 25px 10px;\n font-size: 12px;\n}\n\n.btn-round {\n border-radius: 4px;\n}\n\n.btn-round-full {\n border-radius: 50px;\n}\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n.bg-gray {\n background: #f5f8f9;\n}\n\n.bg-primary {\n background: #ff0000;\n}\n\n.bg-primary-dark {\n background: #cc0000;\n}\n\n.bg-primary-darker {\n background: #990000;\n}\n\n.bg-dark {\n background: #242424;\n}\n\n.bg-gradient {\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n.section {\n padding: 100px 0;\n}\n\n.section-sm {\n padding: 70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n}\n.section-title .title {\n font-size: 50px;\n line-height: 50px;\n}\n.section-title p {\n color: #666;\n font-family: \"Poppins\", sans-serif;\n}\n\n.subtitle {\n color: #ff0000;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n.overly, .cta, .slider, .page-title {\n position: relative;\n}\n.overly:before, .cta:before, .slider:before, .page-title:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n}\n\n.overly-2, .latest-blog, .cta-block, .bg-counter {\n position: relative;\n}\n.overly-2:before, .latest-blog:before, .cta-block:before, .bg-counter:before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n}\n\n.text-color {\n color: #ff0000;\n}\n\n.text-black {\n color: #242424;\n}\n\n.text-color2 {\n color: #c54041;\n}\n\n.text-color2 {\n color: #b99769;\n}\n\n.text-sm {\n font-size: 14px;\n}\n\n.text-md {\n font-size: 2.25rem;\n}\n\n.text-lg {\n font-size: 3.75rem;\n}\n\n.no-spacing {\n letter-spacing: 0px;\n}\n\n/* Links */\na {\n color: #242424;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: #ff0000;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n.page-title {\n padding: 100px 0;\n}\n.page-title .block h1 {\n color: #fff;\n}\n.page-title .block p {\n color: #fff;\n}\n\n.page-wrapper {\n padding: 70px 0;\n}\n\n#wrapper-work {\n overflow: hidden;\n padding-top: 100px;\n}\n#wrapper-work ul li {\n width: 50%;\n float: left;\n position: relative;\n}\n#wrapper-work ul li img {\n width: 100%;\n height: 100%;\n}\n#wrapper-work ul li .items-text {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n color: #fff;\n background: rgba(0, 0, 0, 0.6);\n padding-left: 44px;\n padding-top: 140px;\n}\n#wrapper-work ul li .items-text h2 {\n padding-bottom: 28px;\n padding-top: 75px;\n position: relative;\n}\n#wrapper-work ul li .items-text h2:before {\n content: \"\";\n position: absolute;\n left: 0;\n bottom: 0;\n width: 75px;\n height: 3px;\n background: #fff;\n}\n#wrapper-work ul li .items-text p {\n padding-top: 30px;\n font-size: 16px;\n line-height: 27px;\n font-weight: 300;\n padding-right: 80px;\n}\n\n/*--\n\tfeatures-work Start \n--*/\n#features-work {\n padding-top: 50px;\n padding-bottom: 75px;\n}\n#features-work .block ul li {\n width: 19%;\n text-align: center;\n display: inline-block;\n padding: 40px 0px;\n}\n\n#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: \"Arial\", sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}\n\n#navbar {\n background: rgb(34, 35, 40);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n#navbar li {\n padding-left: 15px;\n}\n@media (max-width: 992px) {\n #navbar li {\n padding-left: 0;\n }\n}\n#navbar .nav-link {\n font-family: \"Poppins\", sans-serif;\n font-weight: 500;\n color: #fff;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: 0.5px;\n transition: all 0.25s ease;\n}\n#navbar .nav-link:hover, #navbar .nav-link:focus,\n#navbar .active .nav-link {\n color: #ff0000;\n}\n#navbar .btn {\n padding: 0.7rem 1.5rem 0.5rem;\n color: #fff;\n}\n@media (max-width: 992px) {\n #navbar .btn {\n margin: 15px 0 10px;\n }\n}\n#navbar .row {\n margin: 0 -15px -42px 0px;\n}\n\n.header-top {\n background: rgb(34, 35, 40);\n color: #919194;\n border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n}\n.header-top .header-top-socials {\n border-right: 1px solid rgba(255, 255, 255, 0.05);\n padding: 12px 0px;\n}\n.header-top .header-top-socials {\n margin-left: -8px;\n}\n.header-top .header-top-socials a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n}\n.header-top .header-top-socials a:hover {\n color: #ff0000;\n}\n.header-top .header-top-info {\n color: #919194;\n font-size: 16px;\n}\n.header-top .header-top-info a span {\n color: #fff;\n}\n.header-top .header-top-info a {\n margin-left: 35px;\n color: #919194;\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n}\n.navbar-toggler:focus {\n outline: 0;\n}\n\n.navbar-brand {\n color: #fff;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.navbar-brand span {\n color: #ff0000;\n}\n\n.dropdown-menu {\n padding: 0px;\n border: 0;\n border-radius: 0px;\n}\n@media (max-width: 992px) {\n .dropdown-menu {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n}\n.dropdown-menu li:first-child {\n margin-top: 5px;\n}\n.dropdown-menu li:last-child {\n margin-bottom: 5px;\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu {\n margin: 0;\n}\n\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: \"Font Awesome 5 Free\";\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item {\n padding: 0.8rem 1.5rem 0.55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n}\n@media (max-width: 992px) {\n .dropdown-item {\n padding: 0.6rem 1.5rem 0.35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover {\n background: #ff0000;\n color: #fff;\n}\n\nul.dropdown-menu li {\n padding-left: 0px !important;\n}\n\n@media (min-width: 992px) {\n .dropdown-menu {\n transition: all 0.2s ease-in, visibility 0s linear 0.2s, transform 0.2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n }\n .dropdown-menu li:first-child {\n margin-top: 10px;\n }\n .dropdown-menu li:last-child {\n margin-bottom: 10px;\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu {\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu {\n visibility: visible;\n transition: all 0.45s ease 0s;\n opacity: 1;\n }\n}\n.bg-1 {\n background: url(\"../images/competition/conference-room.jpg\") no-repeat 50% 50%;\n background-size: cover;\n}\n\n.bg-2 {\n background: url(\"../images/competition/conference-room.jpg\");\n background-size: cover;\n}\n\n.slider {\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding: 500px 0;\n position: relative;\n}\n@media (max-width: 768px) {\n .slider {\n padding: 300px 0;\n }\n .slider .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n.slider .block h1 {\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: #fff;\n}\n.slider .block p {\n margin-bottom: 30px;\n color: #b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n}\n.slider .block span {\n letter-spacing: 1px;\n}\n\n.intro-item i {\n font-size: 60px;\n line-height: 60px;\n}\n\n.color-one {\n color: #ff0000;\n}\n\n.color-two {\n color: #00d747;\n}\n\n.color-three {\n color: #9262ff;\n}\n\n.color-four {\n color: #088ed3;\n}\n\n.intro .container .row {\n margin: 0 -32px 32px 0px;\n}\n\n.bg-about {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 45%;\n min-height: 650px;\n background: url(\"../../images/competition/concentration.jpg\") no-repeat;\n background-size: cover;\n background-position: center;\n border-radius: 1000px;\n}\n\n.about-content {\n padding: 20px 0px 0px 80px;\n}\n.about-content h4 {\n font-weight: 600;\n}\n.about-content h4:before {\n position: absolute;\n content: \"\\f576\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 30px;\n position: absolute;\n top: 8px;\n left: -65px;\n font-weight: 700;\n}\n\n.counter-item .counter-stat {\n font-size: 50px;\n}\n.counter-item p {\n margin-bottom: 0px;\n}\n\n.bg-counter {\n background: url(\"../images/bg/counter.jpg\") no-repeat;\n background-size: cover;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.service-item {\n position: relative;\n padding-left: 80px;\n}\n.service-item i {\n position: absolute;\n left: 0px;\n top: 5px;\n font-size: 50px;\n opacity: 0.4;\n}\n\n.cta {\n background: url(\"../images/competition/concentration-head.jpg\") fixed 50% 50%;\n background-size: cover;\n padding: 120px 0px;\n}\n\n.cta-block {\n background: url(\"../images/competition/concentration-head.jpg\") no-repeat;\n background-size: cover;\n}\n\n.testimonial-item {\n padding: 50px 30px;\n}\n.testimonial-item i {\n font-size: 40px;\n position: absolute;\n left: 30px;\n top: 30px;\n z-index: 1;\n}\n.testimonial-item .testimonial-text {\n font-size: 20px;\n line-height: 38px;\n color: #242424;\n margin-bottom: 30px;\n font-style: italic;\n}\n.testimonial-item .testimonial-item-content {\n padding-left: 65px;\n}\n\n.slick-slide:focus, .slick-slide a {\n outline: none;\n}\n\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n}\n@media (max-width: 768px) {\n .container {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px 0px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n.page-title {\n background: url(\"images/competition/concentration.jpg\") cover;\n padding: 30px 0;\n color: white;\n text-align: center;\n}\n\n.partner-logos .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.partner-logos .col img {\n max-width: 100%;\n height: auto;\n}\n@media (max-width: 768px) {\n .partner-logos .col {\n flex-basis: 50%;\n }\n}\n\n.partnership-offers table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n}\n.partnership-offers table th, .partnership-offers table td {\n border: 1px solid #ddd;\n padding: 10px;\n text-align: left;\n}\n.partnership-offers table th {\n background-color: #4CAF50;\n color: white;\n font-weight: bold;\n}\n.partnership-offers table tr:nth-child(even) {\n background-color: #f2f2f2;\n}\n.partnership-offers table tr:hover {\n background-color: #ddd;\n}\n.partnership-offers table tr ul {\n list-style: none;\n padding: 0;\n}\n.partnership-offers table tr ul li {\n padding: 5px 0;\n}\n\n.text-center {\n text-align: center;\n margin: 20px 0;\n}\n.text-center .btn-primary {\n background-color: #007bff;\n border: none;\n color: white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n}\n.text-center .btn-primary:hover {\n background-color: white;\n color: black;\n border: 2px solid #007bff;\n}\n\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n}\n.hero-img::before {\n content: \"\";\n background: rgba(0, 0, 0, 0.5);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.portflio-item .portfolio-item-content {\n position: absolute;\n content: \"\";\n right: 0px;\n bottom: 0px;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:before {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n opacity: 0;\n transition: all 0.35s ease;\n overflow: hidden;\n}\n.portflio-item:hover:before {\n opacity: 1;\n}\n.portflio-item:hover .portfolio-item-content {\n opacity: 1;\n bottom: 20px;\n right: 30px;\n}\n.portflio-item .overlay-item {\n position: absolute;\n content: \"\";\n left: 0px;\n top: 0px;\n bottom: 0px;\n right: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 80px;\n color: #ff0000;\n opacity: 0;\n transition: all 0.35s ease;\n}\n.portflio-item:hover .overlay-item {\n opacity: 1;\n}\n\n.project-card {\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border-radius: 15px;\n padding: 20px;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s;\n overflow: hidden;\n margin-bottom: 20px;\n}\n.project-card:hover {\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n}\n.project-card .project-link {\n transform: translateY(10px);\n transition: all 0.3s ease;\n text-decoration: none;\n color: blue;\n cursor: pointer;\n}\n.project-card .project-link:hover {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n.project-card .icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.project-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n padding: 10px;\n}\n\n.project-title {\n font-size: 18px;\n font-weight: bold;\n}\n\n.project-stars {\n color: #ff0000;\n font-size: 14px;\n}\n\n.project-description {\n white-space: normal;\n font-size: 0.875rem;\n color: #718096;\n margin-bottom: 1rem;\n width: 600px;\n}\n\n.grid-container {\n display: flex;\n grid-template-columns: repeat(3, 1fr);\n /* 3 columns */\n grid-template-rows: repeat(3, 1fr);\n /* 3 rows */\n grid-gap: 20px;\n /* 20px gap between columns */\n}\n@media (max-width: 768px) {\n .grid-container {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@media (max-width: 480px) {\n .grid-container {\n grid-template-columns: 1fr;\n }\n}\n.grid-container .project-image img {\n width: 100%;\n height: 200px;\n object-fit: cover;\n border-radius: 10px 10px 0 0;\n}\n\n.contact-form-wrap .form-group {\n padding-bottom: 15px;\n margin: 0px;\n}\n.contact-form-wrap .form-group .form-control {\n background: #f5f8f9;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n.contact-form-wrap .form-group-2 {\n margin-bottom: 13px;\n}\n.contact-form-wrap .form-group-2 textarea {\n background: #f5f8f9;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n}\n\n.address-block li {\n margin-bottom: 10px;\n}\n.address-block li i {\n font-size: 20px;\n width: 20px;\n}\n\n.social-icons li {\n margin: 0 6px;\n}\n.social-icons i {\n margin-right: 15px;\n font-size: 25px;\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content h3 {\n line-height: 36px;\n}\n.blog-item-content h3 a {\n transition: all 0.4s ease 0s;\n}\n.blog-item-content h3 a:hover {\n color: #ff0000 !important;\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n.tags a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n}\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n}\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n}\n@media (max-width: 768px) {\n h3.quote {\n padding: 0;\n padding-left: 20px;\n }\n h3.quote .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\nh3.quote::before {\n content: \"\";\n width: 55px;\n height: 2px;\n background: #ff0000;\n position: absolute;\n top: 25px;\n left: 0;\n}\n@media (max-width: 768px) {\n h3.quote::before {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n h3.quote::before .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n.latest-blog {\n position: relative;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.styled-table {\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n min-width: 400px;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n}\n\n.styled-table thead tr {\n background-color: #009879;\n color: #ffffff;\n text-align: left;\n}\n\n.styled-table th,\n.styled-table td {\n padding: 12px 15px;\n}\n\n.styled-table tbody tr {\n border-bottom: 1px solid #dddddd;\n}\n\n.styled-table tbody tr:nth-of-type(even) {\n background-color: #f3f3f3;\n}\n\n.styled-table tbody tr:last-of-type {\n border-bottom: 2px solid #009879;\n}\n\n/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border: none;\n}\n.post.post-single .post-thumb {\n margin-top: 30px;\n}\n\n.post-sub-heading {\n border-bottom: 1px solid #dedede;\n padding-bottom: 20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom: 20px;\n}\n\n.post-social-share {\n margin-bottom: 50px;\n}\n\n.post-comments {\n margin: 30px 0;\n}\n.post-comments .media {\n margin-top: 20px;\n}\n.post-comments .media > .pull-left {\n padding-right: 20px;\n}\n.post-comments .comment-author {\n margin-top: 0;\n margin-bottom: 0px;\n font-weight: 500;\n}\n.post-comments .comment-author a {\n color: #ff0000;\n font-size: 14px;\n text-transform: uppercase;\n}\n.post-comments time {\n margin: 0 0 5px;\n display: inline-block;\n color: #808080;\n font-size: 12px;\n}\n.post-comments .comment-button {\n color: #ff0000;\n display: inline-block;\n margin-left: 5px;\n font-size: 12px;\n}\n.post-comments .comment-button i {\n margin-right: 5px;\n display: inline-block;\n}\n.post-comments .comment-button:hover {\n color: #ff0000;\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n}\n.post-excerpt h3 a {\n color: #000;\n}\n.post-excerpt p {\n margin: 0 0 30px;\n}\n.post-excerpt blockquote.quote-post {\n margin: 20px 0;\n}\n.post-excerpt blockquote.quote-post p {\n line-height: 30px;\n font-size: 20px;\n color: #ff0000;\n}\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n}\n.next-prev a {\n color: #000;\n}\n.next-prev a:hover {\n color: #ff0000;\n}\n.next-prev .prev-post i {\n margin-right: 10px;\n}\n.next-prev .next-post i {\n margin-left: 10px;\n}\n\n.social-profile ul li {\n margin: 0 10px 0 0;\n display: inline-block;\n}\n.social-profile ul li a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n}\n.social-profile ul li a i:hover {\n color: #ff0000;\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n.author-about {\n margin-top: 40px;\n}\n\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n.comment-list ul {\n margin-top: 20px;\n}\n.comment-list ul li {\n margin-bottom: 20px;\n}\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n}\n.comment-wrap .author-avatar {\n margin-right: 10px;\n}\n.comment-wrap .media .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n}\n.comment-wrap .media .media-heading a {\n color: #ff0000;\n font-size: 13px;\n}\n.comment-wrap .media .comment-meta {\n font-size: 12px;\n color: #888;\n}\n.comment-wrap .media p {\n margin-top: 15px;\n}\n\n.comment-reply-form {\n margin-top: 80px;\n}\n.comment-reply-form input, .comment-reply-form textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n}\n.comment-reply-form input:focus, .comment-reply-form textarea:focus {\n box-shadow: none;\n border: 1px solid #ff0000;\n}\n.comment-reply-form textarea, .comment-reply-form .btn-main, .comment-reply-form .btn-transparent, .comment-reply-form .btn-small {\n height: auto;\n}\n\n.widget {\n margin-bottom: 30px;\n padding-bottom: 35px;\n}\n.widget .widget-title {\n margin-bottom: 15px;\n padding-bottom: 10px;\n font-size: 16px;\n color: #333;\n font-weight: 500;\n border-bottom: 1px solid #ddd;\n}\n.widget.widget-latest-post .media .media-object {\n width: 100px;\n height: auto;\n}\n.widget.widget-latest-post .media .media-heading a {\n color: black;\n font-size: 16px;\n}\n.widget.widget-latest-post .media p {\n font-size: 12px;\n color: #808080;\n}\n.widget.widget-category ul li {\n margin-bottom: 10px;\n}\n.widget.widget-category ul li a {\n color: #837f7e;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-category ul li a:before {\n padding-right: 10px;\n}\n.widget.widget-category ul li a:hover {\n color: #ff0000;\n padding-left: 5px;\n}\n.widget.widget-tag ul li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right: 5px;\n}\n.widget.widget-tag ul li a {\n color: #837f7e;\n display: inline-block;\n padding: 8px 15px;\n border: 1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.widget.widget-tag ul li a:hover {\n color: #fff;\n background: #ff0000;\n border: 1px solid #ff0000;\n}\n\n.team-item {\n border-radius: 20px;\n overflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n background: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n background: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n background: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n background: #3399cc;\n}\n\n.team-img-hover {\n position: absolute;\n top: 10px;\n left: 10px;\n right: 10px;\n bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transition: all 0.2s ease-in-out;\n transform: scale(0.8);\n}\n\n.team-img-hover li a {\n display: inline-block;\n color: #fff;\n width: 50px;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n border: 2px solid transparent;\n border-radius: 2px;\n text-align: center;\n transform: translateY(0);\n backface-visibility: hidden;\n transition: all 0.3s ease-in-out;\n}\n\n.team-img-hover:hover li a:hover {\n transform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n opacity: 1;\n transform: scale(1);\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n\n.footer {\n padding-bottom: 10px;\n}\n.footer .copyright a {\n font-weight: 600;\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: black;\n font-weight: 600;\n letter-spacing: 1px;\n}\n.logo span {\n color: #ff0000;\n}\n\n.sub-form {\n position: relative;\n}\n.sub-form .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: #f5f8f9;\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: #ff0000;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n}\n@media (max-width: 480px) {\n .scroll-to-top {\n bottom: 15px;\n right: 15px;\n }\n}\n.scroll-to-top:hover {\n background-color: #333;\n}\n\n/*=== MEDIA QUERY ===*/\n@media (max-width: 992px) {\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n .bg-about {\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n@media (max-width: 768px) {\n .navbar-toggler {\n color: #fff;\n }\n .bg-about {\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span {\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n}\n@media (max-width: 480px) {\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n .navbar-toggler {\n color: #fff;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@media (max-width: 400px) {\n .header-top .header-top-info a {\n display: block;\n }\n .navbar-toggler {\n color: #fff;\n }\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n .bg-about {\n display: none;\n }\n .p-5 {\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .text-lg {\n font-size: 3rem;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;","/*=== MEDIA QUERY ===*/\n@mixin mobile-xs {\n @media(max-width:400px) {\n @content;\n }\n}\n\n@mixin mobile {\n @media(max-width:480px) {\n @content;\n }\n}\n\n@mixin tablet {\n @media(max-width:768px) {\n @content;\n\n .tickerText {\n font-size: 14px;\n margin-right: 30px;\n }\n }\n}\n\n@mixin desktop {\n @media(max-width:992px) {\n @content;\n }\n}\n\n@mixin large-desktop {\n @media(max-width:1200px) {\n @content;\n }\n}","$light: #fff;\n$primary-color: rgb(247, 87, 87);\n$primary-color: #ff0000; // Example primary color\n$secondary-color: #f5f8f9;\n$event-color: #c54041;\n$law-color: #b99769;\n$black: #242424;\n$border-color:#dedede;\n$primary-font:'Montserrat', sans-serif;\n$secondary-font:'Poppins', sans-serif;\n$extra-font:'Hind', serif;",".navbar-toggle .icon-bar {\n background: $primary-color;\n}\n\ninput[type=\"email\"],input[type=\"password\"],input[type=\"text\"],input[type=\"tel\"]{\n box-shadow:none;\n height:45px;\n outline: none;\n font-size:14px;\n &:focus {\n box-shadow: none;\n border:1px solid $primary-color;\n }\n}\n\n\n.form-control {\n box-shadow: none;\n border-radius: 0;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n}\n\n//\n\n.py-7{\n padding: 7rem 0px;\n}\n\n// Button Style\n\n.btn{\n display: inline-block;\n font-size: 14px;\n font-size: 0.8125rem;\n font-weight: 500;\n padding: 1rem 2.5rem .8rem;\n text-transform: uppercase;\n border-radius:0;\n transition: 0.3s;\n\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n\n &:focus{\n outline: 0px;\n box-shadow: none;\n }\n}\n\n.btn-main {\n background: $primary-color;\n color: $light;\n @include transition (all, 0.2s, ease);\n \n &:hover {\n background: darken( $primary-color, 10% );\n color: $light;\n }\n}\n\n\n.btn-solid-border {\n border:2px solid $primary-color;\n background:transparent;\n color:$black;\n \n &:hover {\n border:2px solid $primary-color;\n background:$primary-color;\n }\n}\n\n\n.btn-transparent {\n @extend .btn-main;\n background:transparent;\n padding:0;\n color:$primary-color;\n &:hover {\n background:transparent;\n color:$primary-color;\n }\n}\n\n.btn-large {\n padding:20px 45px;\n &.btn-icon {\n i {\n font-size:16px;\n vertical-align:middle;\n margin-right:5px;\n }\n }\n}\n\n.btn-small {\n @extend .btn-main ;\n padding:13px 25px 10px;\n font-size:12px;\n}\n\n.btn-round {\n border-radius:4px;\n}\n.btn-round-full {\n border-radius:50px;\n}\n\n\n.btn.active:focus, .btn:active:focus, .btn:focus {\n outline: 0;\n}\n\n\n// Background\n\n.bg-gray {\n background:$secondary-color;\n}\n.bg-primary {\n background:$primary-color;\n}\n.bg-primary-dark {\n background:darken($primary-color, 10%);\n}\n.bg-primary-darker {\n background:darken($primary-color, 20%);\n}\n\n.bg-dark {\n background:$black;\n}\n\n\n.bg-gradient{\n background-image: linear-gradient(145deg, rgba(19, 177, 205, 0.95) 0%, rgba(152, 119, 234, 0.95) 100%);\n background-repeat: repeat-x;\n}\n\n\n// Section Title\n.section {\n padding:100px 0;\n}\n.section-sm {\n padding:70px 0;\n}\n\n.section-title {\n margin-bottom: 70px;\n \n .title{\n font-size: 50px;\n line-height: 50px;\n }\n p {\n color: #666;\n font-family:$secondary-font;\n }\n}\n\n\n.subtitle {\n color: $primary-color;\n font-size: 14px;\n letter-spacing: 1px;\n}\n\n\n\n\n.overly {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n background: #000;\n }\n}\n\n\n.overly-2 {\n position: relative;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.8);\n }\n}\n\n\n.text-color{\n color: $primary-color;\n}\n\n.text-black{\n color: $black;\n}\n\n.text-color2{\n color: $event-color;\n}\n\n.text-color2{\n color: $law-color;\n}\n\n\n.text-sm{\n font-size: 14px;\n}\n.text-md{\n font-size: 2.25rem;\n}\n.text-lg{\n font-size:3.75rem; \n}\n\n.no-spacing{\n letter-spacing: 0px\n}\n\n\n/* Links */\na {\n color: $black;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: $primary-color;\n text-decoration: none;\n}\n\na:focus {\n outline: none;\n}\n\n\n.content-title {\n font-size: 40px;\n line-height: 50px;\n}\n\n\n\n.page-title{\n padding: 100px 0;\n @extend .overly;\n .block{\n h1{\n color:$light;\n }\n p{\n color:$light;\n }\n }\n}\n\n\n.page-wrapper {\n padding:70px 0;\n}\n\n","#wrapper-work{\n\toverflow: hidden;\n\tpadding-top: 100px;\n\tul{\n\t\tli{\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tposition: relative;\n\t\t\timg{\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t\t.items-text{\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tbackground: rgba(0, 0, 0, 0.60);\n\t\t\t\tpadding-left: 44px;\n\t\t\t\tpadding-top: 140px;\n\t\t\t\th2{\n\t\t\t\t\tpadding-bottom: 28px;\n\t\t\t\t\tpadding-top: 75px;\n\t\t\t\t \tposition: relative;\n\t\t\t\t \t&:before{\n\t\t\t\t \t\tcontent: \"\";\n\t\t\t\t \t\tposition: absolute;\n\t\t\t\t \t\tleft: 0;\n\t\t\t\t \t\tbottom: 0;\n\t\t\t\t \t\twidth: 75px;\n\t\t\t\t \t\theight: 3px;\n\t\t\t\t \t\tbackground: #fff;\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tp{\n\t\t\t\t\tpadding-top: 30px;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\tline-height: 27px;\n\t\t\t\t\tfont-weight: 300;\n\t\t\t\t\tpadding-right: 80px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n/*--\n\tfeatures-work Start \n--*/\n\n#features-work{\n\tpadding-top: 50px; \n\tpadding-bottom: 75px;\n\t.block{\n\t\tul{\n\t\t\tli{\n\t\t\t\twidth: 19%;\n\t\t\t\ttext-align: center;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 40px 0px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","#tickerScroller {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n padding: 10px 0;\n background-color: #333;\n color: white;\n overflow: hidden;\n z-index: 9999;\n border-radius: 0px 0px 10px 10px;\n}\n\n#tickerContainer {\n display: flex;\n align-items: center;\n animation: slide linear infinite;\n white-space: nowrap;\n font-family: 'Arial', sans-serif;\n}\n\n.tickerText {\n margin-right: 50px;\n}","#navbar{\n background: rgba(34,35,40,1);\n box-shadow: 0 1px 2px rgba(0,0,0,.05);\n li{\n padding-left: 15px;\n @include desktop {\n padding-left: 0;\n }\n }\n\n .nav-link{\n font-family: $secondary-font;\n font-weight: 500;\n color: $light;\n text-transform: uppercase;\n font-size: 14px;\n letter-spacing: .5px;\n transition: all .25s ease;\n }\n \n .nav-link:hover, .nav-link:focus,\n .active .nav-link {\n color: $primary-color;\n }\n\n\n .btn{\n padding: .7rem 1.5rem .5rem;\n color: $light;\n @include desktop {\n margin: 15px 0 10px;\n }\n }\n\n .row {\n margin: 0 -15px -42px 0px;\n }\n\n}\n\n.header-top{\n background: rgba(34,35,40,1);\n color: #919194;\n border-bottom: 1px solid rgba(255,255,255,.05);\n\n .header-top-socials {\n border-right: 1px solid rgba(255,255,255,.05);\n padding: 12px 0px;\n }\n \n .header-top-socials {\n margin-left: -8px;\n a {\n color: #919194;\n margin-right: 8px;\n font-size: 16px;\n padding: 0 8px;\n &:hover {\n color: $primary-color;\n }\n }\n }\n .header-top-info{\n color: #919194;\n font-size: 16px;\n\n a span{\n color: $light;\n }\n a{\n margin-left: 35px;\n color: #919194;\n }\n }\n}\n\n.navbar-toggler {\n padding: 0;\n font-size: 1.5rem;\n color: #fff;\n &:focus {\n outline: 0;\n }\n}\n\n\n.navbar-brand{\n color: $light;\n font-weight: 600;\n letter-spacing: 1px;\n\n span{\n color: $primary-color;\n }\n}\n\n.dropdown-menu{\n padding: 0px;\n border: 0;\n border-radius: 0px;\n @include desktop {\n text-align: center;\n float: left !important;\n width: 100%;\n margin: 0;\n }\n\n li:first-child {margin-top: 5px}\n li:last-child {margin-bottom: 5px}\n}\n\n.dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-menu,\n.dropright .dropdown-menu{\n margin: 0;\n}\n.dropleft .dropdown-toggle::before,\n.dropright .dropdown-toggle::after {\n font-weight: bold;\n font-family: 'Font Awesome 5 Free';\n border: 0;\n font-size: 10px;\n vertical-align: 1px;\n}\n.dropleft .dropdown-toggle::before {\n content: \"\\f053\";\n margin-right: 5px;\n}\n.dropright .dropdown-toggle::after {\n content: \"\\f054\";\n margin-left: 5px;\n}\n\n.dropdown-item{\n padding: .8rem 1.5rem .55rem;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 500;\n @include desktop {\n padding: .6rem 1.5rem .35rem;\n }\n}\n\n.dropdown-submenu.active > .dropdown-toggle,\n.dropdown-submenu:hover > .dropdown-item,\n.dropdown-item.active,\n.dropdown-item:hover{\n background: $primary-color;\n color: $light;\n}\n\nul.dropdown-menu li {\n padding-left: 0px!important;\n}\n\n@media (min-width:992px) {\n .dropdown-menu{\n transition:all .2s ease-in, visibility 0s linear .2s, transform .2s linear;\n display: block;\n visibility: hidden;\n opacity: 0;\n min-width: 200px;\n margin-top: 15px;\n\n li:first-child {margin-top: 10px}\n li:last-child {margin-bottom: 10px}\n }\n .dropleft .dropdown-menu,\n .dropright .dropdown-menu{\n margin-top: -10px;\n }\n .dropdown:hover > .dropdown-menu{\n visibility: visible;\n transition: all .45s ease 0s;\n opacity: 1;\n }\n}\n\n",".bg-1 {\n\tbackground: url(\"../images/competition/conference-room.jpg\") no-repeat 50% 50%;\n\tbackground-size: cover;\n}\n\n.bg-2 {\n\tbackground: url(\"../images/competition/conference-room.jpg\");\n\tbackground-size: cover;\n}\n",".slider{\n background: url(\"../../images/competition/good-team.jpg\") no-repeat;\n background-size: cover;\n background-position: right 0% bottom 80%;\n background-repeat: no-repeat;\n padding:500px 0;\n position: relative;\n @include tablet {\n padding:300px 0;\n }\n @extend .overly;\n .block{\n h1{\n font-size: 70px;\n line-height: 80px;\n font-weight: 600;\n color: $light;\n\n }\n p{\n margin-bottom:30px;\n color:#b9b9b9;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n }\n\n span{\n letter-spacing: 1px;\n }\n }\n}\n","// Intro Section\n\n.intro-item {\n\n\ti {\n\t\tfont-size: 60px;\n\t\tline-height: 60px;\n\t}\n\n}\n\n.color-one {\n\tcolor: $primary-color;\n}\n\n.color-two {\n\tcolor: #00d747;\n}\n\n.color-three {\n\tcolor: #9262ff;\n}\n\n.color-four {\n\tcolor: #088ed3;\n}\n\n.intro {\n\t.container {\n\t\t.row {\n\t\t\tmargin: 0 -32px 32px 0px;\n\t\t}\n\t}\n}","// About Setcion\n\n.bg-about{\n \tposition: absolute;\n \tcontent:\"\";\n \tleft: 0px;\n \ttop: 0px;\n \twidth: 45%;\n \tmin-height: 650px;\n \tbackground: url(\"../../images/competition/concentration.jpg\") no-repeat;\n \tbackground-size: cover;\n\tbackground-position: center;\n\tborder-radius: 1000px;\n}\n\n\n.about-content{\n\tpadding: 20px 0px 0px 80px;\n\th4{\n\t\tfont-weight: 600;\n\n\t\t&:before{\n\t\t\tposition: absolute;\n\t\t\tcontent:\"\\f576\";\n\t\t\tfont-family: \"Font Awesome 5 Free\";\n\t\t\tfont-size: 30px;\n\t\t\tposition: absolute;\n\t\t\ttop: 8px;\n\t\t\tleft: -65px;\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n}\n","// Counter Section \n\n.counter-item{\n\t.counter-stat{\n\t\tfont-size: 50px;\n\t}\n\n\tp{\n\t\tmargin-bottom: 0px;\n\t}\n\n}\n\n.bg-counter{\n\tbackground: url(\"../images/bg/counter.jpg\")no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}",".team-item {\n\tborder-radius: 20px;\n\toverflow: hidden;\n}\n\n.team-img-hover .team-social li a.facebook {\n\tbackground: #6666cc;\n}\n\n.team-img-hover .team-social li a.twitter {\n\tbackground: #3399cc;\n}\n\n.team-img-hover .team-social li a.instagram {\n\tbackground: #cc66cc;\n}\n\n.team-img-hover .team-social li a.linkedin {\n\tbackground: #3399cc;\n}\n\n.team-img-hover {\n\tposition: absolute;\n\ttop: 10px;\n\tleft: 10px;\n\tright: 10px;\n\tbottom: 10px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: rgba(255, 255, 255, 0.6);\n\topacity: 0;\n\ttransition: all 0.2s ease-in-out;\n\ttransform: scale(0.8);\n\n}\n\n.team-img-hover li a {\n\tdisplay: inline-block;\n\tcolor: $light;\n\twidth: 50px;\n\theight: 50px;\n\tfont-size: 20px;\n\tline-height: 50px;\n\tborder: 2px solid transparent;\n\tborder-radius: 2px;\n\ttext-align: center;\n\ttransform: translateY(0);\n\tbackface-visibility: hidden;\n\ttransition: all 0.3s ease-in-out;\n}\n\n\n.team-img-hover:hover li a:hover {\n\ttransform: translateY(4px);\n}\n\n.team-item:hover .team-img-hover {\n\topacity: 1;\n\ttransform: scale(1);\n\ttop: 0px;\n\tleft: 0px;\n\tright: 0px;\n\tbottom: 0px;\n}\n\n.section-title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 10px;\n}\n\n.section-description {\n font-size: 16px;\n margin-bottom: 15px;\n}\n\n.role-points {\n list-style-type: disc;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n\nhr {\n border-top: 1px solid #ccc;\n margin-top: 30px;\n margin-bottom: 30px;\n}\n","// Service section\n\n.service-item{\n\tposition: relative;\n\tpadding-left: 80px;\n\n\ti{\n\t\tposition: absolute;\n\t\tleft: 0px;\n\t\ttop:5px;\n\t\tfont-size: 50px;\n\t\topacity: .4;\n\t}\n}",".cta{\n\tbackground: url(\"../images/competition/concentration-head.jpg\") fixed 50% 50%;\n\tbackground-size: cover;\n\tpadding: 120px 0px;\n\t@extend .overly;\n}\n.cta-block{\n\tbackground: url(\"../images/competition/concentration-head.jpg\") no-repeat;\n\tbackground-size: cover;\n\t@extend .overly-2;\n}\n","// Testimonial Section\n\n.testimonial-item{\n\tpadding:50px 30px;\n\n\ti{\n\t\tfont-size: 40px;\n\t\tposition: absolute;\n\t\tleft: 30px;\n\t\ttop:30px;\n\t\tz-index: 1;\n\t}\n\t.testimonial-text{\n\t\tfont-size: 20px;\n\t\tline-height: 38px;\n\t\tcolor: $black;\n\t\tmargin-bottom: 30px;\n\t\tfont-style: italic;\n\t}\n\n\t.testimonial-item-content{\n\t\tpadding-left: 65px;\n\t}\n}\n\n.slick-slide {\n &:focus, a {\n outline: none;\n }\n}","// Variables\n$primary-color: #007bff;\n$hover-color: #0056b3;\n$light-gray: #f2f2f2;\n$dark-gray: #ddd;\n$green: #4CAF50;\n$white: white;\n$black: black;\n$border-color: #ddd; // Set your border color\n\n// General Styles\nbody {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n}\n\n.container {\n width: 80%;\n margin: auto;\n overflow: hidden;\n padding: 15px;\n\n @media (max-width: 768px) {\n width: 95%;\n }\n}\n\n.row {\n margin: 0 -15px 0px 0px;\n}\n\n.col {\n padding: 0 15px;\n}\n\n// Header and Navigation\n.header, .navigation {\n // Your styles for header and navigation\n}\n\n// Page Title Section\n.page-title {\n background: url('images/competition/concentration.jpg') cover;\n padding: 30px 0;\n color: $white;\n text-align: center;\n}\n\n// Partnership Logos Section\n.partner-logos {\n .col {\n text-align: center;\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n img {\n max-width: 100%;\n height: auto;\n }\n\n @media (max-width: 768px) {\n flex-basis: 50%;\n }\n }\n}\n\n// Pricing Table\n.partnership-offers {\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 20px;\n\n th, td {\n border: 1px solid $border-color;\n padding: 10px;\n text-align: left;\n }\n\n th {\n background-color: $green;\n color: $white;\n font-weight: bold;\n }\n\n tr {\n &:nth-child(even) { background-color: $light-gray; }\n &:hover { background-color: $dark-gray; }\n\n ul {\n list-style: none;\n padding: 0;\n\n li { padding: 5px 0; }\n }\n }\n }\n}\n\n// Call to Action\n.text-center {\n text-align: center;\n margin: 20px 0;\n\n .btn-primary {\n background-color: $primary-color;\n border: none;\n color: $white;\n padding: 12px 25px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n transition-duration: 0.4s;\n cursor: pointer;\n\n &:hover {\n background-color: $white; \n color: $black; \n border: 2px solid $primary-color;\n }\n }\n}\n\n// Footer\n.footer {\n // Your styles for footer\n}\n\n// Additional Styles\n.hero-img {\n background: url(\"../images/bg/home-5.jpg\") cover;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n\n &::before {\n content: '';\n background: rgba(0, 0, 0, 0.5); // Black overlay with 50% opacity\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n}\n","$primary-color: #ff0000; // Example primary color\n$font-size-normal: 0.875rem; // 14px\n$gray-600: #718096; // Gray color\n$semi-transparent-white: rgba(255, 255, 255, 0.1);\n$shadow-light: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\n$shadow-dark: 0 8px 16px 0 rgba(0, 0, 0, 0.2);\n\n.portflio-item {\n\t.portfolio-item-content {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tright: 0px;\n\t\tbottom: 0px;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:before {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t\toverflow: hidden;\n\t}\n\n\t&:hover {\n\t\t&:before {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.portfolio-item-content {\n\t\t\topacity: 1;\n\t\t\tbottom: 20px;\n\t\t\tright: 30px;\n\t\t}\n\t}\n\n\t.overlay-item {\n\t\tposition: absolute;\n\t\tcontent: \"\";\n\t\tleft: 0px;\n\t\ttop: 0px;\n\t\tbottom: 0px;\n\t\tright: 0px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 80px;\n\t\tcolor: $primary-color;\n\t\topacity: 0;\n\t\ttransition: all .35s ease;\n\t}\n\n\t&:hover {\n\t\t.overlay-item {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.project-card {\n\tbackground: $semi-transparent-white;\n\tbackdrop-filter: blur(10px);\n\t-webkit-backdrop-filter: blur(10px);\n\tborder-radius: 15px;\n\tpadding: 20px;\n\tbox-shadow: $shadow-light;\n\ttransition: 0.3s;\n\toverflow: hidden;\n\tmargin-bottom: 20px;\n\n\t&:hover {\n\t\tbox-shadow: $shadow-dark;\n\t}\n\n\t.project-link {\n\t\ttransform: translateY(10px);\n\t\ttransition: all 0.3s ease;\n\t\ttext-decoration: none;\n\t\tcolor: blue;\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t\tvisibility: visible;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t.icon {\n\t\tdisplay: inline-block;\n\t\tmargin-right: 5px;\n\t}\n}\n\n.project-container {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tpadding: 10px;\n}\n\n.project-title {\n\tfont-size: 18px;\n\tfont-weight: bold;\n}\n\n.project-stars {\n\tcolor: $primary-color;\n\tfont-size: 14px;\n}\n\n.project-description {\n\twhite-space: normal;\n\tfont-size: $font-size-normal;\n\tcolor: $gray-600;\n\tmargin-bottom: 1rem; // 16px\n\twidth: 600px; // approximate width for 80 characters\n}\n\n\n.grid-container {\n\tdisplay: flex;\n\tgrid-template-columns: repeat(3, 1fr);\n\t/* 3 columns */\n\tgrid-template-rows: repeat(3, 1fr);\n\t/* 3 rows */\n\tgrid-gap: 20px;\n\t/* 20px gap between columns */\n\n\t@media (max-width: 768px) {\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n\n\t@media (max-width: 480px) {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.project-image img {\n\t\twidth: 100%;\n\t\theight: 200px;\n\t\tobject-fit: cover;\n\t\tborder-radius: 10px 10px 0 0;\n\t}\n}",".contact-form-wrap{\n .form-group{\n padding-bottom: 15px;\n margin: 0px;\n .form-control{\n background:$secondary-color;\n height: 48px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n .form-group-2{\n margin-bottom: 13px;\n textarea{\n background: $secondary-color;\n height: 135px;\n border: 1px solid #EEF2F6;\n box-shadow: none;\n width: 100%;\n }\n }\n}\n\n\n.address-block {\n li {\n margin-bottom:10px;\n i {\n font-size: 20px;\n width: 20px;\n }\n }\n}\n\n\n.social-icons {\n li {\n margin:0 6px;\n }\n \n i{\n margin-right: 15px;\n font-size: 25px;\n }\n}\n\n.google-map {\n position: relative;\n}\n\n.google-map #map {\n width: 100%;\n height: 450px;\n}\n\n","/*=================================================================\n Latest Posts\n==================================================================*/\n.blog-item-content {\n h3 {\n line-height: 36px;\n }\n\n h3 a {\n transition: all .4s ease 0s;\n\n &:hover {\n color: $primary-color !important;\n }\n }\n}\n\n.lh-36 {\n line-height: 36px;\n}\n\n\n.tags {\n a {\n background: #f5f8f9;\n display: inline-block;\n padding: 8px 23px;\n border-radius: 38px;\n margin-bottom: 10px;\n border: 1px solid #eee;\n font-size: 14px;\n text-transform: capitalize;\n }\n}\n\n\n\n.pagination .nav-links a,\n.pagination .nav-links span.current {\n font-size: 20px;\n font-weight: 500;\n color: #c9c9c9;\n margin: 0 10px;\n text-transform: uppercase;\n letter-spacing: 1.2px;\n\n}\n\n\n.pagination .nav-links span.current,\n.pagination .nav-links a.next,\n.pagination .nav-links a.prev {\n color: $black;\n}\n\nh3.quote {\n font-size: 24px;\n line-height: 40px;\n font-weight: normal;\n padding: 0px 25px 0px 85px;\n margin: 65px 0 65px 0 !important;\n position: relative;\n\n @include tablet {\n padding: 0;\n padding-left: 20px;\n }\n}\n\nh3.quote::before {\n content: '';\n width: 55px;\n height: 2px;\n background: $primary-color;\n position: absolute;\n top: 25px;\n left: 0;\n\n @include tablet {\n top: 5px;\n width: 2px;\n height: 35px;\n }\n}\n\n.nav-posts-title {\n line-height: 25px;\n font-size: 18px;\n}\n\n\n\n.latest-blog {\n position: relative;\n @extend .overly-2;\n padding-bottom: 150px;\n}\n\n.mt-70 {\n margin-top: -70px;\n}\n\n.border-1 {\n border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.blog-item {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05)\n}\n\n.styled-table {\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n min-width: 400px;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n}\n\n.styled-table thead tr {\n background-color: #009879;\n color: #ffffff;\n text-align: left;\n}\n\n.styled-table th,\n.styled-table td {\n padding: 12px 15px;\n}\n\n.styled-table tbody tr {\n border-bottom: 1px solid #dddddd;\n}\n\n.styled-table tbody tr:nth-of-type(even) {\n background-color: #f3f3f3;\n}\n\n.styled-table tbody tr:last-of-type {\n border-bottom: 2px solid #009879;\n}","/*=================================================================\n Single Blog Page\n==================================================================*/\n.post.post-single {\n border:none;\n .post-thumb {\n margin-top:30px;\n }\n}\n.post-sub-heading {\n border-bottom:1px solid #dedede;\n padding-bottom:20px;\n letter-spacing: 2px;\n text-transform: uppercase;\n font-size: 16px;\n margin-bottom:20px;\n}\n.post-social-share {\n margin-bottom:50px;\n}\n\n.post-comments {\n margin:30px 0;\n .media {\n margin-top:20px;\n > .pull-left {\n padding-right: 20px;\n }\n }\n .comment-author {\n margin-top: 0;\n margin-bottom:0px;\n font-weight:500;\n a {\n color: $primary-color;\n font-size: 14px;\n text-transform: uppercase;\n }\n }\n time {\n margin:0 0 5px;\n display: inline-block;\n color: #808080;\n font-size:12px;\n }\n .comment-button {\n color: $primary-color;\n display: inline-block;\n margin-left:5px;\n font-size:12px;\n i {\n margin-right:5px;\n display: inline-block;\n }\n &:hover {\n color: $primary-color;\n }\n }\n}\n\n.post-excerpt {\n margin-bottom: 60px;\n h3 {\n a {\n color: #000;\n }\n }\n p {\n margin: 0 0 30px;\n }\n blockquote.quote-post {\n margin: 20px 0;\n p {\n line-height: 30px;\n font-size: 20px;\n color:$primary-color;\n }\n }\n}\n\n\n.single-blog {\n background-color: #fff;\n margin-bottom: 50px;\n padding: 20px;\n}\n\n.blog-subtitle {\n font-size: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #dedede;\n margin-bottom: 25px;\n text-transform: uppercase;\n}\n\n.next-prev {\n border-bottom: 1px solid #dedede;\n border-top: 1px solid #dedede;\n margin: 20px 0;\n padding: 25px 0;\n a {\n color: #000;\n &:hover {\n color: $primary-color;\n }\n }\n .prev-post i {\n margin-right: 10px;\n }\n\n .next-post i {\n margin-left: 10px;\n }\n}\n\n.social-profile {\n ul {\n li {\n margin: 0 10px 0 0;\n display: inline-block;\n a {\n color: #4e595f;\n display: block;\n font-size: 16px;\n i {\n &:hover {\n color: $primary-color;\n }\n }\n }\n }\n }\n}\n\n.comments-section {\n margin-top: 35px;\n}\n\n\n.author-about {\n margin-top: 40px;\n}\n.post-author {\n margin-right: 20px;\n}\n\n.post-author > img {\n border: 1px solid #dedede;\n max-width: 120px;\n padding: 5px;\n width: 100%;\n}\n\n\n\n.comment-list {\n ul {\n margin-top: 20px;\n li {\n margin-bottom: 20px;\n }\n }\n}\n\n\n.comment-wrap {\n border: 1px solid #dedede;\n border-radius: 1px;\n margin-left: 20px;\n padding: 10px;\n position: relative;\n .author-avatar {\n margin-right: 10px;\n }\n .media {\n .media-heading {\n font-size: 14px;\n margin-bottom: 8px;\n a {\n color: $primary-color;\n font-size: 13px;\n }\n }\n .comment-meta {\n font-size: 12px;\n color: #888;\n }\n p {\n margin-top: 15px;\n }\n }\n\n}\n\n\n.comment-reply-form {\n margin-top: 80px;\n input,textarea {\n height: 35px;\n border-radius: 0;\n box-shadow: none;\n &:focus {\n box-shadow:none;\n border:1px solid $primary-color;\n }\n }\n textarea,.btn-main {\n height: auto;\n }\n}\n\n \n\n\n\n",".widget {\n margin-bottom:30px;\n padding-bottom:35px;\n .widget-title {\n margin-bottom:15px;\n padding-bottom:10px;\n font-size: 16px;\n color:#333;\n font-weight:500;\n border-bottom:1px solid $border-color;\n }\n // latest Posts\n &.widget-latest-post {\n .media {\n .media-object {\n width: 100px;\n height:auto;\n }\n .media-heading {\n a {\n color: $black;\n font-size: 16px;\n }\n }\n p {\n font-size: 12px;\n color:#808080;\n }\n }\n } //end latest posts\n\n // Caterogry\n &.widget-category {\n ul {\n li {\n margin-bottom: 10px;\n a {\n color: #837f7e;\n @include transition (all, 0.3s, ease);\n &:before {\n padding-right: 10px;\n }\n &:hover {\n color:$primary-color;\n padding-left: 5px;\n }\n }\n }\n }\n } //end caterogry\n\n // Tag Cloud\n &.widget-tag {\n ul {\n li {\n margin-bottom: 10px;\n display: inline-block;\n margin-right:5px;\n a {\n color: #837f7e;\n display: inline-block;\n padding:8px 15px;\n border:1px solid #dedede;\n border-radius: 30px;\n font-size: 14px;\n @include transition (all, 0.3s, ease);\n &:hover {\n color:$light;\n background: $primary-color;\n border:1px solid $primary-color;\n }\n }\n }\n }\n }\n\n}\n\n",".footer {\n padding-bottom: 10px;\n\n .copyright {\n a {\n font-weight: 600;\n }\n }\n}\n\n.lh-35 {\n line-height: 35px;\n}\n\n.logo {\n color: $black;\n font-weight: 600;\n letter-spacing: 1px;\n\n span {\n color: $primary-color;\n }\n}\n\n.sub-form {\n position: relative;\n\n .form-control {\n border: 1px solid rgba(0, 0, 0, 0.06);\n background: $secondary-color;\n }\n\n}\n\n.footer-btm {\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n\n// scroll-to-top\n.scroll-to-top {\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 999;\n height: 40px;\n width: 40px;\n background: $primary-color;\n border-radius: 50%;\n text-align: center;\n line-height: 43px;\n color: white;\n cursor: pointer;\n transition: 0.3s;\n display: none;\n @include mobile {\n bottom: 15px;\n right: 15px;\n }\n &:hover {\n background-color: #333;\n }\n}","/*=== MEDIA QUERY ===*/\n@include large-desktop{\n \n}\n\n@include desktop{\n .slider .block h1 {\n font-size: 56px;\n line-height: 70px;\n }\n\n .bg-about{\n display: none;\n }\n section.about {\n border: 1px solid #dee2e6;\n border-left: 0;\n border-right: 0;\n }\n .footer-socials {\n margin-top: 20px;\n }\n .footer-socials li a {\n margin-left: 0px;\n }\n}\n\n\n@include tablet{\n .navbar-toggler{\n color: $light;\n }\n .bg-about{\n display: none;\n }\n .slider .block h1 {\n font-size: 48px;\n line-height: 62px;\n }\n .blog-item-meta span{\n margin: 6px 0px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n\n}\n\n@include mobile{\n .header-top .header-top-info a {\n margin-left: 10px;\n margin-right: 10px;\n }\n\n .navbar-toggler{\n color: $light;\n }\n .slider .block h1 {\n font-size: 38px;\n line-height: 50px;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}\n\n\n@include mobile-xs{\n .header-top .header-top-info a {\n display: block;\n }\n\n .navbar-toggler{\n color: $light;\n }\n\n .content-title {\n font-size: 28px;\n line-height: 46px;\n }\n\n .bg-about{\n display: none;\n }\n\n .p-5{\n padding: 2rem !important;\n }\n h2, .h2 {\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 36px;\n }\n\n .testimonial-item .testimonial-item-content {\n padding-left: 0px;\n padding-top: 30px;\n }\n\n .text-lg {\n font-size: 3rem;\n }\n\n .widget {\n margin-bottom: 30px;\n padding-bottom: 0px; \n }\n}","@import \"variables.scss\";\n\n@import \"mixins.scss\";\n\n@import \"media-query.scss\";\n\n@import \"typography.scss\";\n\n@import \"common.scss\";\n\n@import \"main.scss\";\n\n@import \"templates/header.scss\";\n\n@import \"templates/navigation.scss\";\n@import \"templates/backgrounds.scss\";\n\n@import \"templates/slider.scss\";\n@import \"templates/intro.scss\";\n@import \"templates/about.scss\";\n@import \"templates/counter.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/service.scss\";\n@import \"templates/cta.scss\";\n@import \"templates/review.scss\";\n@import \"templates/pricing.scss\";\n@import \"templates/portfolio.scss\";\n@import \"templates/contact.scss\";\n@import \"templates/blog.scss\";\n@import \"templates/single-post.scss\";\n@import \"templates/blog-sidebar.scss\";\n@import \"templates/team.scss\";\n\n@import \"templates/footer.scss\";\n@import \"templates/responsive.scss\";\n\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;"]} \ No newline at end of file diff --git a/theme/experimentation-indicator-technique.html b/theme/experimentation-indicator-technique.html deleted file mode 100644 index a488b0a5..00000000 --- a/theme/experimentation-indicator-technique.html +++ /dev/null @@ -1,937 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Backtesting -

    Expérimentation des indicateurs technique

    -
      -
    • Home
    • -
    • /
    • -
    • Backtesting
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - blog -
    - -

    Expérimentation des indicateurs technique

    - - -

    Introduction

    - -

    Dans ce rapport, nous présentons une expérimentation des indicateurs techniques à - l'aide du projet BatchBacktesting disponible sur GitHub à l'adresse suivante :

    - -
    -                                    
    -!pip install numpy httpx rich
    -
    -import pandas as pd
    -import numpy as np
    -from datetime import datetime
    -import sys
    -import os
    -import httpx
    -
    -import concurrent.futures
    -from datetime import datetime
    -import glob
    -import warnings
    -from rich.progress import track
    -warnings.filterwarnings("ignore")
    -                                    
    -                                
    - - -

    API

    - -

    N'oubliez pas de remplacer les espaces réservés FMP_API_KEY et BINANCE_API_KEY par - vos véritables clés API pour pouvoir accéder aux données des services respectifs. -

    - -
    -                                    
    -BASE_URL_FMP = "https://financialmodelingprep.com/api/v3"
    -BASE_URL_BINANCE = "https://fapi.binance.com/fapi/v1/"
    -FMP_API_KEY = ""
    -BINANCE_API_KEY = ""
    -                                    
    -                                
    - -

    Plusieurs fonctions pour effectuer des requêtes API et fournit une liste de - cryptomonnaies prises en charge.

    - -

    Ce script propose des fonctions pour :

    - -
      -
    1. Effectuer des requêtes API vers différents points de terminaison.
    2. -
    3. Obtenir des données historiques de prix pour les cryptomonnaies et les actions. -
    4. -
    5. Obtenir la liste des actions du S&P 500.
    6. -
    7. Obtenir toutes les cryptomonnaies prises en charge.
    8. -
    9. Obtenir les listes des états financiers.
    10. -
    - -
    -
    -def make_api_request(api_endpoint, params):
    -    with httpx.Client() as client:
    -        # Make the GET request to the API
    -        response = client.get(api_endpoint, params=params)
    -        if response.status_code == 200:
    -            return response.json()
    -        print("Error: Failed to retrieve data from API")
    -        return None
    -                                
    -
    - -

    - La fonction make_api_request() effectue une requête GET vers l'API et renvoie les - données au format JSON si la requête est réussie. Sinon, elle renvoie None. -

    - -
    -
    -def get_historical_price_full_crypto(symbol):
    -    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/crypto/{symbol}"
    -    params = {"apikey": FMP_API_KEY}
    -    return make_api_request(api_endpoint, params)
    -
    -
    -def get_historical_price_full_stock(symbol):
    -    api_endpoint = f"{BASE_URL_FMP}/historical-price-full/{symbol}"
    -    params = {"apikey": FMP_API_KEY}
    -
    -    return make_api_request(api_endpoint, params)
    -
    -def get_SP500():
    -    api_endpoint = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
    -    data = pd.read_html(api_endpoint)
    -    return list(data[0]['Symbol'])
    -
    -
    -def get_all_crypto():
    -    """
    -    All possible crypto symbols
    -    """
    -    return [
    -        "BTCUSD",
    -        "ETHUSD",
    -        "LTCUSD",
    -        "BCHUSD",
    -        "XRPUSD",
    -        "EOSUSD",
    -        "XLMUSD",
    -        "TRXUSD",
    -        "ETCUSD",
    -        "DASHUSD",
    -        "ZECUSD",
    -        "XTZUSD",
    -        "XMRUSD",
    -        "ADAUSD",
    -        "NEOUSD",
    -        "XEMUSD",
    -        "VETUSD",
    -        "DOGEUSD",
    -        "OMGUSD",
    -        "ZRXUSD",
    -        "BATUSD"
    -        "USDTUSD",
    -        "LINKUSD",
    -        "BTTUSD",
    -        "BNBUSD",
    -        "ONTUSD",
    -        "QTUMUSD",
    -        "ALGOUSD",
    -        "ZILUSD",
    -        "ICXUSD",
    -        "KNCUSD",
    -        "ZENUSD",
    -        "THETAUSD",
    -        "IOSTUSD",
    -        "ATOMUSD",
    -        "MKRUSD",
    -        "COMPUSD",
    -        "YFIUSD",
    -        "SUSHIUSD",
    -        "SNXUSD",
    -        "UMAUSD",
    -        "BALUSD",
    -        "AAVEUSD",
    -        "UNIUSD",
    -        "RENBTCUSD",
    -        "RENUSD",
    -        "CRVUSD",
    -        "SXPUSD",
    -        "KSMUSD",
    -        "OXTUSD",
    -        "DGBUSD",
    -        "LRCUSD",
    -        "WAVESUSD",
    -        "NMRUSD",
    -        "STORJUSD",
    -        "KAVAUSD",
    -        "RLCUSD",
    -        "BANDUSD",
    -        "SCUSD",
    -        "ENJUSD",
    -    ]
    -
    -def get_financial_statements_lists():
    -    api_endpoint = f"{BASE_URL_FMP}/financial-statement-symbol-lists"
    -    params = {"apikey": FMP_API_KEY}
    -    return make_api_request(api_endpoint, params)
    -
    -def get_Vanguard_Canada():
    -    """
    -    Get Vanguard Canada companies
    -
    -    Returns:
    -        dict: Dictionary containing the data
    -    """
    -        # VCN: Vanguard FTSE Canada All Cap Index ETF
    -        # VFV: Vanguard S&P 500 Index ETF
    -        # VUN: Vanguard US Total Market Index ETF
    -        # VEE: Vanguard FTSE Emerging Markets All Cap Index ETF
    -        # VAB: Vanguard Canadian Aggregate Bond Index ETF
    -        # VSB: Vanguard Canadian Short-Term Bond Index ETF
    -        # VXC: Vanguard FTSE Global All Cap ex Canada Index ETF
    -        # VIU: Vanguard FTSE Developed All Cap ex North America Index ETF
    -        # VGG: Vanguard US Dividend Appreciation Index ETF
    -    return ['VCN', 'VFV', 'VUN', 'VEE', 'VAB', 'VSB', 'VXC', 'VIU', 'VGG']
    -                                
    -
    - -

    - La fonction get_historical_price_full_crypto() effectue une requête API vers - l'API FMP pour obtenir les données historiques de prix pour une cryptomonnaie - spécifique. La fonction get_historical_price_full_stock() effectue une requête - API vers l'API FMP pour obtenir les données historiques de prix pour une action - spécifique. La fonction get_SP500() effectue une requête API vers Wikipedia pour - obtenir la liste des actions du S&P 500. La fonction get_all_crypto() renvoie la - liste de toutes les cryptomonnaies prises en charge. La fonction - get_financial_statements_lists() effectue une requête API vers l'API FMP pour - obtenir la liste des états financiers. La fonction get_Vanguard_Canada() renvoie - la liste des actions de Vanguard Canada. -

    - -

    - Pour utiliser ce script dans votre projet, copiez simplement assurez-vous d'avoir - installé les bibliothèques requises mentionnées dans la section "Exigences" de la - documentation BatchBacktesting. Ensuite, vous pouvez importer les fonctions de ce - script dans votre script principal ou votre Jupyter Notebook pour accéder et - manipuler les données comme vous le souhaitez. -

    - -

    - Une fois que vous avez les données, vous pouvez utiliser la bibliothèque - BatchBacktesting pour tester diverses stratégies sur les actions ou les - cryptomonnaies, analyser les résultats et visualiser les performances. À titre - d'exemple, nous avons utilisé la stratégie EMA (Exponential Moving Average) pour - effectuer des tests de performance sur les actions du S&P 500 et les cryptomonnaies - prises en charge. -

    - -

    EMA Stratégie

    - -

    L'EMA est un indicateur technique qui est utilisé pour lisser l'action des prix en - filtrant le "bruit" des fluctuations de prix aléatoires à court terme. Il est - calculé en prenant le prix moyen d'un titre sur un nombre spécifique de périodes de - temps. L'EMA est un type de moyenne mobile qui accorde un poids et une signification - plus importants aux points de données les plus récents. La moyenne mobile - exponentielle est également appelée moyenne mobile pondérée exponentiellement. -

    - -
    -
    -class EMA(Strategy):
    -    n1 = 20
    -    n2 = 80
    -    n3 = 150
    -
    -    def init(self):
    -        close = self.data.Close
    -        self.ema20 = self.I(taPanda.ema, close.s, self.n1)
    -        self.ema80 = self.I(taPanda.ema, close.s, self.n2)
    -        self.ema150 = self.I(taPanda.ema, close.s, self.n3)
    -
    -    def next(self):
    -        price = self.data.Close
    -        if crossover(self.ema20, self.ema80):
    -            self.position.close()
    -            self.buy(sl=0.90 * price, tp=1.25 * price)
    -
    -        elif crossover(self.ema80, self.ema20):
    -            self.position.close()
    -            self.sell(sl=1.10 * price, tp=0.75 * price)
    -
    -                                
    -
    - - -

    - La stratégie EMA est implémentée dans la classe EMA. La stratégie EMA est une - stratégie de suivi de tendance qui utilise trois moyennes mobiles exponentielles - (EMA) avec des périodes de 20, 80 et 150. Lorsque la moyenne mobile exponentielle - à court terme (20) croise la moyenne mobile exponentielle à long terme (80) par - le haut, cela signifie que la tendance est à la hausse et que nous devrions - acheter. Lorsque la moyenne mobile exponentielle à court terme (20) croise la - moyenne mobile exponentielle à long terme (80) par le bas, cela signifie que la - tendance est à la baisse et que nous devrions vendre. -

    - -
    -
    -def run_backtests_strategies(instruments, strategies):
    -    """
    -    Run backtests for a list of instruments using a specified strategy.
    -
    -    Args:
    -        instruments (list): List of instruments to run backtests for
    -        strategies (list): List of strategies to run backtests for
    -
    -    Returns:
    -        List of outputs from run_backtests()
    -
    -    """
    -
    -    # find strategies in the STRATEGIES
    -    strategies = [x for x in STRATEGIES if x.__name__ in strategies]
    -    outputs = []
    -    with concurrent.futures.ThreadPoolExecutor() as executor:
    -        futures = []
    -        for strategy in strategies:
    -            future = executor.submit(run_backtests, instruments, strategy, 4)
    -            futures.append(future)
    -
    -        for future in concurrent.futures.as_completed(futures):
    -            outputs.extend(future.result())
    -
    -    return outputs
    -
    -def check_crypto(instrument):
    -    """
    -    Check if the instrument is crypto or not
    -    """
    -    return instrument in get_all_crypto()
    -
    -def check_stock(instrument):
    -    """
    -    Check if the instrument is crypto or not
    -    """
    -    return instrument not in get_financial_statements_lists()
    -
    -
    -def process_instrument(instrument, strategy):
    -    """
    -    Process a single instrument for a backtest using a specified strategy.
    -    Returns a Pandas dataframe of the backtest results.
    -    """
    -    try:
    -
    -        if check_crypto(instrument):
    -            data = get_historical_price_full_crypto(instrument)
    -        else:
    -            data = get_historical_price_full_stock(instrument)
    -
    -        if data is None or "historical" not in data:
    -            print(f"Error processing {instrument}: No data")
    -            return None
    -
    -        data = clean_data(data)
    -
    -        bt = Backtest(
    -            data, strategy=strategy, cash=100000, commission=0.002, exclusive_orders=True
    -        )
    -        output = bt.run()
    -        output = process_output(output, instrument, strategy)
    -        return output, bt
    -    except Exception as e:
    -        print(f"Error processing {instrument}: {str(e)}")
    -        return None
    -
    -def clean_data(data):
    -    """
    -    Clean historical price data for use in a backtest.
    -    Returns a Pandas dataframe of the cleaned data.
    -    """
    -    data = data["historical"]
    -    data = pd.DataFrame(data)
    -    data.columns = [x.title() for x in data.columns]
    -    data = data.drop(
    -        [
    -            "Adjclose",
    -            "Unadjustedvolume",
    -            "Change",
    -            "Changepercent",
    -            "Vwap",
    -            "Label",
    -            "Changeovertime",
    -        ],
    -        axis=1,
    -    )
    -    data["Date"] = pd.to_datetime(data["Date"])
    -    data.set_index("Date", inplace=True)
    -    data = data.iloc[::-1]
    -    return data
    -
    -
    -def process_output(output, instrument, strategy, in_row=True):
    -    """
    -    Process backtest output data to include instrument name, strategy name,
    -    and parameters.
    -    Returns a Pandas dataframe of the processed output.
    -    """
    -    if in_row:
    -        output = pd.DataFrame(output).T
    -    output["Instrument"] = instrument
    -    output["Strategy"] = strategy.__name__
    -    output.pop("_strategy")
    -    return output
    -
    -
    -def save_output(output, output_dir, instrument, start, end):
    -    """
    -    Save backtest output to file and generate chart if specified.
    -    """
    -    print(f"Saving output for {instrument}")
    -    fileNameOutput = f"{output_dir}/{instrument}-{start}-{end}.csv"
    -    output.to_csv(fileNameOutput)
    -
    -
    -def plot_results(bt, output_dir, instrument, start, end):
    -    print(f"Saving chart for {instrument}")
    -    fileNameChart = f"{output_dir}/{instrument}-{start}-{end}.html"
    -    bt.plot(filename=fileNameChart, open_browser=False)
    -
    -def run_backtests(instruments, strategy, num_threads=4, generate_plots=False):
    -    """
    -    Run backtests for a list of instruments using a specified strategy.
    -    Returns a list of Pandas dataframes of the backtest results.
    -
    -    Args:
    -        instruments (list): List of instruments to run backtests for
    -
    -    Returns:
    -        List of Pandas dataframes of the backtest results
    -    """
    -    outputs = []
    -    output_dir = f"output/raw/{strategy.__name__}"
    -    output_dir_charts = f"output/charts/{strategy.__name__}"
    -    if not os.path.exists(output_dir):
    -        os.makedirs(output_dir)
    -    if not os.path.exists(output_dir_charts):
    -        os.makedirs(output_dir_charts)
    -    with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
    -        future_to_instrument = {
    -            executor.submit(process_instrument, instrument, strategy): instrument
    -            for instrument in instruments
    -        }
    -        for future in concurrent.futures.as_completed(future_to_instrument):
    -            instrument = future_to_instrument[future]
    -            output = future.result()
    -            if output is not None:
    -                outputs.append(output[0])
    -                save_output(output[0], output_dir, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    -                if generate_plots:
    -                    plot_results(output[1], output_dir_charts, instrument, output[0]["Start"].to_string().strip().split()[1], output[0]["End"].to_string().strip().split()[1])
    -    data_frame = pd.concat(outputs)
    -    start = data_frame["Start"].to_string().strip().split()[1]
    -    end = data_frame["End"].to_string().strip().split()[1]
    -    fileNameOutput = f"output/{strategy.__name__}-{start}-{end}.csv"
    -    data_frame.to_csv(fileNameOutput)
    -
    -
    -    return data_frame
    -                                
    -
    - -

    - La fonction run_backtests_strategies() exécute des backtests pour une liste - d'instruments en utilisant une stratégie spécifique. La fonction - check_crypto() vérifie si l'instrument est une cryptomonnaie ou non. La fonction - check_stock() vérifie si l'instrument est une action ou non. La fonction - process_instrument() traite un seul instrument pour un backtest en utilisant une - stratégie spécifique. La fonction clean_data() nettoie les données historiques - des prix pour les utiliser dans un backtest. La fonction process_output() - traite les données de sortie du backtest pour inclure le nom de l'instrument, le - nom de la stratégie et les paramètres. La fonction save_output() enregistre la - sortie du backtest dans un fichier et génère un graphique si spécifié. La - fonction plot_results() enregistre la sortie du backtest dans un fichier et - génère un graphique si spécifié. La fonction run_backtests() exécute des - backtests pour une liste d'instruments en utilisant une stratégie spécifique. -

    - -

    - Le script génère des graphiques pour chaque instrument testé, qui peuvent être - visualisés pour analyser les performances des stratégies appliquées. Les résultats - sont sauvegardés dans le répertoire output du projet BatchBacktesting. -

    - -
    -
    -tickers = get_SP500()
    -run_backtests(tickers, strategy=EMA, num_threads=12, generate_plots=True)
    -ticker = get_all_crypto()
    -run_backtests(ticker, strategy=EMA, num_threads=12, generate_plots=True)
    -                                
    -
    - -

    - Nous avons utilisé la stratégie EMA pour effectuer des tests de performance sur les - actions du S&P 500 et les cryptomonnaies prises en charge. Les résultats sont - sauvegardés dans le répertoire output du projet BatchBacktesting. -

    - -

    - Le lien que vous avez partagé correspond au répertoire output du projet - BatchBacktesting sur GitHub : - https://github.com/AlgoETS/BatchBacktesting/tree/main/output. Cependant, il semble - que ce répertoire ne contient pas de résultats pré-calculés. En effet, il est - probable que les auteurs du projet aient choisi de ne pas inclure les résultats des - tests dans le dépôt GitHub afin d'éviter d'encombrer le dépôt avec des données - spécifiques à chaque utilisateur. -

    - -

    - Pour obtenir des valeurs calculées pour vos propres tests, vous devrez exécuter le - script en local sur votre machine avec les paramètres et les stratégies de votre - choix. Après avoir exécuté le script, les résultats seront sauvegardés dans le - répertoire output de votre projet local. - - https://algoets.github.io/BatchBacktesting/output/charts/EMA/AAPL-2018-04-04-2023-04-03.html -

    - -

    Analyse

    - -

    Top 5 des instruments avec le meilleur rendement :

    - -
      -
    1. BTCBUSD : 293,78%
    2. -
    3. ALB : 205,97%
    4. -
    5. OMGUSD : 199,62%
    6. -
    7. BBWI : 196,82%
    8. -
    9. GRMN : 193,47%
    10. -
    - -

    Top 5 des instruments avec le plus faible rendement :

    - -
      -
    1. BTTBUSD : -99,93%
    2. -
    3. UAL : -82,63%
    4. -
    5. NCLH : -81,51%
    6. -
    7. LNC : -78,02%
    8. -
    9. CHRW : -76,38%
    10. -
    - - -

    - En conclusion, le projet BatchBacktesting offre une approche flexible et puissante - pour tester et analyser les performances des indicateurs techniques sur les marchés - boursiers et les cryptomonnaies. Les fonctions fournies permettent une intégration - facile avec les API de services financiers et une manipulation aisée des données. - Les résultats des expérimentations peuvent être utilisés pour développer et affiner - des stratégies de trading algorithmique en fonction des performances observées -

    - -
    - - -
      -
    • Share:
    • -
    • -
    • -
    • -
    • -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/images/Discord.png b/theme/images/Discord.png deleted file mode 100644 index 3dd501ea..00000000 Binary files a/theme/images/Discord.png and /dev/null differ diff --git a/theme/images/bg/chart-on-chart.png b/theme/images/bg/chart-on-chart.png deleted file mode 100644 index 2fd47d7b..00000000 Binary files a/theme/images/bg/chart-on-chart.png and /dev/null differ diff --git a/theme/images/bg/counter.jpg b/theme/images/bg/counter.jpg deleted file mode 100644 index 5ddbad1e..00000000 Binary files a/theme/images/bg/counter.jpg and /dev/null differ diff --git a/theme/images/bg/ets.png b/theme/images/bg/ets.png deleted file mode 100644 index 142664c3..00000000 Binary files a/theme/images/bg/ets.png and /dev/null differ diff --git a/theme/images/bg/home-3.jpg b/theme/images/bg/home-3.jpg deleted file mode 100644 index 94fb8559..00000000 Binary files a/theme/images/bg/home-3.jpg and /dev/null differ diff --git a/theme/images/bg/home-5.jpg b/theme/images/bg/home-5.jpg deleted file mode 100644 index 6f69b422..00000000 Binary files a/theme/images/bg/home-5.jpg and /dev/null differ diff --git a/theme/images/bg/home-6.jpg b/theme/images/bg/home-6.jpg deleted file mode 100644 index c0e405c6..00000000 Binary files a/theme/images/bg/home-6.jpg and /dev/null differ diff --git a/theme/images/bg/home-7.jpg b/theme/images/bg/home-7.jpg deleted file mode 100644 index 30a465e0..00000000 Binary files a/theme/images/bg/home-7.jpg and /dev/null differ diff --git a/theme/images/bg/home-8.jpg b/theme/images/bg/home-8.jpg deleted file mode 100644 index a76ba6d5..00000000 Binary files a/theme/images/bg/home-8.jpg and /dev/null differ diff --git a/theme/images/bg/style.png b/theme/images/bg/style.png deleted file mode 100644 index df056904..00000000 Binary files a/theme/images/bg/style.png and /dev/null differ diff --git a/theme/images/bg/up trend.png b/theme/images/bg/up trend.png deleted file mode 100644 index 34da83a5..00000000 Binary files a/theme/images/bg/up trend.png and /dev/null differ diff --git a/theme/images/blog/1.jpg b/theme/images/blog/1.jpg deleted file mode 100644 index 8de43ff0..00000000 Binary files a/theme/images/blog/1.jpg and /dev/null differ diff --git a/theme/images/blog/2.jpg b/theme/images/blog/2.jpg deleted file mode 100644 index cd1ff6b4..00000000 Binary files a/theme/images/blog/2.jpg and /dev/null differ diff --git a/theme/images/blog/3.jpg b/theme/images/blog/3.jpg deleted file mode 100644 index ed8c8ee5..00000000 Binary files a/theme/images/blog/3.jpg and /dev/null differ diff --git a/theme/images/blog/4.jpg b/theme/images/blog/4.jpg deleted file mode 100644 index 5edebb62..00000000 Binary files a/theme/images/blog/4.jpg and /dev/null differ diff --git a/theme/images/blog/blog-author-1.png b/theme/images/blog/blog-author-1.png deleted file mode 100644 index 2a814528..00000000 Binary files a/theme/images/blog/blog-author-1.png and /dev/null differ diff --git a/theme/images/blog/blog-author-2.png b/theme/images/blog/blog-author-2.png deleted file mode 100644 index e4be20d8..00000000 Binary files a/theme/images/blog/blog-author-2.png and /dev/null differ diff --git a/theme/images/blog/blog-author-3.png b/theme/images/blog/blog-author-3.png deleted file mode 100644 index 7930f10f..00000000 Binary files a/theme/images/blog/blog-author-3.png and /dev/null differ diff --git a/theme/images/blog/bt-1.jpg b/theme/images/blog/bt-1.jpg deleted file mode 100644 index 8abca186..00000000 Binary files a/theme/images/blog/bt-1.jpg and /dev/null differ diff --git a/theme/images/blog/bt-2.jpg b/theme/images/blog/bt-2.jpg deleted file mode 100644 index 9b3a6fe5..00000000 Binary files a/theme/images/blog/bt-2.jpg and /dev/null differ diff --git a/theme/images/blog/bt-3.jpg b/theme/images/blog/bt-3.jpg deleted file mode 100644 index 3684e710..00000000 Binary files a/theme/images/blog/bt-3.jpg and /dev/null differ diff --git a/theme/images/blog/test1.jpg b/theme/images/blog/test1.jpg deleted file mode 100644 index 138607b9..00000000 Binary files a/theme/images/blog/test1.jpg and /dev/null differ diff --git a/theme/images/blog/test2.jpg b/theme/images/blog/test2.jpg deleted file mode 100644 index bd0a368d..00000000 Binary files a/theme/images/blog/test2.jpg and /dev/null differ diff --git a/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg deleted file mode 100644 index c9238414..00000000 Binary files a/theme/images/blog/vol/S1-thatcham-vol-voiture-technique-du-relais-610114_hub5c0116b95d8273d7a7578c2c04d6e37_169962_1024x0_resize_q75_box.jpg and /dev/null differ diff --git a/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg b/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg deleted file mode 100644 index 8a3b38bf..00000000 Binary files a/theme/images/blog/vol/_hu1cded1ad0d3c40c6c28b4c5f3636bd90_61649_5f7300d0170c77a543e527b1d8de27a2.jpg and /dev/null differ diff --git a/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg b/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg deleted file mode 100644 index 1cdd6874..00000000 Binary files a/theme/images/blog/vol/_hu6254c031e6b6322a6c9c22760b8f0e7b_41420_0b9835fe76a5905d6537f25e2d31f198.jpg and /dev/null differ diff --git a/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg deleted file mode 100644 index aea6230b..00000000 Binary files a/theme/images/blog/vol/appleTag_hud2a548186408fc92c5a56156621a921b_71579_1024x0_resize_q75_box.jpg and /dev/null differ diff --git a/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png b/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png deleted file mode 100644 index fb43cf55..00000000 Binary files a/theme/images/blog/vol/datas_hu3a37a876352c120fad8190baa535589b_102199_1024x0_resize_box_3.png and /dev/null differ diff --git a/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg b/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg deleted file mode 100644 index e1f4523f..00000000 Binary files a/theme/images/blog/vol/me_hu1b4c362e4f00f76c1e33ae13569faa4b_9876_300x0_resize_q75_box.jpg and /dev/null differ diff --git a/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg deleted file mode 100644 index 335d5cf4..00000000 Binary files a/theme/images/blog/vol/nombre_de_vol_de_vehicule_moteur_par_annee_hua975f8a3d854aa424a332774bd6b821d_25312_1024x0_resize_q75_box.jpg and /dev/null differ diff --git a/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg b/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg deleted file mode 100644 index a81613b8..00000000 Binary files a/theme/images/blog/vol/nombre_de_vols_de_voitures_par_jour_de_la_semaine_hu050a3e1aa8cc862be541aeb1ab26a8e0_27041_1024x0_resize_q75_box.jpg and /dev/null differ diff --git a/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png b/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png deleted file mode 100644 index caad2370..00000000 Binary files a/theme/images/blog/vol/odbPortLock_hu7d456c3806a3beac5a7b74dbff41f2f4_131441_1024x0_resize_box_3.png and /dev/null differ diff --git a/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png b/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png deleted file mode 100644 index f23722aa..00000000 Binary files a/theme/images/blog/vol/odbPort_huf1cce419191bac96c0a5c7bf4c742e6f_381549_1024x0_resize_box_3.png and /dev/null differ diff --git a/theme/images/competition/20230309_153857_FE6AA264.jpg b/theme/images/competition/20230309_153857_FE6AA264.jpg deleted file mode 100644 index a0060cba..00000000 Binary files a/theme/images/competition/20230309_153857_FE6AA264.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_153859_A6BFA028.jpg b/theme/images/competition/20230309_153859_A6BFA028.jpg deleted file mode 100644 index ce72d9b4..00000000 Binary files a/theme/images/competition/20230309_153859_A6BFA028.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_153902_8B814E19.jpg b/theme/images/competition/20230309_153902_8B814E19.jpg deleted file mode 100644 index 1f493e08..00000000 Binary files a/theme/images/competition/20230309_153902_8B814E19.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154005_E6277034.jpg b/theme/images/competition/20230309_154005_E6277034.jpg deleted file mode 100644 index bdcdf041..00000000 Binary files a/theme/images/competition/20230309_154005_E6277034.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154043_F980BDF3.jpg b/theme/images/competition/20230309_154043_F980BDF3.jpg deleted file mode 100644 index ec1201e0..00000000 Binary files a/theme/images/competition/20230309_154043_F980BDF3.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154116_83883CAC.jpg b/theme/images/competition/20230309_154116_83883CAC.jpg deleted file mode 100644 index 1627a4bd..00000000 Binary files a/theme/images/competition/20230309_154116_83883CAC.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154126_17258211.jpg b/theme/images/competition/20230309_154126_17258211.jpg deleted file mode 100644 index 5d3c934a..00000000 Binary files a/theme/images/competition/20230309_154126_17258211.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154137_7583B154.jpg b/theme/images/competition/20230309_154137_7583B154.jpg deleted file mode 100644 index 4737c383..00000000 Binary files a/theme/images/competition/20230309_154137_7583B154.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154140_380AD82B.jpg b/theme/images/competition/20230309_154140_380AD82B.jpg deleted file mode 100644 index 0e74443a..00000000 Binary files a/theme/images/competition/20230309_154140_380AD82B.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154145_D6491AB9.jpg b/theme/images/competition/20230309_154145_D6491AB9.jpg deleted file mode 100644 index ba4567e1..00000000 Binary files a/theme/images/competition/20230309_154145_D6491AB9.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154217_B769D56A.jpg b/theme/images/competition/20230309_154217_B769D56A.jpg deleted file mode 100644 index 357342cf..00000000 Binary files a/theme/images/competition/20230309_154217_B769D56A.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154227_FB703F30.jpg b/theme/images/competition/20230309_154227_FB703F30.jpg deleted file mode 100644 index f3406704..00000000 Binary files a/theme/images/competition/20230309_154227_FB703F30.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154230_96BBDF62.jpg b/theme/images/competition/20230309_154230_96BBDF62.jpg deleted file mode 100644 index 2b32ecd8..00000000 Binary files a/theme/images/competition/20230309_154230_96BBDF62.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154311_417D2740.jpg b/theme/images/competition/20230309_154311_417D2740.jpg deleted file mode 100644 index 420b670f..00000000 Binary files a/theme/images/competition/20230309_154311_417D2740.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154318_2BFFA46A.jpg b/theme/images/competition/20230309_154318_2BFFA46A.jpg deleted file mode 100644 index 1fa44acc..00000000 Binary files a/theme/images/competition/20230309_154318_2BFFA46A.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154337_CBFA242F.jpg b/theme/images/competition/20230309_154337_CBFA242F.jpg deleted file mode 100644 index 905c90fd..00000000 Binary files a/theme/images/competition/20230309_154337_CBFA242F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154354_3DFD1C2F.jpg b/theme/images/competition/20230309_154354_3DFD1C2F.jpg deleted file mode 100644 index 42f7ae95..00000000 Binary files a/theme/images/competition/20230309_154354_3DFD1C2F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154357_0916E565.jpg b/theme/images/competition/20230309_154357_0916E565.jpg deleted file mode 100644 index dd6533cc..00000000 Binary files a/theme/images/competition/20230309_154357_0916E565.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154403_8AD0CD9D.jpg b/theme/images/competition/20230309_154403_8AD0CD9D.jpg deleted file mode 100644 index 4d837076..00000000 Binary files a/theme/images/competition/20230309_154403_8AD0CD9D.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154430_67D3CC11.jpg b/theme/images/competition/20230309_154430_67D3CC11.jpg deleted file mode 100644 index fa454172..00000000 Binary files a/theme/images/competition/20230309_154430_67D3CC11.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154433_EC539FAB.jpg b/theme/images/competition/20230309_154433_EC539FAB.jpg deleted file mode 100644 index 97e147eb..00000000 Binary files a/theme/images/competition/20230309_154433_EC539FAB.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154437_49FD8B21.jpg b/theme/images/competition/20230309_154437_49FD8B21.jpg deleted file mode 100644 index 9550dd85..00000000 Binary files a/theme/images/competition/20230309_154437_49FD8B21.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154441_F1AAE032.jpg b/theme/images/competition/20230309_154441_F1AAE032.jpg deleted file mode 100644 index 84f02e2c..00000000 Binary files a/theme/images/competition/20230309_154441_F1AAE032.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154520_0356575D.jpg b/theme/images/competition/20230309_154520_0356575D.jpg deleted file mode 100644 index a81b88e4..00000000 Binary files a/theme/images/competition/20230309_154520_0356575D.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154525_36B67184.jpg b/theme/images/competition/20230309_154525_36B67184.jpg deleted file mode 100644 index 9d316ae0..00000000 Binary files a/theme/images/competition/20230309_154525_36B67184.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154546_C360B3EA.jpg b/theme/images/competition/20230309_154546_C360B3EA.jpg deleted file mode 100644 index 92335545..00000000 Binary files a/theme/images/competition/20230309_154546_C360B3EA.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154601_43AA502A.jpg b/theme/images/competition/20230309_154601_43AA502A.jpg deleted file mode 100644 index 2f1877e1..00000000 Binary files a/theme/images/competition/20230309_154601_43AA502A.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154601_73AA3D4F.jpg b/theme/images/competition/20230309_154601_73AA3D4F.jpg deleted file mode 100644 index 92e0182e..00000000 Binary files a/theme/images/competition/20230309_154601_73AA3D4F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154604_91735D64.jpg b/theme/images/competition/20230309_154604_91735D64.jpg deleted file mode 100644 index 3d60f487..00000000 Binary files a/theme/images/competition/20230309_154604_91735D64.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154605_664BE402.jpg b/theme/images/competition/20230309_154605_664BE402.jpg deleted file mode 100644 index c453adf2..00000000 Binary files a/theme/images/competition/20230309_154605_664BE402.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154617_59E70178.jpg b/theme/images/competition/20230309_154617_59E70178.jpg deleted file mode 100644 index 999870a2..00000000 Binary files a/theme/images/competition/20230309_154617_59E70178.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154618_CEE88A0F.jpg b/theme/images/competition/20230309_154618_CEE88A0F.jpg deleted file mode 100644 index 423c04e2..00000000 Binary files a/theme/images/competition/20230309_154618_CEE88A0F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154632_6A8462AC.jpg b/theme/images/competition/20230309_154632_6A8462AC.jpg deleted file mode 100644 index a42227fe..00000000 Binary files a/theme/images/competition/20230309_154632_6A8462AC.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154632_E0512C9D.jpg b/theme/images/competition/20230309_154632_E0512C9D.jpg deleted file mode 100644 index 3812735a..00000000 Binary files a/theme/images/competition/20230309_154632_E0512C9D.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154633_BFF25EFD.jpg b/theme/images/competition/20230309_154633_BFF25EFD.jpg deleted file mode 100644 index f6f6b190..00000000 Binary files a/theme/images/competition/20230309_154633_BFF25EFD.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_154635_0C132F5F.jpg b/theme/images/competition/20230309_154635_0C132F5F.jpg deleted file mode 100644 index df1bcec4..00000000 Binary files a/theme/images/competition/20230309_154635_0C132F5F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160557_D9220E48.jpg b/theme/images/competition/20230309_160557_D9220E48.jpg deleted file mode 100644 index f77074ec..00000000 Binary files a/theme/images/competition/20230309_160557_D9220E48.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160558_04A10478.jpg b/theme/images/competition/20230309_160558_04A10478.jpg deleted file mode 100644 index 8a493012..00000000 Binary files a/theme/images/competition/20230309_160558_04A10478.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160603_ABDA3701.jpg b/theme/images/competition/20230309_160603_ABDA3701.jpg deleted file mode 100644 index 7a35d3d6..00000000 Binary files a/theme/images/competition/20230309_160603_ABDA3701.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160610_54667F4C.jpg b/theme/images/competition/20230309_160610_54667F4C.jpg deleted file mode 100644 index d695b435..00000000 Binary files a/theme/images/competition/20230309_160610_54667F4C.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160611_1F4C59AD.jpg b/theme/images/competition/20230309_160611_1F4C59AD.jpg deleted file mode 100644 index 3b8fccb0..00000000 Binary files a/theme/images/competition/20230309_160611_1F4C59AD.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160619_47DA615F.jpg b/theme/images/competition/20230309_160619_47DA615F.jpg deleted file mode 100644 index c6acfedb..00000000 Binary files a/theme/images/competition/20230309_160619_47DA615F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160619_FAF4256F.jpg b/theme/images/competition/20230309_160619_FAF4256F.jpg deleted file mode 100644 index 7635014e..00000000 Binary files a/theme/images/competition/20230309_160619_FAF4256F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160853_972A9A82.jpg b/theme/images/competition/20230309_160853_972A9A82.jpg deleted file mode 100644 index 5d1529bb..00000000 Binary files a/theme/images/competition/20230309_160853_972A9A82.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160853_C8B53685.jpg b/theme/images/competition/20230309_160853_C8B53685.jpg deleted file mode 100644 index e5f98b46..00000000 Binary files a/theme/images/competition/20230309_160853_C8B53685.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160857_9412760F.jpg b/theme/images/competition/20230309_160857_9412760F.jpg deleted file mode 100644 index b2b5d073..00000000 Binary files a/theme/images/competition/20230309_160857_9412760F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160900_11E17A2A.jpg b/theme/images/competition/20230309_160900_11E17A2A.jpg deleted file mode 100644 index fba825f7..00000000 Binary files a/theme/images/competition/20230309_160900_11E17A2A.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160902_B54C74E7.jpg b/theme/images/competition/20230309_160902_B54C74E7.jpg deleted file mode 100644 index 8f8028a1..00000000 Binary files a/theme/images/competition/20230309_160902_B54C74E7.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160903_9013F8ED.jpg b/theme/images/competition/20230309_160903_9013F8ED.jpg deleted file mode 100644 index 3a0f620d..00000000 Binary files a/theme/images/competition/20230309_160903_9013F8ED.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_160903_AAA093E1.jpg b/theme/images/competition/20230309_160903_AAA093E1.jpg deleted file mode 100644 index 671d32f9..00000000 Binary files a/theme/images/competition/20230309_160903_AAA093E1.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_164709_66F37C98.jpg b/theme/images/competition/20230309_164709_66F37C98.jpg deleted file mode 100644 index f9f0f65c..00000000 Binary files a/theme/images/competition/20230309_164709_66F37C98.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_164711_A8F644F9.jpg b/theme/images/competition/20230309_164711_A8F644F9.jpg deleted file mode 100644 index 5e3eda7a..00000000 Binary files a/theme/images/competition/20230309_164711_A8F644F9.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_164711_AF2DD6F8.jpg b/theme/images/competition/20230309_164711_AF2DD6F8.jpg deleted file mode 100644 index d7885ca2..00000000 Binary files a/theme/images/competition/20230309_164711_AF2DD6F8.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_164940_568739E3.jpg b/theme/images/competition/20230309_164940_568739E3.jpg deleted file mode 100644 index 9e9bb114..00000000 Binary files a/theme/images/competition/20230309_164940_568739E3.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_164945_1A6999BA.jpg b/theme/images/competition/20230309_164945_1A6999BA.jpg deleted file mode 100644 index df4cb931..00000000 Binary files a/theme/images/competition/20230309_164945_1A6999BA.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_165736_46610815.jpg b/theme/images/competition/20230309_165736_46610815.jpg deleted file mode 100644 index 6c6761a0..00000000 Binary files a/theme/images/competition/20230309_165736_46610815.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_165736_7FDE423F.jpg b/theme/images/competition/20230309_165736_7FDE423F.jpg deleted file mode 100644 index e143538f..00000000 Binary files a/theme/images/competition/20230309_165736_7FDE423F.jpg and /dev/null differ diff --git a/theme/images/competition/20230309_165738_F28D4303.jpg b/theme/images/competition/20230309_165738_F28D4303.jpg deleted file mode 100644 index 70dde12c..00000000 Binary files a/theme/images/competition/20230309_165738_F28D4303.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_062958_A34E2908.jpg b/theme/images/competition/20230319_062958_A34E2908.jpg deleted file mode 100644 index 657739b3..00000000 Binary files a/theme/images/competition/20230319_062958_A34E2908.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_063001_4E0635CE.jpg b/theme/images/competition/20230319_063001_4E0635CE.jpg deleted file mode 100644 index 1b49133a..00000000 Binary files a/theme/images/competition/20230319_063001_4E0635CE.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_074852_10D3C27A.jpg b/theme/images/competition/20230319_074852_10D3C27A.jpg deleted file mode 100644 index 34bf6c74..00000000 Binary files a/theme/images/competition/20230319_074852_10D3C27A.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_082020_BDBF75EA.jpg b/theme/images/competition/20230319_082020_BDBF75EA.jpg deleted file mode 100644 index bba57449..00000000 Binary files a/theme/images/competition/20230319_082020_BDBF75EA.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_082034_E218C2DB.jpg b/theme/images/competition/20230319_082034_E218C2DB.jpg deleted file mode 100644 index 4a05175b..00000000 Binary files a/theme/images/competition/20230319_082034_E218C2DB.jpg and /dev/null differ diff --git a/theme/images/competition/20230319_082037_FA6449F1.jpg b/theme/images/competition/20230319_082037_FA6449F1.jpg deleted file mode 100644 index 963fd4b7..00000000 Binary files a/theme/images/competition/20230319_082037_FA6449F1.jpg and /dev/null differ diff --git a/theme/images/competition/concentration-head.jpg b/theme/images/competition/concentration-head.jpg deleted file mode 100644 index 4950e53d..00000000 Binary files a/theme/images/competition/concentration-head.jpg and /dev/null differ diff --git a/theme/images/competition/concentration.jpg b/theme/images/competition/concentration.jpg deleted file mode 100644 index c7251519..00000000 Binary files a/theme/images/competition/concentration.jpg and /dev/null differ diff --git a/theme/images/competition/conference-room.jpg b/theme/images/competition/conference-room.jpg deleted file mode 100644 index 9eef6686..00000000 Binary files a/theme/images/competition/conference-room.jpg and /dev/null differ diff --git a/theme/images/competition/equipe-smile-1.jpg b/theme/images/competition/equipe-smile-1.jpg deleted file mode 100644 index 6508a501..00000000 Binary files a/theme/images/competition/equipe-smile-1.jpg and /dev/null differ diff --git a/theme/images/competition/good-team.jpg b/theme/images/competition/good-team.jpg deleted file mode 100644 index 9e18c89c..00000000 Binary files a/theme/images/competition/good-team.jpg and /dev/null differ diff --git a/theme/images/competition/pc-look.jpg b/theme/images/competition/pc-look.jpg deleted file mode 100644 index 7cdfeac3..00000000 Binary files a/theme/images/competition/pc-look.jpg and /dev/null differ diff --git a/theme/images/competition/server-building.jpg b/theme/images/competition/server-building.jpg deleted file mode 100644 index 347f2318..00000000 Binary files a/theme/images/competition/server-building.jpg and /dev/null differ diff --git a/theme/images/competition/stair-team.jpg b/theme/images/competition/stair-team.jpg deleted file mode 100644 index 4180aa47..00000000 Binary files a/theme/images/competition/stair-team.jpg and /dev/null differ diff --git a/theme/images/favicon.png b/theme/images/favicon.png deleted file mode 100644 index 8896b4c6..00000000 Binary files a/theme/images/favicon.png and /dev/null differ diff --git a/theme/images/logo.png b/theme/images/logo.png deleted file mode 100644 index aa326764..00000000 Binary files a/theme/images/logo.png and /dev/null differ diff --git a/theme/images/logoHeader.png b/theme/images/logoHeader.png deleted file mode 100644 index 8381be59..00000000 Binary files a/theme/images/logoHeader.png and /dev/null differ diff --git a/theme/images/marker.png b/theme/images/marker.png deleted file mode 100644 index dd6bd92d..00000000 Binary files a/theme/images/marker.png and /dev/null differ diff --git a/theme/images/paternaire/Ferique2.png b/theme/images/paternaire/Ferique2.png deleted file mode 100644 index 9571f354..00000000 Binary files a/theme/images/paternaire/Ferique2.png and /dev/null differ diff --git a/theme/images/paternaire/bombardier.png b/theme/images/paternaire/bombardier.png deleted file mode 100644 index b196c6c9..00000000 Binary files a/theme/images/paternaire/bombardier.png and /dev/null differ diff --git a/theme/images/paternaire/dejardin.png b/theme/images/paternaire/dejardin.png deleted file mode 100644 index d6137932..00000000 Binary files a/theme/images/paternaire/dejardin.png and /dev/null differ diff --git a/theme/images/paternaire/ets-1536x740.png b/theme/images/paternaire/ets-1536x740.png deleted file mode 100644 index 8ab471d5..00000000 Binary files a/theme/images/paternaire/ets-1536x740.png and /dev/null differ diff --git a/theme/images/paternaire/logo_sherweb-1536x279.jpg b/theme/images/paternaire/logo_sherweb-1536x279.jpg deleted file mode 100644 index 8a8a9ce5..00000000 Binary files a/theme/images/paternaire/logo_sherweb-1536x279.jpg and /dev/null differ diff --git a/theme/images/portfolio/1.jpg b/theme/images/portfolio/1.jpg deleted file mode 100644 index b87946a4..00000000 Binary files a/theme/images/portfolio/1.jpg and /dev/null differ diff --git a/theme/images/portfolio/4.jpg b/theme/images/portfolio/4.jpg deleted file mode 100644 index c07854cd..00000000 Binary files a/theme/images/portfolio/4.jpg and /dev/null differ diff --git a/theme/images/portfolio/5.jpg b/theme/images/portfolio/5.jpg deleted file mode 100644 index c773b95b..00000000 Binary files a/theme/images/portfolio/5.jpg and /dev/null differ diff --git a/theme/images/team/ArielSashcov.jpg b/theme/images/team/ArielSashcov.jpg deleted file mode 100644 index 0d8b57d9..00000000 Binary files a/theme/images/team/ArielSashcov.jpg and /dev/null differ diff --git "a/theme/images/team/J\303\251r\303\264meDemers.jpg" "b/theme/images/team/J\303\251r\303\264meDemers.jpg" deleted file mode 100644 index f64b2e3a..00000000 Binary files "a/theme/images/team/J\303\251r\303\264meDemers.jpg" and /dev/null differ diff --git a/theme/images/team/PhilippeGeukers.jpg b/theme/images/team/PhilippeGeukers.jpg deleted file mode 100644 index b194ca6d..00000000 Binary files a/theme/images/team/PhilippeGeukers.jpg and /dev/null differ diff --git a/theme/images/team/SabrinaSt-Pierre.jpg b/theme/images/team/SabrinaSt-Pierre.jpg deleted file mode 100644 index f3125396..00000000 Binary files a/theme/images/team/SabrinaSt-Pierre.jpg and /dev/null differ diff --git a/theme/images/team/SamLafrance-Jones.jpg b/theme/images/team/SamLafrance-Jones.jpg deleted file mode 100644 index b3ec97a1..00000000 Binary files a/theme/images/team/SamLafrance-Jones.jpg and /dev/null differ diff --git a/theme/images/team/SamiMammouche.jpg b/theme/images/team/SamiMammouche.jpg deleted file mode 100644 index 29cc7dc4..00000000 Binary files a/theme/images/team/SamiMammouche.jpg and /dev/null differ diff --git a/theme/images/team/cluster-smile-bigger.jpg b/theme/images/team/cluster-smile-bigger.jpg deleted file mode 100644 index a72b27c9..00000000 Binary files a/theme/images/team/cluster-smile-bigger.jpg and /dev/null differ diff --git a/theme/images/team/cluster-smile-group.jpg b/theme/images/team/cluster-smile-group.jpg deleted file mode 100644 index 9dcd1261..00000000 Binary files a/theme/images/team/cluster-smile-group.jpg and /dev/null differ diff --git a/theme/images/team/concentration.jpg b/theme/images/team/concentration.jpg deleted file mode 100644 index c7251519..00000000 Binary files a/theme/images/team/concentration.jpg and /dev/null differ diff --git a/theme/images/team/conference-room.jpg b/theme/images/team/conference-room.jpg deleted file mode 100644 index 9eef6686..00000000 Binary files a/theme/images/team/conference-room.jpg and /dev/null differ diff --git a/theme/images/team/equipe-smile-1.jpg b/theme/images/team/equipe-smile-1.jpg deleted file mode 100644 index 6508a501..00000000 Binary files a/theme/images/team/equipe-smile-1.jpg and /dev/null differ diff --git a/theme/images/team/gabrieldemers.jpg b/theme/images/team/gabrieldemers.jpg deleted file mode 100644 index 0ee32b54..00000000 Binary files a/theme/images/team/gabrieldemers.jpg and /dev/null differ diff --git a/theme/images/team/good-team.jpg b/theme/images/team/good-team.jpg deleted file mode 100644 index 9e18c89c..00000000 Binary files a/theme/images/team/good-team.jpg and /dev/null differ diff --git a/theme/images/team/less-cluster-les-smile.jpg b/theme/images/team/less-cluster-les-smile.jpg deleted file mode 100644 index 4f14421a..00000000 Binary files a/theme/images/team/less-cluster-les-smile.jpg and /dev/null differ diff --git a/theme/images/team/nouser.jpg b/theme/images/team/nouser.jpg deleted file mode 100644 index b398aa2a..00000000 Binary files a/theme/images/team/nouser.jpg and /dev/null differ diff --git a/theme/images/team/original-team.jpg b/theme/images/team/original-team.jpg deleted file mode 100644 index c403f183..00000000 Binary files a/theme/images/team/original-team.jpg and /dev/null differ diff --git a/theme/images/team/pc-look.jpg b/theme/images/team/pc-look.jpg deleted file mode 100644 index 7cdfeac3..00000000 Binary files a/theme/images/team/pc-look.jpg and /dev/null differ diff --git a/theme/images/team/server-building.jpg b/theme/images/team/server-building.jpg deleted file mode 100644 index 347f2318..00000000 Binary files a/theme/images/team/server-building.jpg and /dev/null differ diff --git a/theme/images/team/stair-team.jpg b/theme/images/team/stair-team.jpg deleted file mode 100644 index 4180aa47..00000000 Binary files a/theme/images/team/stair-team.jpg and /dev/null differ diff --git a/theme/images/team/team-1.png b/theme/images/team/team-1.png deleted file mode 100644 index 492a6200..00000000 Binary files a/theme/images/team/team-1.png and /dev/null differ diff --git a/theme/images/team/team-2.png b/theme/images/team/team-2.png deleted file mode 100644 index 19a40f80..00000000 Binary files a/theme/images/team/team-2.png and /dev/null differ diff --git a/theme/images/team/team-3.png b/theme/images/team/team-3.png deleted file mode 100644 index 274dcecc..00000000 Binary files a/theme/images/team/team-3.png and /dev/null differ diff --git a/theme/images/team/team-4.png b/theme/images/team/team-4.png deleted file mode 100644 index 5f99e825..00000000 Binary files a/theme/images/team/team-4.png and /dev/null differ diff --git a/theme/images/team/team-5.png b/theme/images/team/team-5.png deleted file mode 100644 index 076d7b13..00000000 Binary files a/theme/images/team/team-5.png and /dev/null differ diff --git a/theme/images/team/team-6.png b/theme/images/team/team-6.png deleted file mode 100644 index d929388d..00000000 Binary files a/theme/images/team/team-6.png and /dev/null differ diff --git a/theme/images/team/team-7.png b/theme/images/team/team-7.png deleted file mode 100644 index 222b410b..00000000 Binary files a/theme/images/team/team-7.png and /dev/null differ diff --git a/theme/images/team/team-no-looking.jpg b/theme/images/team/team-no-looking.jpg deleted file mode 100644 index f0aaeb53..00000000 Binary files a/theme/images/team/team-no-looking.jpg and /dev/null differ diff --git a/theme/index.html b/theme/index.html deleted file mode 100644 index ed0ade3e..00000000 --- a/theme/index.html +++ /dev/null @@ -1,648 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Prédire la courbe -

    Le club de
    trading algorithmique

    - Savoir - Plus -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - Fintech ETS -

    Nous somme un club de science de données et d'algo trading, le seul de l’École de - technologie supérieure. -

    -
    -
    -
    -
    -
    -
    - -

    Stratégies

    -

    Élaborer et tester des algorithmes de trading pour analyser leur performance dans le passé

    -
    -
    -
    -
    - -

    Éducation financière

    -

    Promouvoir l’investissement responsable et analytique grâce aux sciences de données

    -
    -
    -
    -
    - -

    Compétitions

    -

    Représenter l’ÉTS, une université spécialisée en génie appliqué, aux compétitions de finances et - d’investissements

    -
    -
    -
    -
    - -

    Infrastructure

    -

    Développer nos propres outils pour développer des stratégies plus efficacement.

    -
    -
    -
    -
    - -

    Workshop

    -

    Organiser des ateliers pour apprendre aux étudiants comment développer des stratégies de - trading algorithmique.

    -
    -
    -
    -
    - -

    Article de blog

    -

    Écrire des articles de blog pour partager nos connaissances et nos expériences.

    -
    -
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    -
    - Nous somme -

    Créer des stratégie pour aider à faire des meilleurs investissements

    -
    -

    Nous sommes un club de trading algorithmique

    -

    La majorité des investisseur perdent de l’argent sur la bourse parce qu'il ne - connait pas les règle du marché. En analysant les données financière et les indicateurs technique ont - peut créer des stratégie pour aider les investisseur à faire des meilleurs investissements. -

    - - Lire sur les stratégie -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -

    32+

    -

    Stratégie Backtest

    -
    -
    -
    -
    -

    12

    -

    Membre active

    -
    -
    -
    -
    -

    6

    -

    Project

    -
    -
    -
    -
    -

    4

    -

    Stratégie en cours

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - Analyse de données financière -

    Nos projets

    -

    - En plus de développer des stratégies de trading algorithmique, nous développons des outils pour - les tester et les améliorer. Nous développons également des outils. -

    -
    -
    -
    - -
    -
    -
    - -

    AINewsTracker

    -

    Robot d’investissement intelligent qui - analyse les nouvelles et les réseaux sociaux pour prédire les mouvements de prix des - cryptomonnaies.

    -
    -
    - -
    -
    - -

    BatchBacktesting

    -

    Plusieurs backtest en même temps pour trouver la meilleur stratégie selon des indicateur technique

    -
    -
    - -
    -
    - -

    Crypto Whale

    -

    Copier les transactions des plus grands investisseurs de la bourse et crypto en temps réel

    -
    -
    - -
    -
    - -

    TradingView et Quandconnect

    -

    Stratégie de trading pour les plateformes de trading existante

    -
    -
    - -
    -
    - -

    Analyse de données financière

    -

    Apprend comment creer la stratégie avec des données financière et indicateur technique

    -
    -
    - -
    -
    - -

    ComETS

    -

    ComETS est un projet de développement d’un robot d’investissement intelligent sur binance

    -
    -
    - -
    -
    - -

    BullETS

    -

    Nous développons notre propre librairie pour tester des algorithmes de trading sur des données - historiques.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - Programmer par des étudiants -

    Nous sommes des étudiants de l’École de technologie supérieure

    -

    Nous sommes des étudiants de l’École de technologie supérieure. Nous sommes - passionnés par les sciences de données, les finances et le développement informatique. Nous - avons créé ce club pour combler un vide dans l’offre de clubs de l’ÉTS.

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - Dernier article -

    Enrichissez vos connaissances

    -
    -
    -
    - - -
    -
    - -
    -
    -
    -
    -
    - Rejoignez-nous -

    Pour plus d'information

    -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/js/projectCardCreator.js b/theme/js/projectCardCreator.js deleted file mode 100644 index dbc35b67..00000000 --- a/theme/js/projectCardCreator.js +++ /dev/null @@ -1,93 +0,0 @@ -import { cachedProjectInfo } from './cachedProjectInfo.json'; -import { createProjectCard } from './projectCardCreator.js'; - -const projectsInfo = { - Workshop1: "https://api.github.com/repos/AlgoETS/Workshop1", - AINewsTracker: "https://api.github.com/repos/AlgoETS/AINewsTracker", - BatchBacktesting: "https://api.github.com/repos/AlgoETS/BatchBacktesting", - Salary: "https://api.github.com/repos/AlgoETS/Salary", - Marketwatch: "https://api.github.com/repos/antoinebou12/Marketwatch", - BullETS: "https://api.github.com/repos/AlgoETS/BullETS", -}; - -function createProjectCard(projectData) { - if (!projectData) return; - - const projectCard = document.createElement("div"); - projectCard.className = - "project-card bg-white shadow-md rounded-lg overflow-hidden p-4 hover:shadow-lg transition-shadow duration-300"; - - let topicsHtml = ''; - if (Array.isArray(projectData.topics)) { - topicsHtml = `
    Tags: ${projectData.topics.join(", ")}
    `; - } - - const liveDemoLink = projectData.homepage - ? `Live Demo` - : ""; - - projectCard.innerHTML = ` - ${projectData.name} -

    ${projectData.name}

    -

    ${projectData.description}

    -
    - Language: ${projectData.language}
    - Stars ⭐ : ${projectData.stargazers_count}
    - Last Updated: ${new Date(projectData.updated_at).toLocaleDateString()}
    - Created At: ${new Date(projectData.created_at).toLocaleDateString()} -
    - ${topicsHtml} - View on GitHub - ${liveDemoLink} - `; - - document.getElementById("projects-container").appendChild(projectCard); -} - - -async function fetchAndCreateProjectCard(url, projectKey) { - try { - const response = await fetch(url); - if (!response.ok) { - throw new Error(`HTTP error! Status: ${response.status}`); - } - const projectData = await response.json(); - - // Add a placeholder image_url or get it from projectData if available - projectData.image_url = projectData.image_url || 'default-image-url'; - - createProjectCard(projectData); - - // Update cached data in memory - cachedProjectInfo[projectKey] = projectData; - - // Send updated data to server to update the JSON file - updateCachedDataOnServer(projectKey, projectData); - - } catch (error) { - console.error(`Error fetching data for ${projectKey}:`, error); - if (cachedProjectInfo[projectKey]) { - createProjectCard(cachedProjectInfo[projectKey]); - } - } -} - -async function updateCachedDataOnServer(projectKey, projectData) { - try { - await fetch('/api/update-cached-data', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ [projectKey]: projectData }) - }); - } catch (error) { - console.error('Failed to update cached data on server:', error); - } -} - -async function processProjects() { - for (const projectKey of Object.keys(projectsInfo)) { - await fetchAndCreateProjectCard(projectsInfo[projectKey], projectKey); - } -} - -processProjects(); \ No newline at end of file diff --git a/theme/js/script.js b/theme/js/script.js deleted file mode 100644 index 22065438..00000000 --- a/theme/js/script.js +++ /dev/null @@ -1,98 +0,0 @@ -(function ($) { - 'use strict'; - - // testimonial-wrap - if ($('.testimonial-wrap').length !== 0) { - $('.testimonial-wrap').slick({ - slidesToShow: 2, - slidesToScroll: 2, - infinite: true, - dots: true, - arrows: false, - autoplay: true, - autoplaySpeed: 6000, - responsive: [{ - breakpoint: 1024, - settings: { - slidesToShow: 1, - slidesToScroll: 1, - infinite: true, - dots: true - } - }, - { - breakpoint: 900, - settings: { - slidesToShow: 1, - slidesToScroll: 1 - } - }, { - breakpoint: 600, - settings: { - slidesToShow: 1, - slidesToScroll: 1 - } - }, - { - breakpoint: 480, - settings: { - slidesToShow: 1, - slidesToScroll: 1 - } - } - ] - }); - } - - // navbarDropdown - if ($(window).width() < 992) { - $('#navbar .dropdown-toggle').on('click', function () { - $(this).siblings('.dropdown-menu').animate({ - height: 'toggle' - }, 300); - }); - } - - $(window).on('scroll', function () { - //.Scroll to top show/hide - if ($('#scroll-to-top').length) { - var scrollToTop = $('#scroll-to-top'), - scroll = $(window).scrollTop(); - if (scroll >= 200) { - scrollToTop.fadeIn(200); - } else { - scrollToTop.fadeOut(100); - } - } - }); - // scroll-to-top - if ($('#scroll-to-top').length) { - $('#scroll-to-top').on('click', function () { - $('body,html').animate({ - scrollTop: 0 - }, 600); - return false; - }); - } - - // portfolio-gallery - if ($('.portfolio-gallery').length !== 0) { - $('.portfolio-gallery').each(function () { - $(this).find('.popup-gallery').magnificPopup({ - type: 'image', - gallery: { - enabled: true - } - }); - }); - } - - // Counter - if ($('.counter-stat').length !== 0) { - $('.counter-stat').counterUp({ - delay: 10, - time: 1000 - }); - } - -})(jQuery); diff --git a/theme/plugins/animate-css/animate.css b/theme/plugins/animate-css/animate.css deleted file mode 100644 index dac48f17..00000000 --- a/theme/plugins/animate-css/animate.css +++ /dev/null @@ -1,3623 +0,0 @@ -@charset "UTF-8"; - -/*! - * animate.css -http://daneden.me/animate - * Version - 3.7.0 - * Licensed under the MIT license - http://opensource.org/licenses/MIT - * - * Copyright (c) 2018 Daniel Eden - */ - -@-webkit-keyframes bounce { - from, - 20%, - 53%, - 80%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 40%, - 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -30px, 0); - transform: translate3d(0, -30px, 0); - } - - 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -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 { - from, - 20%, - 53%, - 80%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 40%, - 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -30px, 0); - transform: translate3d(0, -30px, 0); - } - - 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -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; - transform-origin: center bottom; -} - -@-webkit-keyframes flash { - from, - 50%, - to { - opacity: 1; - } - - 25%, - 75% { - opacity: 0; - } -} - -@keyframes flash { - from, - 50%, - to { - opacity: 1; - } - - 25%, - 75% { - opacity: 0; - } -} - -.flash { - -webkit-animation-name: flash; - animation-name: flash; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes pulse { - from { - -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); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes pulse { - from { - -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); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.pulse { - -webkit-animation-name: pulse; - animation-name: pulse; -} - -@-webkit-keyframes rubberBand { - from { - -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(0.95, 1.05, 1); - transform: scale3d(0.95, 1.05, 1); - } - - 75% { - -webkit-transform: scale3d(1.05, 0.95, 1); - transform: scale3d(1.05, 0.95, 1); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes rubberBand { - from { - -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(0.95, 1.05, 1); - transform: scale3d(0.95, 1.05, 1); - } - - 75% { - -webkit-transform: scale3d(1.05, 0.95, 1); - transform: scale3d(1.05, 0.95, 1); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.rubberBand { - -webkit-animation-name: rubberBand; - animation-name: rubberBand; -} - -@-webkit-keyframes shake { - from, - to { - -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 { - from, - to { - -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 headShake { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 6.5% { - -webkit-transform: translateX(-6px) rotateY(-9deg); - transform: translateX(-6px) rotateY(-9deg); - } - - 18.5% { - -webkit-transform: translateX(5px) rotateY(7deg); - transform: translateX(5px) rotateY(7deg); - } - - 31.5% { - -webkit-transform: translateX(-3px) rotateY(-5deg); - transform: translateX(-3px) rotateY(-5deg); - } - - 43.5% { - -webkit-transform: translateX(2px) rotateY(3deg); - transform: translateX(2px) rotateY(3deg); - } - - 50% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes headShake { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - - 6.5% { - -webkit-transform: translateX(-6px) rotateY(-9deg); - transform: translateX(-6px) rotateY(-9deg); - } - - 18.5% { - -webkit-transform: translateX(5px) rotateY(7deg); - transform: translateX(5px) rotateY(7deg); - } - - 31.5% { - -webkit-transform: translateX(-3px) rotateY(-5deg); - transform: translateX(-3px) rotateY(-5deg); - } - - 43.5% { - -webkit-transform: translateX(2px) rotateY(3deg); - transform: translateX(2px) rotateY(3deg); - } - - 50% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -.headShake { - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-name: headShake; - animation-name: headShake; -} - -@-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); - } - - to { - -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); - } - - to { - -webkit-transform: rotate3d(0, 0, 1, 0deg); - transform: rotate3d(0, 0, 1, 0deg); - } -} - -.swing { - -webkit-transform-origin: top center; - transform-origin: top center; - -webkit-animation-name: swing; - animation-name: swing; -} - -@-webkit-keyframes tada { - from { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 10%, - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - transform: scale3d(0.9, 0.9, 0.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); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes tada { - from { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 10%, - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - transform: scale3d(0.9, 0.9, 0.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); - } - - to { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.tada { - -webkit-animation-name: tada; - animation-name: tada; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes wobble { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes wobble { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.wobble { - -webkit-animation-name: wobble; - animation-name: wobble; -} - -@-webkit-keyframes jello { - from, - 11.1%, - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 22.2% { - -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); - transform: skewX(-12.5deg) skewY(-12.5deg); - } - - 33.3% { - -webkit-transform: skewX(6.25deg) skewY(6.25deg); - transform: skewX(6.25deg) skewY(6.25deg); - } - - 44.4% { - -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); - transform: skewX(-3.125deg) skewY(-3.125deg); - } - - 55.5% { - -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); - transform: skewX(1.5625deg) skewY(1.5625deg); - } - - 66.6% { - -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); - transform: skewX(-0.78125deg) skewY(-0.78125deg); - } - - 77.7% { - -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); - transform: skewX(0.390625deg) skewY(0.390625deg); - } - - 88.8% { - -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - } -} - -@keyframes jello { - from, - 11.1%, - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 22.2% { - -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); - transform: skewX(-12.5deg) skewY(-12.5deg); - } - - 33.3% { - -webkit-transform: skewX(6.25deg) skewY(6.25deg); - transform: skewX(6.25deg) skewY(6.25deg); - } - - 44.4% { - -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); - transform: skewX(-3.125deg) skewY(-3.125deg); - } - - 55.5% { - -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); - transform: skewX(1.5625deg) skewY(1.5625deg); - } - - 66.6% { - -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); - transform: skewX(-0.78125deg) skewY(-0.78125deg); - } - - 77.7% { - -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); - transform: skewX(0.390625deg) skewY(0.390625deg); - } - - 88.8% { - -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - } -} - -.jello { - -webkit-animation-name: jello; - animation-name: jello; - -webkit-transform-origin: center; - transform-origin: center; -} - -@-webkit-keyframes heartBeat { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 14% { - -webkit-transform: scale(1.3); - transform: scale(1.3); - } - - 28% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 42% { - -webkit-transform: scale(1.3); - transform: scale(1.3); - } - - 70% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -@keyframes heartBeat { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 14% { - -webkit-transform: scale(1.3); - transform: scale(1.3); - } - - 28% { - -webkit-transform: scale(1); - transform: scale(1); - } - - 42% { - -webkit-transform: scale(1.3); - transform: scale(1.3); - } - - 70% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.heartBeat { - -webkit-animation-name: heartBeat; - animation-name: heartBeat; - -webkit-animation-duration: 1.3s; - animation-duration: 1.3s; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; -} - -@-webkit-keyframes bounceIn { - from, - 20%, - 40%, - 60%, - 80%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 20% { - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 40% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.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(0.97, 0.97, 0.97); - transform: scale3d(0.97, 0.97, 0.97); - } - - to { - opacity: 1; - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes bounceIn { - from, - 20%, - 40%, - 60%, - 80%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 20% { - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 40% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.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(0.97, 0.97, 0.97); - transform: scale3d(0.97, 0.97, 0.97); - } - - to { - opacity: 1; - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.bounceIn { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; - -webkit-animation-name: bounceIn; - animation-name: bounceIn; -} - -@-webkit-keyframes bounceInDown { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes bounceInDown { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.bounceInDown { - -webkit-animation-name: bounceInDown; - animation-name: bounceInDown; -} - -@-webkit-keyframes bounceInLeft { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes bounceInLeft { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.bounceInLeft { - -webkit-animation-name: bounceInLeft; - animation-name: bounceInLeft; -} - -@-webkit-keyframes bounceInRight { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - from { - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes bounceInRight { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - from { - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.bounceInRight { - -webkit-animation-name: bounceInRight; - animation-name: bounceInRight; -} - -@-webkit-keyframes bounceInUp { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - from { - 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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes bounceInUp { - from, - 60%, - 75%, - 90%, - to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - from { - 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); - } - - to { - -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(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 50%, - 55% { - opacity: 1; - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } -} - -@keyframes bounceOut { - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 50%, - 55% { - opacity: 1; - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } -} - -.bounceOut { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; - -webkit-animation-name: bounceOut; - animation-name: bounceOut; -} - -@-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); - } - - to { - 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); - } - - to { - 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); - } - - to { - 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); - } - - to { - 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); - } - - to { - 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); - } - - to { - 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); - } - - to { - 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); - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -.bounceOutUp { - -webkit-animation-name: bounceOutUp; - animation-name: bounceOutUp; -} - -@-webkit-keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -.fadeIn { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; -} - -@-webkit-keyframes fadeInDown { - from { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInDown { - from { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInDown { - -webkit-animation-name: fadeInDown; - animation-name: fadeInDown; -} - -@-webkit-keyframes fadeInDownBig { - from { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInDownBig { - from { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInDownBig { - -webkit-animation-name: fadeInDownBig; - animation-name: fadeInDownBig; -} - -@-webkit-keyframes fadeInLeft { - from { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInLeft { - from { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} - -@-webkit-keyframes fadeInLeftBig { - from { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInLeftBig { - from { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInLeftBig { - -webkit-animation-name: fadeInLeftBig; - animation-name: fadeInLeftBig; -} - -@-webkit-keyframes fadeInRight { - from { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInRight { - from { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInRight { - -webkit-animation-name: fadeInRight; - animation-name: fadeInRight; -} - -@-webkit-keyframes fadeInRightBig { - from { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInRightBig { - from { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInRightBig { - -webkit-animation-name: fadeInRightBig; - animation-name: fadeInRightBig; -} - -@-webkit-keyframes fadeInUp { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInUp { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInUp { - -webkit-animation-name: fadeInUp; - animation-name: fadeInUp; -} - -@-webkit-keyframes fadeInUpBig { - from { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes fadeInUpBig { - from { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.fadeInUpBig { - -webkit-animation-name: fadeInUpBig; - animation-name: fadeInUpBig; -} - -@-webkit-keyframes fadeOut { - from { - opacity: 1; - } - - to { - opacity: 0; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - - to { - opacity: 0; - } -} - -.fadeOut { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; -} - -@-webkit-keyframes fadeOutDown { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -@keyframes fadeOutDown { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -.fadeOutDown { - -webkit-animation-name: fadeOutDown; - animation-name: fadeOutDown; -} - -@-webkit-keyframes fadeOutDownBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -@keyframes fadeOutDownBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -.fadeOutDownBig { - -webkit-animation-name: fadeOutDownBig; - animation-name: fadeOutDownBig; -} - -@-webkit-keyframes fadeOutLeft { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -@keyframes fadeOutLeft { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -.fadeOutLeft { - -webkit-animation-name: fadeOutLeft; - animation-name: fadeOutLeft; -} - -@-webkit-keyframes fadeOutLeftBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -@keyframes fadeOutLeftBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -.fadeOutLeftBig { - -webkit-animation-name: fadeOutLeftBig; - animation-name: fadeOutLeftBig; -} - -@-webkit-keyframes fadeOutRight { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -@keyframes fadeOutRight { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -.fadeOutRight { - -webkit-animation-name: fadeOutRight; - animation-name: fadeOutRight; -} - -@-webkit-keyframes fadeOutRightBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -@keyframes fadeOutRightBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -.fadeOutRightBig { - -webkit-animation-name: fadeOutRightBig; - animation-name: fadeOutRightBig; -} - -@-webkit-keyframes fadeOutUp { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -@keyframes fadeOutUp { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -.fadeOutUp { - -webkit-animation-name: fadeOutUp; - animation-name: fadeOutUp; -} - -@-webkit-keyframes fadeOutUpBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -@keyframes fadeOutUpBig { - from { - opacity: 1; - } - - to { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -.fadeOutUpBig { - -webkit-animation-name: fadeOutUpBig; - animation-name: fadeOutUpBig; -} - -@-webkit-keyframes flip { - from { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) - rotate3d(0, 1, 0, -360deg); - transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) - rotate3d(0, 1, 0, -190deg); - transform: perspective(400px) scale3d(1, 1, 1) 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) scale3d(1, 1, 1) translate3d(0, 0, 150px) - rotate3d(0, 1, 0, -170deg); - transform: perspective(400px) scale3d(1, 1, 1) 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(0.95, 0.95, 0.95) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - to { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } -} - -@keyframes flip { - from { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) - rotate3d(0, 1, 0, -360deg); - transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) - rotate3d(0, 1, 0, -190deg); - transform: perspective(400px) scale3d(1, 1, 1) 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) scale3d(1, 1, 1) translate3d(0, 0, 150px) - rotate3d(0, 1, 0, -170deg); - transform: perspective(400px) scale3d(1, 1, 1) 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(0.95, 0.95, 0.95) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - to { - -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) - rotate3d(0, 1, 0, 0deg); - transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); - -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 { - from { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-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-animation-timing-function: ease-in; - animation-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); - } - - to { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -@keyframes flipInX { - from { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-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-animation-timing-function: ease-in; - animation-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); - } - - to { - -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 { - from { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-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-animation-timing-function: ease-in; - animation-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); - } - - to { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -@keyframes flipInY { - from { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-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-animation-timing-function: ease-in; - animation-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); - } - - to { - -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 { - from { - -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; - } - - to { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - opacity: 0; - } -} - -@keyframes flipOutX { - from { - -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; - } - - to { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - opacity: 0; - } -} - -.flipOutX { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; - -webkit-animation-name: flipOutX; - animation-name: flipOutX; - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; -} - -@-webkit-keyframes flipOutY { - from { - -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; - } - - to { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - opacity: 0; - } -} - -@keyframes flipOutY { - from { - -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; - } - - to { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - opacity: 0; - } -} - -.flipOutY { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipOutY; - animation-name: flipOutY; -} - -@-webkit-keyframes lightSpeedIn { - from { - -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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes lightSpeedIn { - from { - -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); - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.lightSpeedIn { - -webkit-animation-name: lightSpeedIn; - animation-name: lightSpeedIn; - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; -} - -@-webkit-keyframes lightSpeedOut { - from { - opacity: 1; - } - - to { - -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); - transform: translate3d(100%, 0, 0) skewX(30deg); - opacity: 0; - } -} - -@keyframes lightSpeedOut { - from { - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, -200deg); - transform: rotate3d(0, 0, 1, -200deg); - opacity: 0; - } - - to { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -@keyframes rotateIn { - from { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, -200deg); - transform: rotate3d(0, 0, 1, -200deg); - opacity: 0; - } - - to { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -.rotateIn { - -webkit-animation-name: rotateIn; - animation-name: rotateIn; -} - -@-webkit-keyframes rotateInDownLeft { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -@keyframes rotateInDownLeft { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -.rotateInDownLeft { - -webkit-animation-name: rotateInDownLeft; - animation-name: rotateInDownLeft; -} - -@-webkit-keyframes rotateInDownRight { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -@keyframes rotateInDownRight { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -.rotateInDownRight { - -webkit-animation-name: rotateInDownRight; - animation-name: rotateInDownRight; -} - -@-webkit-keyframes rotateInUpLeft { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -@keyframes rotateInUpLeft { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - to { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -.rotateInUpLeft { - -webkit-animation-name: rotateInUpLeft; - animation-name: rotateInUpLeft; -} - -@-webkit-keyframes rotateInUpRight { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -90deg); - transform: rotate3d(0, 0, 1, -90deg); - opacity: 0; - } - - to { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -@keyframes rotateInUpRight { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -90deg); - transform: rotate3d(0, 0, 1, -90deg); - opacity: 0; - } - - to { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; - } -} - -.rotateInUpRight { - -webkit-animation-name: rotateInUpRight; - animation-name: rotateInUpRight; -} - -@-webkit-keyframes rotateOut { - from { - -webkit-transform-origin: center; - transform-origin: center; - opacity: 1; - } - - to { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, 200deg); - transform: rotate3d(0, 0, 1, 200deg); - opacity: 0; - } -} - -@keyframes rotateOut { - from { - -webkit-transform-origin: center; - transform-origin: center; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - to { - -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 { - from { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - to { - -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; - } - - to { - -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; - } - - to { - -webkit-transform: translate3d(0, 700px, 0); - transform: translate3d(0, 700px, 0); - opacity: 0; - } -} - -.hinge { - -webkit-animation-duration: 2s; - animation-duration: 2s; - -webkit-animation-name: hinge; - animation-name: hinge; -} - -@-webkit-keyframes jackInTheBox { - from { - opacity: 0; - -webkit-transform: scale(0.1) rotate(30deg); - transform: scale(0.1) rotate(30deg); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - } - - 50% { - -webkit-transform: rotate(-10deg); - transform: rotate(-10deg); - } - - 70% { - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - } - - to { - opacity: 1; - -webkit-transform: scale(1); - transform: scale(1); - } -} - -@keyframes jackInTheBox { - from { - opacity: 0; - -webkit-transform: scale(0.1) rotate(30deg); - transform: scale(0.1) rotate(30deg); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - } - - 50% { - -webkit-transform: rotate(-10deg); - transform: rotate(-10deg); - } - - 70% { - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - } - - to { - opacity: 1; - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.jackInTheBox { - -webkit-animation-name: jackInTheBox; - animation-name: jackInTheBox; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollIn { - from { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes rollIn { - from { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - } - - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.rollIn { - -webkit-animation-name: rollIn; - animation-name: rollIn; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollOut { - from { - opacity: 1; - } - - to { - 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 { - from { - opacity: 1; - } - - to { - 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 { - from { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 50% { - opacity: 1; - } -} - -@keyframes zoomIn { - from { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 50% { - opacity: 1; - } -} - -.zoomIn { - -webkit-animation-name: zoomIn; - animation-name: zoomIn; -} - -@-webkit-keyframes zoomInDown { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInDown { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInDown { - -webkit-animation-name: zoomInDown; - animation-name: zoomInDown; -} - -@-webkit-keyframes zoomInLeft { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInLeft { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInLeft { - -webkit-animation-name: zoomInLeft; - animation-name: zoomInLeft; -} - -@-webkit-keyframes zoomInRight { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInRight { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInRight { - -webkit-animation-name: zoomInRight; - animation-name: zoomInRight; -} - -@-webkit-keyframes zoomInUp { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInUp { - from { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInUp { - -webkit-animation-name: zoomInUp; - animation-name: zoomInUp; -} - -@-webkit-keyframes zoomOut { - from { - opacity: 1; - } - - 50% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - to { - opacity: 0; - } -} - -@keyframes zoomOut { - from { - opacity: 1; - } - - 50% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - to { - opacity: 0; - } -} - -.zoomOut { - -webkit-animation-name: zoomOut; - animation-name: zoomOut; -} - -@-webkit-keyframes zoomOutDown { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - transform: scale3d(0.1, 0.1, 0.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.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomOutDown { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - transform: scale3d(0.1, 0.1, 0.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.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomOutDown { - -webkit-animation-name: zoomOutDown; - animation-name: zoomOutDown; -} - -@-webkit-keyframes zoomOutLeft { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - } - - to { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); - transform: scale(0.1) translate3d(-2000px, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - } -} - -@keyframes zoomOutLeft { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - } - - to { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); - transform: scale(0.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(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - } - - to { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); - transform: scale(0.1) translate3d(2000px, 0, 0); - -webkit-transform-origin: right center; - transform-origin: right center; - } -} - -@keyframes zoomOutRight { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - } - - to { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); - transform: scale(0.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(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - transform: scale3d(0.1, 0.1, 0.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.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomOutUp { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - to { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - transform: scale3d(0.1, 0.1, 0.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.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomOutUp { - -webkit-animation-name: zoomOutUp; - animation-name: zoomOutUp; -} - -@-webkit-keyframes slideInDown { - from { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInDown { - from { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInDown { - -webkit-animation-name: slideInDown; - animation-name: slideInDown; -} - -@-webkit-keyframes slideInLeft { - from { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInLeft { - from { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInLeft { - -webkit-animation-name: slideInLeft; - animation-name: slideInLeft; -} - -@-webkit-keyframes slideInRight { - from { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInRight { - from { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInRight { - -webkit-animation-name: slideInRight; - animation-name: slideInRight; -} - -@-webkit-keyframes slideInUp { - from { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInUp { - from { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - visibility: visible; - } - - to { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInUp { - -webkit-animation-name: slideInUp; - animation-name: slideInUp; -} - -@-webkit-keyframes slideOutDown { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -@keyframes slideOutDown { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -.slideOutDown { - -webkit-animation-name: slideOutDown; - animation-name: slideOutDown; -} - -@-webkit-keyframes slideOutLeft { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -@keyframes slideOutLeft { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -.slideOutLeft { - -webkit-animation-name: slideOutLeft; - animation-name: slideOutLeft; -} - -@-webkit-keyframes slideOutRight { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -@keyframes slideOutRight { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -.slideOutRight { - -webkit-animation-name: slideOutRight; - animation-name: slideOutRight; -} - -@-webkit-keyframes slideOutUp { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -@keyframes slideOutUp { - from { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - to { - visibility: hidden; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -.slideOutUp { - -webkit-animation-name: slideOutUp; - animation-name: slideOutUp; -} - -.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.delay-1s { - -webkit-animation-delay: 1s; - animation-delay: 1s; -} - -.animated.delay-2s { - -webkit-animation-delay: 2s; - animation-delay: 2s; -} - -.animated.delay-3s { - -webkit-animation-delay: 3s; - animation-delay: 3s; -} - -.animated.delay-4s { - -webkit-animation-delay: 4s; - animation-delay: 4s; -} - -.animated.delay-5s { - -webkit-animation-delay: 5s; - animation-delay: 5s; -} - -.animated.fast { - -webkit-animation-duration: 800ms; - animation-duration: 800ms; -} - -.animated.faster { - -webkit-animation-duration: 500ms; - animation-duration: 500ms; -} - -.animated.slow { - -webkit-animation-duration: 2s; - animation-duration: 2s; -} - -.animated.slower { - -webkit-animation-duration: 3s; - animation-duration: 3s; -} - -@media (print), (prefers-reduced-motion) { - .animated { - -webkit-animation: unset !important; - animation: unset !important; - -webkit-transition: none !important; - transition: none !important; - } -} diff --git a/theme/plugins/bootstrap/bootstrap.min.css b/theme/plugins/bootstrap/bootstrap.min.css deleted file mode 100644 index fb3bd147..00000000 --- a/theme/plugins/bootstrap/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.5.3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/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,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--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%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){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;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}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}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}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}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}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[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}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-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-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap: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,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.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%;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%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.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%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.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%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.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%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.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%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.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%;margin-bottom:1rem;color:#212529}.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-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{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.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-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.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-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.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-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.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-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.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-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.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-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.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-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.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:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.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{color:#fff;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}.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}.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}.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}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;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 (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.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}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}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:.375rem 0;margin-bottom:0;font-size:1rem;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{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.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,.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%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.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{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;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 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.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:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;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%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.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{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;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 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.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:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;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;-ms-flex-negative:0;flex-shrink:0;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;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;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 (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;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}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{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,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(38,143,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{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.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(130,138,145,.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{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.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(72,180,97,.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{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.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(58,176,195,.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{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.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(222,170,12,.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{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.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(225,83,97,.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{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.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(216,217,219,.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{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.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(82,88,93,.5)}.btn-outline-primary{color:#007bff;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;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;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;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;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;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;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;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;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.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 (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 (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;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-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-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;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;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;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;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;pointer-events:none;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:1 1 auto;flex:1 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-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-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.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-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.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,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.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,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.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-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.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-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.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-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.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;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' 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::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' 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-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .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(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/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:0 0 0 .2rem rgba(0,123,255,.25)}.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{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 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:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;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(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.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-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.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-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.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;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.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}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.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;pointer-events:none;cursor:default}.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,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-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,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{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-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,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{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,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-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,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{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,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-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,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{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,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-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,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{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,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-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,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{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,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-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,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;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-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;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-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:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-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{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.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{display:-ms-flexbox;display:flex}.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:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.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:3;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;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 (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.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}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.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;z-index:2;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;line-height:0;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;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (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 (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.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;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;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;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width: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:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.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,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.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;left:0;z-index:1040;width:100vw;height:100vh;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 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 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-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.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-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";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,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";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)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 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-width:.5rem .5rem 0;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);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 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-width:.5rem .5rem .5rem 0;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)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;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);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;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.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;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;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.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:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;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{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.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-sm{border-radius:.2rem!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-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!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}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!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;margin:-1px;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}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!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-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-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-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-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-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-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-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-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-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-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}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!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-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!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:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!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}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} \ No newline at end of file diff --git a/theme/plugins/bootstrap/bootstrap.min.js b/theme/plugins/bootstrap/bootstrap.min.js deleted file mode 100644 index 8044b20b..00000000 --- a/theme/plugins/bootstrap/bootstrap.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.5.3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/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="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=u,o.default.event.special[d.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var f="alert",c=o.default.fn[f],h=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.alert");i||(i=new t(this),n.data("bs.alert",i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),o.default.fn[f]=h._jQueryInterface,o.default.fn[f].Constructor=h,o.default.fn[f].noConflict=function(){return o.default.fn[f]=c,h._jQueryInterface};var g=o.default.fn.button,m=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector('input:not([type="hidden"])');if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains("active"))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass("active")}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&o.default(this._element).toggleClass("active"))},e.dispose=function(){o.default.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data("bs.button");a||(a=new t(this),i.data("bs.button",a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(".btn")[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector('input:not([type="hidden"])');if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||m._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=o.default(t.target).closest(".btn")[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.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))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(".active.carousel-item");var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one("slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(_),o.default.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},b,t),d.typeCheckConfig(p,t,y),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&E[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&E[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._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()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(".active.carousel-item")),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass("active");var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass("active")}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(".active.carousel-item"),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u);var h=o.default.Event("slid.bs.carousel",{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=parseInt(u.getAttribute("data-interval"),10);g?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=g):this._config.interval=this._config.defaultInterval||this._config.interval;var m=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass("active"),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(m)}else o.default(l).removeClass("active"),o.default(u).addClass("active"),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data("bs.carousel"),i=r({},b,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data("bs.carousel",n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data("bs.carousel").to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return b}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",w._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass("show")?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!this._isTransitioning&&!o.default(this._element).hasClass("show")&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains("collapse")}))).length&&(e=null),!(e&&(n=o.default(e).not(this._selector).data("bs.collapse"))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data("bs.collapse",null));var s=this._getDimension();o.default(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass("collapsing").addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass("show")){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass("collapsing").removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data("bs.dropdown");if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data("bs.dropdown",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),i=0,a=n.length;i0&&s--,40===e.which&&sdocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}else this.hide()},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass("fade"),i=this._dialog?this._dialog.querySelector(".modal-body"):null;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.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off("keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):o.default(window).off("resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger("hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on("click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass("show"),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass("show");var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass("fade")){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._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")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Q,popperConfig:null},$={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},J=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's 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 e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(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},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass("fade");var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass("show"),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(o.default(this.tip).hasClass("fade")){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){"show"!==e._hoverState&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass("show"),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass("fade")){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=U(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.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},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return X[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._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",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),o.default(e.getTipElement()).hasClass("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==z.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(M,t,this.constructor.DefaultType),t.sanitize&&(t.template=U(t.template,t.whiteList,t.sanitizeFn)),t},e._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},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(V);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.tooltip"),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data("bs.tooltip",i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return Y}},{key:"NAME",get:function(){return M}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return $}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return K}}]),t}();o.default.fn[M]=J._jQueryInterface,o.default.fn[M].Constructor=J,o.default.fn[M].noConflict=function(){return o.default.fn[M]=W,J._jQueryInterface};var G="popover",Z=o.default.fn[G],tt=new RegExp("(^|\\s)bs-popover\\S+","g"),et=r({},J.Default,{placement:"right",trigger:"click",content:"",template:''}),nt=r({},J.DefaultType,{content:"(string|element|function)"}),it={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},ot=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,e.__proto__=n;var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(tt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data("bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data("bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return et}},{key:"NAME",get:function(){return G}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return it}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return nt}}]),i}(J);o.default.fn[G]=ot._jQueryInterface,o.default.fn[G].Constructor=ot,o.default.fn[G].noConflict=function(){return o.default.fn[G]=Z,ot._jQueryInterface};var at="scrollspy",st=o.default.fn[at],lt={offset:10,method:"auto",target:""},rt={offset:"number",method:"string",target:"(string|element)"},ut=function(){function t(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+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,"bs.scrollspy"),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},lt,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(at),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(at,t,rt),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._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(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(".active"):o.default(e).find("> li > .active"))[0],s=n&&a&&o.default(a).hasClass("fade"),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass("show").one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass("active");var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(o.default(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&o.default(t.parentNode).hasClass("dropdown-menu")){var a=o.default(t).closest(".dropdown")[0];if(a){var s=[].slice.call(a.querySelectorAll(".dropdown-toggle"));o.default(s).addClass("active")}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.tab");if(i||(i=new t(this),n.data("bs.tab",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ft._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ft._jQueryInterface,o.default.fn.tab.Constructor=ft,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=dt,ft._jQueryInterface};var ct=o.default.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},gt={animation:!0,autohide:!0,delay:500},mt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),d.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains("show")){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),o.default(this._element).off("click.dismiss.bs.toast"),o.default.removeData(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},gt,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add("hide"),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.toast");if(i||(i=new t(this,"object"==typeof e&&e),n.data("bs.toast",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return gt}}]),t}();o.default.fn.toast=mt._jQueryInterface,o.default.fn.toast.Constructor=mt,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=ct,mt._jQueryInterface},t.Alert=h,t.Button=m,t.Carousel=w,t.Collapse=D,t.Dropdown=x,t.Modal=q,t.Popover=ot,t.Scrollspy=ut,t.Tab=ft,t.Toast=mt,t.Tooltip=J,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/theme/plugins/counterup/jquery.counterup.min.js b/theme/plugins/counterup/jquery.counterup.min.js deleted file mode 100644 index ca234005..00000000 --- a/theme/plugins/counterup/jquery.counterup.min.js +++ /dev/null @@ -1 +0,0 @@ -(function($){"use strict";$.fn.counterUp=function(options){var settings=$.extend({time:400,delay:10,offset:100,beginAt:0,formatter:false,context:"window",callback:function(){}},options),s;return this.each(function(){var $this=$(this),counter={time:$(this).data("counterup-time")||settings.time,delay:$(this).data("counterup-delay")||settings.delay,offset:$(this).data("counterup-offset")||settings.offset,beginAt:$(this).data("counterup-beginat")||settings.beginAt,context:$(this).data("counterup-context")||settings.context};var counterUpper=function(){var nums=[];var divisions=counter.time/counter.delay;var num=$(this).attr("data-num")?$(this).attr("data-num"):$this.text();var isComma=/[0-9]+,[0-9]+/.test(num);num=num.replace(/,/g,"");var decimalPlaces=(num.split(".")[1]||[]).length;if(counter.beginAt>num)counter.beginAt=num;var isTime=/[0-9]+:[0-9]+:[0-9]+/.test(num);if(isTime){var times=num.split(":"),m=1;s=0;while(times.length>0){s+=m*parseInt(times.pop(),10);m*=60}}for(var i=divisions;i>=counter.beginAt/num*divisions;i--){var newNum=parseFloat(num/divisions*i).toFixed(decimalPlaces);if(isTime){newNum=parseInt(s/divisions*i);var hours=parseInt(newNum/3600)%24;var minutes=parseInt(newNum/60)%60;var seconds=parseInt(newNum%60,10);newNum=(hours<10?"0"+hours:hours)+":"+(minutes<10?"0"+minutes:minutes)+":"+(seconds<10?"0"+seconds:seconds)}if(isComma){while(/(\d+)(\d{3})/.test(newNum.toString())){newNum=newNum.toString().replace(/(\d+)(\d{3})/,"$1"+","+"$2")}}if(settings.formatter){newNum=settings.formatter.call(this,newNum)}nums.unshift(newNum)}$this.data("counterup-nums",nums);$this.text(counter.beginAt);var f=function(){if(!$this.data("counterup-nums")){settings.callback.call(this);return}$this.html($this.data("counterup-nums").shift());if($this.data("counterup-nums").length){setTimeout($this.data("counterup-func"),counter.delay)}else{$this.data("counterup-nums",null);$this.data("counterup-func",null);settings.callback.call(this)}};$this.data("counterup-func",f);setTimeout($this.data("counterup-func"),counter.delay)};$this.waypoint(function(direction){counterUpper();this.destroy()},{offset:counter.offset+"%",context:counter.context})})}})(jQuery); diff --git a/theme/plugins/counterup/jquery.waypoints.min.js b/theme/plugins/counterup/jquery.waypoints.min.js deleted file mode 100644 index 609ece0a..00000000 --- a/theme/plugins/counterup/jquery.waypoints.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! -Waypoints - 4.0.1 -Copyright © 2011-2016 Caleb Troughton -Licensed under the MIT license. -https://github.com/imakewebthings/waypoints/blob/master/licenses.txt -*/ -!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}(); \ No newline at end of file diff --git a/theme/plugins/fontawesome/css/all.css b/theme/plugins/fontawesome/css/all.css deleted file mode 100644 index c9816fac..00000000 --- a/theme/plugins/fontawesome/css/all.css +++ /dev/null @@ -1,4586 +0,0 @@ -/*! - * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa, -.fas, -.far, -.fal, -.fad, -.fab { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; } - -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; } - -.fa-xs { - font-size: .75em; } - -.fa-sm { - font-size: .875em; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; } - -.fa-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; } - -.fa-pull-left { - float: left; } - -.fa-pull-right { - float: right; } - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.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(360deg); - transform: rotate(360deg); } } - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); } - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); } - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - transform: rotate(270deg); } - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-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); - transform: scale(1, -1); } - -.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-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, -:root .fa-flip-both { - -webkit-filter: none; - filter: none; } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: #fff; } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-500px:before { - content: "\f26e"; } - -.fa-accessible-icon:before { - content: "\f368"; } - -.fa-accusoft:before { - content: "\f369"; } - -.fa-acquisitions-incorporated:before { - content: "\f6af"; } - -.fa-ad:before { - content: "\f641"; } - -.fa-address-book:before { - content: "\f2b9"; } - -.fa-address-card:before { - content: "\f2bb"; } - -.fa-adjust:before { - content: "\f042"; } - -.fa-adn:before { - content: "\f170"; } - -.fa-adobe:before { - content: "\f778"; } - -.fa-adversal:before { - content: "\f36a"; } - -.fa-affiliatetheme:before { - content: "\f36b"; } - -.fa-air-freshener:before { - content: "\f5d0"; } - -.fa-airbnb:before { - content: "\f834"; } - -.fa-algolia:before { - content: "\f36c"; } - -.fa-align-center:before { - content: "\f037"; } - -.fa-align-justify:before { - content: "\f039"; } - -.fa-align-left:before { - content: "\f036"; } - -.fa-align-right:before { - content: "\f038"; } - -.fa-alipay:before { - content: "\f642"; } - -.fa-allergies:before { - content: "\f461"; } - -.fa-amazon:before { - content: "\f270"; } - -.fa-amazon-pay:before { - content: "\f42c"; } - -.fa-ambulance:before { - content: "\f0f9"; } - -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; } - -.fa-amilia:before { - content: "\f36d"; } - -.fa-anchor:before { - content: "\f13d"; } - -.fa-android:before { - content: "\f17b"; } - -.fa-angellist:before { - content: "\f209"; } - -.fa-angle-double-down:before { - content: "\f103"; } - -.fa-angle-double-left:before { - content: "\f100"; } - -.fa-angle-double-right:before { - content: "\f101"; } - -.fa-angle-double-up:before { - content: "\f102"; } - -.fa-angle-down:before { - content: "\f107"; } - -.fa-angle-left:before { - content: "\f104"; } - -.fa-angle-right:before { - content: "\f105"; } - -.fa-angle-up:before { - content: "\f106"; } - -.fa-angry:before { - content: "\f556"; } - -.fa-angrycreative:before { - content: "\f36e"; } - -.fa-angular:before { - content: "\f420"; } - -.fa-ankh:before { - content: "\f644"; } - -.fa-app-store:before { - content: "\f36f"; } - -.fa-app-store-ios:before { - content: "\f370"; } - -.fa-apper:before { - content: "\f371"; } - -.fa-apple:before { - content: "\f179"; } - -.fa-apple-alt:before { - content: "\f5d1"; } - -.fa-apple-pay:before { - content: "\f415"; } - -.fa-archive:before { - content: "\f187"; } - -.fa-archway:before { - content: "\f557"; } - -.fa-arrow-alt-circle-down:before { - content: "\f358"; } - -.fa-arrow-alt-circle-left:before { - content: "\f359"; } - -.fa-arrow-alt-circle-right:before { - content: "\f35a"; } - -.fa-arrow-alt-circle-up:before { - content: "\f35b"; } - -.fa-arrow-circle-down:before { - content: "\f0ab"; } - -.fa-arrow-circle-left:before { - content: "\f0a8"; } - -.fa-arrow-circle-right:before { - content: "\f0a9"; } - -.fa-arrow-circle-up:before { - content: "\f0aa"; } - -.fa-arrow-down:before { - content: "\f063"; } - -.fa-arrow-left:before { - content: "\f060"; } - -.fa-arrow-right:before { - content: "\f061"; } - -.fa-arrow-up:before { - content: "\f062"; } - -.fa-arrows-alt:before { - content: "\f0b2"; } - -.fa-arrows-alt-h:before { - content: "\f337"; } - -.fa-arrows-alt-v:before { - content: "\f338"; } - -.fa-artstation:before { - content: "\f77a"; } - -.fa-assistive-listening-systems:before { - content: "\f2a2"; } - -.fa-asterisk:before { - content: "\f069"; } - -.fa-asymmetrik:before { - content: "\f372"; } - -.fa-at:before { - content: "\f1fa"; } - -.fa-atlas:before { - content: "\f558"; } - -.fa-atlassian:before { - content: "\f77b"; } - -.fa-atom:before { - content: "\f5d2"; } - -.fa-audible:before { - content: "\f373"; } - -.fa-audio-description:before { - content: "\f29e"; } - -.fa-autoprefixer:before { - content: "\f41c"; } - -.fa-avianex:before { - content: "\f374"; } - -.fa-aviato:before { - content: "\f421"; } - -.fa-award:before { - content: "\f559"; } - -.fa-aws:before { - content: "\f375"; } - -.fa-baby:before { - content: "\f77c"; } - -.fa-baby-carriage:before { - content: "\f77d"; } - -.fa-backspace:before { - content: "\f55a"; } - -.fa-backward:before { - content: "\f04a"; } - -.fa-bacon:before { - content: "\f7e5"; } - -.fa-bacteria:before { - content: "\f959"; } - -.fa-bacterium:before { - content: "\f95a"; } - -.fa-bahai:before { - content: "\f666"; } - -.fa-balance-scale:before { - content: "\f24e"; } - -.fa-balance-scale-left:before { - content: "\f515"; } - -.fa-balance-scale-right:before { - content: "\f516"; } - -.fa-ban:before { - content: "\f05e"; } - -.fa-band-aid:before { - content: "\f462"; } - -.fa-bandcamp:before { - content: "\f2d5"; } - -.fa-barcode:before { - content: "\f02a"; } - -.fa-bars:before { - content: "\f0c9"; } - -.fa-baseball-ball:before { - content: "\f433"; } - -.fa-basketball-ball:before { - content: "\f434"; } - -.fa-bath:before { - content: "\f2cd"; } - -.fa-battery-empty:before { - content: "\f244"; } - -.fa-battery-full:before { - content: "\f240"; } - -.fa-battery-half:before { - content: "\f242"; } - -.fa-battery-quarter:before { - content: "\f243"; } - -.fa-battery-three-quarters:before { - content: "\f241"; } - -.fa-battle-net:before { - content: "\f835"; } - -.fa-bed:before { - content: "\f236"; } - -.fa-beer:before { - content: "\f0fc"; } - -.fa-behance:before { - content: "\f1b4"; } - -.fa-behance-square:before { - content: "\f1b5"; } - -.fa-bell:before { - content: "\f0f3"; } - -.fa-bell-slash:before { - content: "\f1f6"; } - -.fa-bezier-curve:before { - content: "\f55b"; } - -.fa-bible:before { - content: "\f647"; } - -.fa-bicycle:before { - content: "\f206"; } - -.fa-biking:before { - content: "\f84a"; } - -.fa-bimobject:before { - content: "\f378"; } - -.fa-binoculars:before { - content: "\f1e5"; } - -.fa-biohazard:before { - content: "\f780"; } - -.fa-birthday-cake:before { - content: "\f1fd"; } - -.fa-bitbucket:before { - content: "\f171"; } - -.fa-bitcoin:before { - content: "\f379"; } - -.fa-bity:before { - content: "\f37a"; } - -.fa-black-tie:before { - content: "\f27e"; } - -.fa-blackberry:before { - content: "\f37b"; } - -.fa-blender:before { - content: "\f517"; } - -.fa-blender-phone:before { - content: "\f6b6"; } - -.fa-blind:before { - content: "\f29d"; } - -.fa-blog:before { - content: "\f781"; } - -.fa-blogger:before { - content: "\f37c"; } - -.fa-blogger-b:before { - content: "\f37d"; } - -.fa-bluetooth:before { - content: "\f293"; } - -.fa-bluetooth-b:before { - content: "\f294"; } - -.fa-bold:before { - content: "\f032"; } - -.fa-bolt:before { - content: "\f0e7"; } - -.fa-bomb:before { - content: "\f1e2"; } - -.fa-bone:before { - content: "\f5d7"; } - -.fa-bong:before { - content: "\f55c"; } - -.fa-book:before { - content: "\f02d"; } - -.fa-book-dead:before { - content: "\f6b7"; } - -.fa-book-medical:before { - content: "\f7e6"; } - -.fa-book-open:before { - content: "\f518"; } - -.fa-book-reader:before { - content: "\f5da"; } - -.fa-bookmark:before { - content: "\f02e"; } - -.fa-bootstrap:before { - content: "\f836"; } - -.fa-border-all:before { - content: "\f84c"; } - -.fa-border-none:before { - content: "\f850"; } - -.fa-border-style:before { - content: "\f853"; } - -.fa-bowling-ball:before { - content: "\f436"; } - -.fa-box:before { - content: "\f466"; } - -.fa-box-open:before { - content: "\f49e"; } - -.fa-box-tissue:before { - content: "\f95b"; } - -.fa-boxes:before { - content: "\f468"; } - -.fa-braille:before { - content: "\f2a1"; } - -.fa-brain:before { - content: "\f5dc"; } - -.fa-bread-slice:before { - content: "\f7ec"; } - -.fa-briefcase:before { - content: "\f0b1"; } - -.fa-briefcase-medical:before { - content: "\f469"; } - -.fa-broadcast-tower:before { - content: "\f519"; } - -.fa-broom:before { - content: "\f51a"; } - -.fa-brush:before { - content: "\f55d"; } - -.fa-btc:before { - content: "\f15a"; } - -.fa-buffer:before { - content: "\f837"; } - -.fa-bug:before { - content: "\f188"; } - -.fa-building:before { - content: "\f1ad"; } - -.fa-bullhorn:before { - content: "\f0a1"; } - -.fa-bullseye:before { - content: "\f140"; } - -.fa-burn:before { - content: "\f46a"; } - -.fa-buromobelexperte:before { - content: "\f37f"; } - -.fa-bus:before { - content: "\f207"; } - -.fa-bus-alt:before { - content: "\f55e"; } - -.fa-business-time:before { - content: "\f64a"; } - -.fa-buy-n-large:before { - content: "\f8a6"; } - -.fa-buysellads:before { - content: "\f20d"; } - -.fa-calculator:before { - content: "\f1ec"; } - -.fa-calendar:before { - content: "\f133"; } - -.fa-calendar-alt:before { - content: "\f073"; } - -.fa-calendar-check:before { - content: "\f274"; } - -.fa-calendar-day:before { - content: "\f783"; } - -.fa-calendar-minus:before { - content: "\f272"; } - -.fa-calendar-plus:before { - content: "\f271"; } - -.fa-calendar-times:before { - content: "\f273"; } - -.fa-calendar-week:before { - content: "\f784"; } - -.fa-camera:before { - content: "\f030"; } - -.fa-camera-retro:before { - content: "\f083"; } - -.fa-campground:before { - content: "\f6bb"; } - -.fa-canadian-maple-leaf:before { - content: "\f785"; } - -.fa-candy-cane:before { - content: "\f786"; } - -.fa-cannabis:before { - content: "\f55f"; } - -.fa-capsules:before { - content: "\f46b"; } - -.fa-car:before { - content: "\f1b9"; } - -.fa-car-alt:before { - content: "\f5de"; } - -.fa-car-battery:before { - content: "\f5df"; } - -.fa-car-crash:before { - content: "\f5e1"; } - -.fa-car-side:before { - content: "\f5e4"; } - -.fa-caravan:before { - content: "\f8ff"; } - -.fa-caret-down:before { - content: "\f0d7"; } - -.fa-caret-left:before { - content: "\f0d9"; } - -.fa-caret-right:before { - content: "\f0da"; } - -.fa-caret-square-down:before { - content: "\f150"; } - -.fa-caret-square-left:before { - content: "\f191"; } - -.fa-caret-square-right:before { - content: "\f152"; } - -.fa-caret-square-up:before { - content: "\f151"; } - -.fa-caret-up:before { - content: "\f0d8"; } - -.fa-carrot:before { - content: "\f787"; } - -.fa-cart-arrow-down:before { - content: "\f218"; } - -.fa-cart-plus:before { - content: "\f217"; } - -.fa-cash-register:before { - content: "\f788"; } - -.fa-cat:before { - content: "\f6be"; } - -.fa-cc-amazon-pay:before { - content: "\f42d"; } - -.fa-cc-amex:before { - content: "\f1f3"; } - -.fa-cc-apple-pay:before { - content: "\f416"; } - -.fa-cc-diners-club:before { - content: "\f24c"; } - -.fa-cc-discover:before { - content: "\f1f2"; } - -.fa-cc-jcb:before { - content: "\f24b"; } - -.fa-cc-mastercard:before { - content: "\f1f1"; } - -.fa-cc-paypal:before { - content: "\f1f4"; } - -.fa-cc-stripe:before { - content: "\f1f5"; } - -.fa-cc-visa:before { - content: "\f1f0"; } - -.fa-centercode:before { - content: "\f380"; } - -.fa-centos:before { - content: "\f789"; } - -.fa-certificate:before { - content: "\f0a3"; } - -.fa-chair:before { - content: "\f6c0"; } - -.fa-chalkboard:before { - content: "\f51b"; } - -.fa-chalkboard-teacher:before { - content: "\f51c"; } - -.fa-charging-station:before { - content: "\f5e7"; } - -.fa-chart-area:before { - content: "\f1fe"; } - -.fa-chart-bar:before { - content: "\f080"; } - -.fa-chart-line:before { - content: "\f201"; } - -.fa-chart-pie:before { - content: "\f200"; } - -.fa-check:before { - content: "\f00c"; } - -.fa-check-circle:before { - content: "\f058"; } - -.fa-check-double:before { - content: "\f560"; } - -.fa-check-square:before { - content: "\f14a"; } - -.fa-cheese:before { - content: "\f7ef"; } - -.fa-chess:before { - content: "\f439"; } - -.fa-chess-bishop:before { - content: "\f43a"; } - -.fa-chess-board:before { - content: "\f43c"; } - -.fa-chess-king:before { - content: "\f43f"; } - -.fa-chess-knight:before { - content: "\f441"; } - -.fa-chess-pawn:before { - content: "\f443"; } - -.fa-chess-queen:before { - content: "\f445"; } - -.fa-chess-rook:before { - content: "\f447"; } - -.fa-chevron-circle-down:before { - content: "\f13a"; } - -.fa-chevron-circle-left:before { - content: "\f137"; } - -.fa-chevron-circle-right:before { - content: "\f138"; } - -.fa-chevron-circle-up:before { - content: "\f139"; } - -.fa-chevron-down:before { - content: "\f078"; } - -.fa-chevron-left:before { - content: "\f053"; } - -.fa-chevron-right:before { - content: "\f054"; } - -.fa-chevron-up:before { - content: "\f077"; } - -.fa-child:before { - content: "\f1ae"; } - -.fa-chrome:before { - content: "\f268"; } - -.fa-chromecast:before { - content: "\f838"; } - -.fa-church:before { - content: "\f51d"; } - -.fa-circle:before { - content: "\f111"; } - -.fa-circle-notch:before { - content: "\f1ce"; } - -.fa-city:before { - content: "\f64f"; } - -.fa-clinic-medical:before { - content: "\f7f2"; } - -.fa-clipboard:before { - content: "\f328"; } - -.fa-clipboard-check:before { - content: "\f46c"; } - -.fa-clipboard-list:before { - content: "\f46d"; } - -.fa-clock:before { - content: "\f017"; } - -.fa-clone:before { - content: "\f24d"; } - -.fa-closed-captioning:before { - content: "\f20a"; } - -.fa-cloud:before { - content: "\f0c2"; } - -.fa-cloud-download-alt:before { - content: "\f381"; } - -.fa-cloud-meatball:before { - content: "\f73b"; } - -.fa-cloud-moon:before { - content: "\f6c3"; } - -.fa-cloud-moon-rain:before { - content: "\f73c"; } - -.fa-cloud-rain:before { - content: "\f73d"; } - -.fa-cloud-showers-heavy:before { - content: "\f740"; } - -.fa-cloud-sun:before { - content: "\f6c4"; } - -.fa-cloud-sun-rain:before { - content: "\f743"; } - -.fa-cloud-upload-alt:before { - content: "\f382"; } - -.fa-cloudscale:before { - content: "\f383"; } - -.fa-cloudsmith:before { - content: "\f384"; } - -.fa-cloudversify:before { - content: "\f385"; } - -.fa-cocktail:before { - content: "\f561"; } - -.fa-code:before { - content: "\f121"; } - -.fa-code-branch:before { - content: "\f126"; } - -.fa-codepen:before { - content: "\f1cb"; } - -.fa-codiepie:before { - content: "\f284"; } - -.fa-coffee:before { - content: "\f0f4"; } - -.fa-cog:before { - content: "\f013"; } - -.fa-cogs:before { - content: "\f085"; } - -.fa-coins:before { - content: "\f51e"; } - -.fa-columns:before { - content: "\f0db"; } - -.fa-comment:before { - content: "\f075"; } - -.fa-comment-alt:before { - content: "\f27a"; } - -.fa-comment-dollar:before { - content: "\f651"; } - -.fa-comment-dots:before { - content: "\f4ad"; } - -.fa-comment-medical:before { - content: "\f7f5"; } - -.fa-comment-slash:before { - content: "\f4b3"; } - -.fa-comments:before { - content: "\f086"; } - -.fa-comments-dollar:before { - content: "\f653"; } - -.fa-compact-disc:before { - content: "\f51f"; } - -.fa-compass:before { - content: "\f14e"; } - -.fa-compress:before { - content: "\f066"; } - -.fa-compress-alt:before { - content: "\f422"; } - -.fa-compress-arrows-alt:before { - content: "\f78c"; } - -.fa-concierge-bell:before { - content: "\f562"; } - -.fa-confluence:before { - content: "\f78d"; } - -.fa-connectdevelop:before { - content: "\f20e"; } - -.fa-contao:before { - content: "\f26d"; } - -.fa-cookie:before { - content: "\f563"; } - -.fa-cookie-bite:before { - content: "\f564"; } - -.fa-copy:before { - content: "\f0c5"; } - -.fa-copyright:before { - content: "\f1f9"; } - -.fa-cotton-bureau:before { - content: "\f89e"; } - -.fa-couch:before { - content: "\f4b8"; } - -.fa-cpanel:before { - content: "\f388"; } - -.fa-creative-commons:before { - content: "\f25e"; } - -.fa-creative-commons-by:before { - content: "\f4e7"; } - -.fa-creative-commons-nc:before { - content: "\f4e8"; } - -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; } - -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; } - -.fa-creative-commons-nd:before { - content: "\f4eb"; } - -.fa-creative-commons-pd:before { - content: "\f4ec"; } - -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; } - -.fa-creative-commons-remix:before { - content: "\f4ee"; } - -.fa-creative-commons-sa:before { - content: "\f4ef"; } - -.fa-creative-commons-sampling:before { - content: "\f4f0"; } - -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; } - -.fa-creative-commons-share:before { - content: "\f4f2"; } - -.fa-creative-commons-zero:before { - content: "\f4f3"; } - -.fa-credit-card:before { - content: "\f09d"; } - -.fa-critical-role:before { - content: "\f6c9"; } - -.fa-crop:before { - content: "\f125"; } - -.fa-crop-alt:before { - content: "\f565"; } - -.fa-cross:before { - content: "\f654"; } - -.fa-crosshairs:before { - content: "\f05b"; } - -.fa-crow:before { - content: "\f520"; } - -.fa-crown:before { - content: "\f521"; } - -.fa-crutch:before { - content: "\f7f7"; } - -.fa-css3:before { - content: "\f13c"; } - -.fa-css3-alt:before { - content: "\f38b"; } - -.fa-cube:before { - content: "\f1b2"; } - -.fa-cubes:before { - content: "\f1b3"; } - -.fa-cut:before { - content: "\f0c4"; } - -.fa-cuttlefish:before { - content: "\f38c"; } - -.fa-d-and-d:before { - content: "\f38d"; } - -.fa-d-and-d-beyond:before { - content: "\f6ca"; } - -.fa-dailymotion:before { - content: "\f952"; } - -.fa-dashcube:before { - content: "\f210"; } - -.fa-database:before { - content: "\f1c0"; } - -.fa-deaf:before { - content: "\f2a4"; } - -.fa-deezer:before { - content: "\f977"; } - -.fa-delicious:before { - content: "\f1a5"; } - -.fa-democrat:before { - content: "\f747"; } - -.fa-deploydog:before { - content: "\f38e"; } - -.fa-deskpro:before { - content: "\f38f"; } - -.fa-desktop:before { - content: "\f108"; } - -.fa-dev:before { - content: "\f6cc"; } - -.fa-deviantart:before { - content: "\f1bd"; } - -.fa-dharmachakra:before { - content: "\f655"; } - -.fa-dhl:before { - content: "\f790"; } - -.fa-diagnoses:before { - content: "\f470"; } - -.fa-diaspora:before { - content: "\f791"; } - -.fa-dice:before { - content: "\f522"; } - -.fa-dice-d20:before { - content: "\f6cf"; } - -.fa-dice-d6:before { - content: "\f6d1"; } - -.fa-dice-five:before { - content: "\f523"; } - -.fa-dice-four:before { - content: "\f524"; } - -.fa-dice-one:before { - content: "\f525"; } - -.fa-dice-six:before { - content: "\f526"; } - -.fa-dice-three:before { - content: "\f527"; } - -.fa-dice-two:before { - content: "\f528"; } - -.fa-digg:before { - content: "\f1a6"; } - -.fa-digital-ocean:before { - content: "\f391"; } - -.fa-digital-tachograph:before { - content: "\f566"; } - -.fa-directions:before { - content: "\f5eb"; } - -.fa-discord:before { - content: "\f392"; } - -.fa-discourse:before { - content: "\f393"; } - -.fa-disease:before { - content: "\f7fa"; } - -.fa-divide:before { - content: "\f529"; } - -.fa-dizzy:before { - content: "\f567"; } - -.fa-dna:before { - content: "\f471"; } - -.fa-dochub:before { - content: "\f394"; } - -.fa-docker:before { - content: "\f395"; } - -.fa-dog:before { - content: "\f6d3"; } - -.fa-dollar-sign:before { - content: "\f155"; } - -.fa-dolly:before { - content: "\f472"; } - -.fa-dolly-flatbed:before { - content: "\f474"; } - -.fa-donate:before { - content: "\f4b9"; } - -.fa-door-closed:before { - content: "\f52a"; } - -.fa-door-open:before { - content: "\f52b"; } - -.fa-dot-circle:before { - content: "\f192"; } - -.fa-dove:before { - content: "\f4ba"; } - -.fa-download:before { - content: "\f019"; } - -.fa-draft2digital:before { - content: "\f396"; } - -.fa-drafting-compass:before { - content: "\f568"; } - -.fa-dragon:before { - content: "\f6d5"; } - -.fa-draw-polygon:before { - content: "\f5ee"; } - -.fa-dribbble:before { - content: "\f17d"; } - -.fa-dribbble-square:before { - content: "\f397"; } - -.fa-dropbox:before { - content: "\f16b"; } - -.fa-drum:before { - content: "\f569"; } - -.fa-drum-steelpan:before { - content: "\f56a"; } - -.fa-drumstick-bite:before { - content: "\f6d7"; } - -.fa-drupal:before { - content: "\f1a9"; } - -.fa-dumbbell:before { - content: "\f44b"; } - -.fa-dumpster:before { - content: "\f793"; } - -.fa-dumpster-fire:before { - content: "\f794"; } - -.fa-dungeon:before { - content: "\f6d9"; } - -.fa-dyalog:before { - content: "\f399"; } - -.fa-earlybirds:before { - content: "\f39a"; } - -.fa-ebay:before { - content: "\f4f4"; } - -.fa-edge:before { - content: "\f282"; } - -.fa-edge-legacy:before { - content: "\f978"; } - -.fa-edit:before { - content: "\f044"; } - -.fa-egg:before { - content: "\f7fb"; } - -.fa-eject:before { - content: "\f052"; } - -.fa-elementor:before { - content: "\f430"; } - -.fa-ellipsis-h:before { - content: "\f141"; } - -.fa-ellipsis-v:before { - content: "\f142"; } - -.fa-ello:before { - content: "\f5f1"; } - -.fa-ember:before { - content: "\f423"; } - -.fa-empire:before { - content: "\f1d1"; } - -.fa-envelope:before { - content: "\f0e0"; } - -.fa-envelope-open:before { - content: "\f2b6"; } - -.fa-envelope-open-text:before { - content: "\f658"; } - -.fa-envelope-square:before { - content: "\f199"; } - -.fa-envira:before { - content: "\f299"; } - -.fa-equals:before { - content: "\f52c"; } - -.fa-eraser:before { - content: "\f12d"; } - -.fa-erlang:before { - content: "\f39d"; } - -.fa-ethereum:before { - content: "\f42e"; } - -.fa-ethernet:before { - content: "\f796"; } - -.fa-etsy:before { - content: "\f2d7"; } - -.fa-euro-sign:before { - content: "\f153"; } - -.fa-evernote:before { - content: "\f839"; } - -.fa-exchange-alt:before { - content: "\f362"; } - -.fa-exclamation:before { - content: "\f12a"; } - -.fa-exclamation-circle:before { - content: "\f06a"; } - -.fa-exclamation-triangle:before { - content: "\f071"; } - -.fa-expand:before { - content: "\f065"; } - -.fa-expand-alt:before { - content: "\f424"; } - -.fa-expand-arrows-alt:before { - content: "\f31e"; } - -.fa-expeditedssl:before { - content: "\f23e"; } - -.fa-external-link-alt:before { - content: "\f35d"; } - -.fa-external-link-square-alt:before { - content: "\f360"; } - -.fa-eye:before { - content: "\f06e"; } - -.fa-eye-dropper:before { - content: "\f1fb"; } - -.fa-eye-slash:before { - content: "\f070"; } - -.fa-facebook:before { - content: "\f09a"; } - -.fa-facebook-f:before { - content: "\f39e"; } - -.fa-facebook-messenger:before { - content: "\f39f"; } - -.fa-facebook-square:before { - content: "\f082"; } - -.fa-fan:before { - content: "\f863"; } - -.fa-fantasy-flight-games:before { - content: "\f6dc"; } - -.fa-fast-backward:before { - content: "\f049"; } - -.fa-fast-forward:before { - content: "\f050"; } - -.fa-faucet:before { - content: "\f905"; } - -.fa-fax:before { - content: "\f1ac"; } - -.fa-feather:before { - content: "\f52d"; } - -.fa-feather-alt:before { - content: "\f56b"; } - -.fa-fedex:before { - content: "\f797"; } - -.fa-fedora:before { - content: "\f798"; } - -.fa-female:before { - content: "\f182"; } - -.fa-fighter-jet:before { - content: "\f0fb"; } - -.fa-figma:before { - content: "\f799"; } - -.fa-file:before { - content: "\f15b"; } - -.fa-file-alt:before { - content: "\f15c"; } - -.fa-file-archive:before { - content: "\f1c6"; } - -.fa-file-audio:before { - content: "\f1c7"; } - -.fa-file-code:before { - content: "\f1c9"; } - -.fa-file-contract:before { - content: "\f56c"; } - -.fa-file-csv:before { - content: "\f6dd"; } - -.fa-file-download:before { - content: "\f56d"; } - -.fa-file-excel:before { - content: "\f1c3"; } - -.fa-file-export:before { - content: "\f56e"; } - -.fa-file-image:before { - content: "\f1c5"; } - -.fa-file-import:before { - content: "\f56f"; } - -.fa-file-invoice:before { - content: "\f570"; } - -.fa-file-invoice-dollar:before { - content: "\f571"; } - -.fa-file-medical:before { - content: "\f477"; } - -.fa-file-medical-alt:before { - content: "\f478"; } - -.fa-file-pdf:before { - content: "\f1c1"; } - -.fa-file-powerpoint:before { - content: "\f1c4"; } - -.fa-file-prescription:before { - content: "\f572"; } - -.fa-file-signature:before { - content: "\f573"; } - -.fa-file-upload:before { - content: "\f574"; } - -.fa-file-video:before { - content: "\f1c8"; } - -.fa-file-word:before { - content: "\f1c2"; } - -.fa-fill:before { - content: "\f575"; } - -.fa-fill-drip:before { - content: "\f576"; } - -.fa-film:before { - content: "\f008"; } - -.fa-filter:before { - content: "\f0b0"; } - -.fa-fingerprint:before { - content: "\f577"; } - -.fa-fire:before { - content: "\f06d"; } - -.fa-fire-alt:before { - content: "\f7e4"; } - -.fa-fire-extinguisher:before { - content: "\f134"; } - -.fa-firefox:before { - content: "\f269"; } - -.fa-firefox-browser:before { - content: "\f907"; } - -.fa-first-aid:before { - content: "\f479"; } - -.fa-first-order:before { - content: "\f2b0"; } - -.fa-first-order-alt:before { - content: "\f50a"; } - -.fa-firstdraft:before { - content: "\f3a1"; } - -.fa-fish:before { - content: "\f578"; } - -.fa-fist-raised:before { - content: "\f6de"; } - -.fa-flag:before { - content: "\f024"; } - -.fa-flag-checkered:before { - content: "\f11e"; } - -.fa-flag-usa:before { - content: "\f74d"; } - -.fa-flask:before { - content: "\f0c3"; } - -.fa-flickr:before { - content: "\f16e"; } - -.fa-flipboard:before { - content: "\f44d"; } - -.fa-flushed:before { - content: "\f579"; } - -.fa-fly:before { - content: "\f417"; } - -.fa-folder:before { - content: "\f07b"; } - -.fa-folder-minus:before { - content: "\f65d"; } - -.fa-folder-open:before { - content: "\f07c"; } - -.fa-folder-plus:before { - content: "\f65e"; } - -.fa-font:before { - content: "\f031"; } - -.fa-font-awesome:before { - content: "\f2b4"; } - -.fa-font-awesome-alt:before { - content: "\f35c"; } - -.fa-font-awesome-flag:before { - content: "\f425"; } - -.fa-font-awesome-logo-full:before { - content: "\f4e6"; } - -.fa-fonticons:before { - content: "\f280"; } - -.fa-fonticons-fi:before { - content: "\f3a2"; } - -.fa-football-ball:before { - content: "\f44e"; } - -.fa-fort-awesome:before { - content: "\f286"; } - -.fa-fort-awesome-alt:before { - content: "\f3a3"; } - -.fa-forumbee:before { - content: "\f211"; } - -.fa-forward:before { - content: "\f04e"; } - -.fa-foursquare:before { - content: "\f180"; } - -.fa-free-code-camp:before { - content: "\f2c5"; } - -.fa-freebsd:before { - content: "\f3a4"; } - -.fa-frog:before { - content: "\f52e"; } - -.fa-frown:before { - content: "\f119"; } - -.fa-frown-open:before { - content: "\f57a"; } - -.fa-fulcrum:before { - content: "\f50b"; } - -.fa-funnel-dollar:before { - content: "\f662"; } - -.fa-futbol:before { - content: "\f1e3"; } - -.fa-galactic-republic:before { - content: "\f50c"; } - -.fa-galactic-senate:before { - content: "\f50d"; } - -.fa-gamepad:before { - content: "\f11b"; } - -.fa-gas-pump:before { - content: "\f52f"; } - -.fa-gavel:before { - content: "\f0e3"; } - -.fa-gem:before { - content: "\f3a5"; } - -.fa-genderless:before { - content: "\f22d"; } - -.fa-get-pocket:before { - content: "\f265"; } - -.fa-gg:before { - content: "\f260"; } - -.fa-gg-circle:before { - content: "\f261"; } - -.fa-ghost:before { - content: "\f6e2"; } - -.fa-gift:before { - content: "\f06b"; } - -.fa-gifts:before { - content: "\f79c"; } - -.fa-git:before { - content: "\f1d3"; } - -.fa-git-alt:before { - content: "\f841"; } - -.fa-git-square:before { - content: "\f1d2"; } - -.fa-github:before { - content: "\f09b"; } - -.fa-github-alt:before { - content: "\f113"; } - -.fa-github-square:before { - content: "\f092"; } - -.fa-gitkraken:before { - content: "\f3a6"; } - -.fa-gitlab:before { - content: "\f296"; } - -.fa-gitter:before { - content: "\f426"; } - -.fa-glass-cheers:before { - content: "\f79f"; } - -.fa-glass-martini:before { - content: "\f000"; } - -.fa-glass-martini-alt:before { - content: "\f57b"; } - -.fa-glass-whiskey:before { - content: "\f7a0"; } - -.fa-glasses:before { - content: "\f530"; } - -.fa-glide:before { - content: "\f2a5"; } - -.fa-glide-g:before { - content: "\f2a6"; } - -.fa-globe:before { - content: "\f0ac"; } - -.fa-globe-africa:before { - content: "\f57c"; } - -.fa-globe-americas:before { - content: "\f57d"; } - -.fa-globe-asia:before { - content: "\f57e"; } - -.fa-globe-europe:before { - content: "\f7a2"; } - -.fa-gofore:before { - content: "\f3a7"; } - -.fa-golf-ball:before { - content: "\f450"; } - -.fa-goodreads:before { - content: "\f3a8"; } - -.fa-goodreads-g:before { - content: "\f3a9"; } - -.fa-google:before { - content: "\f1a0"; } - -.fa-google-drive:before { - content: "\f3aa"; } - -.fa-google-pay:before { - content: "\f979"; } - -.fa-google-play:before { - content: "\f3ab"; } - -.fa-google-plus:before { - content: "\f2b3"; } - -.fa-google-plus-g:before { - content: "\f0d5"; } - -.fa-google-plus-square:before { - content: "\f0d4"; } - -.fa-google-wallet:before { - content: "\f1ee"; } - -.fa-gopuram:before { - content: "\f664"; } - -.fa-graduation-cap:before { - content: "\f19d"; } - -.fa-gratipay:before { - content: "\f184"; } - -.fa-grav:before { - content: "\f2d6"; } - -.fa-greater-than:before { - content: "\f531"; } - -.fa-greater-than-equal:before { - content: "\f532"; } - -.fa-grimace:before { - content: "\f57f"; } - -.fa-grin:before { - content: "\f580"; } - -.fa-grin-alt:before { - content: "\f581"; } - -.fa-grin-beam:before { - content: "\f582"; } - -.fa-grin-beam-sweat:before { - content: "\f583"; } - -.fa-grin-hearts:before { - content: "\f584"; } - -.fa-grin-squint:before { - content: "\f585"; } - -.fa-grin-squint-tears:before { - content: "\f586"; } - -.fa-grin-stars:before { - content: "\f587"; } - -.fa-grin-tears:before { - content: "\f588"; } - -.fa-grin-tongue:before { - content: "\f589"; } - -.fa-grin-tongue-squint:before { - content: "\f58a"; } - -.fa-grin-tongue-wink:before { - content: "\f58b"; } - -.fa-grin-wink:before { - content: "\f58c"; } - -.fa-grip-horizontal:before { - content: "\f58d"; } - -.fa-grip-lines:before { - content: "\f7a4"; } - -.fa-grip-lines-vertical:before { - content: "\f7a5"; } - -.fa-grip-vertical:before { - content: "\f58e"; } - -.fa-gripfire:before { - content: "\f3ac"; } - -.fa-grunt:before { - content: "\f3ad"; } - -.fa-guitar:before { - content: "\f7a6"; } - -.fa-gulp:before { - content: "\f3ae"; } - -.fa-h-square:before { - content: "\f0fd"; } - -.fa-hacker-news:before { - content: "\f1d4"; } - -.fa-hacker-news-square:before { - content: "\f3af"; } - -.fa-hackerrank:before { - content: "\f5f7"; } - -.fa-hamburger:before { - content: "\f805"; } - -.fa-hammer:before { - content: "\f6e3"; } - -.fa-hamsa:before { - content: "\f665"; } - -.fa-hand-holding:before { - content: "\f4bd"; } - -.fa-hand-holding-heart:before { - content: "\f4be"; } - -.fa-hand-holding-medical:before { - content: "\f95c"; } - -.fa-hand-holding-usd:before { - content: "\f4c0"; } - -.fa-hand-holding-water:before { - content: "\f4c1"; } - -.fa-hand-lizard:before { - content: "\f258"; } - -.fa-hand-middle-finger:before { - content: "\f806"; } - -.fa-hand-paper:before { - content: "\f256"; } - -.fa-hand-peace:before { - content: "\f25b"; } - -.fa-hand-point-down:before { - content: "\f0a7"; } - -.fa-hand-point-left:before { - content: "\f0a5"; } - -.fa-hand-point-right:before { - content: "\f0a4"; } - -.fa-hand-point-up:before { - content: "\f0a6"; } - -.fa-hand-pointer:before { - content: "\f25a"; } - -.fa-hand-rock:before { - content: "\f255"; } - -.fa-hand-scissors:before { - content: "\f257"; } - -.fa-hand-sparkles:before { - content: "\f95d"; } - -.fa-hand-spock:before { - content: "\f259"; } - -.fa-hands:before { - content: "\f4c2"; } - -.fa-hands-helping:before { - content: "\f4c4"; } - -.fa-hands-wash:before { - content: "\f95e"; } - -.fa-handshake:before { - content: "\f2b5"; } - -.fa-handshake-alt-slash:before { - content: "\f95f"; } - -.fa-handshake-slash:before { - content: "\f960"; } - -.fa-hanukiah:before { - content: "\f6e6"; } - -.fa-hard-hat:before { - content: "\f807"; } - -.fa-hashtag:before { - content: "\f292"; } - -.fa-hat-cowboy:before { - content: "\f8c0"; } - -.fa-hat-cowboy-side:before { - content: "\f8c1"; } - -.fa-hat-wizard:before { - content: "\f6e8"; } - -.fa-hdd:before { - content: "\f0a0"; } - -.fa-head-side-cough:before { - content: "\f961"; } - -.fa-head-side-cough-slash:before { - content: "\f962"; } - -.fa-head-side-mask:before { - content: "\f963"; } - -.fa-head-side-virus:before { - content: "\f964"; } - -.fa-heading:before { - content: "\f1dc"; } - -.fa-headphones:before { - content: "\f025"; } - -.fa-headphones-alt:before { - content: "\f58f"; } - -.fa-headset:before { - content: "\f590"; } - -.fa-heart:before { - content: "\f004"; } - -.fa-heart-broken:before { - content: "\f7a9"; } - -.fa-heartbeat:before { - content: "\f21e"; } - -.fa-helicopter:before { - content: "\f533"; } - -.fa-highlighter:before { - content: "\f591"; } - -.fa-hiking:before { - content: "\f6ec"; } - -.fa-hippo:before { - content: "\f6ed"; } - -.fa-hips:before { - content: "\f452"; } - -.fa-hire-a-helper:before { - content: "\f3b0"; } - -.fa-history:before { - content: "\f1da"; } - -.fa-hockey-puck:before { - content: "\f453"; } - -.fa-holly-berry:before { - content: "\f7aa"; } - -.fa-home:before { - content: "\f015"; } - -.fa-hooli:before { - content: "\f427"; } - -.fa-hornbill:before { - content: "\f592"; } - -.fa-horse:before { - content: "\f6f0"; } - -.fa-horse-head:before { - content: "\f7ab"; } - -.fa-hospital:before { - content: "\f0f8"; } - -.fa-hospital-alt:before { - content: "\f47d"; } - -.fa-hospital-symbol:before { - content: "\f47e"; } - -.fa-hospital-user:before { - content: "\f80d"; } - -.fa-hot-tub:before { - content: "\f593"; } - -.fa-hotdog:before { - content: "\f80f"; } - -.fa-hotel:before { - content: "\f594"; } - -.fa-hotjar:before { - content: "\f3b1"; } - -.fa-hourglass:before { - content: "\f254"; } - -.fa-hourglass-end:before { - content: "\f253"; } - -.fa-hourglass-half:before { - content: "\f252"; } - -.fa-hourglass-start:before { - content: "\f251"; } - -.fa-house-damage:before { - content: "\f6f1"; } - -.fa-house-user:before { - content: "\f965"; } - -.fa-houzz:before { - content: "\f27c"; } - -.fa-hryvnia:before { - content: "\f6f2"; } - -.fa-html5:before { - content: "\f13b"; } - -.fa-hubspot:before { - content: "\f3b2"; } - -.fa-i-cursor:before { - content: "\f246"; } - -.fa-ice-cream:before { - content: "\f810"; } - -.fa-icicles:before { - content: "\f7ad"; } - -.fa-icons:before { - content: "\f86d"; } - -.fa-id-badge:before { - content: "\f2c1"; } - -.fa-id-card:before { - content: "\f2c2"; } - -.fa-id-card-alt:before { - content: "\f47f"; } - -.fa-ideal:before { - content: "\f913"; } - -.fa-igloo:before { - content: "\f7ae"; } - -.fa-image:before { - content: "\f03e"; } - -.fa-images:before { - content: "\f302"; } - -.fa-imdb:before { - content: "\f2d8"; } - -.fa-inbox:before { - content: "\f01c"; } - -.fa-indent:before { - content: "\f03c"; } - -.fa-industry:before { - content: "\f275"; } - -.fa-infinity:before { - content: "\f534"; } - -.fa-info:before { - content: "\f129"; } - -.fa-info-circle:before { - content: "\f05a"; } - -.fa-instagram:before { - content: "\f16d"; } - -.fa-instagram-square:before { - content: "\f955"; } - -.fa-intercom:before { - content: "\f7af"; } - -.fa-internet-explorer:before { - content: "\f26b"; } - -.fa-invision:before { - content: "\f7b0"; } - -.fa-ioxhost:before { - content: "\f208"; } - -.fa-italic:before { - content: "\f033"; } - -.fa-itch-io:before { - content: "\f83a"; } - -.fa-itunes:before { - content: "\f3b4"; } - -.fa-itunes-note:before { - content: "\f3b5"; } - -.fa-java:before { - content: "\f4e4"; } - -.fa-jedi:before { - content: "\f669"; } - -.fa-jedi-order:before { - content: "\f50e"; } - -.fa-jenkins:before { - content: "\f3b6"; } - -.fa-jira:before { - content: "\f7b1"; } - -.fa-joget:before { - content: "\f3b7"; } - -.fa-joint:before { - content: "\f595"; } - -.fa-joomla:before { - content: "\f1aa"; } - -.fa-journal-whills:before { - content: "\f66a"; } - -.fa-js:before { - content: "\f3b8"; } - -.fa-js-square:before { - content: "\f3b9"; } - -.fa-jsfiddle:before { - content: "\f1cc"; } - -.fa-kaaba:before { - content: "\f66b"; } - -.fa-kaggle:before { - content: "\f5fa"; } - -.fa-key:before { - content: "\f084"; } - -.fa-keybase:before { - content: "\f4f5"; } - -.fa-keyboard:before { - content: "\f11c"; } - -.fa-keycdn:before { - content: "\f3ba"; } - -.fa-khanda:before { - content: "\f66d"; } - -.fa-kickstarter:before { - content: "\f3bb"; } - -.fa-kickstarter-k:before { - content: "\f3bc"; } - -.fa-kiss:before { - content: "\f596"; } - -.fa-kiss-beam:before { - content: "\f597"; } - -.fa-kiss-wink-heart:before { - content: "\f598"; } - -.fa-kiwi-bird:before { - content: "\f535"; } - -.fa-korvue:before { - content: "\f42f"; } - -.fa-landmark:before { - content: "\f66f"; } - -.fa-language:before { - content: "\f1ab"; } - -.fa-laptop:before { - content: "\f109"; } - -.fa-laptop-code:before { - content: "\f5fc"; } - -.fa-laptop-house:before { - content: "\f966"; } - -.fa-laptop-medical:before { - content: "\f812"; } - -.fa-laravel:before { - content: "\f3bd"; } - -.fa-lastfm:before { - content: "\f202"; } - -.fa-lastfm-square:before { - content: "\f203"; } - -.fa-laugh:before { - content: "\f599"; } - -.fa-laugh-beam:before { - content: "\f59a"; } - -.fa-laugh-squint:before { - content: "\f59b"; } - -.fa-laugh-wink:before { - content: "\f59c"; } - -.fa-layer-group:before { - content: "\f5fd"; } - -.fa-leaf:before { - content: "\f06c"; } - -.fa-leanpub:before { - content: "\f212"; } - -.fa-lemon:before { - content: "\f094"; } - -.fa-less:before { - content: "\f41d"; } - -.fa-less-than:before { - content: "\f536"; } - -.fa-less-than-equal:before { - content: "\f537"; } - -.fa-level-down-alt:before { - content: "\f3be"; } - -.fa-level-up-alt:before { - content: "\f3bf"; } - -.fa-life-ring:before { - content: "\f1cd"; } - -.fa-lightbulb:before { - content: "\f0eb"; } - -.fa-line:before { - content: "\f3c0"; } - -.fa-link:before { - content: "\f0c1"; } - -.fa-linkedin:before { - content: "\f08c"; } - -.fa-linkedin-in:before { - content: "\f0e1"; } - -.fa-linode:before { - content: "\f2b8"; } - -.fa-linux:before { - content: "\f17c"; } - -.fa-lira-sign:before { - content: "\f195"; } - -.fa-list:before { - content: "\f03a"; } - -.fa-list-alt:before { - content: "\f022"; } - -.fa-list-ol:before { - content: "\f0cb"; } - -.fa-list-ul:before { - content: "\f0ca"; } - -.fa-location-arrow:before { - content: "\f124"; } - -.fa-lock:before { - content: "\f023"; } - -.fa-lock-open:before { - content: "\f3c1"; } - -.fa-long-arrow-alt-down:before { - content: "\f309"; } - -.fa-long-arrow-alt-left:before { - content: "\f30a"; } - -.fa-long-arrow-alt-right:before { - content: "\f30b"; } - -.fa-long-arrow-alt-up:before { - content: "\f30c"; } - -.fa-low-vision:before { - content: "\f2a8"; } - -.fa-luggage-cart:before { - content: "\f59d"; } - -.fa-lungs:before { - content: "\f604"; } - -.fa-lungs-virus:before { - content: "\f967"; } - -.fa-lyft:before { - content: "\f3c3"; } - -.fa-magento:before { - content: "\f3c4"; } - -.fa-magic:before { - content: "\f0d0"; } - -.fa-magnet:before { - content: "\f076"; } - -.fa-mail-bulk:before { - content: "\f674"; } - -.fa-mailchimp:before { - content: "\f59e"; } - -.fa-male:before { - content: "\f183"; } - -.fa-mandalorian:before { - content: "\f50f"; } - -.fa-map:before { - content: "\f279"; } - -.fa-map-marked:before { - content: "\f59f"; } - -.fa-map-marked-alt:before { - content: "\f5a0"; } - -.fa-map-marker:before { - content: "\f041"; } - -.fa-map-marker-alt:before { - content: "\f3c5"; } - -.fa-map-pin:before { - content: "\f276"; } - -.fa-map-signs:before { - content: "\f277"; } - -.fa-markdown:before { - content: "\f60f"; } - -.fa-marker:before { - content: "\f5a1"; } - -.fa-mars:before { - content: "\f222"; } - -.fa-mars-double:before { - content: "\f227"; } - -.fa-mars-stroke:before { - content: "\f229"; } - -.fa-mars-stroke-h:before { - content: "\f22b"; } - -.fa-mars-stroke-v:before { - content: "\f22a"; } - -.fa-mask:before { - content: "\f6fa"; } - -.fa-mastodon:before { - content: "\f4f6"; } - -.fa-maxcdn:before { - content: "\f136"; } - -.fa-mdb:before { - content: "\f8ca"; } - -.fa-medal:before { - content: "\f5a2"; } - -.fa-medapps:before { - content: "\f3c6"; } - -.fa-medium:before { - content: "\f23a"; } - -.fa-medium-m:before { - content: "\f3c7"; } - -.fa-medkit:before { - content: "\f0fa"; } - -.fa-medrt:before { - content: "\f3c8"; } - -.fa-meetup:before { - content: "\f2e0"; } - -.fa-megaport:before { - content: "\f5a3"; } - -.fa-meh:before { - content: "\f11a"; } - -.fa-meh-blank:before { - content: "\f5a4"; } - -.fa-meh-rolling-eyes:before { - content: "\f5a5"; } - -.fa-memory:before { - content: "\f538"; } - -.fa-mendeley:before { - content: "\f7b3"; } - -.fa-menorah:before { - content: "\f676"; } - -.fa-mercury:before { - content: "\f223"; } - -.fa-meteor:before { - content: "\f753"; } - -.fa-microblog:before { - content: "\f91a"; } - -.fa-microchip:before { - content: "\f2db"; } - -.fa-microphone:before { - content: "\f130"; } - -.fa-microphone-alt:before { - content: "\f3c9"; } - -.fa-microphone-alt-slash:before { - content: "\f539"; } - -.fa-microphone-slash:before { - content: "\f131"; } - -.fa-microscope:before { - content: "\f610"; } - -.fa-microsoft:before { - content: "\f3ca"; } - -.fa-minus:before { - content: "\f068"; } - -.fa-minus-circle:before { - content: "\f056"; } - -.fa-minus-square:before { - content: "\f146"; } - -.fa-mitten:before { - content: "\f7b5"; } - -.fa-mix:before { - content: "\f3cb"; } - -.fa-mixcloud:before { - content: "\f289"; } - -.fa-mixer:before { - content: "\f956"; } - -.fa-mizuni:before { - content: "\f3cc"; } - -.fa-mobile:before { - content: "\f10b"; } - -.fa-mobile-alt:before { - content: "\f3cd"; } - -.fa-modx:before { - content: "\f285"; } - -.fa-monero:before { - content: "\f3d0"; } - -.fa-money-bill:before { - content: "\f0d6"; } - -.fa-money-bill-alt:before { - content: "\f3d1"; } - -.fa-money-bill-wave:before { - content: "\f53a"; } - -.fa-money-bill-wave-alt:before { - content: "\f53b"; } - -.fa-money-check:before { - content: "\f53c"; } - -.fa-money-check-alt:before { - content: "\f53d"; } - -.fa-monument:before { - content: "\f5a6"; } - -.fa-moon:before { - content: "\f186"; } - -.fa-mortar-pestle:before { - content: "\f5a7"; } - -.fa-mosque:before { - content: "\f678"; } - -.fa-motorcycle:before { - content: "\f21c"; } - -.fa-mountain:before { - content: "\f6fc"; } - -.fa-mouse:before { - content: "\f8cc"; } - -.fa-mouse-pointer:before { - content: "\f245"; } - -.fa-mug-hot:before { - content: "\f7b6"; } - -.fa-music:before { - content: "\f001"; } - -.fa-napster:before { - content: "\f3d2"; } - -.fa-neos:before { - content: "\f612"; } - -.fa-network-wired:before { - content: "\f6ff"; } - -.fa-neuter:before { - content: "\f22c"; } - -.fa-newspaper:before { - content: "\f1ea"; } - -.fa-nimblr:before { - content: "\f5a8"; } - -.fa-node:before { - content: "\f419"; } - -.fa-node-js:before { - content: "\f3d3"; } - -.fa-not-equal:before { - content: "\f53e"; } - -.fa-notes-medical:before { - content: "\f481"; } - -.fa-npm:before { - content: "\f3d4"; } - -.fa-ns8:before { - content: "\f3d5"; } - -.fa-nutritionix:before { - content: "\f3d6"; } - -.fa-object-group:before { - content: "\f247"; } - -.fa-object-ungroup:before { - content: "\f248"; } - -.fa-odnoklassniki:before { - content: "\f263"; } - -.fa-odnoklassniki-square:before { - content: "\f264"; } - -.fa-oil-can:before { - content: "\f613"; } - -.fa-old-republic:before { - content: "\f510"; } - -.fa-om:before { - content: "\f679"; } - -.fa-opencart:before { - content: "\f23d"; } - -.fa-openid:before { - content: "\f19b"; } - -.fa-opera:before { - content: "\f26a"; } - -.fa-optin-monster:before { - content: "\f23c"; } - -.fa-orcid:before { - content: "\f8d2"; } - -.fa-osi:before { - content: "\f41a"; } - -.fa-otter:before { - content: "\f700"; } - -.fa-outdent:before { - content: "\f03b"; } - -.fa-page4:before { - content: "\f3d7"; } - -.fa-pagelines:before { - content: "\f18c"; } - -.fa-pager:before { - content: "\f815"; } - -.fa-paint-brush:before { - content: "\f1fc"; } - -.fa-paint-roller:before { - content: "\f5aa"; } - -.fa-palette:before { - content: "\f53f"; } - -.fa-palfed:before { - content: "\f3d8"; } - -.fa-pallet:before { - content: "\f482"; } - -.fa-paper-plane:before { - content: "\f1d8"; } - -.fa-paperclip:before { - content: "\f0c6"; } - -.fa-parachute-box:before { - content: "\f4cd"; } - -.fa-paragraph:before { - content: "\f1dd"; } - -.fa-parking:before { - content: "\f540"; } - -.fa-passport:before { - content: "\f5ab"; } - -.fa-pastafarianism:before { - content: "\f67b"; } - -.fa-paste:before { - content: "\f0ea"; } - -.fa-patreon:before { - content: "\f3d9"; } - -.fa-pause:before { - content: "\f04c"; } - -.fa-pause-circle:before { - content: "\f28b"; } - -.fa-paw:before { - content: "\f1b0"; } - -.fa-paypal:before { - content: "\f1ed"; } - -.fa-peace:before { - content: "\f67c"; } - -.fa-pen:before { - content: "\f304"; } - -.fa-pen-alt:before { - content: "\f305"; } - -.fa-pen-fancy:before { - content: "\f5ac"; } - -.fa-pen-nib:before { - content: "\f5ad"; } - -.fa-pen-square:before { - content: "\f14b"; } - -.fa-pencil-alt:before { - content: "\f303"; } - -.fa-pencil-ruler:before { - content: "\f5ae"; } - -.fa-penny-arcade:before { - content: "\f704"; } - -.fa-people-arrows:before { - content: "\f968"; } - -.fa-people-carry:before { - content: "\f4ce"; } - -.fa-pepper-hot:before { - content: "\f816"; } - -.fa-percent:before { - content: "\f295"; } - -.fa-percentage:before { - content: "\f541"; } - -.fa-periscope:before { - content: "\f3da"; } - -.fa-person-booth:before { - content: "\f756"; } - -.fa-phabricator:before { - content: "\f3db"; } - -.fa-phoenix-framework:before { - content: "\f3dc"; } - -.fa-phoenix-squadron:before { - content: "\f511"; } - -.fa-phone:before { - content: "\f095"; } - -.fa-phone-alt:before { - content: "\f879"; } - -.fa-phone-slash:before { - content: "\f3dd"; } - -.fa-phone-square:before { - content: "\f098"; } - -.fa-phone-square-alt:before { - content: "\f87b"; } - -.fa-phone-volume:before { - content: "\f2a0"; } - -.fa-photo-video:before { - content: "\f87c"; } - -.fa-php:before { - content: "\f457"; } - -.fa-pied-piper:before { - content: "\f2ae"; } - -.fa-pied-piper-alt:before { - content: "\f1a8"; } - -.fa-pied-piper-hat:before { - content: "\f4e5"; } - -.fa-pied-piper-pp:before { - content: "\f1a7"; } - -.fa-pied-piper-square:before { - content: "\f91e"; } - -.fa-piggy-bank:before { - content: "\f4d3"; } - -.fa-pills:before { - content: "\f484"; } - -.fa-pinterest:before { - content: "\f0d2"; } - -.fa-pinterest-p:before { - content: "\f231"; } - -.fa-pinterest-square:before { - content: "\f0d3"; } - -.fa-pizza-slice:before { - content: "\f818"; } - -.fa-place-of-worship:before { - content: "\f67f"; } - -.fa-plane:before { - content: "\f072"; } - -.fa-plane-arrival:before { - content: "\f5af"; } - -.fa-plane-departure:before { - content: "\f5b0"; } - -.fa-plane-slash:before { - content: "\f969"; } - -.fa-play:before { - content: "\f04b"; } - -.fa-play-circle:before { - content: "\f144"; } - -.fa-playstation:before { - content: "\f3df"; } - -.fa-plug:before { - content: "\f1e6"; } - -.fa-plus:before { - content: "\f067"; } - -.fa-plus-circle:before { - content: "\f055"; } - -.fa-plus-square:before { - content: "\f0fe"; } - -.fa-podcast:before { - content: "\f2ce"; } - -.fa-poll:before { - content: "\f681"; } - -.fa-poll-h:before { - content: "\f682"; } - -.fa-poo:before { - content: "\f2fe"; } - -.fa-poo-storm:before { - content: "\f75a"; } - -.fa-poop:before { - content: "\f619"; } - -.fa-portrait:before { - content: "\f3e0"; } - -.fa-pound-sign:before { - content: "\f154"; } - -.fa-power-off:before { - content: "\f011"; } - -.fa-pray:before { - content: "\f683"; } - -.fa-praying-hands:before { - content: "\f684"; } - -.fa-prescription:before { - content: "\f5b1"; } - -.fa-prescription-bottle:before { - content: "\f485"; } - -.fa-prescription-bottle-alt:before { - content: "\f486"; } - -.fa-print:before { - content: "\f02f"; } - -.fa-procedures:before { - content: "\f487"; } - -.fa-product-hunt:before { - content: "\f288"; } - -.fa-project-diagram:before { - content: "\f542"; } - -.fa-pump-medical:before { - content: "\f96a"; } - -.fa-pump-soap:before { - content: "\f96b"; } - -.fa-pushed:before { - content: "\f3e1"; } - -.fa-puzzle-piece:before { - content: "\f12e"; } - -.fa-python:before { - content: "\f3e2"; } - -.fa-qq:before { - content: "\f1d6"; } - -.fa-qrcode:before { - content: "\f029"; } - -.fa-question:before { - content: "\f128"; } - -.fa-question-circle:before { - content: "\f059"; } - -.fa-quidditch:before { - content: "\f458"; } - -.fa-quinscape:before { - content: "\f459"; } - -.fa-quora:before { - content: "\f2c4"; } - -.fa-quote-left:before { - content: "\f10d"; } - -.fa-quote-right:before { - content: "\f10e"; } - -.fa-quran:before { - content: "\f687"; } - -.fa-r-project:before { - content: "\f4f7"; } - -.fa-radiation:before { - content: "\f7b9"; } - -.fa-radiation-alt:before { - content: "\f7ba"; } - -.fa-rainbow:before { - content: "\f75b"; } - -.fa-random:before { - content: "\f074"; } - -.fa-raspberry-pi:before { - content: "\f7bb"; } - -.fa-ravelry:before { - content: "\f2d9"; } - -.fa-react:before { - content: "\f41b"; } - -.fa-reacteurope:before { - content: "\f75d"; } - -.fa-readme:before { - content: "\f4d5"; } - -.fa-rebel:before { - content: "\f1d0"; } - -.fa-receipt:before { - content: "\f543"; } - -.fa-record-vinyl:before { - content: "\f8d9"; } - -.fa-recycle:before { - content: "\f1b8"; } - -.fa-red-river:before { - content: "\f3e3"; } - -.fa-reddit:before { - content: "\f1a1"; } - -.fa-reddit-alien:before { - content: "\f281"; } - -.fa-reddit-square:before { - content: "\f1a2"; } - -.fa-redhat:before { - content: "\f7bc"; } - -.fa-redo:before { - content: "\f01e"; } - -.fa-redo-alt:before { - content: "\f2f9"; } - -.fa-registered:before { - content: "\f25d"; } - -.fa-remove-format:before { - content: "\f87d"; } - -.fa-renren:before { - content: "\f18b"; } - -.fa-reply:before { - content: "\f3e5"; } - -.fa-reply-all:before { - content: "\f122"; } - -.fa-replyd:before { - content: "\f3e6"; } - -.fa-republican:before { - content: "\f75e"; } - -.fa-researchgate:before { - content: "\f4f8"; } - -.fa-resolving:before { - content: "\f3e7"; } - -.fa-restroom:before { - content: "\f7bd"; } - -.fa-retweet:before { - content: "\f079"; } - -.fa-rev:before { - content: "\f5b2"; } - -.fa-ribbon:before { - content: "\f4d6"; } - -.fa-ring:before { - content: "\f70b"; } - -.fa-road:before { - content: "\f018"; } - -.fa-robot:before { - content: "\f544"; } - -.fa-rocket:before { - content: "\f135"; } - -.fa-rocketchat:before { - content: "\f3e8"; } - -.fa-rockrms:before { - content: "\f3e9"; } - -.fa-route:before { - content: "\f4d7"; } - -.fa-rss:before { - content: "\f09e"; } - -.fa-rss-square:before { - content: "\f143"; } - -.fa-ruble-sign:before { - content: "\f158"; } - -.fa-ruler:before { - content: "\f545"; } - -.fa-ruler-combined:before { - content: "\f546"; } - -.fa-ruler-horizontal:before { - content: "\f547"; } - -.fa-ruler-vertical:before { - content: "\f548"; } - -.fa-running:before { - content: "\f70c"; } - -.fa-rupee-sign:before { - content: "\f156"; } - -.fa-rust:before { - content: "\f97a"; } - -.fa-sad-cry:before { - content: "\f5b3"; } - -.fa-sad-tear:before { - content: "\f5b4"; } - -.fa-safari:before { - content: "\f267"; } - -.fa-salesforce:before { - content: "\f83b"; } - -.fa-sass:before { - content: "\f41e"; } - -.fa-satellite:before { - content: "\f7bf"; } - -.fa-satellite-dish:before { - content: "\f7c0"; } - -.fa-save:before { - content: "\f0c7"; } - -.fa-schlix:before { - content: "\f3ea"; } - -.fa-school:before { - content: "\f549"; } - -.fa-screwdriver:before { - content: "\f54a"; } - -.fa-scribd:before { - content: "\f28a"; } - -.fa-scroll:before { - content: "\f70e"; } - -.fa-sd-card:before { - content: "\f7c2"; } - -.fa-search:before { - content: "\f002"; } - -.fa-search-dollar:before { - content: "\f688"; } - -.fa-search-location:before { - content: "\f689"; } - -.fa-search-minus:before { - content: "\f010"; } - -.fa-search-plus:before { - content: "\f00e"; } - -.fa-searchengin:before { - content: "\f3eb"; } - -.fa-seedling:before { - content: "\f4d8"; } - -.fa-sellcast:before { - content: "\f2da"; } - -.fa-sellsy:before { - content: "\f213"; } - -.fa-server:before { - content: "\f233"; } - -.fa-servicestack:before { - content: "\f3ec"; } - -.fa-shapes:before { - content: "\f61f"; } - -.fa-share:before { - content: "\f064"; } - -.fa-share-alt:before { - content: "\f1e0"; } - -.fa-share-alt-square:before { - content: "\f1e1"; } - -.fa-share-square:before { - content: "\f14d"; } - -.fa-shekel-sign:before { - content: "\f20b"; } - -.fa-shield-alt:before { - content: "\f3ed"; } - -.fa-shield-virus:before { - content: "\f96c"; } - -.fa-ship:before { - content: "\f21a"; } - -.fa-shipping-fast:before { - content: "\f48b"; } - -.fa-shirtsinbulk:before { - content: "\f214"; } - -.fa-shoe-prints:before { - content: "\f54b"; } - -.fa-shopify:before { - content: "\f957"; } - -.fa-shopping-bag:before { - content: "\f290"; } - -.fa-shopping-basket:before { - content: "\f291"; } - -.fa-shopping-cart:before { - content: "\f07a"; } - -.fa-shopware:before { - content: "\f5b5"; } - -.fa-shower:before { - content: "\f2cc"; } - -.fa-shuttle-van:before { - content: "\f5b6"; } - -.fa-sign:before { - content: "\f4d9"; } - -.fa-sign-in-alt:before { - content: "\f2f6"; } - -.fa-sign-language:before { - content: "\f2a7"; } - -.fa-sign-out-alt:before { - content: "\f2f5"; } - -.fa-signal:before { - content: "\f012"; } - -.fa-signature:before { - content: "\f5b7"; } - -.fa-sim-card:before { - content: "\f7c4"; } - -.fa-simplybuilt:before { - content: "\f215"; } - -.fa-sink:before { - content: "\f96d"; } - -.fa-sistrix:before { - content: "\f3ee"; } - -.fa-sitemap:before { - content: "\f0e8"; } - -.fa-sith:before { - content: "\f512"; } - -.fa-skating:before { - content: "\f7c5"; } - -.fa-sketch:before { - content: "\f7c6"; } - -.fa-skiing:before { - content: "\f7c9"; } - -.fa-skiing-nordic:before { - content: "\f7ca"; } - -.fa-skull:before { - content: "\f54c"; } - -.fa-skull-crossbones:before { - content: "\f714"; } - -.fa-skyatlas:before { - content: "\f216"; } - -.fa-skype:before { - content: "\f17e"; } - -.fa-slack:before { - content: "\f198"; } - -.fa-slack-hash:before { - content: "\f3ef"; } - -.fa-slash:before { - content: "\f715"; } - -.fa-sleigh:before { - content: "\f7cc"; } - -.fa-sliders-h:before { - content: "\f1de"; } - -.fa-slideshare:before { - content: "\f1e7"; } - -.fa-smile:before { - content: "\f118"; } - -.fa-smile-beam:before { - content: "\f5b8"; } - -.fa-smile-wink:before { - content: "\f4da"; } - -.fa-smog:before { - content: "\f75f"; } - -.fa-smoking:before { - content: "\f48d"; } - -.fa-smoking-ban:before { - content: "\f54d"; } - -.fa-sms:before { - content: "\f7cd"; } - -.fa-snapchat:before { - content: "\f2ab"; } - -.fa-snapchat-ghost:before { - content: "\f2ac"; } - -.fa-snapchat-square:before { - content: "\f2ad"; } - -.fa-snowboarding:before { - content: "\f7ce"; } - -.fa-snowflake:before { - content: "\f2dc"; } - -.fa-snowman:before { - content: "\f7d0"; } - -.fa-snowplow:before { - content: "\f7d2"; } - -.fa-soap:before { - content: "\f96e"; } - -.fa-socks:before { - content: "\f696"; } - -.fa-solar-panel:before { - content: "\f5ba"; } - -.fa-sort:before { - content: "\f0dc"; } - -.fa-sort-alpha-down:before { - content: "\f15d"; } - -.fa-sort-alpha-down-alt:before { - content: "\f881"; } - -.fa-sort-alpha-up:before { - content: "\f15e"; } - -.fa-sort-alpha-up-alt:before { - content: "\f882"; } - -.fa-sort-amount-down:before { - content: "\f160"; } - -.fa-sort-amount-down-alt:before { - content: "\f884"; } - -.fa-sort-amount-up:before { - content: "\f161"; } - -.fa-sort-amount-up-alt:before { - content: "\f885"; } - -.fa-sort-down:before { - content: "\f0dd"; } - -.fa-sort-numeric-down:before { - content: "\f162"; } - -.fa-sort-numeric-down-alt:before { - content: "\f886"; } - -.fa-sort-numeric-up:before { - content: "\f163"; } - -.fa-sort-numeric-up-alt:before { - content: "\f887"; } - -.fa-sort-up:before { - content: "\f0de"; } - -.fa-soundcloud:before { - content: "\f1be"; } - -.fa-sourcetree:before { - content: "\f7d3"; } - -.fa-spa:before { - content: "\f5bb"; } - -.fa-space-shuttle:before { - content: "\f197"; } - -.fa-speakap:before { - content: "\f3f3"; } - -.fa-speaker-deck:before { - content: "\f83c"; } - -.fa-spell-check:before { - content: "\f891"; } - -.fa-spider:before { - content: "\f717"; } - -.fa-spinner:before { - content: "\f110"; } - -.fa-splotch:before { - content: "\f5bc"; } - -.fa-spotify:before { - content: "\f1bc"; } - -.fa-spray-can:before { - content: "\f5bd"; } - -.fa-square:before { - content: "\f0c8"; } - -.fa-square-full:before { - content: "\f45c"; } - -.fa-square-root-alt:before { - content: "\f698"; } - -.fa-squarespace:before { - content: "\f5be"; } - -.fa-stack-exchange:before { - content: "\f18d"; } - -.fa-stack-overflow:before { - content: "\f16c"; } - -.fa-stackpath:before { - content: "\f842"; } - -.fa-stamp:before { - content: "\f5bf"; } - -.fa-star:before { - content: "\f005"; } - -.fa-star-and-crescent:before { - content: "\f699"; } - -.fa-star-half:before { - content: "\f089"; } - -.fa-star-half-alt:before { - content: "\f5c0"; } - -.fa-star-of-david:before { - content: "\f69a"; } - -.fa-star-of-life:before { - content: "\f621"; } - -.fa-staylinked:before { - content: "\f3f5"; } - -.fa-steam:before { - content: "\f1b6"; } - -.fa-steam-square:before { - content: "\f1b7"; } - -.fa-steam-symbol:before { - content: "\f3f6"; } - -.fa-step-backward:before { - content: "\f048"; } - -.fa-step-forward:before { - content: "\f051"; } - -.fa-stethoscope:before { - content: "\f0f1"; } - -.fa-sticker-mule:before { - content: "\f3f7"; } - -.fa-sticky-note:before { - content: "\f249"; } - -.fa-stop:before { - content: "\f04d"; } - -.fa-stop-circle:before { - content: "\f28d"; } - -.fa-stopwatch:before { - content: "\f2f2"; } - -.fa-stopwatch-20:before { - content: "\f96f"; } - -.fa-store:before { - content: "\f54e"; } - -.fa-store-alt:before { - content: "\f54f"; } - -.fa-store-alt-slash:before { - content: "\f970"; } - -.fa-store-slash:before { - content: "\f971"; } - -.fa-strava:before { - content: "\f428"; } - -.fa-stream:before { - content: "\f550"; } - -.fa-street-view:before { - content: "\f21d"; } - -.fa-strikethrough:before { - content: "\f0cc"; } - -.fa-stripe:before { - content: "\f429"; } - -.fa-stripe-s:before { - content: "\f42a"; } - -.fa-stroopwafel:before { - content: "\f551"; } - -.fa-studiovinari:before { - content: "\f3f8"; } - -.fa-stumbleupon:before { - content: "\f1a4"; } - -.fa-stumbleupon-circle:before { - content: "\f1a3"; } - -.fa-subscript:before { - content: "\f12c"; } - -.fa-subway:before { - content: "\f239"; } - -.fa-suitcase:before { - content: "\f0f2"; } - -.fa-suitcase-rolling:before { - content: "\f5c1"; } - -.fa-sun:before { - content: "\f185"; } - -.fa-superpowers:before { - content: "\f2dd"; } - -.fa-superscript:before { - content: "\f12b"; } - -.fa-supple:before { - content: "\f3f9"; } - -.fa-surprise:before { - content: "\f5c2"; } - -.fa-suse:before { - content: "\f7d6"; } - -.fa-swatchbook:before { - content: "\f5c3"; } - -.fa-swift:before { - content: "\f8e1"; } - -.fa-swimmer:before { - content: "\f5c4"; } - -.fa-swimming-pool:before { - content: "\f5c5"; } - -.fa-symfony:before { - content: "\f83d"; } - -.fa-synagogue:before { - content: "\f69b"; } - -.fa-sync:before { - content: "\f021"; } - -.fa-sync-alt:before { - content: "\f2f1"; } - -.fa-syringe:before { - content: "\f48e"; } - -.fa-table:before { - content: "\f0ce"; } - -.fa-table-tennis:before { - content: "\f45d"; } - -.fa-tablet:before { - content: "\f10a"; } - -.fa-tablet-alt:before { - content: "\f3fa"; } - -.fa-tablets:before { - content: "\f490"; } - -.fa-tachometer-alt:before { - content: "\f3fd"; } - -.fa-tag:before { - content: "\f02b"; } - -.fa-tags:before { - content: "\f02c"; } - -.fa-tape:before { - content: "\f4db"; } - -.fa-tasks:before { - content: "\f0ae"; } - -.fa-taxi:before { - content: "\f1ba"; } - -.fa-teamspeak:before { - content: "\f4f9"; } - -.fa-teeth:before { - content: "\f62e"; } - -.fa-teeth-open:before { - content: "\f62f"; } - -.fa-telegram:before { - content: "\f2c6"; } - -.fa-telegram-plane:before { - content: "\f3fe"; } - -.fa-temperature-high:before { - content: "\f769"; } - -.fa-temperature-low:before { - content: "\f76b"; } - -.fa-tencent-weibo:before { - content: "\f1d5"; } - -.fa-tenge:before { - content: "\f7d7"; } - -.fa-terminal:before { - content: "\f120"; } - -.fa-text-height:before { - content: "\f034"; } - -.fa-text-width:before { - content: "\f035"; } - -.fa-th:before { - content: "\f00a"; } - -.fa-th-large:before { - content: "\f009"; } - -.fa-th-list:before { - content: "\f00b"; } - -.fa-the-red-yeti:before { - content: "\f69d"; } - -.fa-theater-masks:before { - content: "\f630"; } - -.fa-themeco:before { - content: "\f5c6"; } - -.fa-themeisle:before { - content: "\f2b2"; } - -.fa-thermometer:before { - content: "\f491"; } - -.fa-thermometer-empty:before { - content: "\f2cb"; } - -.fa-thermometer-full:before { - content: "\f2c7"; } - -.fa-thermometer-half:before { - content: "\f2c9"; } - -.fa-thermometer-quarter:before { - content: "\f2ca"; } - -.fa-thermometer-three-quarters:before { - content: "\f2c8"; } - -.fa-think-peaks:before { - content: "\f731"; } - -.fa-thumbs-down:before { - content: "\f165"; } - -.fa-thumbs-up:before { - content: "\f164"; } - -.fa-thumbtack:before { - content: "\f08d"; } - -.fa-ticket-alt:before { - content: "\f3ff"; } - -.fa-tiktok:before { - content: "\f97b"; } - -.fa-times:before { - content: "\f00d"; } - -.fa-times-circle:before { - content: "\f057"; } - -.fa-tint:before { - content: "\f043"; } - -.fa-tint-slash:before { - content: "\f5c7"; } - -.fa-tired:before { - content: "\f5c8"; } - -.fa-toggle-off:before { - content: "\f204"; } - -.fa-toggle-on:before { - content: "\f205"; } - -.fa-toilet:before { - content: "\f7d8"; } - -.fa-toilet-paper:before { - content: "\f71e"; } - -.fa-toilet-paper-slash:before { - content: "\f972"; } - -.fa-toolbox:before { - content: "\f552"; } - -.fa-tools:before { - content: "\f7d9"; } - -.fa-tooth:before { - content: "\f5c9"; } - -.fa-torah:before { - content: "\f6a0"; } - -.fa-torii-gate:before { - content: "\f6a1"; } - -.fa-tractor:before { - content: "\f722"; } - -.fa-trade-federation:before { - content: "\f513"; } - -.fa-trademark:before { - content: "\f25c"; } - -.fa-traffic-light:before { - content: "\f637"; } - -.fa-trailer:before { - content: "\f941"; } - -.fa-train:before { - content: "\f238"; } - -.fa-tram:before { - content: "\f7da"; } - -.fa-transgender:before { - content: "\f224"; } - -.fa-transgender-alt:before { - content: "\f225"; } - -.fa-trash:before { - content: "\f1f8"; } - -.fa-trash-alt:before { - content: "\f2ed"; } - -.fa-trash-restore:before { - content: "\f829"; } - -.fa-trash-restore-alt:before { - content: "\f82a"; } - -.fa-tree:before { - content: "\f1bb"; } - -.fa-trello:before { - content: "\f181"; } - -.fa-tripadvisor:before { - content: "\f262"; } - -.fa-trophy:before { - content: "\f091"; } - -.fa-truck:before { - content: "\f0d1"; } - -.fa-truck-loading:before { - content: "\f4de"; } - -.fa-truck-monster:before { - content: "\f63b"; } - -.fa-truck-moving:before { - content: "\f4df"; } - -.fa-truck-pickup:before { - content: "\f63c"; } - -.fa-tshirt:before { - content: "\f553"; } - -.fa-tty:before { - content: "\f1e4"; } - -.fa-tumblr:before { - content: "\f173"; } - -.fa-tumblr-square:before { - content: "\f174"; } - -.fa-tv:before { - content: "\f26c"; } - -.fa-twitch:before { - content: "\f1e8"; } - -.fa-twitter:before { - content: "\f099"; } - -.fa-twitter-square:before { - content: "\f081"; } - -.fa-typo3:before { - content: "\f42b"; } - -.fa-uber:before { - content: "\f402"; } - -.fa-ubuntu:before { - content: "\f7df"; } - -.fa-uikit:before { - content: "\f403"; } - -.fa-umbraco:before { - content: "\f8e8"; } - -.fa-umbrella:before { - content: "\f0e9"; } - -.fa-umbrella-beach:before { - content: "\f5ca"; } - -.fa-underline:before { - content: "\f0cd"; } - -.fa-undo:before { - content: "\f0e2"; } - -.fa-undo-alt:before { - content: "\f2ea"; } - -.fa-uniregistry:before { - content: "\f404"; } - -.fa-unity:before { - content: "\f949"; } - -.fa-universal-access:before { - content: "\f29a"; } - -.fa-university:before { - content: "\f19c"; } - -.fa-unlink:before { - content: "\f127"; } - -.fa-unlock:before { - content: "\f09c"; } - -.fa-unlock-alt:before { - content: "\f13e"; } - -.fa-unsplash:before { - content: "\f97c"; } - -.fa-untappd:before { - content: "\f405"; } - -.fa-upload:before { - content: "\f093"; } - -.fa-ups:before { - content: "\f7e0"; } - -.fa-usb:before { - content: "\f287"; } - -.fa-user:before { - content: "\f007"; } - -.fa-user-alt:before { - content: "\f406"; } - -.fa-user-alt-slash:before { - content: "\f4fa"; } - -.fa-user-astronaut:before { - content: "\f4fb"; } - -.fa-user-check:before { - content: "\f4fc"; } - -.fa-user-circle:before { - content: "\f2bd"; } - -.fa-user-clock:before { - content: "\f4fd"; } - -.fa-user-cog:before { - content: "\f4fe"; } - -.fa-user-edit:before { - content: "\f4ff"; } - -.fa-user-friends:before { - content: "\f500"; } - -.fa-user-graduate:before { - content: "\f501"; } - -.fa-user-injured:before { - content: "\f728"; } - -.fa-user-lock:before { - content: "\f502"; } - -.fa-user-md:before { - content: "\f0f0"; } - -.fa-user-minus:before { - content: "\f503"; } - -.fa-user-ninja:before { - content: "\f504"; } - -.fa-user-nurse:before { - content: "\f82f"; } - -.fa-user-plus:before { - content: "\f234"; } - -.fa-user-secret:before { - content: "\f21b"; } - -.fa-user-shield:before { - content: "\f505"; } - -.fa-user-slash:before { - content: "\f506"; } - -.fa-user-tag:before { - content: "\f507"; } - -.fa-user-tie:before { - content: "\f508"; } - -.fa-user-times:before { - content: "\f235"; } - -.fa-users:before { - content: "\f0c0"; } - -.fa-users-cog:before { - content: "\f509"; } - -.fa-users-slash:before { - content: "\f973"; } - -.fa-usps:before { - content: "\f7e1"; } - -.fa-ussunnah:before { - content: "\f407"; } - -.fa-utensil-spoon:before { - content: "\f2e5"; } - -.fa-utensils:before { - content: "\f2e7"; } - -.fa-vaadin:before { - content: "\f408"; } - -.fa-vector-square:before { - content: "\f5cb"; } - -.fa-venus:before { - content: "\f221"; } - -.fa-venus-double:before { - content: "\f226"; } - -.fa-venus-mars:before { - content: "\f228"; } - -.fa-viacoin:before { - content: "\f237"; } - -.fa-viadeo:before { - content: "\f2a9"; } - -.fa-viadeo-square:before { - content: "\f2aa"; } - -.fa-vial:before { - content: "\f492"; } - -.fa-vials:before { - content: "\f493"; } - -.fa-viber:before { - content: "\f409"; } - -.fa-video:before { - content: "\f03d"; } - -.fa-video-slash:before { - content: "\f4e2"; } - -.fa-vihara:before { - content: "\f6a7"; } - -.fa-vimeo:before { - content: "\f40a"; } - -.fa-vimeo-square:before { - content: "\f194"; } - -.fa-vimeo-v:before { - content: "\f27d"; } - -.fa-vine:before { - content: "\f1ca"; } - -.fa-virus:before { - content: "\f974"; } - -.fa-virus-slash:before { - content: "\f975"; } - -.fa-viruses:before { - content: "\f976"; } - -.fa-vk:before { - content: "\f189"; } - -.fa-vnv:before { - content: "\f40b"; } - -.fa-voicemail:before { - content: "\f897"; } - -.fa-volleyball-ball:before { - content: "\f45f"; } - -.fa-volume-down:before { - content: "\f027"; } - -.fa-volume-mute:before { - content: "\f6a9"; } - -.fa-volume-off:before { - content: "\f026"; } - -.fa-volume-up:before { - content: "\f028"; } - -.fa-vote-yea:before { - content: "\f772"; } - -.fa-vr-cardboard:before { - content: "\f729"; } - -.fa-vuejs:before { - content: "\f41f"; } - -.fa-walking:before { - content: "\f554"; } - -.fa-wallet:before { - content: "\f555"; } - -.fa-warehouse:before { - content: "\f494"; } - -.fa-water:before { - content: "\f773"; } - -.fa-wave-square:before { - content: "\f83e"; } - -.fa-waze:before { - content: "\f83f"; } - -.fa-weebly:before { - content: "\f5cc"; } - -.fa-weibo:before { - content: "\f18a"; } - -.fa-weight:before { - content: "\f496"; } - -.fa-weight-hanging:before { - content: "\f5cd"; } - -.fa-weixin:before { - content: "\f1d7"; } - -.fa-whatsapp:before { - content: "\f232"; } - -.fa-whatsapp-square:before { - content: "\f40c"; } - -.fa-wheelchair:before { - content: "\f193"; } - -.fa-whmcs:before { - content: "\f40d"; } - -.fa-wifi:before { - content: "\f1eb"; } - -.fa-wikipedia-w:before { - content: "\f266"; } - -.fa-wind:before { - content: "\f72e"; } - -.fa-window-close:before { - content: "\f410"; } - -.fa-window-maximize:before { - content: "\f2d0"; } - -.fa-window-minimize:before { - content: "\f2d1"; } - -.fa-window-restore:before { - content: "\f2d2"; } - -.fa-windows:before { - content: "\f17a"; } - -.fa-wine-bottle:before { - content: "\f72f"; } - -.fa-wine-glass:before { - content: "\f4e3"; } - -.fa-wine-glass-alt:before { - content: "\f5ce"; } - -.fa-wix:before { - content: "\f5cf"; } - -.fa-wizards-of-the-coast:before { - content: "\f730"; } - -.fa-wolf-pack-battalion:before { - content: "\f514"; } - -.fa-won-sign:before { - content: "\f159"; } - -.fa-wordpress:before { - content: "\f19a"; } - -.fa-wordpress-simple:before { - content: "\f411"; } - -.fa-wpbeginner:before { - content: "\f297"; } - -.fa-wpexplorer:before { - content: "\f2de"; } - -.fa-wpforms:before { - content: "\f298"; } - -.fa-wpressr:before { - content: "\f3e4"; } - -.fa-wrench:before { - content: "\f0ad"; } - -.fa-x-ray:before { - content: "\f497"; } - -.fa-xbox:before { - content: "\f412"; } - -.fa-xing:before { - content: "\f168"; } - -.fa-xing-square:before { - content: "\f169"; } - -.fa-y-combinator:before { - content: "\f23b"; } - -.fa-yahoo:before { - content: "\f19e"; } - -.fa-yammer:before { - content: "\f840"; } - -.fa-yandex:before { - content: "\f413"; } - -.fa-yandex-international:before { - content: "\f414"; } - -.fa-yarn:before { - content: "\f7e3"; } - -.fa-yelp:before { - content: "\f1e9"; } - -.fa-yen-sign:before { - content: "\f157"; } - -.fa-yin-yang:before { - content: "\f6ad"; } - -.fa-yoast:before { - content: "\f2b1"; } - -.fa-youtube:before { - content: "\f167"; } - -.fa-youtube-square:before { - content: "\f431"; } - -.fa-zhihu:before { - content: "\f63f"; } - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.eot"); - src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } - -.fab { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-regular-400.eot"); - src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } - -.far { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.eot"); - src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } - -.fa, -.fas { - font-family: 'Font Awesome 5 Free'; - font-weight: 900; } diff --git a/theme/plugins/fontawesome/css/all.min.css b/theme/plugins/fontawesome/css/all.min.css deleted file mode 100644 index d8337ac5..00000000 --- a/theme/plugins/fontawesome/css/all.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\f959"}.fa-bacterium:before{content:"\f95a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\f95b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\f977"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\f978"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\f979"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\f95c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\f95d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\f95e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\f95f"}.fa-handshake-slash:before{content:"\f960"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\f961"}.fa-head-side-cough-slash:before{content:"\f962"}.fa-head-side-mask:before{content:"\f963"}.fa-head-side-virus:before{content:"\f964"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\f965"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\f966"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\f967"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\f968"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\f969"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\f96a"}.fa-pump-soap:before{content:"\f96b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\f97a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\f96c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\f96d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\f96e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\f96f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\f970"}.fa-store-slash:before{content:"\f971"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\f97b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\f972"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\f97c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\f973"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\f974"}.fa-virus-slash:before{content:"\f975"}.fa-viruses:before{content:"\f976"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/theme/plugins/fontawesome/webfonts/fa-brands-400.eot b/theme/plugins/fontawesome/webfonts/fa-brands-400.eot deleted file mode 100644 index 8745c3eb..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-brands-400.eot and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-brands-400.svg b/theme/plugins/fontawesome/webfonts/fa-brands-400.svg deleted file mode 100644 index cba426aa..00000000 --- a/theme/plugins/fontawesome/webfonts/fa-brands-400.svg +++ /dev/null @@ -1,3633 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/plugins/fontawesome/webfonts/fa-brands-400.ttf b/theme/plugins/fontawesome/webfonts/fa-brands-400.ttf deleted file mode 100644 index ef792f42..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-brands-400.ttf and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-brands-400.woff b/theme/plugins/fontawesome/webfonts/fa-brands-400.woff deleted file mode 100644 index 4d5c55f9..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-brands-400.woff and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-brands-400.woff2 b/theme/plugins/fontawesome/webfonts/fa-brands-400.woff2 deleted file mode 100644 index 1c640823..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-brands-400.woff2 and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-regular-400.eot b/theme/plugins/fontawesome/webfonts/fa-regular-400.eot deleted file mode 100644 index 1de96d4b..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-regular-400.eot and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-regular-400.svg b/theme/plugins/fontawesome/webfonts/fa-regular-400.svg deleted file mode 100644 index a26d2f86..00000000 --- a/theme/plugins/fontawesome/webfonts/fa-regular-400.svg +++ /dev/null @@ -1,803 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/plugins/fontawesome/webfonts/fa-regular-400.ttf b/theme/plugins/fontawesome/webfonts/fa-regular-400.ttf deleted file mode 100644 index 3c0cf40e..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-regular-400.ttf and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-regular-400.woff b/theme/plugins/fontawesome/webfonts/fa-regular-400.woff deleted file mode 100644 index 53b47b5e..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-regular-400.woff2 b/theme/plugins/fontawesome/webfonts/fa-regular-400.woff2 deleted file mode 100644 index 585a29db..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-regular-400.woff2 and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-solid-900.eot b/theme/plugins/fontawesome/webfonts/fa-solid-900.eot deleted file mode 100644 index 5318231d..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-solid-900.eot and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-solid-900.svg b/theme/plugins/fontawesome/webfonts/fa-solid-900.svg deleted file mode 100644 index d94a2593..00000000 --- a/theme/plugins/fontawesome/webfonts/fa-solid-900.svg +++ /dev/null @@ -1,5000 +0,0 @@ - - - - - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/plugins/fontawesome/webfonts/fa-solid-900.ttf b/theme/plugins/fontawesome/webfonts/fa-solid-900.ttf deleted file mode 100644 index 8adeea24..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-solid-900.ttf and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-solid-900.woff b/theme/plugins/fontawesome/webfonts/fa-solid-900.woff deleted file mode 100644 index 65f1d331..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/theme/plugins/fontawesome/webfonts/fa-solid-900.woff2 b/theme/plugins/fontawesome/webfonts/fa-solid-900.woff2 deleted file mode 100644 index b48ec6c3..00000000 Binary files a/theme/plugins/fontawesome/webfonts/fa-solid-900.woff2 and /dev/null differ diff --git a/theme/plugins/google-map/map.js b/theme/plugins/google-map/map.js deleted file mode 100644 index 628eab24..00000000 --- a/theme/plugins/google-map/map.js +++ /dev/null @@ -1,261 +0,0 @@ -window.marker = null; - -function initialize() { - var map; - var latitude = $('#map').attr('data-latitude'); - var longitude = $('#map').attr('data-longitude'); - var mapMarker = $('#map').attr('data-marker'); - var mapMarkerName = $('#map').attr('data-marker-name'); - var nottingham = new google.maps.LatLng(latitude, longitude); - var style = [{ - "featureType": "administrative.locality", - "elementType": "all", - "stylers": [{ - "hue": "#2c2e33" - }, - { - "saturation": 7 - }, - { - "lightness": 19 - }, - { - "visibility": "on" - } - ] - }, - { - "featureType": "administrative.locality", - "elementType": "labels.text", - "stylers": [{ - "visibility": "on" - }, - { - "saturation": "-3" - } - ] - }, - { - "featureType": "administrative.locality", - "elementType": "labels.text.fill", - "stylers": [{ - "color": "#282a00" - }] - }, - { - "featureType": "landscape", - "elementType": "all", - "stylers": [{ - "hue": "#ffffff" - }, - { - "saturation": -100 - }, - { - "lightness": 100 - }, - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "poi", - "elementType": "all", - "stylers": [{ - "hue": "#ffffff" - }, - { - "saturation": -100 - }, - { - "lightness": 100 - }, - { - "visibility": "off" - } - ] - }, - { - "featureType": "poi.school", - "elementType": "geometry.fill", - "stylers": [{ - "color": "#f39247" - }, - { - "saturation": "0" - }, - { - "visibility": "on" - } - ] - }, - { - "featureType": "road", - "elementType": "geometry", - "stylers": [{ - "hue": "#ffb600" - }, - { - "saturation": "100" - }, - { - "lightness": 31 - }, - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "road", - "elementType": "geometry.stroke", - "stylers": [{ - "color": "#ffb600" - }, - { - "saturation": "0" - } - ] - }, - { - "featureType": "road", - "elementType": "labels", - "stylers": [{ - "hue": "#008eff" - }, - { - "saturation": -93 - }, - { - "lightness": 31 - }, - { - "visibility": "on" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "geometry.stroke", - "stylers": [{ - "visibility": "on" - }, - { - "color": "#f3dbc8" - }, - { - "saturation": "0" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "labels", - "stylers": [{ - "hue": "#bbc0c4" - }, - { - "saturation": -93 - }, - { - "lightness": -2 - }, - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "labels.text", - "stylers": [{ - "visibility": "off" - }] - }, - { - "featureType": "road.local", - "elementType": "geometry", - "stylers": [{ - "hue": "#e9ebed" - }, - { - "saturation": -90 - }, - { - "lightness": -8 - }, - { - "visibility": "simplified" - } - ] - }, - { - "featureType": "transit", - "elementType": "all", - "stylers": [{ - "hue": "#e9ebed" - }, - { - "saturation": 10 - }, - { - "lightness": 69 - }, - { - "visibility": "on" - } - ] - }, - { - "featureType": "water", - "elementType": "all", - "stylers": [{ - "hue": "#e9ebed" - }, - { - "saturation": -78 - }, - { - "lightness": 67 - }, - { - "visibility": "simplified" - } - ] - } - ]; - var mapOptions = { - center: nottingham, - mapTypeId: google.maps.MapTypeId.ROADMAP, - backgroundColor: "#000", - zoom: 16, - panControl: !1, - zoomControl: !0, - mapTypeControl: !1, - scaleControl: !1, - streetViewControl: !1, - overviewMapControl: !1, - zoomControlOptions: { - style: google.maps.ZoomControlStyle.LARGE - } - } - map = new google.maps.Map(document.getElementById('map'), mapOptions); - var mapType = new google.maps.StyledMapType(style, { - name: "Grayscale" - }); - map.mapTypes.set('grey', mapType); - map.setMapTypeId('grey'); - var marker_image = mapMarker; - var pinIcon = new google.maps.MarkerImage(marker_image, null, null, null, new google.maps.Size(46, 40)); - marker = new google.maps.Marker({ - position: nottingham, - map: map, - icon: pinIcon, - title: mapMarkerName - }) -} -var map = document.getElementById('map'); -if (map != null) { - google.maps.event.addDomListener(window, 'load', initialize) -} \ No newline at end of file diff --git a/theme/plugins/jquery/jquery.min.js b/theme/plugins/jquery/jquery.min.js deleted file mode 100644 index d467083b..00000000 --- a/theme/plugins/jquery/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (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(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),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("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(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 de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){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[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.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},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.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 l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(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?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);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\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.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,n){S.fn[n]=function(e,t){return 0(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
    ");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
    ',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'
    ',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()}); \ No newline at end of file diff --git a/theme/plugins/magnific-popup/magnific-popup.css b/theme/plugins/magnific-popup/magnific-popup.css deleted file mode 100644 index 8561e181..00000000 --- a/theme/plugins/magnific-popup/magnific-popup.css +++ /dev/null @@ -1,351 +0,0 @@ -/* Magnific Popup CSS */ -.mfp-bg { - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1042; - overflow: hidden; - position: fixed; - background: #0b0b0b; - opacity: 0.8; } - -.mfp-wrap { - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1043; - position: fixed; - outline: none !important; - -webkit-backface-visibility: hidden; } - -.mfp-container { - text-align: center; - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - padding: 0 8px; - box-sizing: border-box; } - -.mfp-container:before { - content: ''; - display: inline-block; - height: 100%; - vertical-align: middle; } - -.mfp-align-top .mfp-container:before { - display: none; } - -.mfp-content { - position: relative; - display: inline-block; - vertical-align: middle; - margin: 0 auto; - text-align: left; - z-index: 1045; } - -.mfp-inline-holder .mfp-content, -.mfp-ajax-holder .mfp-content { - width: 100%; - cursor: auto; } - -.mfp-ajax-cur { - cursor: progress; } - -.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { - cursor: -moz-zoom-out; - cursor: -webkit-zoom-out; - cursor: zoom-out; } - -.mfp-zoom { - cursor: pointer; - cursor: -webkit-zoom-in; - cursor: -moz-zoom-in; - cursor: zoom-in; } - -.mfp-auto-cursor .mfp-content { - cursor: auto; } - -.mfp-close, -.mfp-arrow, -.mfp-preloader, -.mfp-counter { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; } - -.mfp-loading.mfp-figure { - display: none; } - -.mfp-hide { - display: none !important; } - -.mfp-preloader { - color: #CCC; - position: absolute; - top: 50%; - width: auto; - text-align: center; - margin-top: -0.8em; - left: 8px; - right: 8px; - z-index: 1044; } - .mfp-preloader a { - color: #CCC; } - .mfp-preloader a:hover { - color: #FFF; } - -.mfp-s-ready .mfp-preloader { - display: none; } - -.mfp-s-error .mfp-content { - display: none; } - -button.mfp-close, -button.mfp-arrow { - overflow: visible; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - display: block; - outline: none; - padding: 0; - z-index: 1046; - box-shadow: none; - touch-action: manipulation; } - -button::-moz-focus-inner { - padding: 0; - border: 0; } - -.mfp-close { - width: 44px; - height: 44px; - line-height: 44px; - position: absolute; - right: 0; - top: 0; - text-decoration: none; - text-align: center; - opacity: 0.65; - padding: 0 0 18px 10px; - color: #FFF; - font-style: normal; - font-size: 28px; - font-family: Arial, Baskerville, monospace; } - .mfp-close:hover, - .mfp-close:focus { - opacity: 1; } - .mfp-close:active { - top: 1px; } - -.mfp-close-btn-in .mfp-close { - color: #333; } - -.mfp-image-holder .mfp-close, -.mfp-iframe-holder .mfp-close { - color: #FFF; - right: -6px; - text-align: right; - padding-right: 6px; - width: 100%; } - -.mfp-counter { - position: absolute; - top: 0; - right: 0; - color: #CCC; - font-size: 12px; - line-height: 18px; - white-space: nowrap; } - -.mfp-arrow { - position: absolute; - opacity: 0.65; - margin: 0; - top: 50%; - margin-top: -55px; - padding: 0; - width: 90px; - height: 110px; - -webkit-tap-highlight-color: transparent; } - .mfp-arrow:active { - margin-top: -54px; } - .mfp-arrow:hover, - .mfp-arrow:focus { - opacity: 1; } - .mfp-arrow:before, - .mfp-arrow:after { - content: ''; - display: block; - width: 0; - height: 0; - position: absolute; - left: 0; - top: 0; - margin-top: 35px; - margin-left: 35px; - border: medium inset transparent; } - .mfp-arrow:after { - border-top-width: 13px; - border-bottom-width: 13px; - top: 8px; } - .mfp-arrow:before { - border-top-width: 21px; - border-bottom-width: 21px; - opacity: 0.7; } - -.mfp-arrow-left { - left: 0; } - .mfp-arrow-left:after { - border-right: 17px solid #FFF; - margin-left: 31px; } - .mfp-arrow-left:before { - margin-left: 25px; - border-right: 27px solid #3F3F3F; } - -.mfp-arrow-right { - right: 0; } - .mfp-arrow-right:after { - border-left: 17px solid #FFF; - margin-left: 39px; } - .mfp-arrow-right:before { - border-left: 27px solid #3F3F3F; } - -.mfp-iframe-holder { - padding-top: 40px; - padding-bottom: 40px; } - .mfp-iframe-holder .mfp-content { - line-height: 0; - width: 100%; - max-width: 900px; } - .mfp-iframe-holder .mfp-close { - top: -40px; } - -.mfp-iframe-scaler { - width: 100%; - height: 0; - overflow: hidden; - padding-top: 56.25%; } - .mfp-iframe-scaler iframe { - position: absolute; - display: block; - top: 0; - left: 0; - width: 100%; - height: 100%; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - background: #000; } - -/* Main image in popup */ -img.mfp-img { - width: auto; - max-width: 100%; - height: auto; - display: block; - line-height: 0; - box-sizing: border-box; - padding: 40px 0 40px; - margin: 0 auto; } - -/* The shadow behind the image */ -.mfp-figure { - line-height: 0; } - .mfp-figure:after { - content: ''; - position: absolute; - left: 0; - top: 40px; - bottom: 40px; - display: block; - right: 0; - width: auto; - height: auto; - z-index: -1; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - background: #444; } - .mfp-figure small { - color: #BDBDBD; - display: block; - font-size: 12px; - line-height: 14px; } - .mfp-figure figure { - margin: 0; } - -.mfp-bottom-bar { - margin-top: -36px; - position: absolute; - top: 100%; - left: 0; - width: 100%; - cursor: auto; } - -.mfp-title { - text-align: left; - line-height: 18px; - color: #F3F3F3; - word-wrap: break-word; - padding-right: 36px; } - -.mfp-image-holder .mfp-content { - max-width: 100%; } - -.mfp-gallery .mfp-image-holder .mfp-figure { - cursor: pointer; } - -@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { - /** - * Remove all paddings around the image on small screen - */ - .mfp-img-mobile .mfp-image-holder { - padding-left: 0; - padding-right: 0; } - .mfp-img-mobile img.mfp-img { - padding: 0; } - .mfp-img-mobile .mfp-figure:after { - top: 0; - bottom: 0; } - .mfp-img-mobile .mfp-figure small { - display: inline; - margin-left: 5px; } - .mfp-img-mobile .mfp-bottom-bar { - background: rgba(0, 0, 0, 0.6); - bottom: 0; - margin: 0; - top: auto; - padding: 3px 5px; - position: fixed; - box-sizing: border-box; } - .mfp-img-mobile .mfp-bottom-bar:empty { - padding: 0; } - .mfp-img-mobile .mfp-counter { - right: 5px; - top: 3px; } - .mfp-img-mobile .mfp-close { - top: 0; - right: 0; - width: 35px; - height: 35px; - line-height: 35px; - background: rgba(0, 0, 0, 0.6); - position: fixed; - text-align: center; - padding: 0; } } - -@media all and (max-width: 900px) { - .mfp-arrow { - -webkit-transform: scale(0.75); - transform: scale(0.75); } - .mfp-arrow-left { - -webkit-transform-origin: 0; - transform-origin: 0; } - .mfp-arrow-right { - -webkit-transform-origin: 100%; - transform-origin: 100%; } - .mfp-container { - padding-left: 6px; - padding-right: 6px; } } diff --git a/theme/plugins/slick/README.markdown b/theme/plugins/slick/README.markdown deleted file mode 100644 index ca4b18d4..00000000 --- a/theme/plugins/slick/README.markdown +++ /dev/null @@ -1,292 +0,0 @@ -slick -------- - -[1]: - -_the last carousel you'll ever need_ - -#### Demo - -[http://kenwheeler.github.io/slick](http://kenwheeler.github.io/slick/) - -#### CDN - -To start working with Slick right away, there's a couple of CDN choices availabile -to serve the files as close, and fast as possible to your users: - -- https://cdnjs.com/libraries/slick-carousel -- https://www.jsdelivr.com/projects/jquery.slick - -##### Example using jsDelivr - -Just add a link to the css file in your ``: - -```html - - - - -``` - -Then, before your closing `````` tag add: - -```html - -``` - -#### Package Managers - -```sh -# Bower -bower install --save slick-carousel - -# NPM -npm install slick-carousel -``` - -#### Contributing - -PLEASE review CONTRIBUTING.markdown prior to requesting a feature, filing a pull request or filing an issue. - -### Data Attribute Settings - -In slick 1.5 you can now add settings using the data-slick attribute. You still need to call $(element).slick() to initialize slick on the element. - -Example: - -```html -
    -

    1

    -

    2

    -

    3

    -

    4

    -

    5

    -

    6

    -
    -``` - -### Settings - -Option | Type | Default | Description ------- | ---- | ------- | ----------- -accessibility | boolean | true | Enables tabbing and arrow key navigation. Unless `autoplay: true`, sets browser focus to current slide (or first of current slide set, if multiple `slidesToShow`) after slide change. For full a11y compliance enable focusOnChange in addition to this. -adaptiveHeight | boolean | false | Adapts slider height to the current slide -appendArrows | string | $(element) | Change where the navigation arrows are attached (Selector, htmlString, Array, Element, jQuery object) -appendDots | string | $(element) | Change where the navigation dots are attached (Selector, htmlString, Array, Element, jQuery object) -arrows | boolean | true | Enable Next/Prev arrows -asNavFor | string | $(element) | Enables syncing of multiple sliders -autoplay | boolean | false | Enables auto play of slides -autoplaySpeed | int | 3000 | Auto play change interval -centerMode | boolean | false | Enables centered view with partial prev/next slides. Use with odd numbered slidesToShow counts. -centerPadding | string | '50px' | Side padding when in center mode. (px or %) -cssEase | string | 'ease' | CSS3 easing -customPaging | function | n/a | Custom paging templates. See source for use example. -dots | boolean | false | Current slide indicator dots -dotsClass | string | 'slick-dots' | Class for slide indicator dots container -draggable | boolean | true | Enables desktop dragging -easing | string | 'linear' | animate() fallback easing -edgeFriction | integer | 0.15 | Resistance when swiping edges of non-infinite carousels -fade | boolean | false | Enables fade -focusOnSelect | boolean | false | Enable focus on selected element (click) -focusOnChange | boolean | false | Puts focus on slide after change -infinite | boolean | true | Infinite looping -initialSlide | integer | 0 | Slide to start on -lazyLoad | string | 'ondemand' | Accepts 'ondemand' or 'progressive' for lazy load technique. 'ondemand' will load the image as soon as you slide to it, 'progressive' loads one image after the other when the page loads. -mobileFirst | boolean | false | Responsive settings use mobile first calculation -nextArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `` | Allows you to select a node or customize the HTML for the "Next" arrow. -pauseOnDotsHover | boolean | false | Pauses autoplay when a dot is hovered -pauseOnFocus | boolean | true | Pauses autoplay when slider is focussed -pauseOnHover | boolean | true | Pauses autoplay on hover -prevArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `` | Allows you to select a node or customize the HTML for the "Previous" arrow. -respondTo | string | 'window' | Width that responsive object responds to. Can be 'window', 'slider' or 'min' (the smaller of the two). -responsive | array | null | Array of objects [containing breakpoints and settings objects (see example)](#responsive-option-example). Enables settings at given `breakpoint`. Set `settings` to "unslick" instead of an object to disable slick at a given breakpoint. -rows | int | 1 | Setting this to more than 1 initializes grid mode. Use slidesPerRow to set how many slides should be in each row. -rtl | boolean | false | Change the slider's direction to become right-to-left -slide | string | '' | Slide element query -slidesPerRow | int | 1 | With grid mode initialized via the rows option, this sets how many slides are in each grid row. -slidesToScroll | int | 1 | # of slides to scroll at a time -slidesToShow | int | 1 | # of slides to show at a time -speed | int | 300 | Transition speed -swipe | boolean | true | Enables touch swipe -swipeToSlide | boolean | false | Swipe to slide irrespective of slidesToScroll -touchMove | boolean | true | Enables slide moving with touch -touchThreshold | int | 5 | To advance slides, the user must swipe a length of (1/touchThreshold) * the width of the slider. -useCSS | boolean | true | Enable/Disable CSS Transitions -useTransform | boolean | true | Enable/Disable CSS Transforms -variableWidth | boolean | false | Disables automatic slide width calculation -vertical | boolean | false | Vertical slide direction -verticalSwiping | boolean | false | Changes swipe direction to vertical -waitForAnimate | boolean | true | Ignores requests to advance the slide while animating -zIndex | number | 1000 | Set the zIndex values for slides, useful for IE9 and lower - -##### Responsive Option Example -The responsive option, and value, is quite unique and powerful. -You can use it like so: - -```javascript -$(".slider").slick({ - - // normal options... - infinite: false, - - // the magic - responsive: [{ - - breakpoint: 1024, - settings: { - slidesToShow: 3, - infinite: true - } - - }, { - - breakpoint: 600, - settings: { - slidesToShow: 2, - dots: true - } - - }, { - - breakpoint: 300, - settings: "unslick" // destroys slick - - }] -}); -``` - - - - -### Events - -In slick 1.4, callback methods were deprecated and replaced with events. Use them before the initialization of slick as shown below: - -```javascript -// On swipe event -$('.your-element').on('swipe', function(event, slick, direction){ - console.log(direction); - // left -}); - -// On edge hit -$('.your-element').on('edge', function(event, slick, direction){ - console.log('edge was hit') -}); - -// On before slide change -$('.your-element').on('beforeChange', function(event, slick, currentSlide, nextSlide){ - console.log(nextSlide); -}); -``` - -Event | Params | Description ------- | -------- | ----------- -afterChange | event, slick, currentSlide | After slide change callback -beforeChange | event, slick, currentSlide, nextSlide | Before slide change callback -breakpoint | event, slick, breakpoint | Fires after a breakpoint is hit -destroy | event, slick | When slider is destroyed, or unslicked. -edge | event, slick, direction | Fires when an edge is overscrolled in non-infinite mode. -init | event, slick | When Slick initializes for the first time callback. Note that this event should be defined before initializing the slider. -reInit | event, slick | Every time Slick (re-)initializes callback -setPosition | event, slick | Every time Slick recalculates position -swipe | event, slick, direction | Fires after swipe/drag -lazyLoaded | event, slick, image, imageSource | Fires after image loads lazily -lazyLoadError | event, slick, image, imageSource | Fires after image fails to load - - -#### Methods - -Methods are called on slick instances through the slick method itself in version 1.4, see below: - -```javascript -// Add a slide -$('.your-element').slick('slickAdd',"
    "); - -// Get the current slide -var currentSlide = $('.your-element').slick('slickCurrentSlide'); -``` - -This new syntax allows you to call any internal slick method as well: - -```javascript -// Manually refresh positioning of slick -$('.your-element').slick('setPosition'); -``` - - -Method | Argument | Description ------- | -------- | ----------- -`slick` | options : object | Initializes Slick -`unslick` | | Destroys Slick -`slickNext` | | Triggers next slide -`slickPrev` | | Triggers previous slide -`slickPause` | | Pause Autoplay -`slickPlay` | | Start Autoplay (_will also set `autoplay` option to `true`_) -`slickGoTo` | index : int, dontAnimate : bool | Goes to slide by index, skipping animation if second parameter is set to true -`slickCurrentSlide` | | Returns the current slide index -`slickAdd` | element : html or DOM object, index: int, addBefore: bool | Add a slide. If an index is provided, will add at that index, or before if addBefore is set. If no index is provided, add to the end or to the beginning if addBefore is set. Accepts HTML String || Object -`slickRemove` | index: int, removeBefore: bool | Remove slide by index. If removeBefore is set true, remove slide preceding index, or the first slide if no index is specified. If removeBefore is set to false, remove the slide following index, or the last slide if no index is set. -`slickFilter` | filter : selector or function | Filters slides using jQuery .filter syntax -`slickUnfilter` | | Removes applied filter -`slickGetOption` | option : string(option name) | Gets an option value. -`slickSetOption` | change an option, `refresh` is always `boolean` and will update UI changes... - | `option, value, refresh` | change a [single `option`](https://github.com/kenwheeler/slick#settings) to given `value`; `refresh` is optional. - | `"responsive", [{ breakpoint: n, settings: {} }, ... ], refresh` | change or add [whole sets of responsive options](#responsive-option-example) - | `{ option: value, option: value, ... }, refresh` | change [multiple `option`s](https://github.com/kenwheeler/slick#settings) to corresponding `value`s. - - -#### Example - -Initialize with: - -```javascript -$(element).slick({ - dots: true, - speed: 500 -}); - ``` - -Change the speed with: - -```javascript -$(element).slick('slickSetOption', 'speed', 5000, true); -``` - -Destroy with: - -```javascript -$(element).slick('unslick'); -``` - - -#### Sass Variables - -Variable | Type | Default | Description ------- | ---- | ------- | ----------- -$slick-font-path | string | "./fonts/" | Directory path for the slick icon font -$slick-font-family | string | "slick" | Font-family for slick icon font -$slick-loader-path | string | "./" | Directory path for the loader image -$slick-arrow-color | color | white | Color of the left/right arrow icons -$slick-dot-color | color | black | Color of the navigation dots -$slick-dot-color-active | color | $slick-dot-color | Color of the active navigation dot -$slick-prev-character | string | '\2190' | Unicode character code for the previous arrow icon -$slick-next-character | string | '\2192' | Unicode character code for the next arrow icon -$slick-dot-character | string | '\2022' | Unicode character code for the navigation dot icon -$slick-dot-size | pixels | 6px | Size of the navigation dots - -#### Browser support - -Slick works on IE8+ in addition to other modern browsers such as Chrome, Firefox, and Safari. - -#### Dependencies - -jQuery 1.7 - -#### License - -Copyright (c) 2017 Ken Wheeler - -Licensed under the MIT license. - -Free as in Bacon. diff --git a/theme/plugins/slick/ajax-loader.gif b/theme/plugins/slick/ajax-loader.gif deleted file mode 100644 index e0e6e976..00000000 Binary files a/theme/plugins/slick/ajax-loader.gif and /dev/null differ diff --git a/theme/plugins/slick/fonts/slick.eot b/theme/plugins/slick/fonts/slick.eot deleted file mode 100644 index 2cbab9ca..00000000 Binary files a/theme/plugins/slick/fonts/slick.eot and /dev/null differ diff --git a/theme/plugins/slick/fonts/slick.svg b/theme/plugins/slick/fonts/slick.svg deleted file mode 100644 index b36a66a6..00000000 --- a/theme/plugins/slick/fonts/slick.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - -Generated by Fontastic.me - - - - - - - - - - diff --git a/theme/plugins/slick/fonts/slick.ttf b/theme/plugins/slick/fonts/slick.ttf deleted file mode 100644 index 9d03461b..00000000 Binary files a/theme/plugins/slick/fonts/slick.ttf and /dev/null differ diff --git a/theme/plugins/slick/fonts/slick.woff b/theme/plugins/slick/fonts/slick.woff deleted file mode 100644 index 8ee99721..00000000 Binary files a/theme/plugins/slick/fonts/slick.woff and /dev/null differ diff --git a/theme/plugins/slick/slick-theme.css b/theme/plugins/slick/slick-theme.css deleted file mode 100644 index a3d205cf..00000000 --- a/theme/plugins/slick/slick-theme.css +++ /dev/null @@ -1,205 +0,0 @@ -@charset 'UTF-8'; -/* Slider */ -.slick-loading .slick-list -{ - background: #fff url('./ajax-loader.gif') center center no-repeat; -} - -/* Icons */ -@font-face -{ - font-family: 'slick'; - font-weight: normal; - font-style: normal; - - src: url('./fonts/slick.eot'); - src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg'); - font-display: swap; -} -/* Arrows */ -.slick-prev, -.slick-next -{ - font-size: 0; - line-height: 0; - - position: absolute; - top: 50%; - - display: block; - - width: 20px; - height: 20px; - padding: 0; - -webkit-transform: translate(0, -50%); - -ms-transform: translate(0, -50%); - transform: translate(0, -50%); - - cursor: pointer; - - color: transparent; - border: none; - outline: none; - background: transparent; -} -.slick-prev:hover, -.slick-prev:focus, -.slick-next:hover, -.slick-next:focus -{ - color: transparent; - outline: none; - background: transparent; -} -.slick-prev:hover:before, -.slick-prev:focus:before, -.slick-next:hover:before, -.slick-next:focus:before -{ - opacity: 1; -} -.slick-prev.slick-disabled:before, -.slick-next.slick-disabled:before -{ - opacity: .25; -} - -.slick-prev:before, -.slick-next:before -{ - font-family: 'slick'; - font-size: 20px; - line-height: 1; - - opacity: .75; - color: white; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.slick-prev -{ - left: -25px; -} -[dir='rtl'] .slick-prev -{ - right: -25px; - left: auto; -} -.slick-prev:before -{ - content: '←'; -} -[dir='rtl'] .slick-prev:before -{ - content: '→'; -} - -.slick-next -{ - right: -25px; -} -[dir='rtl'] .slick-next -{ - right: auto; - left: -25px; -} -.slick-next:before -{ - content: '→'; -} -[dir='rtl'] .slick-next:before -{ - content: '←'; -} - -/* Dots */ -.slick-dotted.slick-slider -{ - margin-bottom: 30px; -} - -.slick-dots -{ - position: absolute; - bottom: -25px; - - display: block; - - width: 100%; - padding: 0; - margin: 0; - - list-style: none; - - text-align: center; -} -.slick-dots li -{ - position: relative; - - display: inline-block; - - width: 20px; - height: 20px; - margin: 0 5px; - padding: 0; - - cursor: pointer; -} -.slick-dots li button -{ - font-size: 0; - line-height: 0; - - display: block; - - width: 20px; - height: 20px; - padding: 5px; - - cursor: pointer; - - color: transparent; - border: 0; - outline: none; - background: transparent; -} -.slick-dots li button:hover, -.slick-dots li button:focus -{ - outline: none; -} -.slick-dots li button:hover:before, -.slick-dots li button:focus:before -{ - opacity: 1; -} -.slick-dots li button:before -{ - font-family: 'slick'; - font-size: 6px; - line-height: 20px; - - position: absolute; - top: 0; - left: 0; - - width: 20px; - height: 20px; - - content: '•'; - text-align: center; - - opacity: .25; - color: black; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.slick-dots li.slick-active button:before -{ - opacity: .75; - color: black; -} diff --git a/theme/plugins/slick/slick.css b/theme/plugins/slick/slick.css deleted file mode 100644 index 57477e84..00000000 --- a/theme/plugins/slick/slick.css +++ /dev/null @@ -1,119 +0,0 @@ -/* Slider */ -.slick-slider -{ - position: relative; - - display: block; - 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; - margin-left: auto; - margin-right: auto; -} -.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/theme/plugins/slick/slick.min.js b/theme/plugins/slick/slick.min.js deleted file mode 100644 index 42172c2f..00000000 --- a/theme/plugins/slick/slick.min.js +++ /dev/null @@ -1 +0,0 @@ -!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(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i(' - - - -
    - - - - - - - - -
    -
    -
    -
    -
    - Partenariats -

    Nos Partenariats

    -
      -
    • Home
    • -
    • /
    • -
    • Partenariats
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -

    Soutien financier

    -
    -
    -

    Un gros merci à nos partenaires

    -
    -
    - Les membres d’AlgoÉTS sont passionnés par ce qu’ils font. L’application des notions d’ingénierie apprises à l’ÉTS est primordiale pour accomplir leurs objectifs et avancer dans leurs projets. AlgoÉTS travaille d’arrache-pied au développement de son image et de sa réputation afin d’obtenir une bonne visibilité. Non seulement au sein de la communauté universitaire, mais aussi auprès du milieu financier. - -AlgoÉTS souhaite vous avoir comme partenaire scientifique et solliciter un financement de votre part. Votre contribution permettra de soutenir nos objectifs, notre travail et la réussite de nos projets d’envergure. Vous supporterez également l’implication étudiante dans l’une des meilleures écoles canadiennes de Génie. Nous nous engageons en contrepartie à fournir l’affichage nécessaire de votre logo dans les différentes plateformes que nous possédons. -
    -
    - Logo de Bombardier -

    Bombardier - description.

    -
    - -
    - Logo de Desjardins -

    Desjardins - description.

    -
    -
    - Logo de Bombardier -

    Ferique, un partenaire clé dans le soutien de nos projets d'innovation.

    -
    -
    - Logo de Desjardins -

    sherweb, contribuant activement au développement de nos initiatives étudiantes.

    -
    -
    - Logo de Desjardins -

    ETS, contribuant activement au développement de nos initiatives étudiantes.

    -
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OffreContributionAvantages
    Bronze≥1500$ -
      -
    • Votre logo sur notre site web avec un hyperlien
    • -
    • Votre logo sur nos vêtements officiels
    • -
    • Un remerciement sur nos réseaux sociaux
    • -
    -
    Argent≥3000$ -
      -
    • Inclut également les offres de la formule bronze
    • -
    • Votre logo sur nos affiches et dépliants
    • -
    • Trois publications sur nos réseaux sociaux
    • -
    • Visibilité supplémentaire offerte par le Service des diplômés et philanthropie de l’ÉTS
    • -
    -
    Or≥5000$ -
      -
    • Inclut également les offres de la formule bronze et argent
    • -
    • Démonstration de notre recherche et résultats
    • -
    • Un emplacement de choix sur tous les outils promotionnels de notre équipe
    • -
    • Rencontre avec les membres du club pour une présentation de l’avancement du projet
    • -
    -
    -
    - -
    -
    -
    - - -
    -

    Voulez-vous aider à supporter le club? Donnez un coup d’œil à notre plan de partenariat.

    - VOIR LE PLAN DE PARTENARIAT -
    - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/project.html b/theme/project.html deleted file mode 100644 index 5cd43258..00000000 --- a/theme/project.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Projets -

    Portfolio

    -
      -
    • Home
    • -
    • /
    • -
    • Projets
    • -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - Nos résultat -

    - Projets récents -

    -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/service.html b/theme/service.html deleted file mode 100644 index 6779fc90..00000000 --- a/theme/service.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Nos services -

    Ce que fait AlgoÉTS

    -
      -
    • Home
    • -
    • /
    • -
    • Nos services
    • -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - Nos Services -

    Services que nous offrons chez AlgoÉTS

    -
    -
    -
    - -
    - -
    -
    - -

    Développement de Stratégies Algorithmiques

    -

    Développez et testez des stratégies de trading avec nos outils internes.

    -
    -
    - - -
    -
    - -

    Analytique Financière

    -

    Analysez les marchés financiers et les actualités avec notre analytique propulsée par l'IA.

    -
    -
    - - -
    -
    - -

    Ateliers Éducatifs

    -

    Apprenez le trading algorithmique, la finance et la programmation avec des experts.

    -
    -
    - - -
    -
    - -

    Projets Open Source

    -

    Contribuez à nos projets GitHub et acquérez une expérience pratique.

    -
    -
    - - -
    -
    - -

    Événements de Réseautage

    -

    Connectez-vous avec des professionnels de l'industrie et des anciens lors de nos événements.

    -
    -
    - - -
    -
    - -

    Orientation Professionnelle

    -

    Recevez des conseils de carrière et des opportunités de stages en finance et technologie.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - Pour chaque type d'enthousiaste -

    Rejoignez AlgoÉTS et renforcez vos connaissances financières

    -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/team.html b/theme/team.html deleted file mode 100644 index 994f6af0..00000000 --- a/theme/team.html +++ /dev/null @@ -1,1015 +0,0 @@ - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Équipe -

    Notre Équipe

    -
      -
    • Home
    • -
    • /
    • -
    • Équipe
    • -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    - Notre Équipe -

    Membres

    -
    -
    -
    - - -
    -
    -

    Administration

    -

    L'équipe administrative gère la stratégie globale, les opérations, et la direction du club. Ils sont responsables de :

    -
      -
    • Définir les orientations stratégiques
    • -
    • Superviser les projets et initiatives
    • -
    • Gérer les relations internes et externes
    • -
    -
    - -
    -
    -
    -
    - Raphael Leblanc -
    - -
    -
    -
    -

    Raphael Leblanc

    -

    Co-Capitaine Stategie
    2021-2024

    - -
    -
    Project Participation
    -
      -
    • Capitaine
    • -
    • Biotech
    • -
    • IPOTracker
    • -
    -
    -
    -
    -
    -
    -
    -
    - Momhahed Illas -
    - -
    -
    -
    -

    Momhahed Illas

    -

    Co-Capitaine Stategie
    2022-2024

    - -
    -
    Project Participation
    -
      -
    • AI News Tracker
    • -
    • Salary
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Antoine Boucher -
    - -
    -
    -
    -

    Antoine Boucher

    -

    Capitaine Infrastructure
    2023-2024

    - -
    -
    Project Participation
    -
      -
    • AI News Tracker
    • -
    • Batch Backtesting
    • -
    • Salary
    • -
    -
    -
    -
    -
    -
    -
    -
    - Sam Lafrance-Jones -
    - -
    -
    -
    -

    Sam Lafrance-Jones

    -

    Trésorier, vice-président stratégie et co-fondateur
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Sabrina St-Pierre -
    - -
    -
    -
    -

    Sabrina St-Pierre

    -

    Vice-présidente marketing
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Philippe Geukers -
    - -
    -
    -
    -

    Philippe Geukers

    -

    Co-fondateur
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - - -
    -
    -

    Infrastructure

    -

    L'équipe d'infrastructure assure le bon fonctionnement technique et la sécurité des systèmes. Leurs rôles comprennent :

    -
      -
    • Maintenir et améliorer l'infrastructure technique
    • -
    • Assurer la sécurité des données et systèmes
    • -
    • Optimiser la performance des solutions technologiques
    • -
    -
    - -
    -
    -
    -
    - Sami Mammouche -
    - -
    -
    -
    -

    Sami Mammouche

    -

    Vice-président infrastructure
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Jérôme Demers -
    - -
    -
    -
    -

    Jérôme Demers

    -

    Assistant vice-président infrastructure
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Nicolas Descotaux -
    - -
    -
    -
    -

    Nicolas Descotaux

    -

    Développeur infrastructure
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - -
    -
    -

    Stratégie

    -

    L'équipe de stratégie développe et teste des modèles algorithmiques de trading. Leurs principales tâches incluent :

    -
      -
    • Analyser les données financières
    • -
    • Concevoir des algorithmes de trading
    • -
    • Effectuer des backtests et optimisations
    • -
    -
    - -
    -
    -
    -
    - Salim -
    - -
    -
    -
    -

    Salim

    -

    Membre Stategie
    2022-2024

    - -
    -
    Project Participation
    -
      -
    • Analyse de Kelly
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Gabriel Demers -
    - -
    -
    -
    -

    Gabriel Demers

    -

    Développeur stratégie
    2023-2024

    - -
    -
    Project Participation
    -
      -
    • Classification de crypto-monnaie avec XGboost
    • -
    • Analyse des nouvelles d'InvestorBroker
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Micheal -
    - -
    -
    -
    -

    Micheal

    -

    Membre Stategie
    2022-2023

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Souri -
    - -
    -
    -
    -

    Souri

    -

    Membre Stategie
    2022-2024

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Matthieu Hanania -
    - -
    -
    -
    -

    Matthieu Hanania

    -

    Membre Stategie
    2022-2024

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Ariel Sashcov -
    - -
    -
    -
    -

    Ariel Sashcov

    -

    Développeur stratégie
    2021-2024

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Sayed Abouzar -
    - -
    -
    -
    -

    Sayed Abouzar

    -

    Développeur stratégie
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Ryan Tordjman -
    - -
    -
    -
    -

    Ryan Tordjman

    -

    Développeur stratégie
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Sébastien Veyssiere -
    - -
    -
    -
    -

    Sébastien Veyssiere

    -

    Développeur stratégie
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Alexis Macagno -
    - -
    -
    -
    -

    Alexis Macagno

    -

    Développeur stratégie
    2021-2022

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    -
    -
    - Emeric Loriot -
    - -
    -
    -
    -

    Emeric Loriot

    -

    Développeur stratégie
    2023-2024

    - -
    -
    Project Participation
    -
      -
    • -
    • -
    • -
    -
    -
    -
    -
    -
    - -
    -
    - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/theme/vol-de-voiture.html b/theme/vol-de-voiture.html deleted file mode 100644 index e3080479..00000000 --- a/theme/vol-de-voiture.html +++ /dev/null @@ -1,874 +0,0 @@ - - - - - - - - - - - - - - - - - - - AlgoETS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - Étude des vols de voitures -

    Montréal

    -
      -
    • Home
    • -
    • /
    • -
    • Étude des vols de voitures
    • -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - blog -
    - -

    Étude des vols de voitures à Montréal

    -

    Original -

    Substack - -

    Découvrez les tendances de la criminalité liée aux vols de voitures - à Montréal à travers les années. Cette étude examine les quartiers les plus touchés, - les variations saisonnières, et bien plus encore.

    - -

    Un article dans le journal a particulièrement attiré mon attention de manière - inattendue, révélant une réalité alarmante : le taux de vols de voitures à Montréal - atteignait des sommets déconcertants. Cette révélation m’a laissé perplexe et - intrigué à la fois. Mon esprit curieux a été instantanément piqué, et j’ai ressenti - le besoin impérieux d’explorer ce phénomène de plus près, de le décortiquer et de - comprendre ses origines.

    - -

    Dans cet article, je vais vous emmener avec moi dans cette aventure intrigante, alors - que nous plongeons dans l’univers des vols de voitures à Montréal. Nous allons - dévoiler les données, analyser les statistiques et tenter de démystifier cette - réalité complexe. Attachez-vous bien, car nous partons à la découverte de l’envers - du décor de la criminalité automobile à Montréal.

    - -

    Récoltes des données

    - -

    J’ai entrepris la collecte de données en récupérant un fichier CSV exhaustif - contenant toutes les infractions criminelles à Montréal, mis à disposition par la - ville. Mon objectif était de cibler spécifiquement les infractions de type “Vol de - véhicule à moteur”. À ma grande surprise, j’ai trouvé pas moins de 53 964 cas - enregistrés depuis l’année 2018.

    - - blog - - Données des vols de véhicules à moteur à Montréal - -
    -
    - -

    Le vol en hausse

    - -

    L’un des constats les plus préoccupants réside dans la tendance constante à la hausse - du vol de véhicules, qui semble résolument insensible à tout ralentissement, comme - en témoigne ce graphique éloquent :

    - - blog - Graphique vols de véhicules à moteur par année -
    -
    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AnnéesVols de véhicules
    20154418
    20164352
    20174732
    20184237
    20194170
    20204706
    20216440
    20229377
    202311262
    - -

    -
    -
    - -

    Ces chiffres révèlent une progression alarmante, suscitant des inquiétudes - croissantes.

    - -

    Mode Opératoire

    - -

    De manière paradoxale, il s’avère que la majorité des vols de véhicules se produisent - en plein jour. En effet, 51% de ces vols ont lieu pendant la journée, lorsque tout - semble plus visible et évident. De plus, parmi les jours de la semaine, c’est le - mercredi qui détient le triste record du jour où les vols sont les plus fréquents : -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    JournéeOccurence
    Wednesday8519
    Monday8493
    Thursday8334
    Tuesday8303
    Friday7819
    Saturday6160
    Sunday6066
    -
    -
    - - blog - - Graphique vols de véhicules par jour de la semaine -
    -
    - - blog - Graphique vols de véhicules par jour de la semaine et quart de la journée -
    -
    - -

    Cette donnée surprenante met en évidence une réalité intrigante, où les vols de - véhicules semblent prospérer en plein jour, défiant ainsi les attentes - conventionnelles en matière de criminalité.

    - -

    Lieux

    - -

    Voici une carte thermique (heatmap) des cinq endroits les plus fréquemment ciblés par - les voleurs à Montréal. Il est intéressant de noter que les hôtels et les centres - commerciaux sont devenus des cibles privilégiées.

    - - blog - Carte thermique des vols de véhicules à Montréal -
    -
    - -

    Un Vol Sophistiqué

    - -

    Loin sont les jours où un simple trousseau de clés métalliques ou une vitre brisée - suffisaient pour voler une voiture. Aujourd’hui, les voleurs ont évolué, devenant - plus rusés et équipés de technologies avancées.

    - -

    Relay attack

    - -

    Ils utilisent un dispositif sophistiqué pour amplifier le signal, pratiquant ce que - l’on appelle l’attaque par relais.

    - -

    Dans ce type de vol, l’objectif des malfaiteurs est de tromper la voiture en lui - faisant croire que la clé se trouve à proximité immédiate du véhicule, même si en - réalité, la clé se trouve à plusieurs centaines de mètres de distance. Ils utilisent - un amplificateur de signal pour induire en erreur la voiture, lui faisant croire que - la clé est à l’intérieur du véhicule.

    - -

    Voici une vidéo capturant un vol qui ne dure que quelques secondes.

    - - blog - - Vol Voiture Technique du relai - -
    -
    - -

    PORT OBD

    - -

    Le Port OBD est le port « On-Board Diagnostics » se trouvant généralement au-dessus - de la pédale. C’est une interface de communication pour les systèmes de surveillance - et de contrôle des véhicules. Il est également utilisé par les garages pour - identifier et résoudre les défauts. Problème : Malheureusement, toute personne ayant - accès à celui-ci (par exemple, un garage malveillant, un valet ou des employés de - lave-auto) peut abuser du Port OBD pour créer une copie du porte-clés électronique - de votre voiture ! Parfois, les voleurs utilisent la méthode du Port OBD en y - injectant un code malicieux permettant de changer des configurations pour arrêter le - système d’alarme et faire un clonage de la clé.

    - - blog - - Port OBD - -
    -
    - -

    Conséquences

    - -

    L’explosion du nombre de vols de voitures a des conséquences directes sur les - propriétaires de véhicules, notamment une augmentation significative du coût de - l’assurance automobile. Certaines marques et modèles sont malheureusement devenus - les cibles privilégiées des voleurs. Voici le palmarès de 2022 :

    - - - s - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Marque/ModèleAnnée Modèle Volée le Plus SouventNombre de Véhicules AssurésNombre de VolsFréquence de Vol (%)Type
    1Honda CR-V2020115,8952,6892.3%SUV
    2Acura RDX202015,8956534.1%SUV
    3Honda Civic2019224,6885060.2%Sedan
    4Dodge RAM 1500 Series202079,0195040.6%Truck
    5Jeep Wrangler202128,0484331.5%SUV
    6Toyota RAV 42019124,3574250.3%SUV
    7Jeep Grand Cherokee202122,8084201.8%SUV
    8Toyota Highlander202117,3863442.0%SUV
    9Ford F150 Series201991,1662560.3%Truck
    10Hyundai Tucson202163,4502420.4%SUV
    - -
    -
    - -

    Se protéger

    - -

    Il est important de noter qu’aucune méthode n’est infaillible, mais l’objectif - principal est de rendre la tâche des voleurs aussi difficile que possible, les - décourageant ainsi de s’attaquer à votre véhicule.

    - -

    Verrouillez les portes et fermez complètement les fenêtres

    - -

    La première étape essentielle pour vous protéger consiste à verrouiller les portes de - votre véhicule et à fermer complètement les fenêtres. Ce geste simple peut - considérablement ralentir un voleur.

    - -

    Boite de farraday

    - -

    Pour protéger votre clé électronique (key FOB) contre les attaques par relais, vous - pouvez utiliser une boîte de Faraday. Cette boîte bloque le signal de la clé, - empêchant ainsi les voleurs d’amplifier son signal. Cette méthode constitue une - défense efficace contre les tentatives d’attaque par relais et est disponible à un - prix abordable, généralement autour de 25 $.

    - -

    Amazon: $25 Boite de farraday

    - -

    OBD PORT lock

    - -

    Pourquoi sommes-nous exposés ?

    - -

    Les véhicules équipés de systèmes de démarrage sans clé (“push start”) ou d’entrée - sans clé (“keyless entry”) ne disposent pas de clé mécanique pour démarrer le - moteur. Ils utilisent des clés électroniques qui s’authentifient avec la voiture via - un échange de données (par des signaux radio pour les systèmes sans clé ou par - insertion dans le tableau de bord).

    - -

    Comment le port est-il exploité ?

    - -

    Ces véhicules conservent une copie numérique des clés dans l’unité de contrôle du - moteur du véhicule (ECU). Le problème réside dans le fait que ces clés numériques - peuvent être téléchargées par quiconque a accès au “PORT OBD” du véhicule, puis - utilisées pour programmer une clé vierge en moins de 60 secondes.

    - -

    Pourquoi devrais-je m’inquiéter ?

    - -

    Cette clé duplicata est identique à l’originale, ce qui donne au voleur un accès - total pour OUVRIR, DÉMARRER et EMPORTER le véhicule à sa convenance, souvent des - jours, voire des semaines plus tard.

    - -

    Pour vous protéger contre ce type d’attaque, vous pouvez envisager de bloquer, - modifier ou cacher votre port OBD. Il ne faut que quelques minutes pour rendre ces - véhicules inviolables.

    - - blog - - Port OBD Lock -
    -
    - -

    Système de Repérage par TAG

    - -

    Cette technologie implique de placer plusieurs dispositifs sans fil dans des endroits - difficiles d’accès du véhicule. Chaque dispositif est autonome et émet un signal - avec un code d’identification unique qui peut être lu à distance par un récepteur. -

    - -

    Prix: 400$

    - -

    Barre Antivol

    - -

    Une barre antivol simple mais efficace peut ralentir un voleur et le décourager, - agissant comme un moyen dissuasif.

    - -

    Amazon: $69 Barre Antivol

    - -

    Apple tag

    - - blog - -
    -
    - -

    L’Apple tag est un relayeur de position, le tag émet des signaux anonymes et toute - personnes possédant Un apapreil Apple passant proche du tag envoit un signal au - serveur de Apple vous permettant ainsi d’avoir une position geographique du dernier - repérage. Il suffit de bien le cacher dans son auto.

    - -

    Toutefois, il est recommandé de désactiver le haut-parleur à l’intérieur de l’Apple - Tag pour éviter que le voleur ne le découvre et ne le désactive. En effet, Apple a - mis en place ce système pour prévenir le suivi indésirable des autres utilisateurs. - Imaginez la situation où quelqu’un aurait discrètement placé un Apple Tag sur vous, - vous permettant ainsi d’être suivi partout sans votre consentement.

    - -

    Dans le contexte des véhicules volés, une fois que le voleur a pris possession de - votre voiture et qu’il détecte la présence d’un Apple Tag non associé à son compte - Apple, il recevra une notification indiquant que cet Apple Tag le suit. En réaction, - il pourrait ouvrir l’application “Find My iPhone” pour tenter de localiser l’Apple - Tag.

    - -

    Pour plus de détails: https://youtu.be/hiivC_4li8Q?t=62

    - -

    Amazon: $34 Apple Tag

    - -
    - - -
      -
    • Share:
    • -
    • -
    • -
    • -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file